@charset "UTF-8";


/* All clamps 320 - 750 unless noted */


html {
  scroll-padding-top: 2.875em; /* Offset for sticky header (when going to another page via jump-link) */
}

html:has(body.admin-bar) {
  scroll-padding-top: 5.75em
}



.d-only {
  content-visibility: hidden;
  display: none;
}



/* TRANSITIONS ------------------------------ */
#mobilenav span, #navContainer .megamenu {
  transition: all .3s ease;
}





/* HEADER ------------------------------ */
#wpadminbar {
  position: fixed;
}

body>header {
  background: #FFF;
  display: contents;
}

body>header:before {
  content: '';
  opacity: 0;
  background-color: #000;
  display: block;
  height: 100vh;
  left: 100vw;
  position: fixed;
  top: 0;
  transition: left 0s ease .2s, opacity .2s ease;
  width: 100vw;
  z-index: 4;
}

body.slideNav>header:before {
  left: 0;
  opacity: .5;
  transition: left 0s ease 0s, opacity .2s ease;
}

body>header .wrap {
  display: contents;
}

#brand {
  display: block;
  margin-inline: auto;
  max-width: 15em;
  padding: .5em 1em .25em;
}

#brand img {
  display: block;
  height: auto;
  margin: 0 auto;
  max-width: 100%;
}

#navContainer {
  background-color: var(--ws-dk-blue);
  bottom: 0;
  left: 100%;
  max-height: 100vh;
  overflow: auto;
  position: fixed;
  top: 0;
  transition: left 200ms ease;
  width: 75%;
  z-index: 5;
  -webkit-overflow-scrolling: touch;
}

.admin-bar #navContainer {
  top: 46px;
}

body.slideNav {
  overflow: hidden;
}

.slideNav #navContainer {
  left: 25%;
}

#navContainer nav {
  display: block;
}

#navContainer ul {
  display: block;
  margin: 0;
  padding-left: 0;
  width: 100%;
}

#mainnav>ul>li {
  border-top: 1px solid rgba(255,255,255,.1);
}

#navContainer li {
  display: block;
  position: relative;
  width: 100%;
}

#navContainer :where(a, button.toggleNav) {
  color: #FFF;
  cursor: pointer;
  display: block;
  font-size: 1.125em;
  padding: .5em 1em;
  width: 100%;
}

#navContainer button.toggleNav {
  background: transparent;
  border: 0;
  font-weight: 500;
  text-align: left;
  text-transform: none;
  width: 100%;
}

#navContainer button.toggleNav>span {
  font-size: 2.25em;
  line-height: 0;
  margin: 0 .0625em 0 0;
  position: relative;
  top: .2em;
}

#navContainer li.expand {
  background-color: rgba(255,255,255,.1);
}

#navContainer #mainnav>ul>li>button {
  border: 0;
  opacity: 1;
  display: block;
  height: 2.25em;
  position: absolute;
  right: .25em;
  top: .25em;
  width: 2.25em;
}

#navContainer #mainnav>ul>li.expand>button {
  opacity: 1
}

#navContainer #mainnav>ul>li>button::after,
#navContainer #mainnav>ul>li>button::before {
  background-color: #FFF;
  content: '';
  display: block;
  height: 0.125rem;
  left: 50%;
  position: absolute;
  top: 50%;
  transform-origin: center center;
  transition: transform .2s ease;
  width: 50%;
}

#navContainer #mainnav>ul>li>button::before {
  transform: translate(-50%, -50%) rotate(90deg);
  transition: transform .2s ease;
}

#navContainer #mainnav>ul>li>button::after,
#navContainer #mainnav>ul>li.expand>button::before {
  transform: translate(-50%, -50%) rotate(0deg);
}




/* MEGAMENU ------------------------------ */
#mainnav div.megamenu + ul.sub-menu,
#mainnav>ul>li.has-megamenu>div.megamenu .textbox {
  content-visibility: hidden;
  display: none;
}

#navContainer .megamenu {
  height: 0;
  overflow: hidden;
}

#navContainer ul ul a {
  font-size: 1em;
  line-height: 1.5em
  padding: 0.5em 1em 0.5em 2em;
}

#navContainer ul ul li.current-menu-item {
  background-color: rgba(255,255,255,.1)
}

#navContainer :is(.current_page_parent, .current_page_item, .current_page_ancestor)>ul {
  height: auto;
}

#navContainer ul ul ul a {
  padding: 0.5em 1em 0.5em 2.5em;
}

#navContainer form {
  display: flex;
  overflow: auto;
  padding: 1em;
  width: 100%;
}

#mainnav>ul>li:last-child {
  display: none;
}





/* SEARCH FORM ------------------------------ */

#navContainer .search-dropdown {
  border-top: 1px solid rgba(255,255,255,.1);'
}


#navContainer form.search-form input[type="search"] {
  flex: 1;
  padding: .5625em;
}

#navContainer form.search-form button[type="cancel"] {
  display: none;
}




/* MOBILENAV ------------------------------ */
#mobilenav {
  align-items: center;
  background-color: var(--ws-dk-blue);
  display: flex;
  justify-content: center;
  position: sticky;
  text-align: center;
  top: 0;
  width: 100%;
  z-index: 3;
}

body.admin-bar #mobilenav {
  top: 46px
}

#mobilenav :is(a, button) {
  align-self: auto;
  color: #FFF;
  cursor: pointer;
  flex: 1 1 auto;
  line-height: 1;
  order: 0;
  padding: .875em 1em;
}

#mobilenav button {
  background: transparent;
  border: 0;
  display: flex;
  font-size: 1em;
  justify-content: center;
  text-transform: none;
}

#mobilenav button::after {
  aspect-ratio: 1;
  background: #FFF;
  content: '';
  display: inline-block;
  margin: 0 0 0 .25em;
  mask:  url('./images/icons/bars.svg') no-repeat center / contain;
  height: 1.125em;
}



/* TYPOGRAPHY  ------------------------------ */

/* Columms */
.twoCol, .threeCol, .resCol {
  columns: auto;
}




/* CMS PAGE ELEMENTS ------------------------------ */

.alignright {
  margin: 0 0 2em 1.75em;
}

.alignleft {
  margin: 0 1.75em 2em 0;
}




/* BLOCK - CALLOUTS ------------------------------ */

.callouts-block ul.ws-flex {
  --ws-column-count: 2;
}




/* BLOCK - DOWNLOADS ------------------------------ */

.downloads ul.ws-flex.three-column {
  --ws-column-count: 2;
}




/* MAIN ------------------------------ */

#content {
  padding: 2em 0;
}

#sidebar {
  padding: 0 0 2.5em;
}




/* FOOTER ------------------------------ */

body>footer .fatFooter {
  display: grid;
  gap: 3em;
  margin: 0 auto 2.5em;
  text-align: center;
}

body>footer form {
  align-items: center;
}

body>footer form input[type="email"] {
  margin: .375em 0 0;
  width: min(100%, 15.625em);
}

body>footer .social ul {
  margin-inline: auto;
  width: fit-content;
}


/* Footer bottom */
body>footer>.wrap {
  display: flex;
  flex-direction: column;
  text-align: center;
}

body>footer>.wrap nav {
  display: block;
  margin: 0 0 1em;
}

#exposure {
  order: 1;
}



/* NICER HUB FOOTER ------------------------------ /
* - template-nicer-hub.php, template-nicer-hub-detail.php
*/

body>footer.nicer-hub ul.threeCol {
  columns: 2;
}





/* HERO RIBBON ------------------------------ /
* - Homepage
*/

.hero img {
  aspect-ratio: 1000 / 667;
}





/* CALLOUTS RIBBON ------------------------------ /
* - Homepage
*/

.callouts {
  padding-block: 2em 3em;
}

.callouts .textbox {
  margin: 0 0 2em;
}

.callouts ul.ws-flex {
  --ws-column-count: 3;
}





/* NEWSLETTER SIGNUP RIBBON ------------------------------ /
* - Homepage
*/

.news-signup {
  row-gap: 0;
}

.news-signup .textbox {
  padding-block: 3em;
}

.news-signup .image {
  display: contents;
}

.news-signup .form {
  padding: 3em 1.5em;
}





/*  PUBLICATIONS RIBBON ------------------------------ /
* - Homepage
*/


.publications-ribbon .heading {
  flex-direction: column;
  gap: 1em;
  margin: 0 0 2em;
}

.publications-ribbon .ws-flex {
  --ws-column-count: 2;
}





/*  NEWS & EVENTS RIBBON ------------------------------ /
* - Homepage
*/

.news-events .news {
  margin: 0 0 3em;
}





/* WELCOME RIBBON ------------------------------ /
* - Homepage
*/

.welcome {
  padding-block: 2em 3em;
}

.welcome .textbox {
  margin: 0 0 2.5em;
}





/* CALL-TO-ACTION RIBBON ------------------------------ /
* - Homepage, Standard/Fullwidth Interior, Video, and Guidebook templates
*/

.cta {
  flex-direction: column;
}

.cta figure {
  width: 100%;
}

.cta .textbox {
  padding: 2em 1.5em;
}




/* TEXT-FIGURE RIBBON ------------------------------ /
* - Path to 100 template
*/

.text-figure .textbox {
  margin-bottom: 2.5em;
}




/* TEXT-DOWNLOAD RIBBON ------------------------------ /
* - Path to 100 template
*/

.text-download .textbox {
  margin-bottom: 2.5em;
}

.text-download article {
  margin-inline: auto;
}




/* STEPS RIBBON ------------------------------ /
* - Path to 100 template
*/

.steps ul.ws-flex {
  --ws-column-count: 2;
}

.steps ol>li>div {
  padding: 2.75em clamp(1.5em, 1.221em + 1.4vw, 1.875em) 2em;
}




/* NEWS ARCHIVE RIBBON ------------------------------ /
* - template-news.php
*/

.news-archive ul.ws-flex {
  --ws-column-count: 2;
}




/* NICER HUB HERO ------------------------------ /
* - template-nicer-hub.php, template-nicer-hub-subpage.php
*/

.hero-nicer-hub {
  text-align: center;
}

.hero-nicer-hub::before {
  background: var(--ws-dk-blue);
  opacity: .75;
}

.hero-nicer-hub .textbox {
  padding-block: 3em;
}

.hero-nicer-hub figure {
  width: 100%;
}





/* NICER HUB CALLOUTS ------------------------------ /
* - template-nicer-hub.php
*/

.nicer-hub-callouts section:not(:last-of-type)  {
  padding-block: 0 3.5em;
}

.nicer-hub-callouts div.ws-flex {
  --ws-column-count: 2;
}

.nicer-hub-callouts section.heading-above div.ws-flex.count-odd>div:last-of-type,
.nicer-hub-callouts section.heading-inline div.ws-flex.count-even>div:last-of-type {
  /* flex: 1; */
}

.nicer-hub-callouts section.heading-inline div.ws-flex>div:first-child {
  margin: 0 0 1.25em;
  width: 100%;
}




/* NICER HUB HERO ------------------------------ /
* - template-nicer-hub.php, template-nicer-hub-subpage.php
*/

.nicer-floating-banner {
  inset: auto 0 0 0;
  text-align: center;
  width: 100%;
}

.nicer-floating-banner>a {
  border-radius: 1.25em 1.25em 0 0;
  border-bottom: 0;
  margin-inline: auto;
  max-width: calc(100% - 1.5rem);
  padding: 1em;
}

body:is(.page-template-template-nicer-hub, .page-template-template-nicer-hub-subpage)>footer {
  padding-bottom: 11em;
}



/* MAX-WIDTH MEDIA QUERIES ------------------------------ */

/* 650px */
@media (max-width: 40.625em) {

  .callouts ul.ws-flex {
    --ws-column-count: 2;
  }

}



/* 500px */
@media (max-width: 31.25em) {
  .callouts ul.ws-flex {
    margin-inline: auto;
    max-width: 15.1875em;
    --ws-column-count: 1;
  }

  .publications-ribbon .ws-flex {
    background: transparent;
    margin-inline: auto;
    max-width: 15.1875em;
    padding: 0;
    row-gap: 1em;
    --ws-column-count: 1;
  }

  .publications-ribbon article>a {
    background: #FFF;
    border-radius: .625em;
    padding: .8125em .75em 1.25em;
  }

  .gform_fields>div.gfield--width-half {
    width: 100%;
  }

  .gfield--input-type-email .ginput_container_email {
    flex-wrap: wrap;
  }

  .gfield--input-type-email .ginput_container_email > span {
    flex: auto;
    width: 100%;
  }

  .steps ul.ws-flex {
    --ws-column-count: 1;
  }

  .news-archive ul.ws-flex {
    --ws-column-count: 1;
  }

  body>footer.nicer-hub ul.threeCol {
    columns: 1;
  }

  .nicer-hub-callouts div.ws-flex {
    --ws-column-count: 1;
  }

  .downloads ul.ws-flex.two-column,
  .downloads ul.ws-flex.three-column {
    --ws-column-count: 1;
  }


  .callouts-block ul.ws-flex {
    --ws-column-count: 1;
  }


}



@media (max-width: 420px) {
  fieldset.gfield--type-date .gform-grid-row {
    flex-direction: column;
  }
}


/* GRAVITYVIEW LIBRARY ------------------------------ /
* - /nicer-library/ (view 15809)
*/

/* No grid override for the filter bar here on purpose: its auto-fit track list
* in style.css already steps 4 -> 3 -> 2 -> 1 columns on its own, and pinning it
* to one column below 750px only made tablet portrait taller than it needs to be.
*
* GravityView forces its grid columns to width: 100% !important under 480px, so
* that is where the two halves of the widget row actually stack -- centre the
* pills and the entry count there rather than leaving them hard against the
* edges. Above it they stay left/right as in style.css.
*/
@media (max-width: 480px) {
  .content .gv-template-list :is(.gv-widgets-header, .gv-widgets-footer) .gv-grid-row:has(.gv-widget-page-links) {
    justify-content: center;
  }

  .content .gv-widget-page-links ul.page-numbers {
    justify-content: center;
  }

  .content .gv-widget-pagination p {
    text-align: center;
  }
}




/* ----------~~~~~~~~~ STYLE-M.CSS ~~~~~~~~~---------- */
