@charset "UTF-8";
/*!
Theme Name: Digital Harbor Starter Theme
Theme URI: http://underscores.me/
Author: Partisan Pixel
Author URI: https://www.partisanpixel.com
Description: custom partisan starter theme
Version: 2.0.0
License: GNU General Public License v2 or later
License URI: LICENSE
Text Domain: balderdash
*/
/*! minireset.css v0.0.6 | MIT License | github.com/jgthms/minireset.css */
html,
body,
p,
ol,
ul,
li,
dl,
dt,
dd,
blockquote,
figure,
fieldset,
legend,
textarea,
pre,
iframe,
hr,
h1,
h2,
h3,
h4,
h5,
h6 {
  margin: 0;
  padding: 0;
}

h1,
h2,
h3,
h4,
h5,
h6 {
  font-size: 100%;
  font-weight: normal;
}

ul {
  list-style: none;
}

button,
input,
select {
  margin: 0;
}

html {
  box-sizing: border-box;
}

*, *::before, *::after {
  box-sizing: inherit;
}

img,
video {
  height: auto;
  max-width: 100%;
}

iframe {
  border: 0;
}

table {
  border-collapse: collapse;
  border-spacing: 0;
}

td,
th {
  padding: 0;
}

:root {
  --wp--custom--layout--content: 1200px;
  --wp--custom--layout--wide: 1400px;
  --wp--custom--layout--narrow: 1000px;
  --readable-width: 800px;
  --white: #ffffff;
  --black: #001B2A;
  --bone: #EEF3F6;
  --frost: #EEF3F6;
  --gray: #B4BEC9;
  --dk-gray: #666666;
  --lt-gray: #DEEDEF;
  --charcoal: #444444;
  --green: #00A795;
  --primary: #00A795;
  --dk-green: #00473F;
  --blue: #0077BB;
  --secondary: #0077BB;
  --boy-blue: #009EF7;
  --lt-blue: #bde4ff;
  --navy: #004268;
  --orange: #FE5D02;
  --cadet: #7BB0C7;
  --pale-blue: #D0ECF0;
  --lt-color: #D0ECF0;
  --dk-color: #004268;
  --accent-color: #FE5D02;
  --headline: "Libre Baskerville", "Times New Roman", Times, serif;
  --bodycopy: "Source Sans 3", "Helvetica Neue", Helvetica, Roboto, Oxygen-Sans, Ubuntu, Cantarell, sans-serif;
  --regular: 400;
  --medium: 500;
  --bold: 700;
  --space-unit: 1rem;
  --space-xxs: calc(0.25 * var(--space-unit));
  --space-xs: calc(0.5 * var(--space-unit));
  --space-sm: calc(0.75 * var(--space-unit));
  --space-md: calc(1.25 * var(--space-unit));
  --space-lg: calc(2 * var(--space-unit));
  --space-xl: calc(3.25 * var(--space-unit));
  --space-xxl: calc(5.25 * var(--space-unit));
  --space-xxxl: calc(8.5 * var(--space-unit));
  --fluid-space-32-64: clamp(2rem, 1.0909rem + 3.8788vw, 4rem);
  --fluid-space-64-200: clamp(4rem, 1.4815rem + 12.5926vw, 12.5rem);
  --fluid-space-48-112: clamp(3rem, 2.1351rem + 4.3243vw, 7rem);
}

/* Fluid font size variables, for browsers that support clamp */
@supports (font-size: clamp(1rem, 1vw, 1rem)) {
  :root {
    --font-size-sm: clamp(0.8rem, 0.7704rem + 0.1481vw, 0.9rem);
    --font-size-base: clamp(1rem, 0.9615rem + 0.1926vw, 1.13rem);
    --font-size-md: clamp(1.2rem, 1.1111rem + 0.4444vw, 1.5rem);
    --font-size-lg: clamp(1.4rem, 1.2222rem + 0.8889vw, 2rem);
    --font-size-xl: clamp(1.6rem, 1.3333rem + 1.3333vw, 2.5rem);
    --font-size-xxl: clamp(1.8rem, 1.4444rem + 1.7778vw, 3rem);
    --font-size-xxxl: clamp(2rem, 1.5556rem + 2.2222vw, 3.5rem);
  }
}
/* Fallback variables for browsers that don't support clamp */
@supports not (font-size: clamp(1rem, 1vw, 1rem)) {
  :root {
    --font-size-sm: 0.8rem;
    --font-size-base: 1rem;
    --font-size-md: 1.25rem;
    --font-size-lg: 1.56rem;
    --font-size-xl: 1.95rem;
    --font-size-xxl: 2.44rem;
    --font-size-xxxl: 3.05rem;
  }
  @media screen and (min-width: 1408px) {
    :root {
      --font-size-sm: 0.9rem;
      --font-size-base: 1.13rem;
      --font-size-md: 1.41rem;
      --font-size-lg: 1.76rem;
      --font-size-xl: 2.2rem;
      --font-size-xxl: 2.75rem;
      --font-size-xxxl: 3.43rem;
    }
  }
}
/* -------------------------------
customtheme.scss 
you can also use Bulma helper classes rather than define redundant classes here.

---------------------------------- */
html {
  box-sizing: border-box;
  height: 100%;
  scroll-behavior: smooth;
}
@media screen and (max-width: 1023px) {
  html {
    margin-top: 0 !important;
  }
}

body {
  min-height: 100%;
  position: relative;
  display: flex;
  flex-direction: column;
  font-size: var(--font-size-base);
  font-weight: var(--regular);
  font-variation-settings: "wght" var(--regular);
}

@media screen and (max-width: 1023px) {
  #wpadminbar {
    display: none;
  }
}

#page {
  position: relative;
  flex: 1 0 auto;
}

main#primary {
  margin-top: 50px;
}
@media screen and (min-width: 1024px) {
  main#primary {
    margin-top: 66px;
  }
}

.site-main img {
  border-radius: 0;
}

/*--------------------------------------------------------------
# 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; /* Many screen reader and browser combinations announce broken words as they would appear visually. */
}

.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: 14px;
  font-size: 0.875rem;
  font-weight: bold;
  height: auto;
  left: 5px;
  line-height: normal;
  padding: 15px 23px 14px;
  text-decoration: none;
  top: 5px;
  width: auto;
  z-index: 100000;
  /* Above WP toolbar. */
}

/* Do not show the outline on the skip link target. */
#content[tabindex="-1"]:focus {
  outline: 0;
}

/*--------------------------------------------------------------
# Alignments
--------------------------------------------------------------*/
.alignleft {
  display: inline;
  float: left;
  margin-right: 1.5em;
}

.alignright {
  display: inline;
  float: right;
  margin-left: 1.5em;
}

.aligncenter {
  clear: both;
  display: block;
  margin-left: auto;
  margin-right: auto;
}

/*--------------------------------------------------------------
# Clearings
--------------------------------------------------------------*/
.clear:before,
.clear:after,
.entry-content:before,
.entry-content:after,
.comment-content:before,
.comment-content:after,
.site-header:before,
.site-header:after,
.site-content:before,
.site-content:after,
.site-footer:before,
.site-footer:after {
  content: "";
  display: table;
  table-layout: fixed;
}

.clear:after,
.entry-content:after,
.comment-content:after,
.site-header:after,
.site-content:after,
.site-footer:after {
  clear: both;
}

/*--------------------------------------------------------------
# Widgets
--------------------------------------------------------------*/
.widget {
  margin: 0 0 1.5em;
  /* Make sure select elements fit in widgets. */
}

.widget select {
  max-width: 100%;
}

/*--------------------------------------------------------------
# Content
--------------------------------------------------------------*/
/*--------------------------------------------------------------
## Posts and pages
--------------------------------------------------------------*/
.sticky {
  display: block;
}

.hentry {
  margin: 0 0 1.5rem;
}

.updated:not(.published) {
  display: none;
}

.page-content,
.entry-content {
  margin: 1.5rem 0 0;
}

.entry-summary {
  margin: 8px 0 0;
}

.page-links {
  clear: both;
  margin: 0 0 1.5em;
}

/*--------------------------------------------------------------
## Comments
--------------------------------------------------------------*/
.comment-content a {
  word-wrap: break-word;
}

.bypostauthor {
  display: block;
}

/*--------------------------------------------------------------
# Infinite scroll
--------------------------------------------------------------*/
/* Globally hidden elements when Infinite Scroll is supported and in use. */
.infinite-scroll .posts-navigation,
.infinite-scroll.neverending .site-footer {
  /* Theme Footer (when set to scrolling) */
  display: none;
}

/* When Infinite Scroll has reached its end we need to re-display elements that were hidden (via .neverending) before. */
.infinity-end.neverending .site-footer {
  display: block;
}

/*--------------------------------------------------------------
# Media
--------------------------------------------------------------*/
.page-content .wp-smiley,
.entry-content .wp-smiley,
.comment-content .wp-smiley {
  border: none;
  margin-bottom: 0;
  margin-top: 0;
  padding: 0;
}

/* Make sure embeds and iframes fit their containers. */
embed,
iframe,
object {
  max-width: 100%;
}

/* Make sure logo link wraps around logo image. */
/*--------------------------------------------------------------
## Captions
--------------------------------------------------------------*/
.wp-caption {
  margin-bottom: 1.5em;
  max-width: 100%;
}

.wp-caption img[class*=wp-image-] {
  display: block;
  margin-left: auto;
  margin-right: auto;
}

.wp-caption .wp-caption-text {
  margin: 0.8075em 0;
}

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

/* ============================
Animations 
=============================== */
@keyframes fadeIn {
  from {
    opacity: 0;
  }
  to {
    opacity: 1;
  }
}
.fade-in {
  animation-name: fadeIn;
  animation-duration: 1000ms;
  transition-timing-function: ease-in;
  animation-fill-mode: both;
}

.slider-fade-in {
  animation-name: fadeIn;
  animation-duration: 2000ms;
  transition-timing-function: ease-in;
  animation-fill-mode: both;
}

/* typography.scss */
html {
  scroll-behavior: smooth;
}

body {
  color: var(--black);
  font-family: var(--bodycopy);
  background-color: var(--white);
  font-weight: var(--regular);
  line-height: 1.4;
}

p,
li,
.h1, .h2, .h3, .h4,
h1, h2, h3, h4 {
  overflow-wrap: break-word;
}

/* ==============================
type, use Bulma helper classes instead of older Partisan helpers
================================= */
.bodycopy,
.has-bodycopy-font-family {
  font-family: var(--bodycopy);
}

.headline,
.has-headline-font-family {
  font-family: var(--headline);
}

p {
  margin: 0 0 var(--space-sm);
  padding: 0;
}

label,
.label {
  color: var(--navy);
  font-weight: var(--medium);
  font-variation-settings: "wght" var(--medium);
  font-size: var(--font-size-sm);
}

legend {
  color: var(--navy);
  font-weight: var(--medium);
  font-variation-settings: "wght" var(--medium);
  font-size: var(--font-size-base);
}

ol,
ul {
  margin: 0;
  padding: 0;
}

ol {
  margin-left: var(--space-lg);
}
ol li {
  list-style-type: decimal;
}

ul.sublist {
  margin: 16px 0 !important;
}

.entry-content ul > li,
.resource-entry-content ul > li,
ul.disc > li,
ul.sublist > li,
ul.wp-block-list > li {
  list-style-type: disc;
  margin-left: var(--space-lg);
}

ul > li {
  list-style-type: none;
  margin-bottom: var(--space-sm);
}

blockquote,
cite,
em,
i {
  font-style: italic;
}

blockquote {
  margin: var(--space-md);
}

blockquote::before {
  content: "“";
  display: block;
  font-size: var(--font-size-md);
  height: 0;
  left: -20px;
  position: relative;
  top: -10px;
}

p.error-text,
div.error-text {
  padding: var(--space-xs) var(--space-unit);
  margin: var(--space-sm) 0;
  background-color: red;
  color: var(--white) !important;
  font-size: var(--font-size-sm);
}

.bodycopy,
.has-bodycopy-font-family {
  font-family: var(--bodycopy);
  font-optical-sizing: auto;
}

.headline,
.has-headline-font-family {
  font-family: var(--headline);
}

.regular-text {
  font-weight: var(--regular);
  font-variation-settings: "wght" var(--regular);
}

.medium-text {
  font-weight: var(--medium);
  font-variation-settings: "wght" var(--medium);
}

.bold-text,
b,
strong {
  font-weight: var(--bold);
  font-variation-settings: "wght" var(--bold);
  color: inherit;
}

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

.is-uppercase {
  text-transform: uppercase;
}

/* ## Headings */
h1,
h2,
h3,
h4,
h5,
h6 {
  margin-bottom: var(--space-sm);
  font-family: var(--headline);
  font-weight: var(--bold);
  font-variation-settings: "wght" var(--bold);
  line-height: 1.2;
  color: var(--navy);
  text-transform: none;
}
h1.no-bottom,
h2.no-bottom,
h3.no-bottom,
h4.no-bottom,
h5.no-bottom,
h6.no-bottom {
  margin-bottom: 0 !important;
}
h1.no-border,
h2.no-border,
h3.no-border,
h4.no-border,
h5.no-border,
h6.no-border {
  border: none !important;
  padding-left: 0;
}

h1 {
  font-size: var(--font-size-xxxl);
}

.font-size-xxxl {
  font-size: var(--font-size-xxxl) !important;
}

h2 {
  font-size: var(--font-size-xl);
}

.font-size-xxl {
  font-size: var(--font-size-xxl) !important;
}

.font-size-xl {
  font-size: var(--font-size-xl) !important;
}

h3 {
  font-size: var(--font-size-lg);
}

.font-size-lg {
  font-size: var(--font-size-lg) !important;
}

h4 {
  font-size: var(--font-size-md);
}

.font-size-md {
  font-size: var(--font-size-md) !important;
}

h5 {
  font-size: var(--font-size-base);
}

h6 {
  font-size: var(--font-size-base) !important;
}

.font-size-base {
  font-size: var(--font-size-base) !important;
}

.font-size-sm {
  font-size: var(--font-size-sm) !important;
}

.site-footer {
  position: relative;
  padding: var(--fluid-space-64-200) 1rem var(--fluid-space-32-64) 1rem;
  font-size: var(--font-size-base);
  color: var(--white);
  background: linear-gradient(121deg, #000F18 55%, #002A42 86.02%);
}

.footer__overlay {
  position: absolute;
  top: 0;
  right: 0;
  bottom: 0;
  left: 0;
  min-height: 100%;
  background: url(assets/img/wavy-footer-lines.svg) center center/cover no-repeat;
  opacity: 0.1;
  z-index: 2;
}

a.back-to-top-button {
  opacity: 1;
  z-index: 2;
  display: flex;
  align-items: center;
  justify-content: center;
  bottom: 40px;
  right: 5px;
  position: fixed;
  width: 48px;
  height: 48px;
  color: transparent;
  border-bottom: none;
  background-color: transparent;
  cursor: pointer;
}
body.fixed-header a.back-to-top-button {
  opacity: 1;
  z-index: 12;
}
@media screen and (min-width: 1024px) {
  a.back-to-top-button {
    width: 40px;
    height: 40px;
    bottom: 50px;
    right: 10px;
  }
}
a.back-to-top-button svg {
  width: auto;
  height: 100%;
  transform: translateY(0);
  transition: all 0.3s ease;
}
a.back-to-top-button:hover svg, a.back-to-top-button:focus svg {
  transform: translateY(-2px);
}

.footer__inner-container {
  position: relative;
  z-index: 3;
}
.footer__inner-container a {
  display: inline-block;
  font-family: var(--bodycopy);
  font-weight: var(--regular);
  font-size: var(--font-size-base);
  line-height: 1.2;
  font-variation-settings: "wght" var(--regular);
  color: var(--cadet);
  border-bottom: 1px solid transparent;
  text-decoration: none;
  transform: translateY(0);
}
.footer__inner-container a:hover, .footer__inner-container a:focus {
  color: var(--cadet);
  transform: translateY(-2px);
}

.footer__logo {
  display: block;
  width: 100%;
  height: 100%;
  max-width: min(50vw, 400px);
  margin: 0 auto 2rem;
}

.footer__columns {
  display: flex;
  flex-wrap: wrap;
  justify-content: space-between;
  gap: 1rem;
}
@media screen and (min-width: 769px), print {
  .footer__columns {
    gap: 2rem;
  }
}
@media screen and (min-width: 1024px) {
  .footer__columns {
    flex-wrap: nowrap;
    justify-content: center;
  }
}

.footer-column {
  flex: 1 1 100%;
}
@media screen and (min-width: 769px), print {
  .footer-column {
    flex: 1 1 48%;
  }
}
@media screen and (min-width: 1024px) {
  .footer-column {
    flex: 1 1 32%;
    max-width: 368px;
  }
}

.footer__headline {
  font-family: var(--headline);
  font-weight: var(--regular);
  font-size: var(--font-size-md);
  margin-bottom: 2rem;
}

a.sm__icon-link {
  display: block;
  max-width: 2rem;
  transform: translateY(0);
}
a.sm__icon-link:hover, a.sm__icon-link:focus {
  transform: translateY(-2px);
}

#footer-menu-privacy {
  display: flex;
  flex-wrap: nowrap;
  justify-content: flex-start;
  margin: 2rem auto 1rem;
}
@media screen and (min-width: 1024px) {
  #footer-menu-privacy {
    justify-content: center;
  }
}
#footer-menu-privacy li {
  padding: 0 1rem;
  border-right: 3px solid var(--pale-blue);
}
#footer-menu-privacy li:last-child {
  border-right: none;
}
#footer-menu-privacy li:first-child {
  padding-left: 0;
}
@media screen and (min-width: 1024px) {
  #footer-menu-privacy li:first-child {
    padding-left: 1rem;
  }
}
#footer-menu-privacy a {
  font-weight: var(--medium);
  font-variation-settings: "wght" var(--medium);
}

.footer__copyright,
.footer__sponsorship-text {
  text-align: left;
}
@media screen and (min-width: 1024px) {
  .footer__copyright,
  .footer__sponsorship-text {
    text-align: center;
  }
}

a.custom-logo-link {
  display: block;
  border-bottom: none;
}
a.custom-logo-link img {
  display: block;
  max-width: 240px;
  height: auto;
}

.site-header {
  position: absolute;
  top: 0;
  left: 0;
  display: block;
  padding: 0.5rem 0;
  width: 100%;
  max-width: 100%;
  z-index: 10;
  background-color: var(--navy);
  box-shadow: 0 2px 12px rgba(0, 0, 0, 0.13);
  transition: all 0.3s ease;
}
@media screen and (max-width: 1023px) {
  .site-header {
    position: fixed;
    top: 0;
    background-color: var(--navy);
  }
}
@media screen and (min-width: 1024px) {
  .site-header {
    padding: 1rem 0;
  }
  body.banner-active .site-header {
    background-color: rgba(0, 66, 104, 0.65);
  }
}
@media screen and (min-width: 1024px) {
  body.fixed-header .site-header {
    position: fixed;
    top: 0;
    padding: 0.5rem 0;
    background-color: rgba(0, 66, 104, 0.8);
    animation: fadeIn;
    animation-duration: 0.4s;
    animation-timing-function: ease-in;
  }
  body.fixed-header .site-header a.custom-logo-link {
    max-width: 180px;
  }
}
@media screen and (min-width: 1024px) {
  body.admin-bar.fixed-header .site-header {
    top: 32px;
  }
}

/* ==========================================
	Navigation - 
============================================= */
.main-navigation {
  width: 100%;
  display: flex;
  flex-direction: row;
  justify-content: space-between;
  align-items: center;
}

.site-navigation__flex-container {
  width: 100%;
  align-items: center;
  flex-wrap: nowrap;
  justify-content: space-between;
}

.primary-menu-wrapper {
  display: flex;
  flex-wrap: nowrap;
  background-color: transparent;
}
@media screen and (max-width: 1023px) {
  .primary-menu-wrapper {
    position: fixed;
    top: 50px;
    left: 100%;
    flex-direction: column;
    width: 100vw;
    background-color: var(--pale-blue);
    height: calc(100vh - 50px);
    padding: 12vw;
    font-size: var(--font-size-base);
    font-family: var(--headline);
    opacity: 0;
    transition: all 0.5s ease;
    overflow: hidden;
    overflow-y: auto;
    visibility: hidden;
    z-index: 11;
  }
}
.primary-menu-wrapper.open {
  left: 0;
  opacity: 1;
  visibility: visible;
  z-index: 10;
  box-shadow: 0 2px 12px rgba(0, 0, 0, 0.13);
}

.mobile-menu__contact-social-search {
  font-family: var(--bodycopy);
  color: var(--black);
}

.mm-search {
  margin: 3rem 0 0;
}
.mm-search .search-form {
  display: flex;
  align-items: flex-start;
  gap: 0.5rem;
}
.mm-search .search-submit {
  font-size: 0;
  padding: 0;
  height: 2.25rem;
  width: 3rem;
  background: var(--navy) url(assets/img/search-icon-white.svg) center center/auto 24px no-repeat;
}
.mm-search .search-submit:hover, .mm-search .search-submit:focus {
  background-color: var(--blue);
}

.mm-section-divider {
  width: 100%;
  height: 1px;
  margin: 3rem 0;
  background-color: var(--boy-blue);
}

.mm__social-media a.sm__icon-link {
  display: block;
  width: 32px;
  height: 32px;
  padding: 0;
  margin: 0;
}
.mm__social-media a.sm__icon-link img {
  display: block;
  width: auto;
  height: 100%;
}

/* hamburger menu and animation */
.primary-menu-trigger,
.mobile-nav-trigger {
  font-size: 0;
}

/* hamburger menu and animation */
.primary-menu-trigger {
  display: none;
}
@media screen and (max-width: 1023px) {
  .primary-menu-trigger {
    display: block;
    min-width: 40px;
    height: 20px;
    position: relative;
    margin: 0;
    padding: 0;
    border: none;
    background-color: transparent;
    transform: rotate(0deg);
    transition: 0.3s ease-in-out;
    cursor: pointer;
  }
}

.primary-menu-trigger span {
  display: block;
  position: absolute;
  height: 3px;
  width: 100%;
  background: var(--pale-blue);
  border-radius: 0px;
  opacity: 1;
  left: 0;
  transform: rotate(0deg);
  transition: 0.25s ease-in-out;
}

.primary-menu-trigger span:nth-child(1) {
  top: 0px;
}

.primary-menu-trigger span:nth-child(2),
.primary-menu-trigger span:nth-child(3) {
  top: 8px;
}

.primary-menu-trigger span:nth-child(4) {
  top: 16px;
}

.primary-menu-trigger.open span:nth-child(1) {
  top: 0px;
  width: 0%;
  left: 50%;
}

.primary-menu-trigger.open span:nth-child(2) {
  transform: rotate(45deg);
}

.primary-menu-trigger.open span:nth-child(3) {
  transform: rotate(-45deg);
}

.primary-menu-trigger.open span:nth-child(4) {
  top: 0px;
  width: 0%;
  left: 50%;
}

/* ================================================================
	desktop navigation styles
================================================================ */
@media screen and (min-width: 1024px) {
  ul#primary-menu {
    display: flex;
    justify-content: center;
    align-items: center;
    list-style: none;
    line-height: 1;
    margin: 0;
    background-color: transparent;
    padding: 0;
    font-family: var(--headline);
    font-size: var(--font-size-base);
    gap: 1rem;
  }
  ul#primary-menu ul {
    float: left;
    position: absolute;
    left: -999em;
    z-index: 99999;
    background-color: transparent;
    padding: 1rem 0 0;
    border-radius: 0 0 12px 12px;
  }
  ul#primary-menu ul li {
    padding: 0 1rem 1rem;
    margin-bottom: 0;
    line-height: 1;
    background-color: var(--dk-gray);
    transition: all 0.3s ease;
  }
  ul#primary-menu ul li:first-child {
    padding-top: 1rem;
  }
  ul#primary-menu ul a {
    width: auto;
    font-weight: var(--regular);
    font-size: var(--font-size-sm);
    text-transform: none;
    color: var(--white);
    border-bottom: 1px solid transparent;
  }
  ul#primary-menu ul:hover > a,
  ul#primary-menu ul .focus > a {
    border-color: var(--white);
  }
  ul#primary-menu ul a:hover,
  ul#primary-menu ul a.focus {
    color: var(--bone);
    border-color: var(--bone);
  }
  ul#primary-menu li:hover > ul,
  ul#primary-menu li.focus > ul {
    left: auto;
  }
}
ul#primary-menu li {
  display: block;
  margin-bottom: 1rem;
}
ul#primary-menu li:last-child {
  margin-bottom: 0;
}
@media screen and (min-width: 1024px) {
  ul#primary-menu li {
    margin-bottom: 0;
  }
}
ul#primary-menu a {
  position: relative;
  display: inline-block;
  text-decoration: none;
  color: var(--white);
  font-weight: var(--regular);
  font-variation-settings: "wght" var(--regular);
  border-bottom: none;
  padding-bottom: 4px;
}
@media screen and (min-width: 1024px) {
  ul#primary-menu a {
    color: var(--white);
  }
  ul#primary-menu a:after {
    content: "";
    position: absolute;
    bottom: 0;
    left: 0;
    width: 0;
    height: 2px;
    background: var(--pale-blue);
    z-index: 11;
    transition: all 0.3s ease;
  }
  ul#primary-menu a:hover:after, ul#primary-menu a:focus:after {
    width: 100%;
  }
  ul#primary-menu a:hover, ul#primary-menu a:focus {
    color: var(--pale-blue);
  }
}

/* ================================================================
	mobile navigation styles and overrides
================================================================ */
@media screen and (max-width: 1023px) {
  ul#primary-menu a {
    font-weight: var(--regular);
    font-size: var(--font-size-lg);
    color: var(--navy);
  }
  ul#primary-menu a:hover, ul#primary-menu a:focus {
    color: var(--blue);
  }
  ul#primary-menu ul {
    padding: 0.5rem 0 0.5rem 1rem;
  }
  ul#primary-menu ul li {
    margin-bottom: 0.5rem;
  }
}

/*  layout primatives */
.readable-width {
  max-width: var(--readable-width);
}

.container {
  width: 100%;
  padding-left: 1rem;
  padding-right: 1rem;
  margin: auto;
  max-width: var(--wp--custom--layout--content);
}
.container.wide {
  max-width: var(--wp--custom--layout--wide);
}
.container.narrow {
  max-width: var(--wp--custom--layout--narrow);
}

.site-section-padding {
  padding: var(--fluid-space-48-112) 0;
}
.site-section-padding.top-only {
  padding-bottom: 0;
}
.site-section-padding.bottom-only {
  padding-top: 0;
}

.flex-container {
  display: flex;
  flex-direction: row;
  justify-content: center;
  align-items: center;
  flex-wrap: wrap;
}
.flex-container.top {
  align-items: flex-start;
}
.flex-container.bottom {
  align-items: flex-end;
}
.flex-container.left {
  justify-content: flex-start;
}
.flex-container.right {
  justify-content: flex-end;
}
.flex-container.space-between {
  justify-content: space-between;
}
.flex-container.nowrap {
  flex-wrap: nowrap;
}
.flex-container.wrap {
  flex-wrap: wrap;
}
.flex-container.stretch {
  align-items: stretch;
}
.flex-container.space-even {
  justify-content: space-evenly;
}
.flex-container.flex-end {
  justify-content: flex-end;
}
.flex-container.gap-1 {
  gap: 1rem;
}
.flex-container.gap-2 {
  gap: 2rem;
}
.flex-container.gap-half {
  gap: 0.5rem;
}
.flex-container.two-equal-columns {
  flex-wrap: wrap;
}
@media screen and (min-width: 769px), print {
  .flex-container.two-equal-columns {
    flex-wrap: nowrap;
  }
}
.flex-container.two-equal-columns > * {
  flex-basis: 100%;
  gap: 1rem;
}
@media screen and (min-width: 769px), print {
  .flex-container.two-equal-columns > * {
    flex-basis: calc(50% - 1rem);
    gap: 2rem;
  }
}

.with-sidebar {
  display: flex;
  flex-wrap: wrap;
  justify-content: space-between;
  gap: 1rem;
}
@media screen and (min-width: 769px), print {
  .with-sidebar {
    flex-wrap: nowrap;
    gap: 2rem;
  }
}
@media screen and (min-width: 1024px) {
  .with-sidebar {
    gap: 3rem;
  }
}

.sidebar {
  flex-basis: 100%;
}
@media screen and (min-width: 769px), print {
  .sidebar {
    flex-basis: 25%;
  }
}

.not-sidebar {
  flex-basis: 100%;
}
@media screen and (min-width: 769px), print {
  .not-sidebar {
    flex-basis: 75%;
  }
}

.switcher {
  display: flex;
  flex-wrap: wrap;
  gap: var(--s1);
}

.switcher > * {
  flex-grow: 1;
  flex-basis: calc((30rem - 100%) * 999);
}

.switcher > :nth-last-child(n+4),
.switcher > :nth-last-child(n+4) ~ * {
  flex-basis: 100%;
}

/* Stack, for text-heavy pages, like the single.php */
.stack {
  display: flex;
  flex-direction: column;
  justify-content: flex-start;
}

.stack > * {
  margin-block: 0;
}

.stack > * + * {
  margin-block-start: var(--space, 1.5rem);
}

/* _utilities.scss */
.is-relative {
  position: relative;
}

.is-block {
  display: block;
}

.sr-only {
  position: absolute;
  width: 1px;
  height: 1px;
  padding: 0;
  margin: -1px;
  overflow: hidden;
  clip: rect(0, 0, 0, 0);
  border: 0;
}

@media screen and (min-width: 500px) {
  .hidden-mobile {
    display: none;
  }
}

@media screen and (max-width: 1023px) {
  .hidden-touch {
    display: none;
  }
}

@media screen and (min-width: 1024px) {
  .hidden-desktop {
    display: none;
  }
}

.hidden {
  display: none !important;
  visibility: hidden;
}

.visuallyhidden {
  border: 0;
  clip: rect(0 0 0 0);
  height: 1px;
  margin: -1px;
  overflow: hidden;
  padding: 0;
  position: absolute;
  width: 1px;
}

.visuallyhidden.focusable:active,
.visuallyhidden.focusable:focus {
  clip: auto;
  height: auto;
  margin: 0;
  overflow: visible;
  position: static;
  width: auto;
}

/* ======================
typography
========================= */
.has-color-white {
  color: #ffffff;
}

.has-color-black {
  color: #222222;
}

/* ======================
spacing and layout 
========================= */
.mall-auto {
  margin: auto;
}

.mb-0 {
  margin-bottom: 0 !important;
}

.mx-base {
  margin-left: var(--space-unit);
  margin-right: var(--space-unit);
}

.mb-xxs {
  margin-bottom: var(--space-xxs);
}

.mb-xs {
  margin-bottom: var(--space-xs);
}

.mb-sm {
  margin-bottom: var(--space-sm);
}

.mb-base {
  margin-bottom: var(--space-unit);
}

.mb-md {
  margin-bottom: var(--space-md);
}

.mb-lg {
  margin-bottom: var(--space-lg);
}

.mb-xl {
  margin-bottom: var(--space-xl);
}

.mb-xxl {
  margin-bottom: var(--space-xxl);
}

.mb-xxxl {
  margin-bottom: var(--space-xxxl);
}

.mt-0 {
  margin-top: 0 !important;
}

.px-base {
  padding-right: var(--space-unit);
  padding-left: var(--space-unit);
}

.py-base {
  padding-top: var(--space-unit);
  padding-bottom: var(--space-unit);
}

.pt-base {
  padding-top: var(--space-unit);
}

.pt-lg {
  padding-top: var(--space-lg);
}

input[type=text],
textarea,
input[type=search],
input[type=email],
input[type=tel],
input[type=url],
select {
  font-family: var(--bodycopy);
  font-weight: var(--regular);
  font-size: 1rem;
  line-height: 1rem;
  color: var(--dk-gray);
  padding: 0.33rem 1rem;
  background-color: var(--white);
  border-radius: 6px;
  border: 1px solid var(--dk-gray);
  transition: all 0.3s ease;
}
input[type=text]:focus,
textarea:focus,
input[type=search]:focus,
input[type=email]:focus,
input[type=tel]:focus,
input[type=url]:focus,
select:focus {
  border: 1px solid var(--black);
  outline: none;
  color: var(--black);
}

.whatever {
  width: max(100%, 300px);
}

/* gravity forms */
.gform_confirmation_message {
  background-color: var(--pale-blue);
  padding: 2rem;
  font-size: var(--font-size-md);
  border-radius: 8px;
}

a {
  transition: all 0.3s ease;
}

a {
  position: relative;
  color: var(--navy);
  font-weight: var(--bold);
  font-variation-settings: "wght" var(--bold);
  text-decoration: none;
  border-bottom: 1px solid var(--navy);
  transition: all 0.3s ease;
}
a:hover, a:focus {
  color: var(--blue);
  text-decoration: none;
  border-color: transparent;
}
a:focus {
  outline: 1px dotted var(--navy);
}
a:active {
  text-decoration: none;
  color: var(--dk-gray);
}
a.no-bottom-border {
  border-bottom: none !important;
}

a.button,
a.btn,
.site-main .button,
input[type=submit],
.site-main a.wp-element-button {
  display: inline-block;
  height: auto;
  line-height: 1;
  padding: 0.5rem 1rem 0.5rem;
  font-family: var(--bodycopy);
  font-size: var(--font-size-base);
  font-weight: var(--medium);
  font-variation-settings: "wght" var(--medium);
  color: var(--white);
  background-color: var(--black);
  text-align: center;
  text-decoration: none;
  border-radius: 6px;
  border: 1px solid var(--black);
  cursor: pointer;
  transition: all 0.3s ease;
}
a.button:hover, a.button:focus,
a.btn:hover,
a.btn:focus,
.site-main .button:hover,
.site-main .button:focus,
input[type=submit]:hover,
input[type=submit]:focus,
.site-main a.wp-element-button:hover,
.site-main a.wp-element-button:focus {
  background-color: var(--gray);
  color: var(--black);
  text-decoration: none;
  box-shadow: 0 2px 12px rgba(0, 0, 0, 0.13);
}
@media screen and (min-width: 769px), print {
  a.button,
  a.btn,
  .site-main .button,
  input[type=submit],
  .site-main a.wp-element-button {
    padding: 0.5rem 1.5rem 0.5rem;
  }
}
a.button.lg-btn,
a.btn.lg-btn,
.site-main .button.lg-btn,
input[type=submit].lg-btn,
.site-main a.wp-element-button.lg-btn {
  padding: 1rem 2rem;
  font-size: var(--font-size-md);
}
a.button.blue-btn,
a.btn.blue-btn,
.site-main .button.blue-btn,
input[type=submit].blue-btn,
.site-main a.wp-element-button.blue-btn {
  background-color: var(--boy-blue);
}
a.button.blue-btn:hover, a.button.blue-btn:focus,
a.btn.blue-btn:hover,
a.btn.blue-btn:focus,
.site-main .button.blue-btn:hover,
.site-main .button.blue-btn:focus,
input[type=submit].blue-btn:hover,
input[type=submit].blue-btn:focus,
.site-main a.wp-element-button.blue-btn:hover,
.site-main a.wp-element-button.blue-btn:focus {
  background-color: var(--blue);
  color: var(--white);
}
a.button.lt-btn,
a.btn.lt-btn,
.site-main .button.lt-btn,
input[type=submit].lt-btn,
.site-main a.wp-element-button.lt-btn {
  background-color: var(--lt-color);
  color: var(--dk-color);
}
a.button.lt-btn:hover, a.button.lt-btn:focus,
a.btn.lt-btn:hover,
a.btn.lt-btn:focus,
.site-main .button.lt-btn:hover,
.site-main .button.lt-btn:focus,
input[type=submit].lt-btn:hover,
input[type=submit].lt-btn:focus,
.site-main a.wp-element-button.lt-btn:hover,
.site-main a.wp-element-button.lt-btn:focus {
  background-color: var(--dk-color);
  color: var(--lt-color);
}
a.button.dk-btn,
a.btn.dk-btn,
.site-main .button.dk-btn,
input[type=submit].dk-btn,
.site-main a.wp-element-button.dk-btn {
  background-color: var(--dk-color);
  color: var(--lt-color);
}
a.button.dk-btn:hover, a.button.dk-btn:focus,
a.btn.dk-btn:hover,
a.btn.dk-btn:focus,
.site-main .button.dk-btn:hover,
.site-main .button.dk-btn:focus,
input[type=submit].dk-btn:hover,
input[type=submit].dk-btn:focus,
.site-main a.wp-element-button.dk-btn:hover,
.site-main a.wp-element-button.dk-btn:focus {
  background-color: var(--lt-color);
  color: var(--dk-color);
}
a.button.dk-btn,
a.btn.dk-btn,
.site-main .button.dk-btn,
input[type=submit].dk-btn,
.site-main a.wp-element-button.dk-btn {
  background-color: var(--dk-color);
  color: var(--lt-color);
}
a.button.dk-btn:hover, a.button.dk-btn:focus,
a.btn.dk-btn:hover,
a.btn.dk-btn:focus,
.site-main .button.dk-btn:hover,
.site-main .button.dk-btn:focus,
input[type=submit].dk-btn:hover,
input[type=submit].dk-btn:focus,
.site-main a.wp-element-button.dk-btn:hover,
.site-main a.wp-element-button.dk-btn:focus {
  background-color: var(--lt-color);
  color: var(--dk-color);
}
a.button.accent-btn,
a.btn.accent-btn,
.site-main .button.accent-btn,
input[type=submit].accent-btn,
.site-main a.wp-element-button.accent-btn {
  background-color: var(--accent-color);
  color: var(--white);
  border-color: var(--accent-color);
}
a.button.accent-btn:hover, a.button.accent-btn:focus,
a.btn.accent-btn:hover,
a.btn.accent-btn:focus,
.site-main .button.accent-btn:hover,
.site-main .button.accent-btn:focus,
input[type=submit].accent-btn:hover,
input[type=submit].accent-btn:focus,
.site-main a.wp-element-button.accent-btn:hover,
.site-main a.wp-element-button.accent-btn:focus {
  background-color: var(--white);
  color: var(--accent-color);
}

/* custom theme styles that don't fit into other files */
/* Default page styles */
.narrow-template__main p,
.narrow-template__main ul,
.narrow-template__main ol,
.entry-content p,
.entry-content ul,
.entry-content ol {
  max-width: var(--readable-width);
}

.combined-entry-header {
  gap: 1rem;
}
@media screen and (min-width: 769px), print {
  .combined-entry-header {
    flex-wrap: nowrap;
    gap: 2rem;
  }
  .combined-entry-header .title-and-subtitle {
    flex-basis: 84%;
  }
  .combined-entry-header .subheader {
    max-width: var(--readable-width);
  }
  .combined-entry-header .header-graphic {
    flex-basis: 16%;
    aspect-ratio: 168/194;
    background-size: contain;
    background-repeat: no-repeat;
  }
  .combined-entry-header .header-graphic.none {
    display: none;
  }
  .combined-entry-header .header-graphic.graphic-a {
    background-image: url(assets/img/pattern1-cadet.svg);
  }
  .combined-entry-header .header-graphic.graphic-b {
    background-image: url(assets/img/pattern2-royal.svg);
  }
  .combined-entry-header .header-graphic.graphic-c {
    background-image: url(assets/img/pattern3-deep-royal.svg);
  }
  .combined-entry-header .header-graphic-large {
    flex-basis: 100%;
  }
}

.page-divider,
hr.wp-block-separator {
  margin: 2rem auto 2rem 0;
  width: 100%;
  max-width: 792px;
  overflow: hidden;
  height: 10px;
  background: url(assets/img/page-divider.svg) left center/cover no-repeat;
  border: none !important;
}

.has-wavy-header-bkgr {
  background: url(assets/img/wavy-header-bkgr.svg) center center/cover no-repeat;
  margin-bottom: var(--fluid-space-32-64);
}
.has-wavy-header-bkgr h1.entry-title,
.has-wavy-header-bkgr p.subheader {
  color: var(--white);
}

/* category pills */
.category-pill {
  display: inline-block;
  padding: 0.25rem 1.25rem;
  border-radius: 20px;
  border: 1px solid var(--navy);
  color: var(--navy);
  font-size: var(--font-size-sm);
  font-weight: var(--medium);
  font-variation-settings: "wght" var(--medium);
  background-color: var(--pale-blue);
}
.resources-listing-section .category-pill {
  background-color: transparent;
}

.searchandfilter h4 {
  margin-bottom: 0;
  padding-bottom: 3px;
  font-family: var(--bodycopy);
}
.searchandfilter .search-filter-reset {
  border-bottom: none;
}
.searchandfilter select {
  border: 1px solid var(--navy);
  border-radius: 20px;
  padding: 0.25rem 1rem;
  background-color: transparent;
  font-size: var(--font-size-sm);
  font-weight: var(--medium);
  font-variation-settings: "wght" var(--medium);
  color: var(--navy);
}
.searchandfilter select option {
  color: var(--navy);
}

/* section headlines and on-page navigation */
.section-headline-block {
  margin: 2rem 0 0.5rem;
  scroll-margin-top: 5rem;
}
.section-headline-block h2 {
  font-size: var(--font-size-lg);
  font-weight: var(--bold);
  font-variation-settings: "wght" var(--bold);
  color: var(--navy);
}

.wp-block-heading {
  scroll-margin-top: 5rem;
}

/* banner */
.top-banner-wrap {
  position: relative;
}
@media screen and (min-width: 1800px) {
  .top-banner-wrap {
    aspect-ratio: unset;
    height: 700px;
  }
}

.banner__video-wrap {
  position: absolute;
  width: 100%;
  top: 0;
  left: 0;
  bottom: 0;
  overflow: hidden;
}

.banner__video {
  height: 100%;
  object-fit: cover;
  min-width: 100%;
}

.full-width-banner {
  position: relative;
  display: flex;
  width: 100%;
  margin: auto;
  background-repeat: no-repeat;
  background-size: cover;
  background-position: center center;
}
@media screen and (min-width: 1024px) {
  .full-width-banner {
    max-width: 2000px;
  }
}

.banner__overlay {
  position: absolute;
  top: 0;
  left: 0;
  width: 100%;
  height: 100%;
  background-color: rgba(1, 39, 61, 0.75);
  z-index: 1;
}

.banner__text-wrap-container {
  min-height: min(600px, 75vh);
  padding-top: 4rem;
  padding-bottom: 4rem;
}
@media screen and (min-width: 1024px) {
  .banner__text-wrap-container {
    min-height: 700px;
  }
}
@media screen and (min-width: 1800px) {
  .banner__text-wrap-container {
    padding-top: 0;
    padding-bottom: 0;
  }
}

.banner__text-wrap {
  position: relative;
  z-index: 2;
  display: flex;
  align-items: center;
  padding: 4rem 1rem;
  min-height: min(600px, 75vh);
}
@media screen and (min-width: 1024px) {
  .banner__text-wrap {
    padding: var(--fluid-space-32-64) 1rem;
    min-height: 700px;
  }
}
.banner__text-wrap .banner__text {
  max-width: var(--wp--custom--layout--narrow);
}
.banner__text-wrap .banner__text--bodycopy {
  max-width: 800px;
}
.banner__text-wrap .banner__text--headline {
  line-height: 1.2;
}
.banner__text-wrap .banner__text--headline,
.banner__text-wrap .banner__text--bodycopy {
  color: var(--white);
}

.top-banner-wrap.wrap-the-text .banner__overlay {
  display: none;
}
.top-banner-wrap.wrap-the-text .banner__text-wrap-container {
  display: flex;
  flex-direction: column;
  justify-content: center;
}
.top-banner-wrap.wrap-the-text .banner__text-wrap {
  padding: 2rem;
  margin-left: 0;
  min-height: unset !important;
  max-width: 783px;
  background: url(assets/img/wavy-box-background.jpg) center center/cover no-repeat;
  border-bottom: 22px solid var(--boy-blue);
  border-radius: 16px 16px 0 0;
}

.card {
  display: flex;
  flex-direction: column;
  border-radius: 8px;
  box-shadow: 0 2px 12px rgba(0, 0, 0, 0.13);
}
.card a {
  background-color: transparent;
}
.card .card__text-area {
  padding: 1.33rem 1rem;
  margin: 0;
  background-color: var(--white);
  border-radius: 0 0 8px 8px;
  display: flex;
  flex-direction: column;
  justify-content: space-between;
  width: 100%;
}
@media screen and (min-width: 1024px) {
  .card .card__text-area {
    min-height: 296px;
  }
}
@media screen and (min-width: 1200px) {
  .card .card__text-area {
    min-height: 280px;
  }
}
.card .card__title {
  display: block;
  font-size: var(--font-size-md);
  font-family: var(--headline);
  font-weight: var(--bold);
  line-height: 1.2;
  margin-bottom: 0.5rem;
  text-decoration: none;
}
.card .card__date {
  font-size: var(--font-size-base);
  margin-bottom: 0.5rem;
  color: var(--boy-blue);
}
.card .card__excerpt {
  font-size: var(--font-size-base);
  margin-bottom: 1rem;
}
.card .card__btn {
  display: inline-block;
  flex-basis: 0;
}

a.card__image-link {
  display: block;
  width: 100%;
  margin: 0;
  padding: 0;
  aspect-ratio: 1.6166/1;
  border: none;
  border-radius: 8px 8px 0 0;
}
a.card__image-link img {
  display: block;
  width: 100%;
  border-radius: 8px 8px 0 0;
}
.term-navy a.card__image-link {
  background-color: var(--navy);
}
.term-blue a.card__image-link {
  background-color: var(--blue);
}
.term-dk-green a.card__image-link {
  background-color: var(--dk-green);
}
.term-cadet a.card__image-link {
  background-color: var(--cadet);
}
.term-green a.card__image-link {
  background-color: var(--green);
}
.term-boy-blue a.card__image-link {
  background-color: var(--boy-blue);
}

button.header-search-trigger {
  display: none;
}
@media screen and (min-width: 1024px) {
  button.header-search-trigger {
    display: flex;
    align-items: center;
    flex-wrap: nowrap;
    margin-right: 0.5rem;
    border: none;
    padding: 0.15rem 0.5rem;
    background-color: transparent;
    z-index: 100;
    cursor: pointer;
    transition: all 0.3s ease;
  }
  button.header-search-trigger:hover, button.header-search-trigger:focus {
    background-color: transparent;
  }
  button.header-search-trigger svg {
    display: block;
    margin-left: 0.25rem;
    transform: translateY(0px);
  }
  button.header-search-trigger svg path {
    stroke: var(--white);
  }
}

.full-page-takeover {
  display: none;
  position: fixed;
  top: 0;
  left: 0;
  width: 100%;
  height: 100%;
  background-color: var(--bone);
  z-index: 999;
}

.search-container {
  display: flex;
  flex-direction: column;
  justify-content: center;
  align-items: center;
  height: 100%;
  max-width: 600px;
  margin: auto;
  padding: 1rem;
}

.close-btn {
  display: block;
  position: absolute;
  top: 1rem;
  right: 1rem;
  width: 48px;
  height: 48px;
  font-size: 0;
  border: none;
  background-color: transparent;
  cursor: pointer;
}
.close-btn svg {
  display: block;
  min-width: 100%;
  height: 100%;
}
.close-btn svg path {
  stroke: var(--black);
  transition: all 0.3s ease;
}
.close-btn:hover svg path, .close-btn:focus svg path, .close-btn:focus-visible svg path {
  stroke: var(--gray);
}
@media screen and (min-width: 769px), print {
  .close-btn {
    width: 72px;
    height: 72px;
    top: 2rem;
    right: 2rem;
  }
}

#fullPageTakeover input.search-field {
  padding: 0.5rem 0;
  margin-right: 1rem;
  background-color: transparent;
  border-radius: 0;
  border: 2px solid transparent;
  border-bottom: 2px solid var(--gray);
  color: var(--black);
  font-weight: var(--regular);
  font-size: var(--font-size-base);
}
@media screen and (min-width: 500px) {
  #fullPageTakeover input.search-field {
    width: 350px;
  }
}
#fullPageTakeover input.search-field ::placeholder {
  color: var(--gray);
}
#fullPageTakeover input.search-field:focus {
  border-bottom: 2px solid var(--black);
}
#fullPageTakeover input.search-field:focus::placeholder {
  color: var(--gray);
}

.search-flex {
  flex-wrap: wrap;
  gap: 0;
}
@media screen and (min-width: 769px), print {
  .search-flex {
    flex-wrap: nowrap;
    gap: 2rem;
  }
  .search-flex .search-header {
    flex-grow: 0;
    flex-basis: 45%;
  }
  .search-flex .search-entry-summary {
    flex-grow: 1;
    flex-basis: calc((30rem - 100%) * 999);
  }
}

/* Modal styles, general. particular modal styles, like team modals, are in teams.scss */
*,
*::after,
*::before {
  box-sizing: border-box;
}

.modal {
  position: fixed;
  top: 50%;
  left: 50%;
  transform: translate(-50%, -50%) scale(0);
  transition: 200ms ease-in-out;
  border-radius: 0;
  z-index: 10;
  background-color: white;
  width: 792px;
  max-width: 80vw;
  max-height: 80vh;
  overflow-y: auto;
}

.modal.active {
  transform: translate(-50%, -50%) scale(1);
}

.close-button {
  display: block;
  position: absolute;
  top: 0.1rem;
  right: 0.1rem;
  width: 3rem;
  height: 3rem;
  cursor: pointer;
  border: none;
  outline: none;
  background: none;
}
@media screen and (min-width: 769px), print {
  .close-button {
    top: 1rem;
    right: 1rem;
  }
}
.close-button svg {
  display: block;
  width: 100%;
  height: 100%;
}
.close-button svg circle, .close-button svg line {
  stroke: var(--blue);
  transition: all 0.3s ease;
}
.close-button:hover svg circle, .close-button:hover svg line, .close-button:focus svg circle, .close-button:focus svg line {
  stroke: var(--navy);
}

#overlay {
  position: fixed;
  opacity: 0;
  transition: 200ms ease-in-out;
  top: 0;
  left: 0;
  right: 0;
  bottom: 0;
  background-color: rgba(0, 27, 42, 0.8);
  pointer-events: none;
  z-index: 2;
}

#overlay.active {
  opacity: 1;
  pointer-events: all;
}

/* news page styles */
.single-featured-news-story {
  position: relative;
  border-bottom: 3px solid var(--lt-blue);
}
.single-featured-news-story:last-child {
  border-bottom: none;
}

.single-featured-news-story__flex {
  display: flex;
  flex-wrap: wrap;
  padding: var(--fluid-space-32-64) 1rem;
  gap: 1rem;
  max-width: 500px;
  margin: 0 auto;
}
@media screen and (min-width: 769px), print {
  .single-featured-news-story__flex {
    max-width: var(--wp--custom--layout--content);
    flex-wrap: nowrap;
  }
}

.single-featured-news-story__image {
  flex-basis: 100%;
}
@media screen and (min-width: 769px), print {
  .single-featured-news-story__image {
    flex-basis: 33%;
  }
}
@media screen and (min-width: 1024px) {
  .single-featured-news-story__image {
    flex-basis: 25%;
  }
}

.featured-news__image-link {
  position: relative;
  display: block;
  width: 100%;
  margin: 0;
  padding: 0;
  aspect-ratio: 1.6166/1;
  border: none;
  border-radius: 8px 8px 0 0;
  border-radius: 8px;
  border: 2px solid var(--white);
}
.featured-news__image-link img {
  display: block;
  width: 100%;
  border-radius: 8px 8px 0 0;
}
.term-navy .featured-news__image-link {
  background-color: var(--navy);
}
.term-blue .featured-news__image-link {
  background-color: var(--blue);
}
.term-dk-green .featured-news__image-link {
  background-color: var(--dk-green);
}
.term-cadet .featured-news__image-link {
  background-color: var(--cadet);
}
.term-green .featured-news__image-link {
  background-color: var(--green);
}
.term-boy-blue .featured-news__image-link {
  background-color: var(--boy-blue);
}
.featured-news__image-link:hover, .featured-news__image-link:focus {
  border-color: var(--blue);
}
.featured-news__image-link img {
  border-radius: 8px;
}
.featured-news__image-link .category-pill {
  position: absolute;
  top: 1rem;
  left: 1rem;
}

.single-featured-news-story__headline {
  flex-basis: 100%;
}
@media screen and (min-width: 769px), print {
  .single-featured-news-story__headline {
    flex-basis: 66%;
  }
}
@media screen and (min-width: 1024px) {
  .single-featured-news-story__headline {
    flex-basis: 75%;
  }
}
.single-featured-news-story__headline a {
  color: var(--white);
  border-bottom: none;
}
.single-featured-news-story__headline a:hover, .single-featured-news-story__headline a:focus {
  color: var(--boy-blue);
}

.single-featured-news-story__bottom-line {
  width: 100%;
  height: 3px;
  background-color: var(--lt-blue);
}

/* --------------------------------
nonfeatured news stories 
--------------------------------- */
.news-landing-search-filter .searchandfilter ul,
.news-landing-search-filter .searchandfilter ul li {
  display: flex;
  flex-wrap: nowrap;
  gap: 1rem;
  align-items: center;
}

.news-landing-page__non-featured-flex {
  display: grid;
  grid-template-columns: 1fr;
  gap: 1rem;
}
@media screen and (min-width: 769px), print {
  .news-landing-page__non-featured-flex {
    gap: 2rem;
  }
}
@media screen and (min-width: 1024px) {
  .news-landing-page__non-featured-flex {
    grid-template-columns: repeat(3, 1fr);
    gap: 2rem;
  }
}
.news-landing-page__non-featured-flex .card {
  max-width: 440px;
  margin: auto;
  background-color: var(--white);
}
@media screen and (min-width: 1024px) {
  .news-landing-page__non-featured-flex .card {
    height: 100%;
  }
}
.news-landing-page__non-featured-flex .card__image-link {
  position: relative;
  display: block;
}
.news-landing-page__non-featured-flex .category-pill {
  position: absolute;
  top: 1rem;
  left: 1rem;
  background-color: var(--navy);
  color: var(--white);
  border-color: var(--white);
}

/* --------------------------------
Single News story styles 
--------------------------------- */
body.single-news {
  background-color: var(--frost);
}

.single-news__news-label-link {
  display: block;
  color: var(--boy-blue);
  border-color: transparent;
  font-weight: var(--medium);
  font-variation-settings: "wght" var(--medium);
}
.single-news__news-label-link:hover, .single-news__news-label-link:focus {
  color: var(--navy);
}

.news-story-entry-content p,
.news-story-entry-content h2,
.news-story-entry-content h3,
.news-story-entry-content h4,
.news-story-entry-content h5,
.news-story-entry-content h6,
.news-story-entry-content ul,
.news-story-entry-content ol {
  max-width: 900px;
}

/* resources */
.resource-item {
  width: 100%;
  justify-content: space-between;
  border-left: 12px solid var(--navy);
  border-radius: 4px;
  padding: 1rem;
  margin-bottom: 2.25rem;
  gap: 0;
}
@media screen and (min-width: 769px), print {
  .resource-item {
    flex-wrap: nowrap;
    gap: 2rem;
  }
}
.resource-item.term-navy {
  border-left-color: var(--navy);
}
.resource-item.term-blue {
  border-left-color: var(--blue);
}
.resource-item.term-dk-green {
  border-left-color: var(--dk-green);
}
.resource-item.term-cadet {
  border-left-color: var(--cadet);
}
.resource-item.term-green {
  border-left-color: var(--green);
}
.resource-item.term-boy-blue {
  border-left-color: var(--boy-blue);
}

.item__headline-column {
  flex-basis: 100%;
  display: flex;
  flex-direction: column;
  align-items: flex-start;
}
@media screen and (min-width: 769px), print {
  .item__headline-column {
    flex-basis: 50%;
  }
}
.item__headline-column .category-pill {
  margin-bottom: 0.5rem;
}

.item__excerpt-column {
  flex-basis: 100%;
}
@media screen and (min-width: 769px), print {
  .item__excerpt-column {
    flex-basis: 50%;
  }
}

/* Single Resource Page */
body.single-resources {
  background-color: var(--frost);
}

.resources__not-sidebar {
  order: 2;
}
@media screen and (min-width: 769px), print {
  .resources__not-sidebar {
    order: 1;
  }
}

.resources__sidebar {
  order: 1;
}
@media screen and (min-width: 769px), print {
  .resources__sidebar {
    order: 2;
  }
}

.site-main .dh-on-page-navigation {
  display: none;
  margin-bottom: 1rem;
  padding: 1rem;
  border-left: 5px solid var(--blue);
  position: sticky;
  top: 6rem;
}
.site-main .dh-on-page-navigation.is-active {
  display: block;
}

#on-page-nav {
  display: flex;
  flex-direction: column;
  align-items: flex-start;
}
#on-page-nav a {
  display: inline-block;
  margin-bottom: 1rem;
  font-weight: var(--medium);
  font-variation-settings: "wght" var(--medium);
  border: none;
  color: var(--blue);
  text-decoration: none;
}
#on-page-nav a:hover, #on-page-nav a:focus {
  color: var(--black);
  border: none;
}

/* projects */
.projects-block {
  width: 100%;
}

.projects__single-project {
  margin-bottom: 4rem;
}
@media screen and (min-width: 769px), print {
  .projects__single-project {
    margin-bottom: 6rem;
  }
}

.projects__single-text-wrapper {
  position: relative;
  display: block;
  padding: 4rem 2rem;
  width: 100%;
  background: url(assets/img/gradual-crosses.jpg) left bottom/cover no-repeat;
}
@media screen and (min-width: 769px), print {
  .projects__single-text-wrapper {
    display: flex;
    flex-direction: column;
    justify-content: center;
    align-items: flex-start;
    min-height: 700px;
    max-width: 50%;
    margin-left: 0;
  }
  .projects__single-project:nth-child(odd) .projects__single-text-wrapper {
    margin-right: 0;
    margin-left: auto;
  }
}
.projects__single-text-wrapper a.headline {
  color: var(--white);
  border-bottom: none;
}
.projects__single-text-wrapper a.headline:hover, .projects__single-text-wrapper a.headline:focus {
  color: var(-boy-blue);
  border-bottom: none;
}

.projects__single-text-wrapper--bottom-color {
  position: absolute;
  bottom: 0;
  left: 0;
  height: 1.75rem;
  width: 100%;
  background-color: var(--orange);
}

/* Red for the 1st item in every set of 3 */
.projects__single-project:nth-child(3n+1) .projects__single-text-wrapper--bottom-color {
  background-color: var(--orange);
}

/* Blue for the 2nd item in every set of 3 */
.projects__single-project:nth-child(3n+2) .projects__single-text-wrapper--bottom-color {
  background-color: var(--boy-blue);
}

/* Orange for the 3rd item in every set of 3 */
.projects__single-project:nth-child(3n+3) .projects__single-text-wrapper--bottom-color {
  background-color: var(--green);
}

/* =====================
Single Projects 
===================== */
.project-label-link {
  display: block;
  border: none;
  color: var(--boy-blue);
  font-weight: var(--medium);
  font-variation-settings: "wght" var(--medium);
}
.project-label-link:hover, .project-label-link:focus {
  color: var(--lt-blue);
}

.project-detail-row {
  gap: 2rem;
}

.project-detail-label {
  flex-basis: min(33%, 160px);
}

#primary.coming-soon-template__main {
  position: fixed;
  top: 0;
  left: 0;
  margin-top: 0;
  padding: 1rem;
  width: 100vw;
  height: 100vh;
  overflow: hidden;
  background-color: #222222;
  color: #ffffff;
  z-index: 9999;
}

.coming-soon__page-flex {
  display: flex;
  flex-direction: column;
  justify-content: center;
  align-items: center;
  height: 100%;
  gap: 1rem;
  margin: auto;
  max-width: min(86%, 600px);
}

.coming-soon__logo-wrap .custom-logo-link {
  margin: auto;
}
.coming-soon__logo-wrap .custom-logo-link .custom-logo {
  margin: auto;
  max-width: min(100%, 400px);
  height: auto;
}

/* block 50-50, both contained and full-bleed */
.fifty-fifty-background {
  position: absolute;
  top: 0;
  left: 0;
  bottom: 0;
  right: 0;
}
.page-template-template-top-banner .fifty-fifty-row,
.page-template-template-full-width .fifty-fifty-row {
  padding-left: 1rem;
  padding-right: 1rem;
  max-width: var(--wp--custom--layout--content);
  margin-left: auto;
  margin-right: auto;
}

.fifty-fifty-row {
  display: flex;
  flex-wrap: wrap;
  flex-direction: row;
  align-items: flex-start;
  gap: 2rem;
}
@media screen and (min-width: 769px), print {
  .fifty-fifty-row {
    flex-wrap: nowrap;
    gap: 3rem;
  }
}
@media screen and (min-width: 769px), print {
  .fifty-fifty-row.layout-image-right {
    flex-direction: row-reverse;
  }
}
.fifty-fifty-row .fifty-fifty-row-column {
  flex: 0 1 100%;
}
@media screen and (min-width: 769px), print {
  .fifty-fifty-row .fifty-fifty-row-column {
    flex: 0 1 50%;
  }
}
.fifty-fifty-row .fifty-fifty-row-column figure {
  display: block;
}
@media screen and (min-width: 769px), print {
  .fifty-fifty-row .fifty-fifty-row-column figure {
    height: 100%;
  }
}
.fifty-fifty-row .fifty-fifty-row-column img {
  display: block;
  border-radius: 12px;
}
@media screen and (min-width: 769px), print {
  .fifty-fifty-row .fifty-fifty-row-column img {
    position: sticky;
    top: 160px;
  }
}

/* 50-50 full-width */
.fifty-fifty-row--full-bleed {
  display: flex;
  flex-wrap: wrap;
  flex-direction: row;
  align-items: flex-start;
}
@media screen and (min-width: 769px), print {
  .fifty-fifty-row--full-bleed {
    flex-wrap: nowrap;
  }
}
@media screen and (min-width: 769px), print {
  .fifty-fifty-row--full-bleed.layout-image-right {
    flex-direction: row-reverse;
  }
}
@media screen and (min-width: 1200px) {
  .fifty-fifty-row--full-bleed.layout-image-right .fifty-fifty-row-column.text-column {
    padding-right: 2rem;
    padding-left: calc((100vw - 1152px) / 2);
  }
}
.fifty-fifty-row--full-bleed .fifty-fifty-row-column {
  flex: 0 1 100%;
}
@media screen and (min-width: 769px), print {
  .fifty-fifty-row--full-bleed .fifty-fifty-row-column {
    flex: 0 1 50%;
  }
}
@media screen and (min-width: 769px), print {
  .fifty-fifty-row--full-bleed .fifty-fifty-row-column.image-column {
    min-width: 50%;
    align-self: stretch;
  }
}
@media screen and (min-width: 500px) {
  .fifty-fifty-row--full-bleed .fifty-fifty-row-column.image-column {
    min-width: 100%;
    min-height: 400px;
    aspect-ratio: 1/1;
  }
}
.fifty-fifty-row--full-bleed .fifty-fifty-row-column.text-column {
  padding-left: 2rem;
  padding-right: 2rem;
}
@media screen and (min-width: 1200px) {
  .fifty-fifty-row--full-bleed .fifty-fifty-row-column.text-column {
    padding-right: calc((100vw - 1152px) / 2);
    padding-left: 2rem;
  }
}

/* three-column.scss */
@media screen and (min-width: 769px), print {
  .three-column-row {
    display: grid;
    grid-template-columns: repeat(3, 1fr);
    grid-auto-flow: row dense;
    grid-column-gap: 1rem;
    grid-row-gap: 1rem;
  }
}

@media screen and (min-width: 500px) {
  .three-cols__single-col {
    margin-bottom: 4rem;
  }
}

.news-block__container {
  gap: 1rem;
}
@media screen and (min-width: 769px), print {
  .news-block__container {
    flex-wrap: nowrap;
    gap: 2rem;
  }
}

@media screen and (min-width: 769px), print {
  .news-block__intro {
    flex-basis: 33.333%;
  }
}

.news-block__card-container {
  display: grid;
  grid-template-columns: 1fr;
  gap: 1rem;
}
@media screen and (min-width: 769px), print {
  .news-block__card-container {
    flex-basis: 66.666%;
    gap: 2rem;
  }
}
@media screen and (min-width: 1024px) {
  .news-block__card-container {
    grid-template-columns: repeat(2, 1fr);
    gap: 2rem;
  }
}
.news-block__card-container .card {
  max-width: 440px;
  margin: auto;
}
@media screen and (min-width: 1024px) {
  .news-block__card-container .card {
    height: 100%;
  }
}
.news-block__card-container .card__image-link {
  position: relative;
  display: block;
}
.news-block__card-container .category-pill {
  position: absolute;
  top: 1rem;
  left: 1rem;
  background-color: var(--navy);
  color: var(--white);
  border-color: var(--white);
}

/* two column headline and text block styles */
.two-col-headline-text-section.pale-blue-background {
  background-image: linear-gradient(to right bottom, #d0ecf0, #d8eef3, #e0eff5, #e7f1f6, #eef3f6);
}

.two-col-headline-text-section.dark-background {
  background-image: linear-gradient(to right, #004268, #003858, #002e48, #002439, #001b2a);
}
.two-col-headline-text-section.dark-background h1, .two-col-headline-text-section.dark-background h2, .two-col-headline-text-section.dark-background h3, .two-col-headline-text-section.dark-background h4, .two-col-headline-text-section.dark-background h5, .two-col-headline-text-section.dark-background h6, .two-col-headline-text-section.dark-background div, .two-col-headline-text-section.dark-background p, .two-col-headline-text-section.dark-background ul, .two-col-headline-text-section.dark-background ol {
  color: var(--white);
}
.two-col-headline-text-section.dark-background h1.two-col-head-text-row__headline {
  color: var(--lt-blue);
}

.two-col-head-text-row {
  display: flex;
  flex-wrap: wrap;
  flex-direction: row;
  align-items: flex-start;
  gap: 2rem;
}
@media screen and (min-width: 769px), print {
  .two-col-head-text-row {
    flex-wrap: nowrap;
    gap: 3rem;
  }
}
.two-col-head-text-row .two-col-head-text-row-column {
  flex: 0 1 100%;
}
@media screen and (min-width: 769px), print {
  .two-col-head-text-row .two-col-head-text-row-column {
    flex: 0 1 50%;
  }
}
.two-col-head-text-row .two-col-head-text-row-column figure {
  display: block;
}
@media screen and (min-width: 769px), print {
  .two-col-head-text-row .two-col-head-text-row-column figure {
    height: 100%;
  }
}
.two-col-head-text-row .two-col-head-text-row-column img {
  display: block;
  border-radius: 8px;
}

/* featured headline content block */
.featured__single-row {
  display: flex;
  flex-wrap: wrap;
  gap: 1rem;
}
@media screen and (min-width: 500px) {
  .featured__single-row {
    flex-wrap: nowrap;
    gap: 2rem;
  }
}
.featured__single-row .sidebar {
  flex-basis: 100%;
}
@media screen and (min-width: 500px) {
  .featured__single-row .sidebar {
    flex-basis: 33%;
  }
}
.featured__single-row .sidebar img {
  border: 5px solid var(--navy);
}
.featured__single-row .not-sidebar {
  flex-basis: 100%;
}
@media screen and (min-width: 500px) {
  .featured__single-row .not-sidebar {
    flex-basis: 66%;
  }
}

/* cta */
.cta-section.dk-green, .cta-section.deep-royal {
  color: var(--white);
}
.cta-section.dk-green h2, .cta-section.deep-royal h2 {
  color: var(--white);
}
.cta-section.dk-green {
  background: url(assets/img/cta-green.jpg) center center/cover no-repeat;
}
.cta-section.deep-royal {
  background: url(assets/img/cta-blue.jpg) center center/cover no-repeat;
}
.cta-section.deep-royal .btn {
  background-color: var(--orange);
  border-color: var(--orange);
  color: var(--white);
}
.cta-section.deep-royal .btn:hover, .cta-section.deep-royal .btn:focus {
  background-color: var(--white);
  color: var(--orange);
}
.cta-section.pale-blue {
  background: url(assets/img/cta-pale-blue.jpg) center center/cover no-repeat;
}

@media screen and (min-width: 1024px) {
  .cta__headline h2 {
    max-width: 400px;
  }
}

/* sponsors section */
.sponsors-repeater {
  display: grid;
  grid-template-columns: 1fr;
  gap: 1rem;
}
@media screen and (min-width: 769px), print {
  .sponsors-repeater {
    flex-basis: 66.666%;
    gap: 2rem;
  }
}
@media screen and (min-width: 1024px) {
  .sponsors-repeater {
    grid-template-columns: repeat(2, 1fr);
    gap: 2rem;
  }
}

.sponsors__single img {
  display: block;
  margin-bottom: 0.5rem;
}
.sponsors__single a {
  display: block;
  margin-bottom: 0.5rem;
  border-bottom: none;
  font-size: 1.25rem;
  color: var(--blue);
}
.sponsors__single a:hover, .sponsors__single a:focus {
  color: var(--navy);
}

/* team block layout */
#primary ul.team-members-flex {
  flex-wrap: wrap;
  align-items: center;
  justify-content: flex-start;
  gap: 1rem;
  padding-left: 0;
  max-width: 300px;
  margin: auto;
}
@media screen and (min-width: 769px), print {
  #primary ul.team-members-flex {
    max-width: 100%;
  }
}
#primary ul.team-members-flex li {
  list-style-type: none;
  margin: 0;
  flex-basis: 100%;
}
@media screen and (min-width: 769px), print {
  #primary ul.team-members-flex li {
    flex-basis: 32%;
    align-self: stretch;
  }
}
@media screen and (min-width: 1024px) {
  #primary ul.team-members-flex li {
    flex-basis: 23.7%;
  }
}
#primary ul.team-members-flex button {
  background-color: var(--white);
  border: none;
  color: var(--navy);
  text-align: left;
  max-width: 100%;
}
#primary ul.team-members-flex button:hover img, #primary ul.team-members-flex button:focus img {
  filter: grayscale(0%);
}
#primary ul.team-members-flex .team-member__card-area {
  padding: 0.5rem;
}
#primary ul.team-members-flex img {
  display: block;
  width: 100%;
  max-width: 100%;
  height: auto;
  border-radius: 8px 8px 0 0;
  filter: grayscale(100%);
  transition: all 0.3s ease;
  z-index: 1;
}

.modal-body {
  flex-wrap: wrap;
  align-items: flex-start;
  gap: 1rem;
  display: grid;
  grid-template-columns: 1fr;
  grid-auto-flow: row dense;
  grid-column-gap: 1rem;
  grid-row-gap: 1rem;
}
@media screen and (min-width: 769px), print {
  .modal-body {
    display: grid;
    grid-template-columns: repeat(2, 1fr);
    grid-auto-flow: row dense;
    grid-column-gap: 1rem;
    grid-row-gap: 1rem;
  }
}
.modal-body .modal__team-image-column {
  padding: 0;
  margin: 0;
  color: var(--white);
  min-height: 100%;
}
.modal-body .modal__title-social {
  padding: 1.5rem;
}
.modal-body .modal__team-bio-column {
  padding: 1rem;
}
@media screen and (min-width: 769px), print {
  .modal-body .modal__team-bio-column {
    padding: 5rem 2rem 2rem;
  }
}

/*# sourceMappingURL=style.css.map */
