@charset "UTF-8";
/*
Theme Name: NiCER Hub
Theme URI: https://www.exposure.com/
Author: Exposure
Author URI: https://www.exposure.com/
Description: Standalone theme for the NiCER Hub. Forked from Web Solutions wpCode v2, reduced to the NiCER Hub templates.
Requires at least: 6.1.1
Tested up to: 7.1
Requires PHP: 8.0
Version: 1.0.0
Text Domain: nicerhub
*/


/* All clamps 320 - 1200 unless noted */


:root {

  --ws-blue: #1D7DAA;
  --ws-blue-rgb: 29,125,170;

  --ws-blue-2: #0B6DB7;

  --ws-dk-blue: #015190;
  --ws-dk-blue-rgb: 1,81,144;

  --ws-dk-blue-2: #205098;
  --ws-dk-blue-2-rgb: 32,80,152;

  --ws-lt-blue: #BFD4E9;
  --ws-lt-blue-rgb: 191,212,233;

  --ws-gray: #D2DCEA;
  --ws-gray-rgb: 210,220,234;

  --ws-green: #00853E;
  --ws-green-rgb: 0,133,62;

  --ws-green-AA: #007A39;

  --ws-yellow: #FFED27;

  --ws-light: #ECF2F8;
  --ws-light-2: #EDF1F7;
  --ws-light-3: #E0EFFF;

  --ws-gradient-1: linear-gradient(180deg, var(--ws-light) 0%, var(--ws-light-2) 100%);


  --ws-text-60: clamp(2em, 1.364em + 3.18vw, 3.75em);       /* 32 - 60; */
  --ws-text-38: clamp(1.625em, 1.352em + 1.36vw, 2.375em);  /* 26 - 38; */
  --ws-text-36: clamp(1.563em, 1.313em + 1.25vw, 2.25em);   /* 25 - 36; */
  --ws-text-34: clamp(1.5em, 1.273em + 1.14vw, 2.125em);    /* 24 - 34; */
  --ws-text-32: clamp(1.438em, 1.233em + 1.02vw, 2em);      /* 23 - 32; */
  --ws-text-28: clamp(1.375em, 1.239em + 0.68vw, 1.75em);   /* 22 - 28; */
  --ws-text-26: clamp(1.313em, 1.199em + 0.57vw, 1.625em);  /* 21 - 26; */
  --ws-text-24: clamp(1.25em, 1.159em + 0.45vw, 1.5em);     /* 20 - 24; */
  --ws-text-22: clamp(1.188em, 1.119em + 0.34vw, 1.375em);  /* 19 - 22; */
  --ws-text-20: clamp(1.125em, 1.08em + 0.23vw, 1.25em);    /* 18 - 20; */
  --ws-text-18: clamp(1.0625em, 1.04em + 0.11vw, 1.125em);  /* 17 - 18; */

  --ws-gap: 1.5em;
  --ws-max-content-width: calc(clamp(75em, 48.077em + 30.77vw, 85em) + 2 * var(--ws-gap)); /* 1400 - 1920 */
  --ws-narrow-content-width: calc(clamp(64em, 37.077em + 30.77vw, 74em) + 2 * var(--ws-gap)); /* 1400 - 1920 */

  --ws-transition: all .3s ease;

}



/* montserrat-regular - latin */
@font-face {
  font-display: swap;
  font-family: 'Montserrat';
  font-style: normal;
  font-weight: 400;
  src: url('./fonts/montserrat-v31-latin-regular.woff2') format('woff2');
}
/* montserrat-italic - latin */
@font-face {
  font-display: swap;
  font-family: 'Montserrat';
  font-style: italic;
  font-weight: 400;
  src: url('./fonts/montserrat-v31-latin-italic.woff2') format('woff2');
}
/* montserrat-500 - latin */
@font-face {
  font-display: swap;
  font-family: 'Montserrat';
  font-style: normal;
  font-weight: 500;
  src: url('./fonts/montserrat-v31-latin-500.woff2') format('woff2');
}
/* montserrat-600 - latin */
@font-face {
  font-display: swap;
  font-family: 'Montserrat';
  font-style: normal;
  font-weight: 600;
  src: url('./fonts/montserrat-v31-latin-600.woff2') format('woff2');
}
/* montserrat-700 - latin */
@font-face {
  font-display: swap;
  font-family: 'Montserrat';
  font-style: normal;
  font-weight: 700;
  src: url('./fonts/montserrat-v31-latin-700.woff2') format('woff2');
}
/* montserrat-800 - latin */
@font-face {
  font-display: swap;
  font-family: 'Montserrat';
  font-style: normal;
  font-weight: 800;
  src: url('./fonts/montserrat-v31-latin-800.woff2') format('woff2');
}




html {
  -webkit-box-sizing: border-box;
  box-sizing: border-box;
}

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

body {
  margin: 0;
  padding: 0;
  -webkit-text-size-adjust: none;
  -webkit-font-smoothing: antialiased;
  -moz-osx-font-smoothing: grayscale;
}

img {
  border: 0;
  height: auto;
  max-width: 100%;
}

ul {
  padding-left: 0;
}

ul li {
  list-style: none;
}

html, div, span, applet, object, iframe, h1, h2, h3, h4, h5, h6, p, blockquote, pre, a, abbr, acronym, address, big, cite, code, del, dfn, em, font, img, ins, kbd, q, s, samp, small, strike, strong, sub, sup, tt, var, dl, dt, dd, ol, ul, li, fieldset, form, label, legend, table, caption, tbody, tfoot, thead, tr, th, td, hr {
  font-family: inherit;
  font-size: inherit;
  font-style: inherit;
  font-weight: inherit
}

body {
  background: #FFF;
}

#skipNavigation {
  background: #FFF;
  color: #000;
  left: 0;
  padding: .5em;
  position: absolute;
  top: -1000px;
  z-index: 10
}

#skipNavigation:is(:focus, :active) {
  top: 0;
}

.admin-bar #skipNavigation:is(:focus, :active) {
  top: 32px;
}




/* FONTS ------------------------------ */
body, .text, input, button, select, textarea {
  color: #000;
  font-family: 'Montserrat', sans-serif;
  line-height: 1.5;
  -webkit-font-smoothing: antialiased;
  -moz-osx-font-smoothing: grayscale;
}

/* montserrat-regular - latin */
.no-class {
  font-family: 'Montserrat';
  font-style: normal;
  font-weight: 400;
}

/* montserrat-italic - latin */
.content blockquote p, figcaption, .news-events time {
  font-family: 'Montserrat';
  font-style: italic;
  font-weight: 400;
}

/* montserrat-500 - latin */
#mainnav>ul>li>a, #sidenav>ul>li>ul>li>a, #mobilenav :is(a, button), .news-events strong.title, .intro, .intro p, .hero-nicer-hub :is(h1, strong)>span {
  font-family: 'Montserrat';
  font-style: normal;
  font-weight: 500;
}

/* montserrat-600 - latin */
.semibold, .content :is(h2, h3, h4, h5, h6), .news-archive strong.title, .content a:not(:is(.button, .wp-block-button__link)) {
  font-family: 'Montserrat';
  font-style: normal;
  font-weight: 600;
}

/* montserrat-700 - latin */
h1, h2, h3, #mainnav>ul>li:nth-last-child(2)>a, #sidenav>ul>li>a,
.button, button, input[type="button"], input[type="submit"], input[type="reset"], .wp-block-button__link,
.steps ol>li::before {
  font-family: 'Montserrat';
  font-style: normal;
  font-weight: 700;
}

/* montserrat-800 - latin */
.topics-archive label {
  font-family: 'Montserrat';
  font-style: normal;
  font-weight: 800;
}



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

/* Font sizes: */
.text-60 { font-size: var(--ws-text-60); }
.text-38, h1 { font-size: var(--ws-text-38); }
.text-36, .content h2 { font-size: var(--ws-text-36); }
.text-34, .content h3 { font-size: var(--ws-text-34); }
.text-32, .content h4 { font-size: var(--ws-text-32); }
.text-28, .content h5, .content .highlight h3 { font-size: var(--ws-text-28); }
.text-26, .content h6 { font-size: var(--ws-text-26); }
.text-24 { font-size: var(--ws-text-24); }
.text-22, .content .highlight h4 { font-size: var(--ws-text-22); }
.text-20 { font-size: var(--ws-text-20); }
.text-18 { font-size: var(--ws-text-18); }


/* Colors: */
h1, h2,
.highlight.style-1 h2,
.nicer-hub-content .content h2,
:is(h1,h2,h3,h4,h5,h6,p).dk-blue {
  color: var(--ws-dk-blue);
}

.content h2, .highlight.style-2 h2, h5,
:is(h1,h2,h3,h4,h5,h6,p).green {
  color: var(--ws-green);
}

h3,
:is(h1,h2,h3,h4,h5,h6,p).blue {
  color: var(--ws-blue);
}

h4, h6, :is(h1,h2,h3,h4,h5,h6,p).dk-blue-2 {
  color: var(--ws-dk-blue-2);
}

:is(h1,h2,h3,h4,h5,h6,p).white {
  color: #FFF;
}

:is(h1,h2,h3,h4,h5,h6,p).uppercase {
  text-transform: uppercase;
}


a, a * {
  color: var(--ws-dk-blue);
  text-decoration: none;
}

.content a:not(:is(.button, .wp-block-button__link)) {
  text-decoration: underline;
}

p, h1, h2, h3, h4, h5, h6, hr, blockquote, dd, ol {
  margin-block: 0 1rem;
}

h1, h2, h3, h4, h5, h6, th {
  line-height: 1.053;
}

:is(p, ul, ol, .wp-block-buttons, aside, div, section) + :is(h2, h3, h4, h5, h6) {
  margin-top: 2rem;
}

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

b, strong {
  font-weight: 700;
}

hr,
.wp-block-separator {
  border: 0;
  border-top: .125em solid var(--ws-lt-blue);
  clear: both;
  margin: 2.5em 0;
  padding-top: 1px;
}

sub, sup {
  font-size: .6em;
  line-height: .6em;
  position: relative;
  vertical-align: baseline;
}

sub {
  top: .5ex;
}

sup {
  bottom: 1ex;
}

p {
  text-wrap: pretty;
}

.content p {
  font-size: var(--ws-text-18);
}

.intro, .intro p {
  font-size: var(--ws-text-22);
  line-height: 1.273;
  margin: 0 0 1em;
}

:is(ol, ul, p):last-child {
  margin-bottom: 0;
}


/* Blockquote */
blockquote {
  background: var(--ws-gradient-1);
  border-radius: .625em;
  margin: 2.5em 0;
  padding: 2.5em clamp(1.5em, 1.318em + 0.91vw, 2em) 1.5em;
  width: 100%;
}

.content blockquote p {
  font-size: var(--ws-text-22);
}

blockquote p:last-of-type {
  margin: 0 0 .5em;
}

blockquote :is(footer, cite) {
  display: block;
  text-align: right;
  font-style: normal;
}

blockquote cite::before,
blockquote footer::before {
  content: '\2013\00A0';
}

blockquote p:first-of-type::before {
  content: open-quote;
}

blockquote p:last-of-type::after {
  content: close-quote;
}


/* Lists */
.content :where(ol, ul) li {
  font-size: var(--ws-text-18);
}

.content ol {
  margin: 1.5em 0 1em 0;
}

.content ol li {
  margin: 0 0 1em;
}

.content ol ol li {
  list-style: lower-alpha;
}

.content ul {
  margin: 1.5em 0 1em 0;
}

.content ul li {
  margin: 0 0 .625em;
  padding-left: 2em;
  position: relative;
}

.content :is(ol, ul) li li {
  font-size: 1em;
}

.content ul li::before {
  background: var(--ws-dk-blue);
  content: '';
  height: .75em;
  left: .75em;
  mask: url('./images/icons/circle-arrow-r.svg') no-repeat center / auto 100%;
  position: absolute;
  top: .3125em;
  width: .75em;
}

.content ul li ul li::before {
  opacity: .75;
}

.content :is(ul ul, ol ol) {
  margin-top: 1em;
}

.twoCol, .threeCol, .resCol {
  column-gap: 2em;
}

:is(.twoCol, .threeCol, .resCol) li {
  break-inside: avoid-column;
}

.resCol {
  columns: auto;
}


/* Imagery */
figure {
  line-height: 0;
  margin: 0;
}

figcaption {
  line-height: 1.5;
}

.content :is(.alignright, .alignleft) {
  max-width: min(50%, 20.625em);
}

figure.alignright {
  float: right;
  width: 100%;
}

figure.alignright .videoContainer {
  margin: 0;
}

.content .alignright figcaption {
  text-align: right;
}

.content .alignright img {
  float: none;
  height: auto;
  margin: 0;
  max-width: 100%;
}

 figure.aligncenter {
  clear: both;
  display: block;
  margin: 2em auto;
  text-align: center;
}

.content img.phototreatment {
  height: auto;
  max-width: 50%;
}

.content figure.phototreatment {
  text-align: center;
  width: 100%;
}

.content figure.phototreatment img {
  height: auto;
  max-width: 100%;
  width: auto;
}

img.phototreatment,
img.alignright,
.alignright img {
  border-radius: .625em;
  height: auto;
  max-width: 100%;
  width: auto;
}

.clip-path {
  position: absolute;
}


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

.muted {
  opacity: 0.5;
}

small {
  font-size: .8em;
}

/* blog */
span.posted-on {
  font-size: .85em;
}

span.byline {
  display: block;
  font-size: .85em;
}

article .entry-content {
  padding: 1em 0;
}

.updated {
  display: none;
}

iframe {
  border: 0;
}


/* Tables */

table {
  border-collapse: collapse;
}

td, th {
  empty-cells: show;
  text-align: left;
  vertical-align: middle;
}

.content table {
  width: 100%;
}

figure.wp-block-table {
  line-height: 1.2;
}

.wp-block-table thead {
  border-bottom: 0;
}

.wp-block-table thead th {
  background: #F2F2F2;
  font-weight: bolder;
}




/* SEARCH RESULTS PAGINATION ------------------------------ */

nav.navigation.posts-navigation .nav-links {
  display: flex;
  justify-content: space-between;
}

nav.navigation.posts-navigation .nav-links a {
  font-weight: bolder;
}



/* ADD-ON CLASSES------------------------------ */

.nobr {
  white-space: nowrap;
}

.req, .required {
  color: #C00;
}

.clearfix::after {
  clear: both;
  content: '';
  display: table;
}

/* (embed-container is on /about/our-services/solar-canopy-siting/) */
.videoContainer,
.embed-container {
  line-height: 0;
  position: relative;
  width: 100%;
}

.content :is(.videoContainer,.embed-container) {
  margin-block: 2.5em;
}

.content .topic-media :is(.videoContainer,.embed-container) {
  margin-block: 0;
}

.embed-container {
  margin-inline: auto;
  max-width: 55em;
}

.videoContainer::before,
.embed-container::before {
  content: '';
  display: block;
  padding-top: 56.25%; /* 16:9 */
}

.videoContainer.ratio-4-3 {
  padding-top: 75%; /* 4:3 full-frame */
}

.videoContainer iframe,
.embed-container :is(iframe, object) {
  border: 0;
  height: 100%;
  inset: 0;
  position: absolute;
  width: 100%;
}


figure div.wp-block-embed__wrapper {
  position: static;
}




/* WP BLOCK COLUMNS OVERRIDES  ------------------------------ */
.wp-block-columns {
  column-gap: 1.5em;
  row-gap: 2em;
}

.wp-block-columns .wp-block-image + p {
  margin-top: 1em;
}

.wp-block-columns p>a {
  display: inline-block;
  font-weight: 600;
  margin: 0 0 .125em;
}

.wp-block-columns.align-center {
  align-items: center !important;
}




/* HIGHTLIGHT ------------------------------ */
.highlight {
  clear: both;
  margin: 2.5em 0;
}

.highlight :first-child {
  margin-top: 0;
}

.highlight :last-child,
.highlight ul:last-child li:last-child {
  margin-bottom: 0;
}

.content .highlight h3 {
  color: var(--ws-green-AA);
}


/* Highlight style 1 */
.highlight.style-1 .highlight-content {
  background: var(--ws-gradient-1);
  border-radius: .625em;
  padding: 1.75em clamp(1.5rem, 1.318rem + 0.91vw, 2rem) 2em;
}

.page-template-template-nicer-hub-subpage .highlight.style-1 .highlight-content {
  background: #FFF;
}

.highlight.style-1 h2 {
  padding-inline: .25rem;
}

.content .highlight.style-1 ul li::before {
  background: var(--ws-green);
}


/* Highlight style 2 */
.highlight.style-2 {
  background: #FFF;
  border: 2px solid var(--ws-lt-blue);
  border-radius: .625em;
  padding: 1.5em clamp(1.5rem, 1.318rem + 0.91vw, 2rem) 2em;
}




/* TRANSITIONS ------------------------------ */

a, a *, button, .button, input:is([type="button"], [type="submit"], [type="reset"]),
:is(input, select, textarea):focus-visible, #alertApp, #alertApp span, #alertDesc {
  transition: var(--ws-transition);
}

.stop-transitions * {
  transition: none !important;
}





/* WRAP ------------------------------ */

.wrap,
.fatFooter {
  margin-inline: auto;
  max-width: var(--ws-max-content-width);
  padding-inline: var(--ws-gap);
  width: 100%;
}

.wrap.narrow {
  max-width: var(--ws-narrow-content-width);
}




/* GRID COLUMNS ------------------------------ */

.ws-grid,
.ws-grid-inner {
  display: grid;
  gap: var(--ws-gap);
}

.ws-grid {
  grid-template-columns:
  minmax( 0, 1fr )
  [wrap-start]
  repeat( var(--ws-column-count), minmax( 0, calc( ( ( var(--ws-max-content-width) - ( ( var(--ws-column-count) - 1 ) * var(--ws-gap) ) ) / var(--ws-column-count) ) ) ) )
  [wrap-end]
  minmax( 0, 1fr );
}

.ws-grid-inner {
  grid-template-columns: [wrap-start] repeat( var(--ws-column-count), minmax(0,1fr) ) [wrap-end];
}




/* FLEXBOX COLUMNS ------------------------------ */

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

.ws-flex>:is(article,div,li) {
  width: calc( 99.9% / var(--ws-column-count) - ( var(--ws-gap) * ( var(--ws-column-count) - 1 ) / var(--ws-column-count) ) );
}





/* SIDENAV ------------------------------ */

/* t1 */
#sidenav {
  overflow: hidden;
}

#sidenav ul {
  overflow: hidden;
  padding: 0;
}

#sidenav ul:empty {
  display: none;
}

#sidenav li a {
  display: block;
  line-height: 1;
  position: relative;
  text-decoration: none;
}


/* T2 ----- */
#sidenav>ul>li>a {
  color: var(--ws-dk-blue);
  border-radius: .25rem;
  font-size: var(--ws-text-18);
  padding: .4375em .5em .4375em .75em;
}

#sidenav>ul>li.current_page_item>a,
#sidenav>ul>li.current_page_ancestor>a {
  background: var(--ws-dk-blue);
  color: #FFF;
}

#sidenav>ul>li>ul {
  background: var(--ws-gray);
  border-top: 0;
  border-radius: .3125em;
  overflow: hidden;
  margin: .1875em 0;
}



/* T3 ----- */
#sidenav>ul>li>ul>li>a {
  color: #000;
  font-size: 1em;
  padding: .375em .5em .375em .75em;
}

#sidenav>ul>li>ul>li.current_page_item>a,
#sidenav>ul>li>ul>li.current_page_ancestor>a {
  background: #FFF;
  color: var(--ws-dk-blue);
}

#sidenav>ul>li>ul>li.current_page_item.page_item_has_children>a,
#sidenav>ul>li>ul>li.current_page_ancestor.page_item_has_children>a {
  padding-right: 2.25em;
}

#sidenav>ul>li>ul>li.current_page_item.page_item_has_children>a::after,
#sidenav>ul>li>ul>li.current_page_ancestor.page_item_has_children>a::after {
  background: url('./images/icons/sidenav-down.svg') no-repeat center / contain;
  content: '';
  height: .75em;
  inset: .5em 1em auto auto;
  position: absolute;
  width: .75em;
}


/* T4 ----- */
#sidenav>ul>li>ul>li>ul {
  background: #FFF;
  padding-block: .1875em;
}

#sidenav>ul>li>ul>li>ul>li>a {
  border-radius: .25em;
  color: #444;
  font-size: .9375em;
  padding: .375em .5em .4em 1.75em;
}

#sidenav>ul>li>ul>li>ul>li>a::before {
  content: '\2022';
  inset: .25em auto auto .625em;
  margin: 0 .5em;
  position: absolute;
}

#sidenav>ul>li>ul>li>ul>li.current_page_item,
#sidenav>ul>li>ul>li>ul>li.current_page_ancestor {
  background: var(--ws-blue);
  border-radius: .25em;
}

#sidenav>ul>li>ul>li>ul>li.current_page_item>a,
#sidenav>ul>li>ul>li>ul>li.current_page_ancestor>a {
  color: #FFF;
}


/* T5 ----- */
#sidenav>ul>li>ul>li>ul>li>ul {
  padding-bottom: .5em;
}

#sidenav>ul>li>ul>li>ul>li>ul>li>a {
  color: #FFF;
  font-size: .9375em;
  padding: .375em .5em .4em 2.25em;
}

#sidenav>ul>li>ul>li>ul>li>ul>li.current_page_item>a,
#sidenav>ul>li>ul>li>ul>li>ul>li.current_page_ancestor>a {
  background: #FFF;
  color: var(--ws-blue);
}


/* hide children that arent yours */
#sidenav ul.children {
  display: none;
}

#sidenav li.current_page_ancestor>ul,
#sidenav li.current_page_item>ul {
  display: block;
}





/* FORMS ------------------------------ */

input, button, select {
  line-height: 1.2;
}

input[type="text"], input[type="password"], input[type="tel"], input[type="number"], input[type="email"],
input[type="url"], input[type="search"], textarea, select {
  background-color: #FCFCFC;
  border: 1px solid var(--ws-lt-blue);
  border-radius: .3125em;
  font-size: var(--ws-text-18);
  outline: none;
  padding: .5em .75em;
  width: 100%;
  -webkit-appearance: none;
}

input[type="text"]:focus, input[type="password"]:focus, input[type="tel"]:focus, input[type="number"]:focus,
input[type="email"]:focus, input[type="url"]:focus, input[type="search"]:focus, textarea:focus, select:focus {
  background-color: #FFF;
  border-color: var(--ws-green);
}

textarea {
  display: block;
  resize: vertical;
}

select::-ms-expand {
  display: none;
}

select {
  background: url('./images/icons/select-arrows.svg') no-repeat calc(100% - .875em) 50% / auto 1em;
  padding-right: 2.15rem;
  width: auto;
  -webkit-appearance: none;
  -moz-appearance: none;
}

select option {
  padding: 0 .2em;
}

input::-moz-focus-inner {
  border: 0;
  padding: 0;
}


/* Hide the X from Chrome search input */
input[type="search"]::-webkit-search-decoration,
input[type="search"]::-webkit-search-cancel-button,
input[type="search"]::-webkit-search-results-button,
input[type="search"]::-webkit-search-results-decoration { display: none; }





/* BUTTONS ------------------------------ */

.button, button, input[type="button"], input[type="submit"], input[type="reset"], .wp-block-button__link {
  background: var(--ws-blue);
  border: .125em solid var(--ws-blue);
  border-radius: .3125em;
  color: #FFF;
  cursor: pointer;
  display: inline-block;
  font-size: 1em;
  line-height: 1.063;
  padding: .75em 1.1em;
  text-transform: uppercase;
}

:is(.button, button).small {
  padding: .594em .75em;
}

:is(.button, button).back::before {
  background: url('./images/icons/caret-left.svg') no-repeat left center / auto .8125em;
  content: '';
  padding-right: .9375em;
  transition: var(--ws-transition);
}

:is(.button, button).dk-blue,
.dk-blue .wp-block-button__link {
  background: var(--ws-dk-blue);
  border-color: var(--ws-dk-blue);
}

:is(.button, button).lt-blue,
.lt-blue .wp-block-button__link {
  background: var(--ws-lt-blue);
  border-color: var(--ws-lt-blue);
  color: var(--ws-dk-blue);
}

:is(.button, button).green,
.green .wp-block-button__link {
  background: var(--ws-green);
  border-color: var(--ws-green);
}

:is(.button, button).white,
.white .wp-block-button__link {
  background: #FFF;
  border-color: #FFF;
  color: var(--ws-dk-blue);
}

:is(.button, button).outline,
.outline .wp-block-button__link {
  background: #FFF;
  color: var(--ws-blue);
}

:is(.button, button).green.outline,
.green.outline .wp-block-button__link {
  background: #FFF;
  color: var(--ws-green);
}

:is(.button, button).dk-blue.outline,
.dk-blue.outline .wp-block-button__link {
  background: #FFF;
  color: var(--ws-dk-blue);
}

:is(.button, button).white.outline,
.white.outline .wp-block-button__link {
  background: transparent;
  color: #FFF;
}



.button {
  display: inline-block;
}

.wp-block-buttons, .buttons {
  margin-block: 2em;
}

.wp-block-buttons.center {
  text-align: center;
}

.wp-block-buttons + .wp-block-buttons {
  margin-top: -2em;
}

:is(.wp-block-buttons, .buttons):last-child {
  margin-bottom: 0;
}

.wp-block-buttons .wp-block-button,
.buttons :where(button, .button) {
  margin: .3125em .625em .3125em 0;
}





/* GRAVITY FORMS STYLING ------------------------------ */
.gform_fields {
  display: flex;
  flex-wrap: wrap;
  gap: .625em;
}

.gform_fields fieldset {
  border: 0;
  margin: 1em 0;
  padding: 0;
}

.gform_fields input:not(:is[type="radio"], [type="checkbox"]) {
  width: 100%;
}

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

.gform_fields>div.gfield--width-half {
  width: calc(50% - .3125em);
}

.gform_fields .gfield_required {
  color: #EE0000;
  margin-left: .125em;
}

.gform_fields textarea {
  height: 8.375em;
  width: 100%;
}

.gform-footer input[type="submit"] {
  margin: 1.5em 0 0;
}

.gform_title {
  content-visibility: hidden;
  display: none;
}

.gform_description:empty {
  display: none;
}

fieldset.gfield--type-time {
  margin:0;
}

.gfield--type-time>div {
  align-items: center;
  display: flex;
  gap: .25em;
}

h2.gform_submission_error {
  color: #EE0000;
  font-size: var(--ws-text-20);
}

.gform_validation_errors {
  background: rgba(238,0,0,.05);
  border: 1px solid #EE0000;
  border-radius: .5em;
  font-size: .9375em;
  padding: 1.5em 1em;
}

a.gform_validation_error_link {
  color: #000;
}

.gfield_validation_message {
  color: #EE0000;
}

.gfield.hidden_label>:is(label, legend) {
  border: 0;
  clip: rect(0, 0, 0, 0);
  height: 1px;
  margin: -1px;
  overflow: hidden;
  position: absolute;
  padding: 0;
  width: 1px;
}


/* "Enter Email" and "Confirm email" fields side by side: */
.gfield--input-type-email {
  width: 100%;
}

.gfield--input-type-email .ginput_container_email {
  display: flex;
   gap: clamp(.5em, 0.318em + 0.91vw, 1em);
}

.gfield--input-type-email .ginput_container_email > span {
  flex: 1;
}

.gfield--input-type-email .gf_clear.gf_clear_complex {
  display: none;
}



/* Date dropdowns side by side (month / day / year) */
fieldset:is(.gfield--type-date, .gfield--type-time) {
  margin: 0 0 1em;
  width: 100%;
}

fieldset.gfield--type-date .gform-grid-row {
  display: flex;
  gap: clamp(.5em, 0.318em + 0.91vw, 1em);
}

fieldset.gfield--input-type-datedropdown select {
  width: 100%;
}

fieldset.gfield--type-date .gform-grid-row > div {
  flex: 1;
}



/* Copy URL element on /resources/events/subscribe-to-our-calendar/ */

.copy-url .url {
  background: #FFF;
  border-radius: .625em;
  margin: .5em 0 1.5em;
  padding: .5em;
}

.copy-url button {
  display: table;
  margin-inline: auto;
}




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

.content .callouts-block li {
  margin: 0;
  padding: 0;
}

.content .callouts-block li::before {
  display: none;
}

.callouts-block li>a {
  align-items: center;
  border: 1px solid var(--ws-blue);
  background: #FFF;
  border-radius: .625em;
  display: flex;
  height: 100%;
  justify-content: center;
  line-height: 1.2;
  overflow: hidden;
  padding: 1em;
  position: relative;
  text-align: center;
  text-decoration: none !important;
  text-wrap: pretty;
}

.callouts-block li>a::after {
  background: rgba(var(--ws-blue-rgb), .05);
  content: '';
  inset: 0;
  position: absolute;
}




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

.downloads {
  margin-block: 2em;
  text-align: center;
}

.downloads ul.ws-flex {
  row-gap: 3em;
  --ws-gap: clamp(1.5em, 0.955em + 2.73vw, 3em);
}

.downloads a {
  display: flex;
  flex-direction: column;
  height: 100%;
  text-decoration: none !important;
}

.downloads figure {
  margin: 0 auto 1em;
  max-width: 15em;
  transform-origin: 50% 100%;
}

.downloads img {
  aspect-ratio: 1;
  height: 100%;
  max-height: 16em;
  object-fit: contain;
  object-position: center bottom;
  width: 100%;
}

.downloads strong {
  display: block;
  line-height: 1.2;
  margin: 0 0 1em;
}

.downloads span.button {
  align-self: center;
  margin-top: auto;
}

.downloads article {
  max-width: 20em;
}

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

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


/* Overrides:
* - 'no-aspect-ratio' additional CSS class added to block
* - or when there's only one download in the block
*/
.downloads.no-aspect-ratio figure,
.downloads article:only-child figure {
  max-width: 100%;
}

.downloads.no-aspect-ratio img,
.downloads article:only-child img {
  aspect-ratio: auto;
}




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

.content {
  word-wrap: break-word;
}


.pattern,
.bottom-curve,
.bottom-curve-short,
.bottom-curve-white {
  position: relative;
  z-index: 0;
}

.pattern::before {
  background: linear-gradient(180deg,rgba(255, 255, 255, 0) 0%, rgba(255, 255, 255, 1) 100%), url('./images/graph-paper.svg') repeat center / auto;
  content: '';
  height: 105em;
  inset: 0 0 auto;
  max-height: 100%;
  position: absolute;
  z-index: -1;
}

.pattern.reverse::before {
  background: linear-gradient(0deg,rgba(255, 255, 255, 0) 0%, rgba(255, 255, 255, 1) 100%), url('./images/graph-paper.svg') repeat center / auto;
}

.bottom-curve::after,
.bottom-curve-short::after,
.bottom-curve-white::after {
  content: '';
  inset: auto 0 0 0;
  position: absolute;
  z-index: -1;
}

.bottom-curve::after {
  background: url('./images/bottom-curve.svg') no-repeat center / cover;
  height: 10.125em;
}

.bottom-curve-short::after {
  background: url('./images/bottom-curve-short.svg') no-repeat center / cover;
  height: clamp(2em, 1.591em + 2.05vw, 3.125em);
}

.bottom-curve-white::after {
  background: url('./images/bottom-curve-white.svg') no-repeat center / cover;
  height: clamp(2em, 1.591em + 2.05vw, 3.125em);
}




/* SEARCH RESULTS PAGINATION ------------------------------ */

nav.navigation.posts-navigation .nav-links {
  display: flex;
  justify-content: space-between;
}




/* PAGEHEADER ------------------------------ */

.pageheader {
  background: url('./images/pageheader.webp') no-repeat center / cover;
  clear: both;
  clip-path: url('#curve-pageheader');
  height: clamp(6em, 3.6em + 12vw, 18em); /* 320 - 1920 */
  width: 100%;
}





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

body>footer {
  background: var(--ws-dk-blue);
  color: #FFF;
  padding-block: 3em 2em;
}

body>footer a {
  color: #FFF;
}

body>footer a:not(.button) {
  text-decoration: underline;
  text-decoration-color: transparent;
  text-underline-offset: .1875em;
}

body>footer :is(a.on, .on>a) {
  color: #FFF;
  text-decoration: none;
}

body>footer .current-menu-item a {
  font-weight: 500;
  text-decoration: underline;
}

body>footer address>p {
  display: block;
  line-height: 1.6;
  margin: 0 0 .25em;
}

body>footer form {
  align-items: start;
  display: flex;
  flex-direction: column;
}

body>footer form input[type="email"] {
  padding: .5em .75em;
}

body>footer form input[type="email"]::placeholder {
  border-radius: .1875em;
  color: #000;
  font-style: italic;
}

body>footer form input[type="email"]:focus {
  box-shadow: 0 0 .375em .1875em rgba(255,255,255,.25);
}

body>footer strong.title {
  display: block;
  font-size: var(--ws-text-18);
}

body>footer :is(button, .button) {
  margin: 1em 0 0;
  padding: .5em 1em;
}

body>footer .social strong.title {
  white-space: nowrap;
}

body>footer .social ul {
  display: flex;
  flex-direction: column;
  gap: .5em;
  margin-block: .5em 0;
}

body>footer .social a {
  display: flex;
  position: relative;
}

body>footer .social a::before {
  background: #FFF;
  content: '';
  display: inline-block;
  height: 1.125em;
  margin-right: .75em;
  mask: no-repeat left center / contain;
  position: relative;
  top: .0625em;
  transition: var(--ws-transition);
  width: 1.125em;
}

body>footer .social a.facebook::before { mask-image: url('./images/social/facebook.svg'); }
body>footer .social a.linkedin::before { mask-image: url('./images/social/linkedin.svg'); }
body>footer .social a.youtube::before { mask-image: url('./images/social/youtube.svg'); }


/* Footer bottom */
body>footer>.wrap {
  overflow: visible;
  padding-top: 1em;
}

body>footer>.wrap nav>ul>li {
  display: inline-block;
}

body>footer>.wrap nav>ul>li:nth-child(n+2)::before {
  content: "|";
  margin-inline: .3125em;
}




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

body>footer.nicer-hub .fatFooter .links {
  text-align: left;
}

body>footer.nicer-hub .fatFooter li {
  margin: 0 0 .625em;
}

body>footer.nicer-hub .fatFooter a {
  display: block;
  line-height: 1.375;
  padding-left: 1em;
  position: relative;
}

body>footer.nicer-hub .fatFooter a::before {
  background: #FFF;
  content: '';
  height: .625em;
  inset: .375em auto auto 0;
  mask: url('./images/icons/circle-arrow-r.svg') no-repeat center / contain;
  position: absolute;
  width: .625em;
}




/* SEARCH FORM ------------------------------ /
* - Header search dropdown, search page
*/

form.search-form {
  display: flex;
  gap: .25em;
}

form.search-form button {
  background: transparent;
  border: 0;
  padding: 1em 1.25em;
  position: relative;
}

form.search-form button[type="submit"] {
  background: var(--ws-green);
}

form.search-form button[type="cancel"] {
  background: var(--ws-dk-blue);
}

form.search-form button[type="submit"]::after,
form.search-form button[type="cancel"]::after {
  background: #FFF;
  content: '';
  inset: 0;
  mask: no-repeat center;
  position: absolute;
  transition: var(--ws-transition);
}

form.search-form button[type="submit"]::after {
  mask-image: url('./images/icons/search.svg');
  mask-size: auto 1.125em;
}

form.search-form button[type="cancel"]::after {
  mask-image: url('./images/icons/x-mark.svg');
  mask-size: auto 1em;
}


/* Search page: */
main form.search-form {
  max-width: 35em;
}

main form.search-form input[type="search"] {
  flex: 1;
}




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

.hero {
  clip-path: url('#curve-hero');
}

.hero img {
  object-fit: cover;
  width: 100%;
}





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

.callouts {
  position: relative;
  z-index: 0;
}

.callouts h1>span {
  color: #000;
  display: block;
  font-size: clamp(1.125rem, 1.08rem + 0.23vw, 1.25rem);
  font-weight: 400;
  line-height: 1.4;
  margin: .875em 0 0;
}

.callouts ul.ws-flex {
  justify-content: space-between;
  --ws-gap: 1em;
}

.callouts ul.ws-flex>li>a {
  align-items: start;
  background: #FFF;
  border-radius: .625em;
  box-shadow: 0 .25em .5em 0 rgba(0,0,0,.1), 0 0 .25em 0 rgba(0,0,0,.05);
  display: grid;
  padding: .625em;
}

.callouts figure {
  grid-column: 1;
  grid-row: 1;
  position: relative;
}

.callouts figure::before {
  background: var(--ws-dk-blue);
  content: '';
  inset: 0;
  opacity: 0;
  position: absolute;
  transition: var(--ws-transition);
}

.callouts img {
  aspect-ratio: 243 / 290;
  object-fit: cover;
  width: 100%;
}

.callouts ul.ws-flex {
  justify-content: center;
}

.callouts ul.ws-flex strong {
  background: rgba(255,255,255,.9);
  border-radius: .5em;
  display: block;
  font-size: var(--ws-text-18);
  grid-column: 1;
  grid-row: 1;
  line-height: 1.111;
  margin: 14% auto 0;
  max-width: calc(100% - 1.875em);
  padding: .8125em .5em;
  position: relative;
  text-align: center;
}




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

.news-signup {
  padding-block: 0 1em;
  --ws-gap: 1em;
}

.news-signup .textbox {
  background: var(--ws-dk-blue);
  position: relative;
}

.news-signup figure {
  inset: 0;
  position: absolute;
  z-index: 0;
}

.news-signup figure::after {
  background: linear-gradient(270deg, rgba(var(--ws-dk-blue-rgb), 0) 0%, var(--ws-dk-blue) 100%);
  content: '';
  inset: 0;
  position: absolute;
  z-index: 0;
}

.news-signup figure img {
  height: 100%;
  object-fit: cover;
  opacity: .2;
  width: 100%;
}

.news-signup .textbox>div {
  position: relative;
}

.news-signup .form {
  background: var(--ws-dk-blue);
}

.news-signup .gform_fields .gfield_required {
  color: #FFF;
}

.news-signup label {
  color: #FFF;
}

.news-signup :is(input[type="text"], input[type="email"]) {
  background: rgba(255,255,255,.25);
  border-color: transparent;
  color: #FFF;
}

.news-signup :is(input[type="text"], input[type="email"]):focus {
  background: rgba(255,255,255,.35);
}

.news-signup input[type="submit"] {
  border-color: #FFF;
  background: transparent;
}




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

.publications-ribbon.home {
  background: var(--ws-light-3);
  padding-block: clamp(2.5em, 2.318em + 0.91vw, 3em) clamp(3em, 2.545em + 2.27vw, 4.25em);
}

.publications-ribbon.all-publications {
  margin-block: 2em;
}

.publications-ribbon .heading {
  align-items: center;
  display: flex;
  justify-content: space-between;
  margin: 0 0 1em;
}

.publications-ribbon h2 {
  margin: 0;
}

.publications-ribbon .button {
  padding: .594em .75em;
}

.publications-ribbon .ws-flex {
  background: #FFF;
  border-radius: .625em;
  padding: .8125em .75em 1.25em;
  row-gap: 1.25em;
  text-align: center;
  --ws-gap: .875em;
}

.publications-ribbon article>a {
  display: block;
}

.publications-ribbon figure {
  margin: 0 0 .5em;
  transform-origin: 50% 100%;
}

.publications-ribbon img {
  aspect-ratio: 184 / 239;
  height: 100%;
  object-fit: cover;
  width: 100%;
}


/* All publications page: /resources/publications-library/ */
.publications-ribbon.all-publications .ws-flex {
  --ws-gap: 1.5em;
  row-gap: 2em;
}

.publications-ribbon.all-publications b.link {
  font-size: var(--ws-text-18);
}



/* Home Publications ribbon and single publication on Path to 100 landing page (/path-to-100/) */
b.link {
  display: inline-block;
  font-size: .875em;
  line-height: 1.2;
}

b.link::before {
  background: var(--ws-green);
  content: '';
  display: inline-block;
  height: 1.0625em;
  margin-right: .125em;
  mask: url('./images/icons/download.svg') no-repeat center / contain;
  position: relative;
  top: .125em;
  transition: var(--ws-transition);
  width: 1em;
}





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

.news-events {
  padding-block: clamp(2.5em, 2.273em + 1.14vw, 3.125em) clamp(3em, 2.341em + 3.3vw, 4.813em);
}

.news-events :is(.news, .events)>div {
  background: linear-gradient(180deg, var(--ws-light) 0%, #edf1f7 100%);
  border-radius: .5em;
  margin: 0 0 1.5em;
  padding: 1.125em 1.375em;
}

.news-events ul {
  margin: 0;
  --ws-column-count: 1;
  --ws-gap: .75em;
}

.news-events li + li {
  border-top: .125em solid var(--ws-lt-blue);
  padding-top: .625em;
}

.news-events li>a {
  border-radius: .5em;
  display: block;
  padding: .5em .875em .5em 2em;
  position: relative;
}

.news-events li>a::before {
  background: var(--ws-green-AA);
  content: '';
  height: .8125em;
  left: .5em;
  mask: url('./images/icons/circle-arrow-r.svg') no-repeat center / auto 100%;
  position: absolute;
  top: .9375em;
  width: .8125em;
}

.news-events time {
  display: block;
  margin: .1875em 0 0;
}

.news-events strong.title {
  display: block;
  font-size: var(--ws-text-20);
  line-height: 1.4;
  margin: 0 0 .3125em;
  position: relative;
}

.news-events .events strong.title {
  margin: 0 0 .125em;
}

.news-events em.source {
  display: block;
}

.news-events em.source::before {
  content: '\2013\00A0';
}




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

.welcome {
  overflow: hidden;
  position: relative;
  z-index: 0;
}

.welcome.pattern.reverse::before {
  background: linear-gradient(0deg,rgba(255, 255, 255, 0) 60%, rgba(255, 255, 255, 1) 100%), url('./images/graph-paper.svg') repeat center / auto;
}

.welcome h2 {
  margin-block: 0 .5em;
}

.welcome p {
  font-size: 1.125em;
}

.welcome figure {
  align-items: start;
  background: #FFF;
  border-radius: .625em;
  box-shadow: 0 .25em .5em 0 rgba(0,0,0,.1), 0 0 .25em 0 rgba(0,0,0,.05);
  padding: .625em;
}

.welcome .buttons {
  margin-block: 1.5em;
}

.welcome .button {
  padding-inline: 1.375em;
}






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

.cta {
  display: flex;
  gap: 1em;
  margin: 0 0 1em;
}

.cta .textbox {
  background: var(--ws-blue);
}

.cta h2 {
  color: #FFF;
  font-size: var(--ws-text-32);
}

.cta p {
  color: #FFF;
  font-size: var(--ws-text-20);
}

.cta figure img {
  height: 100%;
  object-fit: cover;
  width: 100%;
}

.cta .button {
  margin-top: .375em;
  padding-inline: 1.1em;
}




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

.page-template-template-path-to-100 main.pattern::before {
  height: 52em;
}

.text-figure {
  padding-block: 2.375em clamp(4em, 3.273em + 3.64vw, 6em);
}

.text-figure .heading {
  margin: 0 0 2em;
}

.text-figure h1 {
  font-size: var(--ws-text-38);
}

.text-figure h1>span {
  color: var(--ws-green);
  display: block;
  font-size: .947em;
  margin: .125em 0 0;
}

.text-figure .button {
  margin: .75em 0 0;
}

.text-figure figcaption {
  margin: .5em 0 0;
}





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

.text-download {
  padding-block: 3.875em;
}

.text-download .button {
  margin: .75em 0 0;
}

.text-download article {
  max-width: 18.3125em;
}

.text-download article>a {
  background: var(--ws-light-2);
  border-radius: .625em;
  display: block;
  padding: 1em 1em .875em;
  text-align: center;
}

.text-download article figure {
  margin: 0 0 .75em;
  transform-origin: 50% 100%;
}

.text-download article b.link {
  font-size: var(--ws-text-18);
}




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

.steps {
  background: var(--ws-light-3);
  padding-block: clamp(3em, 2.636em + 1.82vw, 4em) clamp(5em, 4.273em + 3.64vw, 7em);
  position: relative;
}

.steps .textbox {
  margin:  0 0 3em;
}

.steps p {
  font-size: var(--ws-text-18);
}

.steps ol {
  counter-reset: steps-counter;
  list-style: none;
  padding: 0;
}

.steps ol>li {
  background: #FFF;
  border: .125em solid var(--ws-lt-blue);
  border-radius: .625em;
  counter-increment: steps-counter;
  position: relative;
}

.steps ol>li+li {
  margin-top: 4.125em;
}

.steps ol>li::before {
  background: var(--ws-green);
  border: .1875rem solid #FFF;
  border-radius: 1.5625em .625em .625em 1.5625em;
  color: #FFF;
  content: 'STEP ' counter(steps-counter);
  font-size: var(--ws-text-22);
  inset: -1.125em auto auto -.725em;
  line-height: 1;
  padding: .55em 1em;
  position: absolute;
}

.steps strong.title {
  color: var(--ws-blue-2);
  font-size: var(--ws-text-26);
}

.steps .button {
  margin: .75em 0 0;
}

.steps figure {
  overflow: hidden;
}

/* Last step callouts: */
.steps li.actions strong.title {
  display: block;
  margin: 0 0 2.5em;
}

.steps ul.ws-flex {
  --ws-gap: 1em;
  row-gap: 3em;
}

.steps ul.ws-flex>li>a {
  align-items: center;
  display: flex;
  background: rgba(var(--ws-lt-blue-rgb), .5);
  border: 2px solid var(--ws-lt-blue);
  border-radius: .3125em;
  height: 100%;
  justify-content: center;
  padding: 3.3125em .75em 2.6875em;
  position: relative;
}

.steps ul.ws-flex>li>a::before,
.steps ul.ws-flex>li>a::after {
  aspect-ratio: 1;
  content: '';
  inset: 0 auto auto 50%;
  position: absolute;
  transform: translate(-50%,-50%);
}

.steps ul.ws-flex>li>a::before {
  border-radius: 50%;
  border: .25em solid #FFF;
  width: 4.5em;
}

.steps ul.ws-flex>li>a::after {
  background: #FFF;
  mask: no-repeat center / contain;
  width: 2em;
}

.steps ul.ws-flex>li.bus>a::after { mask-image: url('./images/icons/selectable/bus.svg'); }
.steps ul.ws-flex>li.light-bulb>a::after { mask-image: url('./images/icons/selectable/light-bulb.svg'); }
.steps ul.ws-flex>li.plug>a::after { mask-image: url('./images/icons/selectable/plug.svg'); }
.steps ul.ws-flex>li.windmill>a::after { left: calc(50% - .125em); mask-image: url('./images/icons/selectable/windmill.svg'); }

.steps ul.ws-flex>li>a>strong {
  display: block;
  font-size: var(--ws-text-18);
  line-height: 1.2;
  text-align: center;
}


.steps ul.ws-flex>li:nth-child(odd)>a::before { background: var(--ws-green); }
.steps ul.ws-flex>li:nth-child(even)>a::before { background: var(--ws-dk-blue); }


/* Swap colors between 501px - 900px screen width when there's rows of 2 */
@media (max-width: 56.25em) and (min-width: 31.3125em) {
  .steps ul.ws-flex>li:nth-child(4n+1)>a::before,
  .steps ul.ws-flex>li:nth-child(4n+4)>a::before { background: var(--ws-green); }

  .steps ul.ws-flex>li:nth-child(4n+2)>a::before,
  .steps ul.ws-flex>li:nth-child(4n+3)>a::before { background: var(--ws-dk-blue); }
}




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

.news-archive .content li {
  font-size: 1em;
  margin: 0;
  padding: 0;
}

.news-archive .content li::before {
  display: none;
}

.news-archive li>a {
  background: #FFF;
  border: 2px solid var(--ws-lt-blue);
  border-radius: .3125em;
  display: block;
  height: 100%;
  overflow: hidden;
  padding: 1.75em 1.5em;
  position: relative;
  text-decoration: none !important;
  z-index: 0;
}

.news-archive li>a::before {
  background: rgba(var(--ws-lt-blue-rgb), .1);
  content: '';
  inset: 0;
  position: absolute;
  transition: var(--ws-transition);
  z-index: -1;
}

.news-archive strong.title {
  display: block;
  font-size: var(--ws-text-20);
  line-height: 1.25;
  margin: 0 0 .25em;
}

.news-archive time {
  background: rgba(var(--ws-blue-rgb), .15);
  border-radius: .3125em;
  color: var(--ws-dk-blue);
  display: table;
  font-size: .8125em;
  line-height: 1.25;
  margin: 0 0 1em;
  padding: .125em .5em;
}

.news-archive em.source {
  display: block;
  line-height: 1.25;
  margin: 0 0 .75em;
}

.news-archive em.source::before {
  content: '\2013\00A0';
}

.news-archive p {
  color: #000 !important;
  font-size: 1em;
  font-weight: 400;
}




/* PAGINATION ------------------------------ /
* - template-news.php
*/

.loading {
  text-align: center;
}

p.no-posts {
  margin-top: .5em;
  text-align: center;
}

.pagination {
  align-items: center;
  display: flex;
  justify-content: center;
  margin-block: clamp(2em, 1.273em + 3.64vw, 4em) 0;
  text-align: center;
}

.pagination>div {
  display: flex;
  position: relative;
  z-index: 0;
}

.pagination a:where(.next, .prev) {
  background: #FFF;
  color: #000;
  padding: .125em .75em;
}

.pagination :where(a.page-numbers, span.current, span.dots) {
  border-radius: .125em;
  display: inline-block;
  margin-inline: .125em;
  min-width: 1.75em;
  padding: .125em .25em;
  text-decoration: none !important;
}

.pagination :where(a.page-numbers, span.current, span.dots):not(:is(.next, .prev)) {
  background: var(--ws-light);
}

.pagination a.page-numbers:not(:is(.next, .prev)) {
  color: #000;
}

.pagination span.current {
  background: var(--ws-blue);
  color: #FFF;
}





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

main.nicer-hub {
  background: var(--ws-light-2);
}

.hero-nicer-hub {
  background: var(--ws-dk-blue);
  clip-path: url('#curve-hero');
  display: grid;
  grid-template-columns: 1fr;
  position: relative;
}

.hero-nicer-hub::before {
  content: '';
  inset: 0;
  position: absolute;
}

.hero-nicer-hub .wrap {
  align-self: center;
  grid-column: 1;
  grid-row: 1;
  position: relative;
  z-index: 1;
}

.hero-nicer-hub :is(h1, strong) {
  color: #FFF;
  display: block;
  line-height: 1.2;
  font-size: var(--ws-text-60);
}

.hero-nicer-hub :is(h1, strong)>span {
  display: block;
  font-size: .633em;
  margin: .375em 0 0;
  text-transform: uppercase;
}

.hero-nicer-hub figure {
  grid-column: 1;
  grid-row: 1;
}

.hero-nicer-hub img {
  height: 100%;
  object-fit: cover;
  width: 100%;
}




/* NICER HUB CONTENT RIBBON ------------------------------ /
* - template-nicer-hub.php
*/

.nicer-hub-content {
  padding-block: 2em;
}

.nicer-hub-content h2 {
  font-size: var(--ws-text-38);
  font-weight: 700;
  text-transform: uppercase;
}

.nicer-hub-content ul.wp-block-social-links li:before {
  content: none;
}

.nicer-hub-content .wp-block-social-links .wp-block-social-link.wp-social-link {
  margin: .25rem;
}

.nicer-hub-content .wp-block-social-links .wp-block-social-link.wp-social-link .wp-block-social-link-anchor svg {
  color: #FFF;
  fill: #FFF;
}



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

.nicer-hub-callouts {
  padding-block: 2em clamp(3em, 1.909em + 5.45vw, 6em);
}

.nicer-hub-callouts section.heading-above h2 {
  margin: 0 0 .75em;
}

.nicer-hub-callouts section.heading-inline h2 {
  margin: 0 0 .5em;
}

.nicer-hub-callouts div.ws-flex {
  --ws-gap: 1em;
}

.nicer-hub-callouts section.heading-inline .textbox {
  align-self: center;
}

.nicer-hub-callouts .callout>a {
  background: #FFF;
  border: 2px solid var(--ws-lt-blue);
  border-radius: .625em;
  box-shadow: 0 .25em .5em 0 rgba(0, 0, 0, 0.1);
  display: flex;
  flex-direction: column;
  height: 100%;
  padding: 1.6875em 1.5em 2em;
  text-align: center;
}

.nicer-hub-callouts p {
  color: #000 !important;
}

.nicer-hub-callouts span.button {
  align-self: center;
  display: inline-block;
  margin-top: auto;
}

.nicer-hub-callouts strong.title {
  color: var(--ws-dk-blue);
  display: block;
  line-height: 1.182;
  margin: 0 0 .125em;
  text-wrap: pretty;
}

.nicer-hub-callouts strong.title::before {
  content: '';
  display: block;
  height: 2.2em;
  margin: 0 auto .625em;
  mask: no-repeat center / contain;
  width: 2.3em;
}

.nicer-hub-callouts div.blue strong.title::before { background: var(--ws-blue); }
.nicer-hub-callouts div.dk-blue strong.title::before { background: var(--ws-dk-blue); }

/* Selectable icons: */
.nicer-hub-callouts strong.book::before { mask-image: url('./images/icons-selectable/book-duotone.svg'); }
.nicer-hub-callouts strong.bullhorn::before { mask-image: url('./images/icons-selectable/bullhorn-duotone.svg'); }
.nicer-hub-callouts strong.calendar::before { mask-image: url('./images/icons-selectable/calendar-duotone.svg'); }
.nicer-hub-callouts strong.earth::before { mask-image: url('./images/icons-selectable/earth-duotone.svg'); }
.nicer-hub-callouts strong.fire::before { mask-image: url('./images/icons-selectable/fire-duotone.svg'); }
.nicer-hub-callouts strong.map::before { mask-image: url('./images/icons-selectable/map-duotone.svg'); }
.nicer-hub-callouts strong.people::before { mask-image: url('./images/icons-selectable/people-duotone.svg'); }
.nicer-hub-callouts strong.students::before { mask-image: url('./images/icons-selectable/students-duotone.svg'); }
.nicer-hub-callouts strong.sun::before { mask-image: url('./images/icons-selectable/sun-duotone.svg'); }
.nicer-hub-callouts strong.water::before { mask-image: url('./images/icons-selectable/water-duotone.svg'); }
.nicer-hub-callouts strong.wind::before { mask-image: url('./images/icons-selectable/wind-duotone.svg'); }




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

.nicer-floating-banner {
  font-size: clamp(0.875em, 0.83em + 0.23vw, 1em);
  line-height: 1.111;
  position: fixed;
  z-index: 3;
}

.nicer-floating-banner>a {
  background: var(--ws-green);
  border: clamp(0.1875em, 0.165em + 0.11vw, 0.25em) solid #FFF;
  display: block;
  overflow: hidden;
  position: relative;
  z-index: 0;
}

.nicer-floating-banner>a::before {
  content: '';
  inset: 0;
  position: absolute;
  transition: var(--ws-transition);
  z-index: -1;
}

.nicer-floating-banner strong.title {
  color: #FFF;
  display: block;
  font-size: var(--ws-text-18);
  margin: 0 0 .5em;
}

.nicer-floating-banner p {
  color: #FFF !important;
  font-size: var(--ws-text-18);
}

.nicer-floating-banner span.button {
  font-size: .875em;
  background: #FFF;
  border-color: #FFF;
  color: var(--ws-green);
}




/* ELFSIGHT VIDEO PLUGIN ------------------------------ /
* - i.e. /resources/topics/judi-friedman-on-nutmeg-tv/
*/

main .swiper-pagination-bullet {
  background: var(--ws-green-AA) !important;
}

main .swiper-pagination-bullet.swiper-pagination-bullet-active {
  background: var(--ws-dk-blue) !important
}




/* GOOGLE EVENTS CALENDAR ------------------------------ /
* - /resources/events/
*/

.content .simcal-calendar ul>li::before {
  display: none;
}

.simcal-default-calendar-grid>table tbody td.simcal-present>div {
  border: 1px solid var(--ws-green-AA) !important;
}

.simcal-default-calendar-grid>table tbody td.simcal-present>div .simcal-day-number {
  background: var(--ws-green-AA) !important;
}

.simcal-default-calendar-grid.simcal-default-calendar-light td.simcal-day-has-events .simcal-day-number {
  background: var(--ws-dk-blue) !important;
}




/* GRAVITYVIEW LIBRARY ------------------------------ /
* - /nicer-library/ (view 15809), rendered inside .nicer-hub-content .content
*
* gv-default-styles.css and list-view.css are printed by the shortcode AFTER
* the theme stylesheets, so every selector here is pitched a notch above the
* GravityView rule it replaces (each one is noted). That is also why there is
* no !important in this section -- specificity is doing the work.
*/

/* Search / filter bar.
*
* The view's Search Layout setting puts .gv-search-horizontal on the <form>,
* but GravityView's own row rule looks for that class on .gv-search-widget-area,
* so all that lands is `.gv-search-horizontal .gv-search-box { flex: 1 1 10em }`.
* The widget area is flex-direction:column (from .gv-search-rows), so that 10em
* basis sizes the HEIGHT of each field -- 160px boxes with ~76px of dead air
* apiece, and a header ~300px taller than it needs to be. Grid ignores
* flex-basis, so this lays the fields out in a row and neutralizes the bug
* under either Search Layout setting.
*/

/* beats .gv-widget-search { margin: 20px -10px } */
.content form.gv-widget-search {
  margin: 0;
}

/* beats .gv-widget-search.gv-search-rows .gv-search-widget-area (0,3,0) */
.content form.gv-widget-search .gv-search-widget-area {
  align-items: end;
  display: grid;
  gap: .75em 1em;
  grid-template-columns: repeat(auto-fit, minmax(14em, 1fr));
}

/* beats .gv-widget-search .gv-search-box { min-width: 100px; margin: 0 10px } */
.content form.gv-widget-search .gv-search-box {
  margin: 0;
  min-width: 0;
}

/* beats .gv-widget-search p { margin: 0 0 .75em } */
.content form.gv-widget-search p {
  margin: 0;
}

.content form.gv-widget-search label {
  display: block;
  font-size: var(--ws-text-18);
  margin: 0 0 .25em;
}

/* select{} ships width:auto, so untouched each box stretches to fit its
* longest option -- 480px+ for "Energy Equity & Environmental Justice"
*/
.content form.gv-widget-search :is(input[type="search"], input[type="text"], select) {
  width: 100%;
}

/* Submit gets its own full-width row so the Clear link has somewhere to go
* when GravityView adds .gv-is-search.
* Beats .gv-widget-search .gv-search-box.gv-search-box-submit (0,3,0)
*/
.content form.gv-widget-search .gv-search-box.gv-search-box-submit {
  gap: .5em;
  grid-column: 1 / -1;
  justify-content: flex-start;
  margin-top: .25em;
  width: auto;
}

/* Secondary treatment, same values as the theme's .outline button variant, so
* Clear reads below Search. Beats .gv-is-search .gv-search-clear (0,2,0).
*/
.content form.gv-widget-search .gv-search-clear {
  background: #FFF;
  color: var(--ws-blue);
  height: auto;
  margin: 0;
}


/* Widget rows (entry count + page links).
* GravityView floats these as half-columns; flex lets them sit on one baseline
* and stack cleanly once its own <=480px `width: 100% !important` kicks in.
*/
.content .gv-template-list :is(.gv-widgets-header, .gv-widgets-footer) .gv-grid-row:has(.gv-widget-page-links) {
  align-items: center;
  display: flex;
  flex-wrap: wrap;
  gap: .5em 1em;
  justify-content: space-between;
  margin-block: 1.25em;
}

/* .gv-grid .gv-grid-row::before/::after are GravityView's float clearfix; once
* the row is a flex container they become flex items and eat both ends of the
* space-between, pushing the count inward and the pills off the right edge.
*/
.content .gv-template-list :is(.gv-widgets-header, .gv-widgets-footer) .gv-grid-row:has(.gv-widget-page-links)::before,
.content .gv-template-list :is(.gv-widgets-header, .gv-widgets-footer) .gv-grid-row:has(.gv-widget-page-links)::after {
  display: none;
}

/* flex-grow so a wrapped row still spans the full width and the page links
* resolve against their own flex-end rather than the start of the new line
*/
.content .gv-template-list :is(.gv-widgets-header, .gv-widgets-footer) .gv-grid-row:has(.gv-widget-page-links) > [class*="gv-grid-col-"] {
  flex: 1 1 auto;
  float: none;
  padding-right: 0;
  width: auto;
}

.content .gv-widget-pagination p {
  font-size: var(--ws-text-18);
  margin: 0;
}


/* Page links.
*
* These live inside .content, so untouched they inherit the bulleted-list arrow
* (.content ul li::before) straight through the page numbers, plus the body-copy
* underline. Styled here to match the theme's own .pagination pills.
*/

/* beats body .gv-widget-page-links ul (0,1,2) */
.content .gv-widget-page-links ul.page-numbers {
  display: flex;
  flex-wrap: wrap;
  gap: .25em;
  justify-content: flex-end;
  margin: 0;
}

.content .gv-widget-page-links ul.page-numbers li {
  margin: 0;
  padding: 0;
}

/* the theme's list arrow -- keep it off the pagination, not off entry lists */
.content .gv-widget-page-links ul.page-numbers li::before {
  display: none;
}

/* beats body .gv-widget-page-links li .page-numbers (0,2,2)
* and .content a:not(:is(.button, .wp-block-button__link)) (0,2,1)
*/
.content .gv-widget-page-links ul.page-numbers li .page-numbers {
  align-items: center;
  border: 1px solid transparent;
  border-radius: .25em;
  display: inline-flex;
  font-size: var(--ws-text-18);
  justify-content: center;
  line-height: 1;
  min-width: 2.5em;
  padding: .5em;
  text-decoration: none;
  transition: var(--ws-transition);
}

.content .gv-widget-page-links ul.page-numbers li :is(a.page-numbers, span.dots) {
  background: var(--ws-light);
  color: #000;
}

.content .gv-widget-page-links ul.page-numbers li span.dots {
  background: none;
  min-width: 1em;
}

.content .gv-widget-page-links ul.page-numbers li span.current {
  background: var(--ws-blue);
  color: #FFF;
  font-weight: 700;
}

.content .gv-widget-page-links ul.page-numbers li a:is(.next, .prev) {
  background: #FFF;
  border-color: var(--ws-lt-blue);
}


/* Page rhythm above the view.
* The library page content opens with an empty columns block -- a zero-height
* spacer whose margin is the only thing holding the "Back to Hub" button off
* the hero. Drop it and set the spacing deliberately instead.
*/
.nicer-hub-content .content > .wp-block-columns:has(> .wp-block-column:only-child:empty) {
  display: none;
}

.nicer-hub-content .content > .wp-block-buttons {
  margin-block: 1.5em;
}




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