* {box-sizing:border-box;}

:root {
  --default-font-family:Lexend, sans-serif;
  --main-text-color:#58595b;
  --sfid-blue:#2c3bb2;
  --sfid-dark-cornflower-blue:#5989b9;
  --sfid-dusty-blue:#4666c6;
  --sfid-medium-blue:#5f9ee5;
  --sfid-light-blue:#eff5fc;
  --sfid-red:#a5232b;
  --sfid-dark-grey:#777;
  --sfid-grey:#999;
  --sfid-light-grey:#ccc;
  --sfid-box-shadow:0px 10px 15px 0px #0000001A;

}

html {font-size:16px;}


/* Body */

body {
  background-color:var(--sfid-blue);
  color:var(--main-text-color);
  font-family:var(--default-font-family);
  font-optical-sizing:auto;
  font-weight:400;
  line-height:1.5em;
  margin:0;
  padding:0;  
}

p {margin:0 0 18px;}

.dialog-off-canvas-main-canvas a {
  color:var(--sfid-red);
  font-weight:700;
  text-decoration:underline;
}

.menu .menu-item {padding:unset;}


/* Header */

header.site-header {
  background:#fff;
  border-bottom:1px solid var(--sfid-blue);
  width:100%;
  z-index:2;
}

header.site-header .header-container {
  display:grid;
  height:100px;
  margin:0 auto;
  width:100%;
}

header.site-header figure.branding {
  display:flex;
  grid-column:1 / 2;
  grid-row:1 / 2;
  height:100%;
  margin:0;
  width:100%;
}

figure.branding a.site-logo {
  align-items:center;
  display:flex;
  font-size:0;
  padding:26px 20px;
}

figure.branding img {
  height:48px;
  /*! width:210px; */
}


/* Main Menu */

nav.main-menu ul.menu {
  list-style:none;
  margin:0;
  padding:16px 0;
}

nav.main-menu li.menu-item {
  align-content:center;
  display:grid;
  margin:0;
  padding:0;
  position:relative;
  width:100%;
}

nav.main-menu li.menu-item.menu-item--expanded {grid-template-columns:1fr 70px;}

nav.main-menu li.menu-item a,
nav.main-menu li.menu-item span.no-link {
  align-items:center;
  color:#fff;
  display:flex;
  font-size:1rem;
  font-weight:600;
  height:100%;
  line-height:1.5em;
  padding:12px 20px;
  text-decoration:none;
  text-transform:uppercase;
  width:100%;
}

nav.main-menu ul.menu-level-1 > li.menu-item > span.no-link:focus,
nav.main-menu ul.menu-level-1 > li.menu-item > span.no-link:hover,
nav.main-menu ul.menu-level-1 > li.menu-item > a.is-active,
nav.main-menu ul.menu-level-1 > li.menu-item > a:not(.is-active):focus,
nav.main-menu ul.menu-level-1 > li.menu-item > a:not(.is-active):hover {
  text-decoration:underline;
  text-decoration-color:var(--envision-orange);
  text-decoration-thickness:4px;
  text-underline-offset:5px;
}

nav.main-menu ul.menu-level-1 > li.menu-item span.no-link:focus,
nav.main-menu li.menu-item .dropdown-control:focus,
nav.main-menu ul.menu-level-1 > li.menu-item span.no-link:hover,
nav.main-menu li.menu-item .dropdown-control:hover {cursor:pointer;}

nav.main-menu li.menu-item .dropdown-control {
  background-color:unset;
  background-position:center;
  background-repeat:no-repeat;
  background-size:14px;
  border:0;
  border-radius:0;
  font-size:0;
  padding:0;
  position:relative;
}

nav.main-menu ul.menu-level-1 > li.menu-item > button.dropdown-control {background-image:url(/themes/custom/sfid/images/icons/plus-white.svg);}

nav.main-menu ul.submenu[hidden] {display:none;}

nav.main-menu ul.submenu {
  max-height:0;
  opacity:0;
  overflow:hidden;
  padding:0;
  visibility:hidden;
}

nav.main-menu li.expanded > ul.submenu {
  grid-column:1 / 3;
  max-height:unset;
  opacity:1;
  visibility:visible;
}

nav.main-menu ul.menu-level-1 > li.menu-item.expanded > button.dropdown-control {background-image:url(/themes/custom/sfid/images/icons/minus-white.svg);}

nav.main-menu .submenu li.menu-item {background:#fff;}

nav.main-menu .submenu.menu-level-2 > li.menu-item {
  background-color:var(--envision-light-purple);
  border-top:1px solid var(--envision-medium-purple);
}

nav.main-menu .submenu.menu-level-2 > li.menu-item {background-color:var(--sfid-light-blue);}

nav.main-menu .submenu li.menu-item a,
nav.main-menu .submenu li.menu-item span.no-link {
  color:var(--sfid-blue);
  padding-left:40px;
  text-transform:unset;
}

nav.main-menu .submenu.menu-level-2 > li.menu-item a,
nav.main-menu .submenu.menu-level-2 > li.menu-item span.no-link {padding-left:40px;}


/* Hero Region */

section.region-hero {
  margin:0 auto;
  max-width:800px;
  padding:0 20px;
  width:100%;
}

section.region-hero.report {
  max-width:unset;
  padding:0;
}

section.region-hero.report figure {
  margin:0;
  width:100%;
}

section.region-hero.report figure img {
  height:auto;
  width:100%;
}

section.region-hero.report h1.page-title {
  font-size:0;
  margin:0;
  padding:0;
}

section.region-hero.media {max-width:1200px;}

section.region-hero h1.page-title {
  margin:0;
  padding:20px 0 0;
  text-align:center;
}


/* Buttons */

.button-links {
  display:flex;
  flex-wrap:wrap;
  font-family:var(--secondary-font-family);
  gap:24px;
  list-style:none;
  margin:24px 0;
  padding:0;
}

.button-links .button-link {
  display:block;
  margin:0;
}

.button-links .button,
.button-links.data-files a {
  align-items:center;
  background:var(--sfid-red);
  color:#fff;
  display:flex;
  font-size:1rem;
  font-weight:700;
  letter-spacing:.1rem;
  line-height:1.5em;
  margin:0;
  padding:12px 24px;
  text-align:left;
  text-decoration:none;
  text-transform:uppercase;
}

.button-links .button:focus,
.button-links.data-files a:focus,
.button-links .button:hover,
.button-links.data-files a:hover {text-decoration:underline;}


/* Page Content */

article .body-content {
  margin:0 auto;
  max-width:800px;
  padding:20px 20px 40px;
  width:100%;
}

.main-content:has(.messages--status) article.node .body-content.primary {padding-top:20px}
article .body-content > :last-child {margin-bottom:0;}

.region-hero h1.page-title,
article.node h1.page-title {
  color:var(--sfid-blue);
  font-size:3rem;
  font-weight:200;
  line-height:1.2em;
  margin:0 auto 32px;
  width:100%;
}

article h2 {
  color:var(--sfid-blue);
  font-size:1.75rem;
  font-weight:400;
  line-height:1.285714em;
  margin:24px 0 12px;
}

article h3 {
  color:var(--sfid-blue);
  font-size:1.3125rem;
  font-weight:700;
  margin:16px 0 8px;
}

article h2:first-child {margin-top:0;}

article .body-content ul,
article .body-content ol {margin:24px 0;}
article .body-content ul li,
article .body-content ol li {margin:0 0 8px;}

article .body-content .body :last-child {margin-bottom:0;}

article p.standard {
  font-family:var(--default-font-family);
  font-size:1rem;
  font-weight:400;
  line-height:1.5em;
}

article figure {
  line-height:0;
  margin:0 0 20px;
  position:relative;
  width:100%;
}

article figure a {display:block;}

article figure img{
  height:auto;
  width:100%;
}

article figure figcaption {
  font-size:.75rem;
  line-height:1.5em;
  padding:8px 0 0;
}

article figure figcaption > :last-child {margin-bottom:0;}
article figure.video {margin:0 0 20px;}

article .body-content hr {
  background:var(--sfid-light-grey);
  border:0;
  height:1px;
  margin:24px 0;
  padding:0;
}

article .body-content .disclaimer {color:var(--sfid-grey);}

article .authors,
article .publication-date {
  font-size:.875rem;
  line-height:1.5em;
  margin:0;
}

article .publication-date:not(:last-child) {margin:0 0 8px;}

article .eyebrow {
  font-size:.75rem;
  font-weight:700;
  line-height:1.333333em;
  margin:0 0 8px;
  text-transform:uppercase;
}


/* Front Pages */

article.front .body-content {
  text-align:center;
  max-width:960px;
}

article.front .body-content p {
  font-size:1.3125rem;
  line-height:1.5em;
}


/* Footer */

footer.site-footer {
  background:var(--sfid-medium-blue);
  color:#fff;
  text-align:center;
  width:100%;
}

footer.site-footer .primary-footer {
  margin:0 auto;
  max-width:800px;
  padding:25px 20px;
  width:100%;
}

footer.site-footer nav.footer-menu ul.menu {
  border-bottom:1px solid #fff;
  display:flex;
  flex-wrap:wrap;
  justify-content:center;
  margin:0 0 24px;
  padding:0 0 9px;
}

footer.site-footer .footer-menu .menu-item {
  display:block;
  position:relative;
}

footer.site-footer .footer-menu .menu-item a {
  color:#fff;
  display:block;
  font-family:var(--secondary-font-family);
  font-size:.75rem;
  font-weight:400;
  line-height:1.5em;
  padding:15px 12px;
  text-align:center;
  text-decoration:none;
  text-transform:uppercase;
}

footer.site-footer .footer-menu .menu-item a:focus,
footer.site-footer .footer-menu .menu-item a:hover {text-decoration:underline;}

footer.site-footer .footer-menu li.menu-item:not(:last-child):after {
  background:#fff;
  content:"";
  display:block;
  height:16px;
  position:absolute;
  right:0;
  width:1px;
  top:16px;
  
}



footer.site-footer .secondary-footer {
  background:var(--sfid-blue);
  padding:40px 20px;
  width:100%;
}

footer.site-footer .block.standard {
  margin:0 auto;
  max-width:760px;
  padding:0;
  width:100%;
}

footer.site-footer .block.standard .body a {
  color:#fff;
  font-weight:400;
}

footer.site-footer .standard .body :last-child {margin-bottom:0;}

footer.site-footer .copyright {
  font-size:.75rem;
  line-height:1.333333em;
}


/* Media Queries */


@media (min-width:360px) {

  /* Header */

  figure.branding a.site-logo {padding:22px 20px 21px;}

  figure.branding img {
    height:57px;
    width:250px;
  }

}




@media (min-width:400px) {
  
  /* Header */

  figure.branding a.site-logo {padding:17px 20px 16px;}

  figure.branding img {
    height:67px;
    width:290px;
  }

}


@media (min-width:480px) {
  
  /* Header */
  
  header.site-header .header-container {height:150px;}

  figure.branding a.site-logo {padding:33px 20px 32px;}

  figure.branding img {
    height:85px;
    width:370px;
  }
  
}


@media (min-width:600px) {
  
  /* Header */
  
  figure.branding a.site-logo {padding:20px;}
  
  figure.branding img {
    height:110px;
    width:483px;
  }
  
  
  /* Page Content */

  .region-hero h1.page-title,
  article.node h1.page-title {font-size:3.75rem;}
  article .body-content {padding:40px 20px 60px;}

  article h2 {
    font-size:2.125rem;
    line-height:1.411765em;
  }
  
  article.report h2 {
    font-size:3.4375rem;
    font-weight:200;
    line-height:1.1em;
  }
  
  article.report h3 {
    font-size:1.75em;
    font-weight:400;
    line-height:1.428571em;
  }

}
  

@media (min-width:768px) {
  
  /* Header */
  
  header.site-header .header-container {
    grid-template-columns:0 523px 1fr auto 0;
    grid-template-rows:150px 92px;
    height:242px;
  }
  
  header.site-header figure.branding {grid-column:2 / 3;}
  
  header.site-header nav.main-menu {
    background:var(--sfid-blue);
    display:flex;
    grid-column:1 / 6;
    grid-row:2 / 3;
    justify-content:center;
  }

  header.site-header nav.main-menu .contextual button {
    top:-25px;
    right:-15px;
  }
  
  nav.main-menu > ul.menu {
    display:flex;
    justify-content:center;
    padding:0;
  }
  
  nav.main-menu .menu-level-1 > li.menu-item.menu-item--expanded {
    grid-template-columns:auto 40px;
    position:relative;
  }
  

  
  nav.main-menu ul.menu-level-1 > li.menu-item > a,
  nav.main-menu ul.menu-level-1 > li.menu-item > span.no-link {
    text-wrap:nowrap;
    width:auto;
  }
  
  nav.main-menu ul.menu-level-1 > li.menu-item.menu-item--expanded > a,
  nav.main-menu ul.menu-level-1 > li.menu-item.menu-item--expanded > span.no-link {padding-right:0;}
  
  nav.main-menu ul.menu-level-1 ul.menu {position:absolute;}

  nav.main-menu ul.menu-level-1 .expanded ul.menu {
    background:var(--sfid-blue);
    min-width:200px;
    width:100%;
    top:92px;
    z-index:2;
  }
  
  nav.main-menu .submenu.menu-level-2 > li.menu-item {
    background:unset;
    border-top:1px solid #fff;
  }
  
  nav.main-menu .submenu.menu-level-2 > li.menu-item.menu-item--expanded {grid-template-columns:1fr 60px;}
  nav.main-menu .submenu.menu-level-2 > li.menu-item a,
  nav.main-menu .submenu.menu-level-2 > li.menu-item span.no-link {
    color:#fff;
    padding:12px 20px;
  }
  
  nav.main-menu .submenu.menu-level-2 > li.menu-item > button {
    display:block;
    width:60px;
  }

  header.site-header nav.buttons-menu {
    grid-column:3 / 4;
    grid-row:2 / 3;
  }
  
  nav.buttons-menu ul.menu {
    display:flex;
    justify-content:flex-end;
  }

  nav.buttons-menu .button-links > .button,
  .hero-feature .button-links > .button {padding:16px 40px;}
  
  header.site-header .block.sponsors {
    grid-column:4 / 5;
    grid-row:1 / 2;
    padding:20px;
  }
  
  header.site-header .menu-controls {display:none;}

}


@media (min-width:1000px) {
  
  /* Header */
  
  header.site-header .header-container {  
    grid-template-columns:0 742px 1fr auto 0;
    grid-template-rows:200px 92px;
    height: 292px;
  }
  
  figure.branding img {
    height:160px;
    width:702px;
  }
  
}

@media (min-width:1200px) {

  /* Hero Region */
  
  section.region-hero.report figure img {
    height:600px;
    object-fit:cover;
  }

}


@media (min-width:1440px) {
  
  /* Header */
  
  header.site-header .header-container {  
    grid-template-columns:1fr 742px 418px 240px 1fr;
    grid-template-rows:200px 92px;
    height:292px;
  }
  
}