
/*--------------------------------------------------------------
>>> TABLE OF CONTENTS:
----------------------------------------------------------------

	0. 	CSS Reset
	1. 	Variables
	2.	Typography
	3. 	Layout Base
	4. 	UI Elements
	5. 	Site Header
	6. 	Menu Modal
	7. 	Page Header
	8.  Grid Model
    9.  Carousel Model
	10.	Templates
	11. Entry Content
	12. Blocks
	13. Site Pagination
	14. Site Footer
    15. Transitions
	15. Accessibility

-------------------------------------------------------------- */

/* --------------------------------------------------------------
= 0. CSS Reset
-------------------------------------------------------------- */

html {
	box-sizing: border-box;
	scroll-behavior: smooth;
	-webkit-text-size-adjust: 100%;
	text-rendering: optimizeSpeed;
}
html,
body {
	border: none;
	margin: 0;
	padding: 0;
}
p, blockquote, address, big,
cite, code, em, font, img,
small, strike, sub, sup,
li, ol, ul, dl, dt, dd,
fieldset, form, label, legend, button,
table, caption, tr, th, td {
	border: none;
	font-size: inherit;
	line-height: inherit;
	margin: 0;
	padding: 0;
	text-align: inherit;
}
h1, h2, h3, h4, h5, h6 {
    margin: 0;
	padding: 0;
	text-align: inherit;
}
blockquote::before,
blockquote::after {
	content: "";
}
article, aside, details, figcaption, figure, 
footer, header, hgroup, main, menu, nav, section {
	display: block;
}
body {
	line-height: 1;
}
a {
	text-decoration: none;
	color: inherit;
}
p {
	margin: 0;
}
ol, ul, menu {
	list-style: none;
}
blockquote, q {
	quotes: none;
}
blockquote:before, blockquote::after,
q::before, q::after {
	content: '';
	content: none;
}
img,
picture,
video,
canvas,
svg {
	display: block;
	max-width: 100%;
}
*, *::before, *::after {
	box-sizing: inherit;
}
* {
	-webkit-tap-highlight-color: transparent !important;
}
button,
input,
textarea {
	-webkit-appearance: none;
	        appearance: none;
}
input,
button,
textarea,
select {
	font: inherit;
}
figure {
	margin: revert !important;
}

/* --------------------------------------------------------------
= 1. Variables
-------------------------------------------------------------- */

:root {
	--wp--preset--color--primary: #000000;
    --wp--preset--color--secondary: #666666;
    --wp--preset--color--tertiary: #F0F0F0;
    --wp--preset--color--background: #FFFFFF;
    --wp--preset--color--red: #AC1606;
    --wp--preset--color--orange: #C55C23;
    --wp--preset--color--green: #3F6E44;
    --wp--preset--color--blue: #4061AB;
    --wp--preset--color--purple: #541042;
    --wp--preset--color--pink: #DB0A5B;
    --wp--style--block-gap: var(--deltos--margins);
    --wp--preset--font-family--jost: "Jost", sans-serif;
    --wp--preset--font-family--eb-garamond: "EB Garamond", serif;

	--deltos--header--hght: clamp(3.4375rem, 3.1696rem + 1.3393vw, 4.375rem); /* 55px - 70px (320px - 1440px) */
    --deltos--footer--hght: clamp(18.75rem, 15.1786rem + 17.8571vw, 31.25rem); /* 300px - 500px (320px - 1440px) */
    --deltos--global--content--medium-size: 54rem;
    --deltos--global--content--large-size: 69rem;
	--deltos--gutter: clamp(1.25rem, 0.5357rem + 3.5714vw, 3.75rem); /* 20px - 60px (320px - 1440px) */
    --deltos--margins: clamp(1.25rem, 0.8929rem + 1.7857vw, 2.5rem); /* 20px - 40px (320px - 1440px) */
	--deltos--section--gap: clamp(3.125rem, 2.2321rem + 4.4643vw, 6.25rem); /* 50px - 100px (320px - 1440px) */
    --deltos--block--gap: 1.5em;
    --deltos--box--shadow: 0 2px 10px 0 rgba(0, 0, 0, 0.25);
}

/* --------------------------------------------------------------
= 2. Typography
-------------------------------------------------------------- */

body {
	color: var(--fa--color--primary);
	font-family: serif;
	font-optical-sizing: auto;
	font-weight: 400;
	font-style: normal;
    line-height: 1.5em;
	-webkit-font-smoothing: antialiased;
	-moz-osx-font-smoothing: grayscale;
}
.fonts-loaded body {
	font-family: var(--wp--preset--font-family--eb-garamond);
}
.has-font-family--jost,
h1, h2, h3, h4, h5, h6 {
    font-family: sans-serif;
}
.fonts-loaded .has-font-family--jost,
.fonts-loaded h1, 
.fonts-loaded h2, 
.fonts-loaded h3, 
.fonts-loaded h4, 
.fonts-loaded h5, 
.fonts-loaded h6 {
    font-family: var(--wp--preset--font-family--jost);
}
h1 {
    font-weight: 400;
    line-height: 1.125em;
}
h1 span {
    font-style: italic;
}
h2, h3, h4, h5, h6 {
    font-weight: 500;
    line-height: 1.25em;
}
a {
	color: var(--deltos--color--highlight);
	text-decoration: underline;
	transition: color 300ms ease;
    word-break: break-word;
}
a:hover {
	color: var(--deltos--color--secondary);
}
:focus {
	outline: 2px solid var(--wp--preset--color--secondary);
	outline-offset: 2px;
}
ul {
	list-style: disc outside;
	padding-left: var(--deltos--block--gap);
}
ul ul {
	list-style: circle outside;
	margin-bottom: 0;
	padding-left: var(--deltos--block--gap);
}
ol {
    list-style: decimal outside;
    padding-left: var(--deltos--block--gap);
}
ol ol {
    list-style: lower-roman outside;
}
address {
    font-family: var(--wp--preset--font-family--jost);
    font-style: normal;
    text-transform: uppercase;
}
sub, sup {
    font-size: 0.75em;
    line-height: 0;
}
.has-text-align-center {
	text-align: center;
}
.has-text-align-right {
    text-align: right;
}
.has-small-font-size {
    line-height: 1.5em;
}
.has-medium-font-size,
.has-large-font-size,
.has-x-large-font-size {
    line-height: 1.25em;
}
.has-xx-large-font-size {
    line-height: 1.125em;
}
figcaption {
    color: var(--wp--preset--color--secondary) !important;
    font-family: var(--wp--preset--font-family--jost);
    font-size: 0.875rem !important;
    line-height: 1.5em !important;
    margin-top: 0.5em !important;
    text-align: left !important;
}

/* --------------------------------------------------------------
= 3. Layout Base
-------------------------------------------------------------- */

#site-content {
    min-height: calc(100dvh - var(--deltos--footer--hght));
    padding-block-start: var(--deltos--header--hght);
}
.inner {
    margin-inline: auto;
    padding-inline: var(--deltos--gutter);
}
#site-content .inner > * {
    max-width: var(--wp--style--global--content-size);
    margin-inline: auto;
}
#site-content .inner {
    font-size: clamp(1.125rem, 1.0893rem + 0.1786vw, 1.25rem);
    line-height: 1.5em;
}
#site-content .inner .alignsmall {
    max-width: var(--wp--style--global--content-size);
}
#site-content .inner .alignmedium {
    max-width: var(--deltos--global--content--medium-size);
}
#site-content .inner .alignlarge {
    max-width: var(--deltos--global--content--large-size);
}
#site-content .inner .alignwide {
    max-width: var(--wp--style--global--wide-size);
}
#site-content .inner .alignfull {
    margin-inline: calc(var(--deltos--gutter) * -1) !important;
    max-width: calc(100% + var(--deltos--gutter) * 2) !important;
}
#site-content .inner .wp-block-group.alignfull {
    padding-inline: var(--deltos--gutter) !important;
}
:root :where(.is-layout-flow) > *,
:root :where(.is-layout-constrained) > * {
    margin-block-start: 0 !important;
    margin-block-end: 1.5em;
}
:root :where(.is-layout-constrained) > *:last-child {
    margin-bottom: 0 !important;
}
:where(.wp-block-group.has-background) {
    padding-block-start: var(--deltos--section--gap);
    padding-block-end: calc(var(--deltos--section--gap) * 1.5);
    padding-inline: var(--deltos--gutter);
}
@media ( min-width: 48em ) {
    #site-content article > .alignleft,
    #site-content article > .alignright {
        max-width: 100%;
    }
    #site-content article > .aligncenter {
        max-width: 50%;
    }
}
@media ( min-width: 64em ) {
    #site-content article > .aligncenter > * {
        max-width: calc(100% / 3);
    }
    #site-content article > .alignleft,
    #site-content article > .alignright {
        max-width: 75%;
    }
    #site-content article > .alignleft {
        margin-right: 25% !important;
    }
    #site-content article > .alignright {
        margin-left: 25% !important;
    }
}

/* --------------------------------------------------------------
= 4. UI Elements
-------------------------------------------------------------- */

svg {
    display: inline-block;
    overflow: visible;
}

/* Logo + Mark ----------------------------------------------- */

svg.logo {
    height: clamp(0.875rem, 0.8214rem + 0.2679vw, 1.0625rem); /* 14px - 17px (320px - 1440px) */
}
svg.mark {
    height: 1rem; 
}
svg.logo .fill,
svg.mark .fill {
    fill: var(--wp--preset--color--background);
}
svg.logo .highlight,
svg.mark .highlight {
    fill: transparent;
}
.single-deltos_modules svg.logo .highlight,
.single-deltos_modules svg.mark .highlight {
    fill: var(--deltos--color--highlight);
}

/* Hamburger ------------------------------------------------- */

.hamburger {
    background: transparent;
    border: none;
    display: block;
	height: 16px;
    overflow: hidden;
    position: relative;
    width: 16px;
}
.hamburger > .hamburger-box {
    height: 100%;
    inset: 0;
	position: absolute;
    width: 100%;
}
.hamburger > .hamburger-box:before,
.hamburger > .hamburger-box:after {
	content: '';
}
.hamburger > .hamburger-box:before,
.hamburger > .hamburger-box:after,
.hamburger > .hamburger-box span {
	background-color: var(--wp--preset--color--background);
	display: block;
	height: 2px;
    inset-inline-end: 0;
	position: absolute;
	width: 15px;
	transition: all 300ms ease;
}
.hamburger > .hamburger-box:hover:before,
.hamburger > .hamburger-box:hover:after,
.hamburger > .hamburger-box:hover span {
	background-color: var(--wp--preset--color--secondary);
}
.hamburger > .hamburger-box:before {
	inset-block-start: 2px;
}
.hamburger > .hamburger-box span {
	inset-block-start: 7px;
}
.hamburger > .hamburger-box:after {
	inset-block-start: 12px;
}
.menu--open .hamburger > .hamburger-box:before {
	transform: rotate(-45deg);
}
.menu--open .hamburger > .hamburger-box:after {
	transform: rotate(45deg);
}
.menu--open .hamburger > .hamburger-box:before,
.menu--open .hamburger > .hamburger-box:after {
    inset-block-start: 6px;
	background-color: var(--wp--preset--color--background);
}
.menu--open .hamburger > .hamburger-box span {
	width: 0;
}
.menu--open .hamburger > .hamburger-box:hover:before,
.menu--open .hamburger > .hamburger-box:hover:after {
	background-color: var(--wp--preset--color--primary);
}

/* Magnifying Glass ------------------------------------------ */

.magnifying-glass {
    background: transparent;
    border: none;
    display: block;
	height: 16px;
    overflow: hidden;
    position: relative;
    width: 16px;
}
.magnifying-glass::before,
.magnifying-glass::after {
	content: '';
}
.magnifying-glass::before {
    border-width: 2px;
    border-style: solid;
    border-color: var(--wp--preset--color--background);
    border-radius: 50%;
    height: 10px;
    inset-block-start: 2px;
    inset-inline-end: 2px;
    position: absolute;
    transition: border-color 300ms ease;
    width: 10px;
}
.magnifying-glass::after {
    background-color: var(--wp--preset--color--background);
    height: 2px;
    inset-block-start: 10px;
    inset-inline-end: 9px;
    position: absolute;
    transform: rotate(-45deg);
    transition: background-color 300ms ease;
    width: 5px;
}
.magnifying-glass:hover::before { border-color: var(--wp--preset--color--secondary) }
.magnifying-glass:hover::after { background-color: var(--wp--preset--color--secondary) }

.menu--open .magnifying-glass:hover::before { border-color: var(--wp--preset--color--primary) }
.menu--open .magnifying-glass:hover::after { background-color: var(--wp--preset--color--primary) }

.search--open .magnifying-glass:before,
.search--open .magnifying-glass:after {
    height: 2px;
    inset-inline-end: 0;
	position: absolute;
	width: 15px;
    inset-block-start: 6px;
}
.search--open .magnifying-glass:before {
    background-color: var(--wp--preset--color--background);
    border: none;
    border-radius: 0;
    transform: rotate(45deg);
    transition: background-color 300ms ease;
}
.search--open .magnifying-glass:hover:before {
    background-color: var(--wp--preset--color--secondary)
}

/* Tabs ------------------------------------------------------ */

.tab {
    color: var(--wp--preset--color--primary);
    display: inline-block;
    font-family: var(--wp--preset--font-family--jost);
    font-size: 0.875rem;
    font-weight: 700;
    letter-spacing: 0.05em;
    line-height: 1em;
    text-transform: uppercase;
}
.tab a {
    color: var(--wp--preset--color--primary) !important;
    text-decoration: none !important;
}
.tab a:hover {
    color: var(--deltos--color--highlight) !important;
}

/* Bullets --------------------------------------------------- */

.triangle::before,
.circle::before {
    background-color: var(--wp--preset--color--primary);
    content: '';
    display: inline-block;
    height: 10px;
    margin-inline-end: 8px;
    vertical-align: baseline;
    width: 10px;
}
.triangle::before {
    clip-path: polygon(0 0, 100% 0, 100% 100%, 0 100%);
    transition: background-color 300ms ease, clip-path 300ms ease;
}
.triangle:hover::before {
    background-color: var(--deltos--color--highlight);
    clip-path: polygon(0 0, 100% 0, 50% 100%, 50% 100%);
}
.circle::before {
    border-radius: 0;
    transition: all 300ms ease;
}
.circle:hover::before {
    background-color: var(--deltos--color--highlight);
    border-radius: 50%;
}

/* --------------------------------------------------------------
= 5. Site Header
-------------------------------------------------------------- */

#site-header {
    background-color: var(--wp--preset--color--primary);
    min-height: var(--deltos--header--hght);
    inset-block-start: 0;
    inset-inline: 0;
    position: fixed;
    transition: all 500ms ease;
    width: 100%;
    z-index: 1500;
}
.menu--open #site-header {
    background-color: var(--deltos--color--highlight);
    min-height: 100dvh;
}
#site-header .inner {
    align-items: center;
    display: flex;
    flex-wrap: wrap;
    gap: 0 clamp(0.625rem, 0.0893rem + 2.6786vw, 2.5rem); /* 10px - 40px (320px - 1440px) */
    height: 100%;
    justify-content: space-between;
}
.site-title,
.site-search,
.site-mobile-menu {
    display: flex;
    align-items: center;
    height: var(--deltos--header--hght);
}
.site-title { order: 1 }
.site-search { order: 2 }
.site-mobile-menu { order: 3 }
.site-title {
    flex-grow: 1;
}
.site-title a {
    display: block;
    height: clamp(0.875rem, 0.8214rem + 0.2679vw, 1.0625rem); /* 14px - 17px (320px - 1440px) */
}
@media ( min-width: 80em ) {
    #site-header .inner {
        flex-wrap: nowrap;
    }
    .site-mobile-menu {
        display: none;
    }
    .site-search { order: 3 }
}

/* --------------------------------------------------------------
= 6. Menu Modal
-------------------------------------------------------------- */

.site-menu {
    height: calc(100dvh - var(--deltos--header--hght));
    max-height: 0;
    order: 4;
    overflow: hidden;
    transition: max-height 500ms ease;
    width: 100%;
}
.menu--open .site-menu {
    max-height: 100dvh;
}
.menu {
    display: flex;
    flex-direction: column;
    height: calc(100dvh - var(--deltos--header--hght));
    list-style: none;
    margin: 0;
    padding: 0;
}
.menu li {
    align-items: center;
    color: var(--wp--preset--color--background);
    display: flex;
    height: var(--deltos--header--hght);
    justify-content: end;
    text-transform: uppercase;
}
.menu li a {
    color: inherit;
    display: inline-block;
    font-weight: 600;
    letter-spacing: 0.01em;
    position: relative;
    text-decoration: none;
    transition: color 300ms ease;
}
.menu li a::after {
    background: var(--wp--preset--color--background);
    content: "";
    height: 2px;
    inset-block-end: -1px;
    inset-inline-start: 0;
    position: absolute;
    transition: width 300ms ease-in-out;
    width: 0;
}
.menu li a:hover::after {
    width: 100%;
}
.menu--open .menu li {
    opacity: 0;
    transform: translateY(-20px);
    animation: menuFadeIn 200ms forwards;
}
.menu--open .menu li:nth-child(2) { animation-delay: 100ms }
.menu--open .menu li:nth-child(3) { animation-delay: 200ms }
.menu--open .menu li:nth-child(4) { animation-delay: 300ms }
.menu--open .menu li:nth-child(5) { animation-delay: 400ms }

@keyframes menuFadeIn {
    to {
        opacity: 1;
        transform: translateY(0);
    }
}
@media ( min-width: 80em ) {
    .site-menu {
        height: auto;
        max-height: none;
        order: 2;
        overflow: visible;
        transition: none;
        width: auto;
    }
    .menu {
        flex-direction: row;
        gap: 0 clamp(0.625rem, 0.0893rem + 2.6786vw, 2.5rem); /* 10px - 40px (320px - 1440px) */
        height: auto;
        justify-content: end;
    }
}

/* --------------------------------------------------------------
= 7. Search Modal
-------------------------------------------------------------- */

.search-overlay {
    background-color: var(--wp--preset--color--primary);
    content: '';
    display: block;
    height: 100dvh;
    inset: 0;
    opacity: 0;
    pointer-events: none;
    position: fixed;
    transition: opacity 750ms ease;
    width: 100%;
    z-index: 5;
}
.search--open .search-overlay { 
    cursor: pointer;
    opacity: 0.8;
    pointer-events: auto;
    transition: opacity 500ms ease;
}
#search-form {
    background-color: var(--wp--preset--color--primary);
    inset-block-start: var(--deltos--header--hght);
    inset-inline: 0;
    max-height: 0;
    overflow: hidden;
    position: fixed;
    transition: max-height 500ms ease;
    width: 100%;
    z-index: 10;
}
.search--open #search-form { 
    max-height: 100dvh;
    transition: max-height 1000ms ease;
}
.search-form-bg {
    background-position: center;
    background-size: cover;
    inset: 0;
    position: absolute;
    opacity: 0.5;
    pointer-events: none;
    z-index: 6;
}
#search-form .inner {
    display: flex;
    flex-direction: column;
    gap: var(--wp--style--block-gap);
    padding-block: var(--deltos--section--gap);
    position: relative;
    z-index: 7;
}
#search-form .search-field,
#search-form .search-submit {
    background-color: var(--wp--preset--color--background);
    border: none;
    font-weight: 600;
    height: 3.75rem;
    letter-spacing: 0.01em;
    font-size: 1rem;
    outline: none;
}
#search-form label {
    flex: 1 1 auto;
}
#search-form .search-field {
    padding: 0 1.5rem;
    width: 100%;
}
#search-form .search-submit {
    box-shadow: none;
    color: var(--wp--preset--color--primary);
    cursor: pointer;
    flex: 1 1 auto;
    text-align: center;
    text-transform: uppercase;
    transition: background-color 300ms;
}
#search-form .search-field:focus {
    box-shadow: var(--deltos--box--shadow);
}
#search-form .search-submit:hover,
#search-form .search-submit:focus {
    background-color: var(--deltos--color--highlight);
    box-shadow: var(--deltos--box--shadow);
    color: var(--wp--preset--color--background);
}
.search--open #search-form label,
.search--open #search-form .search-submit {
    opacity: 0;
    transform: translateY(-10px);
    animation: searchFadeIn 300ms forwards;
}
.search--open #search-form label { animation-delay: 200ms }
.search--open #search-form .search-submit { animation-delay: 300ms }

@keyframes searchFadeIn {
    to {
        opacity: 1;
        transform: translateY(0);
    }
}
@media ( min-width: 48em ) {
    #search-form .inner {
        flex-direction: row;
    }
    #search-form .search-submit {
        flex: none;
        width: 11.25rem;
    }
    .search--open #search-form label,
    .search--open #search-form .search-submit { 
        animation-delay: 200ms 
    }
}

/* --------------------------------------------------------------
= 8. Page Header
-------------------------------------------------------------- */

.page-header {
    padding-block: var(--deltos--section--gap);
}
.page-header > *:last-child {
    margin-block-end: 0 !important;
}
.page-header > .wp-block-columns {
    margin-block-start: 0.25rem;
}
.page-header .byline {
    color: var(--wp--preset--color--secondary);
    font-family: var(--wp--preset--font-family--jost);
    font-size: 1rem;
    font-weight: 600;
    letter-spacing: 0.01em;
    line-height: 1.5em;
    margin-block-start: 0.25rem;
    text-transform: uppercase;
}

/* Resources ------------------------------------------------- */

.resources {
    display: flex;
    flex-direction: row;
    gap: clamp(1.25rem, 1.0714rem + 0.8929vw, 1.875rem);
    justify-content: flex-start;
    margin-block-end: clamp(1.25rem, 1.0714rem + 0.8929vw, 1.875rem);
}
.dkpdf-button-icon {
    display: none !important;
}
.dkpdf-button-container {
    width: auto !important;
    float: none !important;
    padding-top: 0 !important;
    padding-bottom: 0 !important;
}
a.resource-button,
.dkpdf-button-container a {
    background-color: var(--wp--preset--color--primary);
    box-shadow: none;
    color: var(--wp--preset--color--background) !important;
    display: inline-block;
    font-family: var(--wp--preset--font-family--jost);
    font-size: 0.875rem;
    font-weight: 600;
    letter-spacing: 0.05em;
    line-height: 1em;
    padding: 8px 10px;
    text-decoration: none;
    text-transform: uppercase;
    transition: all 300ms ease;
}
a.resource-button:hover,
.dkpdf-button-container a:hover {
    background-color: var(--deltos--color--highlight);
    box-shadow: var(--deltos--box--shadow);
}
a.resource-button::before,
.dkpdf-button-container a::before {
    background-color: var(--wp--preset--color--background);
    clip-path: polygon(0 0, 100% 0, 100% 100%, 0 100%);
    content: '';
    display: inline-block;
    height: 10px;
    margin-inline-end: 8px;
    transition: clip-path 300ms ease;
    vertical-align: baseline;
    width: 10px;
}
a.resource-button:hover::before,
.dkpdf-button-container a:hover::before {
    clip-path: polygon(0 0, 100% 0, 50% 100%, 50% 100%);
}
/* --------------------------------------------------------------
= 10. Template Parts
-------------------------------------------------------------- */

/* Blog, Archive, and Search --------------------------------- */

.row {
    background-color: var(--wp--preset--color--background);
    display: flex;
    flex-direction: column;
    margin-block-end: var(--deltos--margins);
}
.row figure.row-image {
    aspect-ratio: 4 / 3;
    margin: 0 !important;
    position: relative;
    width: 100%;
}
.row figure.row-image img {
    height: 100% !important;
    inset: 0;
    object-fit: cover;
    overflow: hidden;
    position: absolute;
    width: 100%;
}
.row h3.row-title {
    font-size: clamp(1.375rem, 1.3393rem + 0.1786vw, 1.5rem) !important;
    font-weight: 500;
    line-height: 1.125em;
    margin-block-end: 0.5em;
}
.row h3.row-title a {
    color: var(--wp--preset--color--primary);
    text-decoration: none;
    transition: color 300ms ease;
}
.row h3.row-title a:hover {
    color: var(--deltos--color--highlight);
}
.row .row-wrapper {
    padding-block: calc(var(--deltos--margins) - 0.125rem) calc(var(--deltos--margins) - 0.25rem);
    padding-inline: var(--deltos--margins);
}
.row .row-content .row-content--crop {
    display: -webkit-box;
    -webkit-line-clamp: 6;
            line-clamp: 6;
    -webkit-box-orient: vertical;
    overflow: hidden;
}
.row .row-footer {
    align-items: end;
    display: flex;
    justify-content: space-between;
    gap: 1rem;
    line-height: 10px;
    margin-block-start: 1.25em;
}
#load-more-spinner {
    font-style: italic;
    margin-block-start: 1.25em;
}
@media (min-width: 48em) {
    .row {
        flex-direction: row;
        height: 300px;
    }
    .row figure.row-image {
        aspect-ratio: 3 / 4;
        display: flex;
        flex-shrink: 0;
        height: 100%;
        width: auto;
    }
    .row .row-wrapper {
        display: flex;
        flex: 1;
        flex-direction: column;
    }
    .row .row-content {
        flex: 1;
    }
    .row .row-content .row-content--crop {
        -webkit-line-clamp: 5;
                line-clamp: 5;
    }
}
@media (min-width: 64em) {
    .row figure.row-image {
        aspect-ratio: 1 / 1;
    }
    .row .row-content .row-content--crop {
        -webkit-line-clamp: 4;
                line-clamp: 4;
    }
}

/* Module Card ----------------------------------------------- */

.modules-grid {
    display: flex;
    flex-direction: column;
    gap: var(--deltos--margins);
    justify-content: space-between;
}
.card {
    background-color: var(--wp--preset--color--background);
    display: flex;
    flex-direction: column;
    transition: box-shadow 300ms ease;
}
.card:hover {
    box-shadow: var(--deltos--box--shadow);
}
.card figure.card-image {
    aspect-ratio: 4 / 3;
    margin: 0 !important;
    position: relative;
    width: 100%;
}
.card figure.card-image img {
    height: 100% !important;
    inset: 0;
    object-fit: cover;
    overflow: hidden;
    position: absolute;
    width: 100%;
}
.card .card-header {
    background-color: var(--deltos--color--highlight);
    color: var(--wp--preset--color--background);
    padding-block: 1rem;
    padding-inline: 1.25rem;
    width: 100%;
}
.card .card-header,
.card .card-content {
    padding-inline: 1.25rem;
}
.card .card-content {
    align-self: stretch;
        display: flex;
        flex-direction: column;
    flex: 1 1 auto;
    height: 100%;
        justify-content: space-between;
    padding-block-start: 1rem;
    padding-block-end: 1.25rem;
}
.card .card-content .card-content--crop {
    display: -webkit-box;
    -webkit-line-clamp: 7;
            line-clamp: 7;
    -webkit-box-orient: vertical;
    overflow: hidden;
}
.card .card-header h3.card-title {
    font-size: clamp(1.375rem, 1.3393rem + 0.1786vw, 1.5rem) !important;
    font-weight: 500;
    line-height: 1.125em;
    margin-block-end: 0.25em;
}
.card .card-header h3.card-title a {
    color: var(--wp--preset--color--background) !important;
    opacity: 1;
    text-decoration: none !important;
    transition: opacity 300ms ease;
}
.card .card-header h3.card-title a:hover {
    opacity: 0.7;
}
.card .card-header .byline { 
    font-size: 0.875rem;
    font-weight: 600;
    line-height: 1.5em;
}
.card .card-footer {
    align-items: end;
    display: flex;
    justify-content: space-between;
    gap: 1rem;
    margin-block-start: var(--deltos--margins);
}
.load-more-modules {
    margin-block-start: var(--deltos--margins) !important;
}
@media ( min-width: 48em ) {
    .modules-grid {
        display: grid;
        grid-template-columns: repeat(2, 1fr);
        gap: var(--deltos--margins);
    }
}
@media ( min-width: 64em ) {
    .modules-grid {
        grid-template-columns: repeat(3, 1fr);
    }
}

/* Gravity Form  --------------------------------------------- */

.gform-theme--framework legend.gform-field-label,
.gform-theme--framework label.gform-field-label,
.gform-theme--framework label.gform-field-label.gform-field-label--type-sub {
    font-family: var(--wp--preset--font-family--jost) !important;
    font-weight: 600 !important;
    letter-spacing: 0.01em !important;
    line-height: 1em !important;
}
.gform-theme--framework legend.gform-field-label,
.gform-theme--framework label.gform-field-label{
    color: var(--wp--preset--color--primary) !important;
    font-size: 1rem !important;
    text-transform: uppercase !important;
}
.gform-theme--framework input,
.gform-theme--framework select,
.gform-theme--framework textarea {
    font-family: var(--wp--preset--font-family--jost) !important;
}
.gform-theme--framework input:not([type=file]),
.gform-theme--framework select,
.gform-theme--framework textarea {
    font-size: 1rem !important;
}
.gform-theme--framework .gform_fileupload_rules {
    font-size: 0.875rem !important;
    font-style: italic !important;
}
.gform-theme--framework label.gform-field-label.gform-field-label--type-sub {
    color: var(--wp--preset--color--secondary) !important;
    font-size: 0.875rem !important;
    text-transform: none !important;
}
.gform-theme--framework .gform-field-label>.gfield_required:where(:not(.gform-theme__disable):not(.gform-theme__disable *):not(.gform-theme__disable-framework):not(.gform-theme__disable-framework *)), 
.gform-theme--framework.gform_editor legend.gform-field-label>span>.gfield_required:where(:not(.gform-theme__disable):not(.gform-theme__disable *):not(.gform-theme__disable-framework):not(.gform-theme__disable-framework *)) {
    color: var(--wp--preset--color--red) !important;
}
.gform-theme--framework .wp-editor-container:where(:not(.gform-theme__disable):not(.gform-theme__disable *):not(.gform-theme__disable-framework):not(.gform-theme__disable-framework *)) {
    box-shadow: none !important;
    outline: none !important;
}
.gform-theme--framework .gfield:where(.gfield--type-multiselect,.gfield--input-type-multiselect) .chosen-container-multi:where(:not(.gform-theme__disable):not(.gform-theme__disable *):not(.gform-theme__disable-framework):not(.gform-theme__disable-framework *)):focus, 
.gform-theme--framework .gfield:where(.gfield--type-select,.gfield--input-type-select) .chosen-search input[type=text]:where(:not(.gform-theme__disable):not(.gform-theme__disable *):not(.gform-theme__disable-framework):not(.gform-theme__disable-framework *)):focus, 
.gform-theme--framework .gfield:where(.gfield--type-select,.gfield--input-type-select) .chosen-single:where(:not(.gform-theme__disable):not(.gform-theme__disable *):not(.gform-theme__disable-framework):not(.gform-theme__disable-framework *)):focus, 
.gform-theme--framework .gform-theme-field-control:where(:not(.gform-theme__disable):not(.gform-theme__disable *):not(.gform-theme__disable-framework):not(.gform-theme__disable-framework *)):focus, 
.gform-theme--framework input[type]:where(:not(.gform-text-input-reset):not([type=hidden])):where(:not(.gform-theme__disable):not(.gform-theme__disable *):not(.gform-theme__disable-framework):not(.gform-theme__disable-framework *)):focus, 
.gform-theme--framework select:where(:not(.gform-theme__disable):not(.gform-theme__disable *):not(.gform-theme__disable-framework):not(.gform-theme__disable-framework *)):focus, 
.gform-theme--framework select[multiple]:where(:not(.gform-theme__disable):not(.gform-theme__disable *):not(.gform-theme__disable-framework):not(.gform-theme__disable-framework *)):focus, 
.gform-theme--framework textarea:where(:not(.gform-theme__disable):not(.gform-theme__disable *):not(.gform-theme__disable-framework):not(.gform-theme__disable-framework *)):focus, 
.gform-theme--framework.gform-theme.gform_wrapper .button:where(:not(.gform-theme-no-framework)):where(:not(.gform-theme__disable):not(.gform-theme__disable *):not(.gform-theme__disable-framework):not(.gform-theme__disable-framework *)):focus, 
.gform-theme--framework.gform-theme.gform_wrapper .gform-theme-button:where(:not(.gform-theme-no-framework)):where(:not(.gform-theme__disable):not(.gform-theme__disable *):not(.gform-theme__disable-framework):not(.gform-theme__disable-framework *)):focus, 
.gform-theme--framework.gform-theme.gform_wrapper :where(:not(.mce-splitbtn))>button:not([id*=mceu_]):not(.mce-open):where(:not(.gform-theme-no-framework)):where(:not(.gform-theme__disable):not(.gform-theme__disable *):not(.gform-theme__disable-framework):not(.gform-theme__disable-framework *)):focus, 
.gform-theme--framework.gform-theme.gform_wrapper button.button:where(:not(.gform-theme-no-framework)):where(:not(.gform-theme__disable):not(.gform-theme__disable *):not(.gform-theme__disable-framework):not(.gform-theme__disable-framework *)):focus, 
.gform-theme--framework.gform-theme.gform_wrapper input:is([type=submit],[type=button],[type=reset]).button:where(:not(.gform-theme-no-framework)):where(:not(.gform-theme__disable):not(.gform-theme__disable *):not(.gform-theme__disable-framework):not(.gform-theme__disable-framework *)):focus, 
.gform-theme--framework.gform-theme.gform_wrapper input:is([type=submit],[type=button],[type=reset]):where(:not(.gform-theme-no-framework)):where(:not(.gform-theme__disable):not(.gform-theme__disable *):not(.gform-theme__disable-framework):not(.gform-theme__disable-framework *)):focus, 
.gform-theme--framework.gform-theme.gform_wrapper input[type=submit].button.gform_button:where(:not(.gform-theme-no-framework)):where(:not(.gform-theme__disable):not(.gform-theme__disable *):not(.gform-theme__disable-framework):not(.gform-theme__disable-framework *)):focus {
    box-shadow: var(--deltos--box--shadow);
    outline: none !important;
}

/* --------------------------------------------------------------
= 12. Blocks
-------------------------------------------------------------- */

.has-highlight-background-color {
    background-color: var(--deltos--color--highlight) !important;
    color: var(--wp--preset--color--background) !important;
}
.wp-block-group {
    position: relative;
}

/* Block: Image  --------------------------------------------- */

#site-content img {
	display: block;
	height: auto;
	max-width: 100%;
}
figure.wp-block-image {
    margin-block-start: 0 !important;
    margin-block-end: clamp(2.5rem, 2.1429rem + 1.7857vw, 3.75rem) !important; /* 40px - 60px (320px - 1440px) */;
}
figure.wp-block-image.featured-image {
    margin-block-end: 0 !important;
}
.wp-block-image.alignfull img, 
.wp-block-image.alignwide img {
    height: auto;
    width: 100%;
}
figure.alignleft,
figure.alignright {
    float: none !important;
    display: block !important;
    margin-inline: auto !important;
    max-width: var(--wp--style--global--content-size);
}
figure.wp-block-image.featured-image img {
    height: clamp(15.625rem, 12.9464rem + 13.3929vw, 25rem) !important; /* 250px - 400px (320px - 1440px) */
    object-fit: cover;
    object-position: center bottom;
}
.home .figure.wp-block-image.featured-image img {
    object-position: center top;
}
@media (min-width: 80em) {
    figure.alignleft,
    figure.alignright {
        position: absolute !important;
        margin: 0 !important;
        width: calc((100% - var(--wp--style--global--content-size)) / 2 - var(--deltos--margins)) !important; 
    }
    figure.alignright {
        inset-inline-end: 0 !important;
    }
    figure.alignleft {
        inset-inline-start: 0 !important;
    }
}

/* Block: Button --------------------------------------------- */

.wp-block-buttons > .wp-block-button,
.gform_wrapper .gform-footer .gform_button {
    width: 100% !important;
}
:root :where(.wp-element-button, .wp-block-button__link),
.gform_wrapper .gform-footer .gform_button {
    background-color: var(--wp--preset--color--primary) !important;
    border-radius: 0 !important;
    box-shadow: none !important;
    display: inline-block;
    color: var(--wp--preset--color--background) !important;
    font-family: var(--wp--preset--font-family--jost) !important;
    font-size: 1rem !important;
    font-weight: 600 !important;
    line-height: 1.25em !important;
    padding: 1.25em !important;
    text-transform: uppercase !important;
    transition: background-color 300ms ease !important;
}
.gform_wrapper .gform-footer .gform_button {
    padding-block: 1.1875em !important;
}
:root :where(.wp-element-button, .wp-block-button__link):hover,
.gform_wrapper .gform-footer .gform_button:hover {
    background-color: var(--deltos--color--highlight) !important;
    box-shadow: var(--deltos--box--shadow) !important;
}
.button--learn-more {
    background-color: var(--wp--preset--color--primary);
    box-shadow: none;
    color: var(--wp--preset--color--background) !important;
    display: inline-block;
    font-family: var(--wp--preset--font-family--jost);
    font-size: 0.875rem;
    font-weight: 600;
    letter-spacing: 0.05em;
    line-height: 1em;
    padding: 8px 10px;
    text-decoration: none;
    text-transform: uppercase;
    transition: all 300ms ease;
}
.button--learn-more:hover {
    background-color: var(--deltos--color--highlight);
    box-shadow: var(--deltos--box--shadow);
}
@media (min-width: 48em) {
    .wp-block-buttons > .wp-block-button {
        max-width: 350px !important;
    }
    .gform_wrapper .gform-footer .gform_button {
        max-width: 300px !important;
    }
}

/* Block: Columns -------------------------------------------- */

#site-content article > .wp-block-columns > .wp-block-column {
    margin-bottom: var(--deltos--block--gap);
}
@media ( min-width: 48em ) {
    #site-content article > .wp-block-columns {
        margin-bottom: var(--deltos--block--gap);
    }
    #site-content article > .wp-block-columns > .wp-block-column {
        margin-bottom: 0;
    }
}

/* Block: Embed ---------------------------------------------- */

.wp-block-embed,
.wp-block-video {
    margin-bottom: var(--deltos--block--gap) !important;
}
.wp-block-video audio,
.wp-block-video video,
.wp-block-embed iframe {
	width: 100%;
}
.wp-block-embed .wp-block-embed__wrapper {
	height: 0;
	padding-bottom: 56.25%;
	position: relative;
}
.wp-block-embed.wp-embed-aspect-4-3 .wp-block-embed__wrapper {
	padding-bottom: 75%; /* 4:3 */
}
.wp-block-embed.wp-embed-aspect-16-9 .wp-block-embed__wrapper {
	padding-bottom: 56.25%; /* 16:9 */
}
.wp-block-embed.wp-embed-aspect-21-9 .wp-block-embed__wrapper {
	padding-bottom:  41.5625%; /* 21:9 */
}
.wp-block-embed .wp-block-embed__wrapper iframe {
	position: absolute;
	top: 0;
	left: 0;
	width: 100%;
	height: 100%;
}
@media ( min-width: 48em ) {
	.wp-block-embed,
	.wp-block-video {
		width: 75%;
	}
}
@media ( min-width: 64em ) {
	.wp-block-embed,
	.wp-block-video {
		width: 50%;
	}
}

/* Block: Separator ------------------------------------------ */

.wp-block-separator {
    border-block-start: 1px solid var(--wp--preset--color--primary);
    border-block-end: none;
    border-inline-start: none;
    border-inline-end: none;
    height: 1px;
    margin-block-start: 2em !important;
}

/* Block: Quotes --------------------------------------------- */

.wp-block-quote {
    background-color: var(--wp--preset--color--background);
    border-left: none;
    margin: 0 0 1.75em;
    padding-block: 1rem;
    padding-inline: 1.25rem;
}
.wp-block-quote cite, 
.wp-block-quote footer {
    color: var(--deltos--color--highlight);
    display: block;
    font-family: var(--wp--preset--font-family--jost);
    font-size: 0.875rem;
    font-weight: 600;
    letter-spacing: 0.01em;
    line-height: 1.5em;
    margin-block-start: 0.5rem;
    text-transform: uppercase;
}

/* --------------------------------------------------------------
= 13. Site Pagination
-------------------------------------------------------------- */

/* --------------------------------------------------------------
= 14. Site Footer
-------------------------------------------------------------- */

#site-footer {
    background-color: var(--wp--preset--color--primary);
    color: var(--wp--preset--color--background);
    height: var(--deltos--footer--hght);
    position: relative;
}
#site-footer .inner {
    display: flex;
    flex-direction: column;
    min-height: 100%;
    padding-block-end: clamp(1.25rem, 0.7143rem + 2.6786vw, 3.125rem); /* 20px - 50px (320px - 1440px) */
}
.footer-contact {
    align-items: center;
    display: flex;
    flex-direction: column;
    flex-grow: 1;
    font-size: clamp(1.25rem, 1.1786rem + 0.3571vw, 1.5rem); /* 20px - 24px (320px - 1440px) */
    font-weight: 500;
    justify-content: center;
    letter-spacing: 0.01em;
}
.footer-contact a,
.site-colophon a {
    color: var(--wp--preset--color--background);
    text-decoration: underline;
}
.footer-contact a:hover,
.site-colophon a:hover {
    text-decoration: none;
}
.site-colophon {
    align-items: center;
    display: flex;
    flex-direction: row;
    font-size: 0.875em;
    font-weight: 500;
    justify-content: space-between;
    letter-spacing: 0.01em;
    line-height: 1rem;
}
.site-copyright,
.site-credit {
    width: calc(100% - 19px / 2);
}
.site-credit {
    text-align: right;
}
.mark {
    height: 17px;
    width: auto;
}
.hide-on-mobile {
    display: none;
}
@media ( min-width: 48em ) {
    .hide-on-mobile {
        display: inline;
    }
}

/* --------------------------------------------------------------
= 15. Transitions
-------------------------------------------------------------- */

body {
    opacity: 0;
    transition: opacity 500ms ease;
}
body.page--loaded {
    opacity: 1;
}

/* --------------------------------------------------------------
= 16. Accessibility
-------------------------------------------------------------- */

/* Text meant only for screen readers. */
.screen-reader-text {
	border: 0;
	clip: rect(1px, 1px, 1px, 1px);
	clip-path: inset(50%);
	height: 1px;
	margin: -1px;
	overflow: hidden;
	padding: 0;
	position: absolute !important;
	width: 1px;
	word-wrap: normal !important;
}

.screen-reader-text:focus {
	background-color: #f1f1f1;
	border-radius: 3px;
	box-shadow: 0 0 2px 2px rgba(0, 0, 0, 0.6);
	clip: auto !important;
	clip-path: none;
	color: #21759b;
	display: block;
	font-size: 0.875rem;
	font-weight: 700;
	height: auto;
	left: 5px;
	line-height: normal;
	padding: 15px 23px 14px;
	text-decoration: none;
	top: 5px;
	width: auto;
	z-index: 100000;
}
/* Do not show the outline on the skip link target. */
#primary[tabindex="-1"]:focus {
	outline: 0;
}