/* ----------------------------------------- *
 * Fluid Spacing
 * @link https://utopia.fyi/space/calculator/?c=320,21,1.2,1280,24,1.25,5,2,&s=0.75|0.5|0.25|0,1.5|2|3|4|6|8,4xs-xs|xs-m|s-l&g=s,l,xl,12
 * ----------------------------------------- */
:root {
    --space-4xs: 0;
    --space-3xs: clamp(0.3125rem, 0.2917rem + 0.1042vi, 0.375rem);
    --space-2xs: clamp(0.6875rem, 0.6667rem + 0.1042vi, 0.75rem);
    --space-xs: clamp(1rem, 0.9583rem + 0.2083vi, 1.125rem);
    --space-s: clamp(1.3125rem, 1.25rem + 0.3125vi, 1.5rem);
    --space-m: clamp(2rem, 1.9167rem + 0.4167vi, 2.25rem);
    --space-l: clamp(2.625rem, 2.5rem + 0.625vi, 3rem);
    --space-xl: clamp(3.9375rem, 3.75rem + 0.9375vi, 4.5rem);
    --space-2xl: clamp(5.25rem, 5rem + 1.25vi, 6rem);
    --space-3xl: clamp(7.875rem, 7.5rem + 1.875vi, 9rem);
    --space-4xl: clamp(10.5rem, 10rem + 2.5vi, 12rem);

    /* One-up pairs */
    --space-4xs-3xs: clamp(0rem, -0.125rem + 0.625vi, 0.375rem);
    --space-3xs-2xs: clamp(0.3125rem, 0.1667rem + 0.7292vi, 0.75rem);
    --space-2xs-xs: clamp(0.6875rem, 0.5417rem + 0.7292vi, 1.125rem);
    --space-xs-s: clamp(1rem, 0.8333rem + 0.8333vi, 1.5rem);
    --space-s-m: clamp(1.3125rem, 1rem + 1.5625vi, 2.25rem);
    --space-m-l: clamp(2rem, 1.6667rem + 1.6667vi, 3rem);
    --space-l-xl: clamp(2.625rem, 2rem + 3.125vi, 4.5rem);
    --space-xl-2xl: clamp(3.9375rem, 3.25rem + 3.4375vi, 6rem);
    --space-2xl-3xl: clamp(5.25rem, 4rem + 6.25vi, 9rem);
    --space-3xl-4xl: clamp(7.875rem, 6.5rem + 6.875vi, 12rem);

    /* Custom pairs */
    --space-4xs-xs: clamp(0rem, -0.375rem + 1.875vi, 1.125rem);
    --space-xs-m: clamp(1rem, 0.5833rem + 2.0833vi, 2.25rem);
    --space-s-l: clamp(1.3125rem, 0.75rem + 2.8125vi, 3rem);

    --space-gutter: var(--space-xs-s);
    --width-max: 1200px;
}


hr {
    margin-block: 1rem;
    border: 0;
    border-top: 1px solid var(--wp--preset--color--light-grey);
}

input:not([type=checkbox]):not([type=radio]):not([type=submit]),
textarea,
select,
optgroup {
    appearance: none;
    padding-block: var(--space-3xs-2xs);
    padding-inline: .75em;
    border: 1px solid var(--wp--preset--color--light-grey);
    border-radius: var(--wp--custom--border--radius--small);
    background-clip: padding-box;
    background-color: var(--wp--preset--color--pure-white);
    background-image: none;
    color: var(--wp--preset--color--base-black);
    transition: border-color 0.15s ease-in-out, box-shadow 0.15s ease-in-out;
}

input[type=radio],
input[type=checkbox] {
    padding: 0;
    display: inline;
    vertical-align: middle;
}

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

.sr-only-focusable:active,
.sr-only-focusable:focus {
    position        : static;
    width           : auto;
    height          : auto;
    margin          : 0;
    overflow        : visible;
    clip            : auto;
    outline         : none;
}

.skip-link {
    display         : block;
    padding         : 1em;
    background-color: var(--wp--preset--color--muted-black);
    outline         : 0;
    font-weight     : var(--wp--custom--font-weight--medium);
}

.skip-link:active,
.skip-link:focus { color: var(--wp--preset--color--pure-white); }

.skiplink-text {
    padding         : 0.5em;
    outline         : 1px dotted;
}

/** Typography
-------------------------------------------------------------- */
small           { font-size: var(--wp--preset--font-size--small); }

.text-muted     { color: var(--wp--preset--color--muted-black); }
.text-center    { text-align: center; }

.entry-header,
.page-header,
.page-header .page-title {
    margin-block-end : var(--space-xs-s) !important;
}

/* Animations
-------------------------------------------------------------- */
.fade {
    opacity       : 0;
    transition    : opacity 0.15s linear;
}
.fade.in        { opacity: 1; }

.collapse       { display: none; }
.collapse.in    { display: block; }

.collapsing {
    position      : relative;
    height        : 0;
    overflow      : hidden;
    transition    : height 0.35s ease;
}

/** Header
-------------------------------------------------------------- */
.site-logo { padding-block: var(--space-2xs); }

.navbar-brand {
    max-width       : 100%;
    float           : none;
    display         : block;
    margin-inline   : 0;
    padding         : 0;
    font-size       : var(--wp--preset--font-size--x-large);
    line-height     : 1;
    color           : var(--wp--preset--color--base-black);
}
.navbar-brand:hover,
.navbar-brand:focus {
    color           : var(--wp--preset--color--muted-black);
}

/** Site banner CTA
-------------------------------------------------------------- */
.site-banner .cta-contact { margin: var(--space-xs-s) 0 0; }
.site-banner .cta-contact li:not(:last-child) { margin-bottom: var(--space-3xs); }

@media ( min-width: 768px ) {
    .site-banner .cta-avatar img { margin-left: var(--space-xs); }
    .site-banner .cta-contact { margin-block : 0; }
    .site-banner .wp-block-button__link {
        text-align: right;
        width: unset;
    }
}

/* Primary navigation: navbar
-------------------------------------------------------------- */
.navbar {
    position          : relative;
    margin-bottom     : 0;
    background-color  : var(--wp--preset--color--base-black);
}

.navbar:before,
.navbar:after,
.navbar-header:before,
.navbar-header:after,
.navbar-nav:before,
.navbar-nav:after {
    display         : table;
    content         : " ";
}
.navbar:after,
.navbar-header:after,
.navbar-nav:after       { clear: both; }

.navbar-collapse {
    overflow-x        : visible;
    box-shadow        : inset 0 1px 0 rgba(255, 255, 255, 0.1);
}
.navbar-collapse.in     { overflow-y: auto; }

.navbar-collapse:before,
.navbar-collapse:after {
    display         : table;
    content         : " ";
}
.navbar-collapse:after  { clear: both; }

.navbar-toggle {
    position: relative;
    float: right;
    padding: .5em;
    margin-block: .35em;
    margin-right: var(--space-gutter);
    color: var(--wp--preset--color--pure-white);
    background-color: var(--wp--preset--color--black);
    border: none;
}

.navbar-toggle .icon-bar {
    display: block;
    width: 1.15em;
    height: 3px;
    background-color: var(--wp--preset--color--pure-white);
}
.navbar-toggle .icon-bar + .icon-bar { margin-top: 4px; }

.navbar-nav {
    padding-block       : 0;
    list-style          : none;
    font-family         : var(--wp--preset--font-family--geometric-humanist);
    font-size           : var(--wp--preset--font-size--small);
}

.navbar-nav > li {
    position            : relative;
    display             : block;
}

.navbar-nav > li > a {
    position            : relative;
    display             : block;
    padding             : .65em .85em;
    line-height         : var(--wp--custom--line-height--small);
    color               : var(--wp--preset--color--light-grey);
    font-weight         : var(--wp--custom--font-weight--medium);
    text-decoration     : none;
}
.navbar-nav > li > a:hover,
.navbar-nav > li > a:focus {
    color               : var(--wp--preset--color--pure-white);
    background-color    : var(--wp--preset--color--muted-black);
}

.navbar-nav .open > a {
    color               : var(--wp--preset--color--pure-white);
    background-color    : var(--wp--preset--color--dl-primary);
}

.navbar-nav > li > .dropdown-menu { margin-top: 0; }

.navbar-nav > .dropdown > a .caret {
    border-top-color    : var(--wp--preset--color--mid-grey);
    border-bottom-color : var(--wp--preset--color--mid-grey);
}
.navbar-nav > .dropdown > a:hover .caret {
    border-top-color    : var(--wp--preset--color--pure-white);
    border-bottom-color : var(--wp--preset--color--pure-white);
}

.navbar-nav > .open > a .caret,
.navbar-nav > .open > a:hover .caret,
.navbar-nav > .open > a:focus .caret {
    border-top-color    : var(--wp--preset--color--pure-white);
    border-bottom-color : var(--wp--preset--color--pure-white);
}

.navbar-nav > li.disabled > a {
    color               : var(--wp--preset--color--mid-grey);
    background-color    : var(--wp--preset--color--muted-black)
}
.navbar-nav > li.disabled > a:hover,
.navbar-nav > li.disabled > a:focus {
    text-decoration     : none;
    cursor              : not-allowed;
}

.caret {
    display: inline-block;
    width: 8px;
    height: 0;
    margin-left: 2px;
    vertical-align: middle;
    border-top: 4px solid var(--wp--preset--color--base-black);
    border-right: 4px solid transparent;
    border-bottom: 0 dotted;
    border-left: 4px solid transparent;
}

.dropdown { position: relative; }
.dropdown-toggle:focus { outline: 0; }

.dropdown-menu {
    position        : absolute;
    top             : 100%;
    left            : 0;
    z-index         : 100000;
    display         : none;
    float           : left;
    min-width       : 160px;
    padding-block   : .5em;
    padding-inline  : 0;
    margin          : 2px 0 0;
    font-size       : var(--wp--preset--font-size--small);
    list-style      : none;
    background-color: var(--wp--preset--color--pure-white);
    border          : 1px solid var(--wp--preset--color--mid-grey);
    box-shadow      : 0 6px 12px rgba(0, 0, 0, 0.175);
    background-clip : padding-box;
}

.navbar-nav .nav-divider,
.dropdown-menu .divider {
    height              : 1px;
    margin              : .5rem 0;
    overflow            : hidden;
    background-color    : var(--wp--preset--color--light-grey);
}

.dropdown-menu > li > a {
    display           : block;
    padding           : .65em .85em .65em 1.5em;
    clear             : both;
    font-weight       : var(--wp--custom--font-weight--light);
    text-decoration   : none;
    color             : var(--wp--preset--color--black);
    white-space       : nowrap;
}

.dropdown-menu > li > a:hover,
.dropdown-menu > li > a:focus {
    color             : var(--wp--preset--color--pure-white);
    background-color  : var(--wp--preset--color--muted-black);
}

.navbar-nav > .active > a,
.dropdown-menu > .active > a {
    color             : var(--wp--preset--color--pure-white);
    background-color  : var(--wp--preset--color--dl-primary);
    outline           : 0;
}

.dropdown-menu > .disabled > a,
.dropdown-menu > .disabled > a:hover,
.dropdown-menu > .disabled > a:focus {
    color              : var(--wp--preset--color--mid-grey);
    background-color   : transparent;
}

.dropdown-menu > .disabled > a:hover,
.dropdown-menu > .disabled > a:focus {
text-decoration: none;
cursor: not-allowed;
background-color: transparent;
background-image: none;
}

.open > .dropdown-menu {
display: block; }

.open > a {
outline: 0; }

.navbar-nav.pull-right > li > .dropdown-menu,
.navbar-nav > li > .dropdown-menu.pull-right {
  right: 0;
  left: auto; }

@media (max-width: 767px) {
    .navbar-nav .open .dropdown-menu {
        position            : static;
        float               : none;
        width               : auto;
        margin-top          : 0;
        border              : 0;
        box-shadow          : none;
        background-color    : var(--wp--preset--color--pure-white);
    }

    .navbar-nav .open .dropdown-menu > li > a:hover,
    .navbar-nav .open .dropdown-menu > li > a:focus {
        background-image    : none;
    }
}

@media ( min-width: 768px ) {
    .navbar-brand img { margin-block: var(--space-2xs); }
    .navbar-left    { float: left !important; }
    .navbar-right   { float: right !important; }
}

@media (min-width: 769px) {
    .navbar-nav {
        margin-block: 0;
    }
    .navbar-nav > li {
        float: left;
    }

    .navbar-collapse {
        width: auto;
        border-top: 0;
        box-shadow: none;
    }
    .navbar-collapse.collapse {
        display: block !important;
        height: auto !important;
        padding-bottom: 0;
        overflow: visible !important;
    }
    .navbar-collapse.in { overflow-y: auto; }

    .navbar-collapse .navbar-nav.navbar-left:first-child {
        margin-left: -.85em;
    }
    .navbar-collapse .navbar-nav.navbar-right:last-child {
        margin-right: -.85em;
    }

    .navbar-toggle  { display: none; }
}

/* Secondary navigation: breadcrumbs
-------------------------------------------------------------- */
.secondary-navigation { background: var(--wp--preset--color--light-grey); }
.secondary-navigation div[class^="col-"] { margin-block: 5px; }
.secondary-navigation :where(.wp-block-search__label, .wp-block-search__input, .wp-block-search__button) { font-size: var(--wp--preset--font-size--tiny); }

.breadcrumb {
    min-height: 41px;
    border-radius: var(--wp--custom--border--radius--small);
    padding-block: 6px;
    padding-inline: .75em;
    background-color: var(--wp--preset--color--pure-white);
    font-family: var(--wp--preset--font-family--geometric-humanist);
    font-size: var(--wp--preset--font-size--small);
    line-height: var(--wp--custom--line-height--small);
}

.breadcrumb a,
.breadcrumb .breadcrumb_last {
    display: inline-block;
    padding-inline: .25em;
    padding-block: 7px;
    font-weight: var(--wp--custom--font-weight--base);
    text-decoration: none;
}

.clearfix:before,
.clearfix:after {
    display         : table;
    content         : " ";
}
.clearfix:after { clear: both; }

.center-block {
    display: block;
    margin-inline: auto;
}

.pull-right         { float: right !important; }
.pull-left          { float: left !important; }

.hide               { display: none !important; }
.invisible          { visibility: hidden; }
.hidden {
    display         : none !important;
    visibility      : hidden !important;
}
.show,
.span-block         { display: block !important; }

/** Main
-------------------------------------------------------------- */
.type-page { margin-bottom: 5rem; }
.page-template-page-full-width .type-page,
.page-template-page-landing-bare .type-page { margin-bottom: 0; }

/** Article Elements
-------------------------------------------------------------- */
.article.index { padding-block-end: var(--space-xl-2xl); }

@media (min-width: 992px) {
    .article.index              { padding-block-start: var(--space-xl-2xl); }
    .article:nth-child(even)    { background: var(--wp--preset--color--pure-white); }

    .archive h2,
    .blog h2,
    .job h2,
    .search h2 {
        margin-top: 0;
    }
}

.entry-summary { font-size: var(--wp--preset--font-size--medium); }

.entry-meta {
    font-size           : var(--wp--preset--font-size--small);
    color               : var(--wp--preset--color--muted-black);
    margin-bottom       : var(--space-xs-s);
}

.post-category {
    text-transform      : uppercase;
    margin-bottom       : 0.4em;
}

.entry-title a,
.post-category a { text-decoration: none; }

.article footer { margin-top: var(--space-m-l) }

.post .entry-content-asset { margin: 1rem 0; }

/** Reviews
-------------------------------------------------------------- */
.rpi-cnt {
    --head-card-bg: transparent;
    --head-grade-fs: var(--wp--preset--font-size--large);
    --head-scale-color: var(--wp--preset--color--link-blue-primary);
    --head-btn-color: var(--wp--preset--color--link-blue-primary);
    --head-based-color: var(--wp--preset--color--black);
    --head-fs: var(--wp--preset--font-size--normal);
    --head-based-fs: var(--wp--preset--font-size--small);
    --time-color: var(--wp--preset--color--black);
    --readmore-color: var(--wp--preset--color--link-blue-primary);
    --card-gap: var(--space-s-m);
    --card-bg: var(--wp--preset--color--white);
    --card-br-color: var(--wp--preset--color--light-grey);
    --card-radius: var(--wp--custom--border--radius--small);
    --card-color: var(--wp--preset--color--base-black);
    --text-fs: var(--wp--preset--font-size--small);
    --text-line-height: var(--wp--custom--line-height--base);
    --name-color: var(--wp--preset--color--link-blue-primary);
    --name-fs: var(--wp--preset--font-size--small);
    --name-weight: var(--wp--custom--font-weight--medium);
    --rev-time-fs: var(--wp--preset--font-size--tiny);
}

.rpi-grade {
    font-weight: var(--wp--custom--font-weight--heavy) !important;
}

/** Tags
-------------------------------------------------------------- */
.tags a {
    display: inline-block;
    margin-inline-end: var(--space-3xs);
    margin-block-end: var(--space-3xs);
    padding: var(--space-3xs) var(--space-2xs);
    border-radius: var(--wp--custom--border--radius--small);
    color: var(--wp--preset--color--pure-white);
    background: var(--wp--preset--color--dit-dark);
    font-size: var(--wp--preset--font-size--small);;
    text-decoration: none;
    vertical-align: middle;
}
.tags a:hover {
    background: var(--wp--preset--color--dit-primary);
}

/** Tertiary navigation: Inter-post navigation
-------------------------------------------------------------- */
.navigation .pager {
    display: flex;
    gap: var(--wp--style--block-gap, 0.5em);
    flex-wrap: wrap;
    align-items: center;
}

/** Footer
-------------------------------------------------------------- */
.footer-nav .list-inline,
.social-buttons-list { margin: 0; }

.footer-nav,
.row.org-info,
.social-buttons-list { padding-block: var(--space-xs-s); }

.footer-nav .list-inline li {
    margin-right: 0;
    padding: .4em;
}

.siteinfo {
    background: var(--wp--preset--color--base-black);
    color: var(--wp--preset--color--mid-grey);
    padding-block: var(--space-xs);
}

.footer .siteinfo a {
    color: var(--wp--preset--color--pure-white);
}
.footer .siteinfo a:active,
.footer .siteinfo a:focus,
.footer .siteinfo a:hover { color: var(--wp--preset--color--light-grey); }

.copyright-info { padding-block-end: var(--space-m); }

.third-party-associations {
    background-color: var(--wp--preset--color--pure-white);
    padding: var(--space-xs-s) 0;
}
.membership-logos img { padding: 3px; }

/** Images
-------------------------------------------------------------- */
/* Lazy Loading. Based on: https://docs.litespeedtech.com/lscache/lscwp/pageopt/#lazy-load-images */
img[data-lazyloaded] { opacity: 0; }
img.litespeed-loaded {
    transition: opacity .5s linear 0.2s;
    opacity: 1;
}

.article.index .wp-post-image {
    object-fit: cover;
    height: 18em;
    max-height: 430px;
    width: 100%;
}

@media (max-width: 768px) {
    /**
     * Force full width on smaller devices so images aren't so tiny. Applies to:
     * - Cover blocks
     * - Embeds (video / audio)
     * - Inline images that aren't thumbnails or rounded
     * - Featured images used on index (feed) templates
     */
    .wp-block-embed,
    .wp-block-cover,
    .wp-block-image:not(.size-thumbnail, .is-style-rounded),
    .article.index .wp-post-image {
        width: 100vw;
        max-width: 100vw;
        margin-inline: calc(50% - 50vw) !important;
    }
    
    .wp-block-image > :is(.alignleft, .alignright) {
        float: none !important;
        margin: 0;
    }

    .wp-block-image:not(.size-thumbnail, .is-style-rounded) img {
        width: 100vw !important;
    }
}

.img-circle { border-radius: 50%; }

/* @link https://www.billerickson.net/full-and-wide-alignment-in-gutenberg/ */
.alignfull {
    /* Tweak to force full width element outside of .container */
    width: 100vw;
    max-width: 100vw;
    margin-inline: calc(50% - 50vw);
}

/** SVG Icons
-------------------------------------------------------------- */
.icons-utility-list {
    margin-bottom   : 0;
    padding-left    : 0;
    list-style      : none;
    line-height     : normal;
}

.icons-utility-list > li { margin-bottom: 1rem; }

.icons-utility-list.inline > li {
    display         : inline-block;
    margin-bottom   : .5rem;
    padding-right   : .5rem;
}

/** Video
-------------------------------------------------------------- */
.lyte-wrapper,
.lL { margin: 0 !important; }

.tC { background-image: linear-gradient(to bottom,rgba(0,0,0,1),rgba(0,0,0,0)) !important; }

/** Visibility
-------------------------------------------------------------- */
.hidden-xs {
  display: block !important;
}

@media (max-width: 767px) {
  .hidden-xs {
      display: none !important;
  }
}

/** Gracefully handle empty elements
-------------------------------------------------------------- */
p:empty { display: none; }

figcaption:empty {
    max-height: 0;
    margin-block: 0;
    padding: 0;
}