/**
Theme Name: WLU Theme
Author: Brainstorm Force
Author URI: http://wpastra.com/about/
Description: Astra is the fastest, fully customizable & beautiful theme suitable for blogs, personal portfolios and business websites. It is very lightweight (less than 50KB on frontend) and offers unparalleled speed. Built with SEO in mind, Astra comes with schema.org code integrated so search engines will love your site. Astra offers plenty of sidebar options and widget areas giving you a full control for customizations. Furthermore, we have included special features and templates so feel free to choose any of your favorite page builder plugin to create pages flexibly. Some of the other features: # WooCommerce Ready # Responsive # Compatible with major plugins # Translation Ready # Extendible with premium addons # Regularly updated # Designed, Developed, Maintained & Supported by Brainstorm Force. Looking for a perfect base theme? Look no further. Astra is fast, fully customizable and beautiful theme!
Version: 1.0.0
License: GNU General Public License v2 or later
License URI: http://www.gnu.org/licenses/gpl-2.0.html
Text Domain: wlu-theme
Template: astra
*/

html, body { 
    overflow-x:hidden!important;
    font-family: "Montserrat", sans-serif;
    font-optical-sizing: auto;
    font-weight: 300;
    font-style: normal;
    font-size:16px;
}


:root {
	--yellow: #F8CA31;
    --yellowhover: #e4b829;
    --black: #000000;
    --white: #FFFFFF;
    --dark-gray: #1E1D1D;
    --mediumdark-gray: #383838;
    --grayhover: #555555;
    --gray: #646262;
    --medium-grayhover: #7c7c7c;
    --medium-gray: #8D8A8A;
    --mediumlight-gray: #CECDCD;
    --light-gray: #F2F2F2;
    --red: #FF0303;
}

.entry-content[data-ast-blocks-layout] > * {
    max-width: none!important;
}
.container div:has(table):not(:has(.accordion)) {
    overflow-x: auto;
}
.entry-content > div:last-of-type:not(.block-applycta,.block-image-text-transparent) {
  padding-bottom: 40px;
}

/* Fonts */
@font-face {
    font-family: "Cicero";
    src: url( /wp-content/themes/wlutheme/src/fonts/Cicero-Medium.otf) format('opentype');
    font-weight: medium;
}
.montserrat-light {
    font-family: "Montserrat", sans-serif;
    font-optical-sizing: auto;
    font-weight: 300;
    font-style: normal;
}
.montserrat-bold {
    font-family: "Montserrat", sans-serif;
    font-optical-sizing: auto;
    font-weight: bold;
    font-style: normal;
}
h1 {
    font-weight: bold;
    font-family: "Montserrat", sans-serif;
}
h2 {
    font-size:5rem!important;
    font-family: "Cicero", sans-serif;
    font-weight:500!important;
    line-height:0.8!important;
    text-transform:uppercase;
    margin-bottom:2px!important;
}
h3 {
    font-size:4.25rem!important;
    font-weight:bold!important;
    line-height:0.9!important;
    text-transform:uppercase;
    font-family: "Montserrat", sans-serif;
}

.p2 {
    font-size:1.25rem;
    font-weight:300;
    line-height:1.5;
}

@media(max-width:1399.96px) {
    h2 {
        font-size:4.6rem!important;
    }
    h3 {
        font-size:4rem!important;
    }
}
@media(max-width:1199.96px) {
    h2 {
        font-size:4.2rem!important;
    }
    h3 {
        font-size:3.7rem!important;
    }
}
@media(max-width:991.96px) {
    h2 {
        font-size:3.2rem!important;
    }
    h3 {
        font-size:2.72rem!important;
    }
}
/* Mobile: h2 matches the hero-interior heading size exactly (same Cicero
   family); h3 is Montserrat, so it uses the site's 0.85 visual-parity ratio
   (the h3:h2 ratio used at desktop) for equal rendered height. */
@media(max-width:767.96px) {
    h2 {
        font-size:2.6rem!important;
    }
    h3 {
        font-size:2.21rem!important;
    }
}
@media(max-width:575.96px) {
    h2 {
        font-size:2.188rem!important;
    }
    h3 {
        font-size:1.86rem!important;
    }
}

table { 
    border:0px!important;

}
table tr, table td, table th { 
    border-width: 1px!important;
    border-right: 0px!important;
    border-left: 0px!important;
    border-top: 0px!important;
    border-color:var(--mediumlight-gray)!important;
}

h3.gform_title {
    font-size: 2rem !important;
}
/* BambooHR careers embed: its injected h2 gets the site's h4 styling instead
   of the global display-h2 style. Scoped to the embed's container div so no
   other h2 on the page is affected. */
#BambooHR h2 {
    font-family: inherit!important;
    font-size: 1.5rem!important;
    font-weight: 900!important;
    line-height: 1.2em!important;
    text-transform: none!important;
    margin-bottom: 20px!important;
}
.accordion-button { line-height: 1.2!important; }
.accordion-body a { color:#000!important; }
.dark .accordion-body a { color:#fff!important; }
.accordion-body a:hover { color:#222!important; }
.dark .accordion-body a:hover { color:#ddd!important; }
.accordion-body a.btn:hover { color:#fff!important; }
.dark .accordion-body a.btn:hover { color:#000!important; }
h2.widget-title { font-size: 1rem!important; }
.entry-header { display:none!important; }
.sidecontent h5 {
    margin-bottom: 5px!important;
}
.sidecontent h5 b, .sidecontent h5 strong, .sidecontent b, .sidecontent strong, b, strong {
    font-weight:600!important;
}
.flex { display:flex;}
.align-center { align-items: center; }
.justify-center { justify-content: center; }

.yellow {
    color: var(--yellow);
}
.white {
    color: var(--white);
}
.dark .white {
    color: var(--black);
}
.black {
    color: var(--black);
}
.black a{
    color: var(--black);
    text-decoration: underline;
}
.dark .black {
    color: var(--white);
}
.dark .black a{
    color: var(--white);
    text-decoration: underline;
}
.dark .sidecontent .black h5, .dark .sidecontent  .black h4, .dark .sidecontent  .black h3, .dark .sidecontent  .black h2, .dark .sidecontent  .black h1 {
    color: var(--white)!important;
}
.squigglebg {
    background-image: url(/wp-content/uploads/2025/07/WLU_Topographic_BG-scaled.png);
}
.unskew {
    transform: skewX(20deg);
}
.skew {
    transform: skewX(-20deg);
}
.center { text-align: center;}
.halfgreybg, .halfgreybgeven {
    background: #FFFFFF;
    background: linear-gradient(270deg,rgba(255, 255, 255, 1) 0%, rgba(255, 255, 255, 1) 70%, rgba(242, 242, 242, 1) 70%, rgba(242, 242, 242, 1) 100%);
}
.doublegreybg {
    background: #FFFFFF;
    background: linear-gradient(270deg,rgba(242, 242, 242, 1) 0%, rgba(242, 242, 242, 1) 20%, rgba(255, 255, 255, 1) 20%, rgba(255, 255, 255, 1) 70%, rgba(242, 242, 242, 1) 70%, rgba(242, 242, 242, 1) 100%);
}
.lightgreybg, .lightgreybgeven {
    background: var(--light-gray);
}
.headingholder {
    padding-top:60px;
    margin-bottom:30px;
    display: flex;
    flex-direction: row;
    margin-right: calc(var(--bs-gutter-x) * -.5);
    margin-left: calc(var(--bs-gutter-x) * -.5);
    gap:100px;
    justify-content: space-between;
    align-items: flex-start;
    background-color:transparent;
}
.headingholder.shortpad {
    padding-top:60px;
    margin-bottom:0px;
}
.headingholder .min50 {
   /* min-width: calc(50% - 100px); //this was breaking words sooner */
    max-width:60%;
}
.headingholder .exploredesc {
    min-width:calc(40% - 100px);
    max-width:50%;
    flex-shrink: 3;
    font-family: "Montserrat", sans-serif;
	margin-top: -3px;
}
.headingholder .exploredesc a {
    color:#000!important;
}
.headingholder .exploredesc a.btn:hover {
    color:#fff!important;
}
.dark .headingholder .exploredesc a {
    color:#fff!important;
}
/* Dark theme: the button hover background turns white, so the text must go
   black (the light-theme hover rule above forces white). */
.dark .headingholder .exploredesc a.btn:hover {
    color:#000!important;
}
.ninja_footable tr td {
    font-weight:500!important;
}
@media (max-width: 991.96px) {
    .headingholder {
        flex-direction: column;
        align-items: flex-start;
        gap: 0px;
    }
    .headingholder .min50 {
        min-width: 100%;
        max-width:100%;
    }
    .headingholder .exploredesc {
        width:100%;
        max-width:100%;
        flex-shrink: 3;
        font-family: "Montserrat", sans-serif;
    }
}
@media (max-width: 921.96px) {
    
}
.ast-sticky-active, #ast-fixed-header { background-color: #1E1D1D!important; }
/* Smush's lazy-load placeholder CSS (width:100px + aspect-ratio:1/1, both
   !important) is meant for <img> tags, but it also hits CONTENT BLOCKS whose
   background images Smush lazy-loads (angled overlay, hero interior, apply
   CTA, ...), crushing the whole module to 100x100 until unveiled. Restore
   natural sizing for background-image elements. */
[data-bg-image].lazyload,
[data-bg-image].lazyloading {
    width: auto !important;
    aspect-ratio: auto !important;
}

html {
    /* Chrome's scroll anchoring fights the animated sticky header near the
       top of the page, bouncing the scroll position in a feedback loop
       (verified via instrumented browser runs: the oscillation disappears
       with anchoring off and no site JS touches the scroll position). Grid
       and card images are all dimension-reserved, so losing anchoring does
       not cause lazy-load content shifts. */
    overflow-anchor: none;
}

/* The sticky plugin flips .ast-nav-up/.ast-nav-down on ~5px of scroll
   movement, so nothing visual may differ between them or the bar jitters.
   They only carry the 35px above-bar offset; visibility of the fixed bar is
   owned exclusively by body.wlu-sticky-shown, toggled in custom.js with
   hysteresis (and body.wlu-scrolled-up reveals the above-bar on desktop). */
.ast-nav-up, .ast-nav-down {
    top: -35px!important;
}
header .menu-link { letter-spacing: 1.2px;}
#ast-fixed-header { transform: translateY(-100%); transition: transform .3s linear, top .3s linear, visibility .3s linear; }
body:not(.wlu-sticky-shown) #ast-fixed-header {
    transform: translateY(-100%)!important;
    visibility: hidden!important;
}
body.wlu-sticky-shown #ast-fixed-header {
    transform: translateY(0)!important;
    visibility: visible!important;
}
#ast-fixed-header .menu-link { color:#fff!important; }
#ast-fixed-header .current_page_ancestor .menu-link, #ast-fixed-header .current-page-ancestor .menu-link { color:#f8ca31!important; }
#ast-fixed-header .current_page_ancestor .sub-menu .menu-link, #ast-fixed-header .current-page-ancestor .sub-menu .menu-link { color:var(--dark-gray)!important; }
#ast-fixed-header .menu-link:hover { color:#f8ca31!important; }
@media (min-width: 1281px) {
    body.wlu-scrolled-up #ast-fixed-header {
        top: 0!important;
    }
}
.ast-builder-menu-1 .menu-item.current-page-ancestor > .menu-link { color:#f8ca31!important; }
.ast-builder-menu-1 .menu-item.current-page-ancestor > .sub-menu .menu-link { color:var(--dark-gray)!important; }
.ast-builder-menu-1 .menu-item.current-page-ancestor > .sub-menu .menu-link:hover { color:var(--white)!important; }
[CLASS*="-sticky-header-active"] .ast-builder-menu-1 .main-header-menu .menu-item .sub-menu .menu-link {
    background-color: var(--yellow);
}
[CLASS*="-sticky-header-active"] .ast-builder-menu-1 .main-header-menu .menu-item .sub-menu .menu-link:hover {
    /*background-color: #e5b928!important;*/
    background-color: var(--mediumdark-gray)!important;
}
[CLASS*="-sticky-header-active"] .ast-builder-menu-1 .main-header-menu .menu-item .sub-menu .menu-item.current-menu-item > .menu-link {
    background-color: var(--yellow);
}
[CLASS*="-sticky-header-active"] .ast-builder-menu-1 .main-header-menu .menu-item .sub-menu .menu-item:first-child .menu-link {
    /*background-color: var(--yellow);*/
    background-color: #e5b928!important;
}
.sub-menu { border-color: transparent!important; border-top-width: 5px!important; background-color:transparent!important; box-shadow: none!important; }
.sub-menu a, #ast-fixed-header .sub-menu a { color: var(--dark-gray)!important; }
.menu-item-has-children .sub-menu .menu-item {
    background-color:var(--yellow);
    transition: all linear 0.2s;
}
.menu-item-has-children .sub-menu .menu-item:first-child {
    background-color:#e5b928;
}
.menu-item-has-children .sub-menu .menu-item:hover {
    background-color:var(--mediumdark-gray);
    /*background-color:#e5b928;*/
}
.menu-item-has-children .sub-menu .menu-item:hover a, #ast-fixed-header .sub-menu .menu-item:hover a {
    color:var(--white)!important;
}

#menu-general-resources li.menu-item, #menu-resources-for li.menu-item {
    line-height:1.2;
    padding:10px 0px;
}
.resourcesmenu {
    flex-direction: row!important;
}
.resourcesmenu::before { 
    content: "|";
    float: left;
    color: #f8ca31;
}
/* Base hidden submenu */
.resourcesmenu .custom-submenu {
  display: none;
  position: absolute;
  top: 100%;
  right: 0;
  width: calc(100vw - 80px);
  max-width: 630px; /* adjust */
  z-index: 9999;
  background: transparent;
  box-shadow: 0 4px 12px rgba(0,0,0,0.15);
}

/* Show when active */
.resourcesmenu.open .custom-submenu {
  display: flex;
}

/* Two columns */
.custom-submenu {
  display: flex;
}
.submenu-column {
  flex: 1;
  padding: 40px 50px 30px;
}
.submenu-column a {
    padding:0px!important;
    color: var(--dark-gray)!important;
    font-size: 1rem!important;
}
.submenu-column a:hover, #ast-fixed-header .sub-menu a:hover {
    color: #000!important;
}
/* In the sticky header, #ast-fixed-header .menu-link's white would otherwise
   out-specify the dropdown colors above — keep these links dark there too. */
#ast-fixed-header .submenu-column a.menu-link {
    color: var(--dark-gray)!important;
}
#ast-fixed-header .submenu-column a.menu-link:hover {
    color: #000!important;
}

.submenu-column.leftsub {
  background: #f8ca31;
  border-right:1px solid var(--dark-gray);
}

.submenu-column.rightsub {
  background: #e5b928;
}
.menu-link {
    font-family: "Montserrat", sans-serif;
    font-optical-sizing: auto;
    font-weight: 300;
}


/* Toggle icon */
.resourcesmenu .submenu-toggle {
  width: 10px;
  display: inline-block;
}
.resourcesmenu .submenu-toggle::after {
  content: "+";
  margin-left: 8px;
  font-weight: bold;
}

.resourcesmenu.open .submenu-toggle::after {
  content: "-";
}

.menu-toggle-wrapper {
  cursor: pointer;
  display: inline-block;
}
.resourcesmenu .topsubhead {
    font-weight: bold;
    font-family: "Cicero", sans-serif;
}

/* main menu */
/* Hide any default theme-provided caret/arrow */
.menu-item-has-children > a .caret,
.menu-item-has-children > a .dropdown-menu-toggle,
.menu-item-has-children > a .sub-arrow {
  display: none !important;
}

/* Add + by default, but exclude the resourcesmenu */
.menu-item-has-children:not(.resourcesmenu) > a::after {
  content: "+";
  margin-left: 6px;
  font-weight: bold;
  font-size: 0.9em;
  transition: content 0.2s;
  width:12px;
}

/* Change to - when the submenu is visible (hover/focus), again excluding resourcesmenu */
.menu-item-has-children:not(.resourcesmenu):hover > a::after,
.menu-item-has-children:not(.resourcesmenu):focus-within > a::after {
  content: "-";
  margin-top:-4px;
}
@media (min-width: 1281px) {
    #mobile-submenu-content {
        display: none!important;
    }
}
@media (max-width:1280.96px) {
    #ast-desktop-header { display:none!important; }
    .ast-icon.icon-search svg {
        height: 24px !important;
        width: 22px !important;
    }
    h3.large-search-text { display:none!important; }
    .ast-search-box.full-screen { top: 80px!important; }
    /* iOS scroll-lock fix: the addon sets body{position:fixed} on iPhones
       while search is open, and a fixed body shrink-wraps to its widest
       content (5000px+ here) — flinging the header icons and dividers far
       off screen. Pin it to the viewport instead. */
    body.iphone.full-screen,
    body.ipod.full-screen {
        width: 100% !important;
        left: 0;
        top: 0;
    }
    /* Mobile search overlay: form at 90% (addon default 70%), field and
       label stretched (addon caps them at 80%), leaving room for the submit
       icon beside the field. The wrapper is pinned 30px below the menu bar
       (overlay starts at the menu's bottom edge) instead of centered. */
    .ast-search-box.full-screen .ast-search-wrapper {
        top: 30px;
        transform: translateX(-50%);
    }
    .ast-search-box.full-screen .ast-search-wrapper fieldset {
        padding-top: 0;
    }
    .ast-header-break-point .ast-search-box.full-screen .ast-search-wrapper .search-form {
        width: 90%;
        margin-top: 0;
    }
    .ast-header-break-point .ast-search-box.full-screen .ast-search-wrapper .search-form label {
        width: 100%;
    }
    .ast-header-break-point .ast-search-box.full-screen .ast-search-wrapper .search-field {
        width: 100%;
        padding-right: 44px; /* keep typed text clear of the overlaid icon */
    }
    /* The submit icon floats over the field's right end instead of
       reserving its own column, so the field spans the full form width. */
    .ast-search-box.full-screen .ast-search-wrapper fieldset {
        position: relative;
    }
    .ast-header-break-point .ast-search-box.full-screen .ast-search-wrapper .search-submit {
        position: absolute;
        right: 0;
        top: 50%;
        transform: translateY(-50%);
    }
    /* The open-search X replaces the search icon in its exact spot (fixed
       to the viewport, matching the icon's measured position in the bar),
       and the icon fades out but keeps its space so the button area width
       never changes. */
    .ast-search-box.full-screen #close {
        color: var(--yellow);
        position: fixed!important;
        top: 40px!important;
        right: 116px!important;
        transform: translate(50%, -50%);
    }
    /* Hide only the header-bar trigger glyph (inside .astra-search-icon) —
       the overlay's submit icon shares the same ast-icon classes and must
       stay visible beside the input. */
    body.full-screen .ast-header-search .astra-search-icon .ast-icon.icon-search {
        opacity: 0!important;
    }
    /* While the overlay is open the invisible icon must not be tappable:
       re-opening appends a duplicate body class the addon's close only
       half-removes, leaving the icon invisible after closing. */
    body.full-screen #ast-mobile-header .ast-header-search .astra-search-icon {
        pointer-events: none;
    }
    .ast-nav-up, .ast-nav-down { top:0!important; }
    /* Scoped to the header-bar trigger only (inside .ast-header-search) —
       the overlay's submit icon shares all these classes and must stay
       visible beside the input. */
    .full-screen.ast-theme-transparent-header .ast-header-search .ast-icon.icon-search.icon-search-thin { opacity:0!important; }
    .main-header-menu .menu-link {
        background-color:var(--yellow)!important;
        font-family: "Montserrat", sans-serif;
        font-weight: 300; /* matches the desktop menu (inherits body weight) */
        font-size: 1rem;
        text-transform: uppercase;
        letter-spacing: 1.2px;
    }
    .main-header-menu .sub-menu .menu-link {
        font-size: 0.85rem;
    }
    /* Open submenus fill the dropdown's full width. Without this the list
       kept the desktop 270px column, so the yellow rows stopped short and
       the white list background showed beside them. Covers both a real nav
       menu (.sub-menu) and the page-list fallback (.children.sub-menu). */
    .main-header-menu .sub-menu {
        width: 100%!important;
    }
    .main-header-menu .sub-menu .menu-item { width:100%!important; }
    .main-header-menu .menu-link, #ast-fixed-header .main-header-menu .menu-link { color:#000!important; }
    /* Submenu arrow button. Astra paints its near-white active background
       on the toggle of the current page and its ancestors, which read as a
       white block on the yellow row. Keep it transparent so the row's
       yellow shows through, and keep the arrow black like the link text. */
    .main-header-menu .menu-item > .ast-menu-toggle,
    .main-header-menu .menu-item.current-menu-item > .ast-menu-toggle,
    .main-header-menu .menu-item.current-menu-ancestor > .ast-menu-toggle,
    .main-header-menu .menu-item:hover > .ast-menu-toggle,
    .main-header-menu .menu-item > .ast-menu-toggle:hover {
        background: transparent!important;
        color: #000!important;
    }
    .main-header-bar-wrap { border-bottom: 1px solid #fff; }
    .site-header-primary-section-right .ast-flex{
        padding: 10px;
        height: 80px;
        border-right: 1px solid #fff;
    }
    .site-header-primary-section-right .ast-flex:last-child {
        border-right: 0px solid #fff;
    }
    .site-header-primary-section-right .ast-flex:first-child {
        border-left: 1px solid #fff;
    }
    .site-header-primary-section-right .ast-header-search {
        padding: 10px 25px;
    }
    .ast-mobile-menu-trigger-minimal {
        margin-right: -5px;
        margin-left: 5px;
    }
    .custom-logo-link img {
        max-width: 230px!important;
        height: auto;
    }
    /* Open dropdowns float fixed below the header bar, like the mobile
       search overlay — the bar itself is left untouched (transparent on
       transparent-header pages), and the dropdown stays on screen while
       the page scrolls behind it. */
    .ast-main-header-nav-open #masthead #ast-mobile-header .ast-mobile-header-content {
        position: fixed;
        top: 80px;
        left: 0;
        right: 0;
        z-index: 998;
    }
    body.wlu-submenu-open #masthead .mobile-submenu-content {
        position: fixed;
        top: 80px;
        left: 0;
        right: 0;
        width: 100vw;
        margin-top: 0;
        max-height: calc(100vh - 80px);
        max-height: calc(100dvh - 80px);
        overflow-y: auto;
        z-index: 998;
    }
    /* Once the page is scrolled past the sticky threshold, keep the black
       sticky header (and the dropdown it hosts) on screen regardless of
       scroll direction while a menu is open — black bg comes only from it. */
    body[class*="-sticky-header-active"].ast-main-header-nav-open #ast-fixed-header,
    body[class*="-sticky-header-active"].wlu-submenu-open #ast-fixed-header {
        transform: translateY(0)!important;
        top: 0!important;
        visibility: visible!important;
        z-index: 999;
    }
}

/* Under 420px the fixed header paddings (35px container, 25px search sides,
   30/20px resources toggle) exceed the available width and the right-side
   icons get clipped. Compress to three EQUAL-width icon areas with centered
   icons so the bar fits down to 320px and the buttons stay uniform. */
@media (max-width: 419.96px) {
    #masthead .ast-container {
        padding-left: 12px;
        padding-right: 12px;
    }
    .site-header-primary-section-right .ast-flex {
        width: 52px;
        min-width: 52px;
        justify-content: center;
        padding: 10px 0;
    }
    .site-header-primary-section-right .ast-header-search {
        padding: 10px 0;
    }
    button#mobile-submenu-toggle,
    button#mobile-submenu-toggle[aria-expanded="true"] {
        padding: 0 !important;
        /* the 52px equal-width item provides the button area here */
        width: auto;
    }
    .ast-mobile-menu-trigger-minimal {
        margin: 0 !important;
    }
    /* Logo takes whatever width remains after the icon cluster */
    #ast-mobile-header .custom-logo-link img {
        max-width: calc(100vw - 200px) !important;
    }
    /* Keep the open-search X aligned to the narrower icon position */
    .ast-search-box.full-screen #close {
        right: 82px!important;
    }
}

/* Mobile menu extras: Apply / Visit / Give + social icons below the hamburger menu */
.wlu-mobile-menu-extras {
    background-color: var(--yellowhover);
}
/* Stacked like the menu links above: same 20px side padding and line-height */
.wlu-mobile-quicklinks {
    padding-top: 20px;
}
.wlu-mobile-quicklinks a {
    display: block;
    padding: 0 20px;
    line-height: 3;
    font-family: "Montserrat", sans-serif;
    font-weight: 300;
    font-size: 1rem;
    text-transform: uppercase;
    letter-spacing: 1.2px;
    color: #000;
    text-decoration: none;
}
.wlu-mobile-quicklinks a:hover {
    text-decoration: underline;
}
/* Same 20px side padding as the menus, icons spread evenly across the row */
.wlu-mobile-socials {
    display: flex;
    justify-content: space-between;
    align-items: center;
    padding: 25px 20px 50px;
}
.wlu-mobile-socials a {
    display: inline-flex;
    color: #000;
}
.wlu-mobile-socials svg {
    width: 22px;
    height: 22px;
    fill: #000;
}
/* Dropdown fits within the viewport below the 80px header bar and scrolls.
   The #ast-mobile-header selector out-specifies the sticky-header addon's
   60vh cap on #ast-mobile-header .content-align-flex-start. */
#ast-mobile-header .ast-mobile-header-content.content-align-flex-start,
.ast-mobile-header-wrap .ast-mobile-header-content {
    max-height: calc(100vh - 80px);
    max-height: calc(100dvh - 80px);
    overflow-y: auto;
}

/* ============================================================
   Search results page (/?s=term)
   ============================================================ */
/* Dark background on the transparent header bars so the light menu text is
   readable (the search page has no hero block behind the menu). The main
   menu bar is solid black to differentiate it from the small bar above it. */
body.search .ast-above-header-bar {
    background-color: #1E1D1D !important;
}
body.search .ast-primary-header-bar {
    background-color: #000 !important;
}
body.search #primary {
    margin-top: 0;
}
/* Title sits below the search bar (which carries the header clearance) —
   no separator borders. */
body.search section.ast-archive-description {
    margin: 0 auto;
    padding: 0 20px 30px;
    border: 0;
}
.search .ast-archive-title,
.search .ast-archive-title span {
    color: #000;
}
/* Each result: small square thumbnail to the left of the content */
.search .ast-article-post.has-post-thumbnail .post-content {
    display: grid;
    grid-template-columns: 140px 1fr;
    column-gap: 24px;
    align-items: start;
}
.search .ast-article-post.has-post-thumbnail .post-content > * {
    grid-column: 2;
}
.search .ast-article-post.has-post-thumbnail .post-content > .ast-blog-featured-section {
    grid-column: 1;
    grid-row: 1 / span 6;
    margin: 0;
}
.search .ast-article-post .post-thumb-img-content img {
    width: 140px;
    height: 140px;
    object-fit: cover;
}
/* Search-again bar above the page title — it carries the top clearance for
   the overlaid transparent header, and no borders/separators around it. */
body.search .wlu-search-again {
    padding: 200px 20px 0;
    margin-bottom: 30px;
    border: 0;
}
body.search .wlu-search-again form {
    display: flex;
    gap: 10px;
    max-width: 640px;
}
body.search .wlu-search-again input[type="search"] {
    flex: 1;
    min-width: 0;
    padding: 12px 16px;
    border: 1px solid var(--medium-gray);
    font-family: "Montserrat", sans-serif;
    font-size: 1rem;
}
body.search .wlu-search-again button {
    background: var(--yellow);
    color: var(--black);
    border: 0;
    padding: 12px 28px;
    font-family: "Montserrat", sans-serif;
    font-weight: 600;
    text-transform: uppercase;
    letter-spacing: 1.2px;
    cursor: pointer;
    transition: background 0.2s ease;
}
body.search .wlu-search-again button:hover {
    background: var(--yellowhover);
}
/* Clearance below the pagination so the footer swirl doesn't crowd it. */
body.search .ast-pagination {
    padding-bottom: 150px;
}

/* ============================================================
   404 page — same header treatment as the search results page
   ============================================================ */
body.error404 .ast-above-header-bar {
    background-color: #1E1D1D !important;
}
body.error404 .ast-primary-header-bar {
    background-color: #000 !important;
}
/* Push the content clear of the overlaid header, with breathing room. */
body.error404 .ast-404-layout-1 {
    padding-top: 200px;
}
@media (max-width: 575.96px) {
    body.error404 .ast-404-layout-1 {
        padding-top: 130px;
    }
}
/* The global h3 display style (4.25rem uppercase) hits this element —
   bring it back to normal body text. */
.error404 .page-sub-title {
    font-size: 1.125rem !important;
    font-weight: 300 !important;
    line-height: 1.5 !important;
    text-transform: none;
    font-family: "Montserrat", sans-serif;
}

/* ============================================================
   AJAX grid loading indicator (directory member/office grids)
   ============================================================ */
.wlu-grid-loading {
    text-align: center;
    padding: 30px 0 10px;
    font-family: "Montserrat", sans-serif;
    font-weight: 500;
    font-size: 0.9rem;
    letter-spacing: 1.5px;
    text-transform: uppercase;
    color: var(--dark-gray);
}
.dark .wlu-grid-loading {
    color: var(--white);
}
.wlu-loading-spinner {
    display: inline-block;
    vertical-align: -4px;
    width: 18px;
    height: 18px;
    margin-right: 12px;
    border: 3px solid var(--yellow);
    border-top-color: transparent;
    border-radius: 50%;
    animation: wlu-spin 0.8s linear infinite;
}
@keyframes wlu-spin {
    to { transform: rotate(360deg); }
}
/* Result titles without underline (!important: a global h2 !important rule
   would otherwise win regardless of specificity) */
.search .ast-article-post .entry-title {
    font-size: 2rem !important;
    padding-top: 15px;
    margin-bottom: 0.25em;
}
.search .ast-article-post .entry-title a,
.search .ast-article-post .entry-title a:hover {
    text-decoration: none;
}
@media (max-width: 575.96px) {
    body.search .wlu-search-again {
        padding: 130px 20px 0;
    }
    body.search section.ast-archive-description {
        padding: 0 20px 25px;
    }
    .search .ast-article-post.has-post-thumbnail .post-content {
        grid-template-columns: 90px 1fr;
        column-gap: 15px;
    }
    .search .ast-article-post .post-thumb-img-content img {
        width: 90px;
        height: 90px;
    }
}

/* search overlay */
.large-search-text {
    font-weight: bold;
    font-family: "Cicero", sans-serif;
    color:var(--yellow)!important;
    font-size:3.833rem!important;
    width: 70%;
    margin: 20px auto;
    text-align: left!important;
}
.ast-search-box .search-form label {
    width: calc(100% - 50px);
}
.btn-ghost {
    background: transparent;
    border: 1.25px solid var(--black);
    color: var(--black);
    padding: 2px 20px;
    border-radius: 0;
    font-size: .75rem;
    font-weight: 500;
    text-transform: uppercase;
    transition: all 0.3s ease-in-out;
    font-style: italic;
    letter-spacing: 1.5px;
    text-decoration:none!important;
}
.btn-ghost:hover {
    background: var(--black);
    color: var(--white);
}
.dark .btn-ghost {
    background: transparent;
    border: 1.25px solid var(--white);
    color: var(--white);
}
.dark .btn-ghost:hover {
    background: var(--white);
    color: var(--black);
}
.btn-yellow {
    background: var(--yellow);
    color: var(--black);
    padding: 10px 30px;
    border-radius: 0;
    font-size: 1.313rem;
    font-weight: 500;
    text-transform: uppercase;
    transition: all 0.3s ease-in-out;
    font-style: italic;
    letter-spacing: 1.5px;
    text-decoration: none!important;
}
.btn-yellow:hover {
    background: var(--yellowhover);
    color: var(--black);
}
.BambooHR-ATS-Department-Header { margin-bottom:25px; }
.site-content h3 + p, .site-content h4 + p, .site-content h5 + p, .site-content h6 + p {
  margin-top: -10px!important;
}
.site-content ul {
    margin-top:-25px!important;
    margin-bottom: 1.6em;
}
.site-content .accordion-body > ul {
    margin-top: -20px!important;
}
.site-content .accordion-body > ul:first-child {
    margin-top: 0px!important;
}
.site-content .block-angled-overlay ul {
	margin-top:-18px!important;	
}
.single .site-content ul {
    margin-top:-10px!important;
}
.site-content .block-image-text-accordion h3 + p, .site-content .block-image-text-accordion h4 + p, .site-content .block-image-text-accordion h5 + p, .site-content .block-image-text-accordion h6 + p {
    margin-top:-10px!important;
}
.site-content .aicontent h3 + ul, .site-content .aicontent h4 + ul, .site-content .aicontent h5 + ul, .site-content .aicontent h6 + ul {
	margin-top:-10px!important;
}
.site-content .block-image-text-accordion ul {
	margin-top:-10px!important;
}
.site-content .member-grid-block ul, .site-content .program-grid-block ul, .site-content .single-member ul, .site-content .member-grid-block h3 + p, .site-content .member-grid-block h4 + p, .site-content .member-grid-block h5 + p, .site-content .member-grid-block h6 + p, .site-content .program-grid-block h3 + p, .site-content .program-grid-block h4 + p, .site-content .program-grid-block h5 + p, .site-content .program-grid-block h6 + p, .site-content .single-member h3 + p, .site-content .single-member h4 + p, .site-content .single-member h5 + p, .site-content .single-member h6 + p, .site-content .p2, .site-content .areascontent p, .site-content .featured-post p, .site-content .applycta-section p, .site-content .itm-members-panel h3 + p, .site-content .itm-members-panel h4 + p, .site-content .itm-members-panel h5 + p, .site-content .itm-members-panel h6 + p, .site-content .block-three-columned ul {
	margin-top: 0px!important;
}
.site-content .block-image-gallerylightbox .cntright h3 + ul, .site-content .block-image-text .sidecontent h3 + div ul:first-child:first-of-type {
    margin-top: -10px!important;
}
.site-content .block-image-text .sidecontent h3 + ul, .site-content .block-image-text .sidecontent h3 + div p:first-child:first-of-type {
    margin-top: -15px!important;
}
.site-content .block-image-text .sidecontent h4 + ul {
    margin-top: -15px!important;
}
.site-content .block-image-text .sidecontent h5 + ul {
    margin-top: 0px!important;
}
 .site-content .block-image-text .sidecontent h4 + p, .site-content .block-image-text .sidecontent h5 + p, .site-content .block-image-text .sidecontent h6 + p {
    margin-top: 5px!important;
}
.site-content ul ul, .site-content ul ul ul  {
    margin-top: 0px!important;
	margin-bottom: 10px!important;
}
.site-content .block-angled-overlay ul ul {
    margin-top: 5px !important;
}
.accordion-body { overflow-x:auto; }
/* Main Menu Section Styles */
.ast-primary-header-bar, .ast-above-header-bar {
    border-bottom-width: 0px!important;
}

.mobile-submenu-wrapper {
  position: relative;
  text-align: center;
}

#mobile-submenu-toggle {
    background: none;
    border: none;
    font-size: .9rem;
    cursor: pointer;
    /* Fixed button area with centered content: the two icons are different
       sizes, so constancy comes from the button, not the icons. */
    width: 66px;
    padding: 0 !important;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    /* Never let the header flex row squeeze the button/icon away */
    flex-shrink: 0;
}
/* Icons pinned to fixed sizes (flex squeeze + Smush's lazyload
   max-width:100% otherwise collapse them on narrow phones): the book keeps
   its compact 16x24, the close X matches the other close icons at 24x24. */
#mobile-submenu-toggle img {
    max-width: none !important;
    object-fit: contain;
}
#mobile-submenu-toggle img#menu-open-icon {
    width: 16px !important;
    min-width: 16px !important;
    height: 24px !important;
}
#mobile-submenu-toggle img#menu-close-icon {
    width: 24px !important;
    min-width: 24px !important;
    height: 24px !important;
}
#mobile-submenu-toggle[aria-expanded="true"] {
    /* same fixed area as the closed state so the button never shifts */
    padding: 0 !important;
}

.mobile-submenu-content {
  background: #fff;
  margin-top: 14px;
  padding: 0px;
  display: flex;
  justify-content: space-between;
  gap: 1rem;
  position:absolute;
  width: calc(100vw + 2px);
  right: -163px;
}
.mobile-submenu-lists { width:100%; }
#mobile-submenu-content #menu-general-resources-1 {
    background-color:var(--yellow);
    text-align: left;
    padding: 20px 30px;
}
.mobile-submenu-lists a.menu-link {
    color:var(--black)!important;
    font-size:16px!important;
}
#mobile-submenu-content #menu-resources-for-1 {
    background-color:var(--yellowhover);
    text-align: left;
    padding: 20px 30px;
}
.submenu-list {
  list-style: none;
  padding: 0;
  margin: 0;
}

.submenu-list li a {
  display: block;
  padding: 5px 0;
  text-decoration: none;
}
#mobile-submenu-toggle {
  background: none;
  border: none;
  cursor: pointer;
  padding: 8px;
  display: flex;
  align-items: center;
  justify-content: center;
}

#mobile-submenu-toggle #menu-open-icon {
  width: 16px;
  height: 24px;
  transition: opacity 0.25s ease, transform 0.25s ease;
  margin-top: 14px;
}
#mobile-submenu-toggle #menu-close-icon {
  width: 24px;
  height: 24px;
  transition: opacity 0.25s ease, transform 0.25s ease;
  margin-top: 15px;
  margin-right: -4px;
  margin-left: 4px;
  fill:var(--yellow);
}
.ast-hfb-header .menu-toggle.toggled .ast-close-svg { fill:var(--yellow); }
.topsubheadt {    
    background: var(--yellow);
    color: var(--black);
    font-weight: bold;
    font-family: "Cicero", sans-serif;
    text-align: left;
    padding-left: 28px;
    padding-top: 20px;
    margin-bottom: -18px;
    font-size: 16px;
}
.topsubheadb {  
    background: var(--yellowhover);
    color: var(--black);  
    font-weight: bold;
    font-family: "Cicero", sans-serif;
    text-align: left;
    padding-left: 28px;
    padding-top: 20px;
    margin-bottom: -18px;
    font-size: 16px;
}

@media(max-width:599.96px){
    .custom-logo-link img {
        max-width: 150px!important;
        height: auto;
    }
}

/* Menu container */
.mobile-submenu-content {
  max-height: 0;
  opacity: 0;
  overflow-y:visible;
  height:unset;
  transition: all 0.3s ease;
}

#mobile-submenu-content[hidden] {
  display: block !important;
  max-height: 0;
  opacity: 0;
  height:0px;
  overflow-y: hidden;
  transform: translateY(-10px);
}

#mobile-submenu-content:not([hidden]) {
  opacity: 1;
  overflow-y:visible;
  height:unset;
  transform: translateY(0);
}
#menu-close-icon { display:none;}
@media(min-width:922px){
    #menu-open-icon { margin-bottom:10px!important; }
    #mobile-submenu-toggle #menu-open-icon {
        margin-top: 18px;
    }
}

/* FOOTER */
.site-footer {
    overflow-x: clip;
}
.site-footer a {    
    text-decoration: none;
    font-weight:500;
    white-space: nowrap;
}
.site-footer #footerswirl {
    position: absolute;
    width: 130vw;
    margin-left: -32vw;
    margin-top: -140px;
    max-height: 300px;
    overflow-y: hidden;
    /* Decorative only — it overlaps content above the footer (e.g. search
       pagination), so it must never intercept clicks. */
    pointer-events: none;
}
.site-footer #footerswirl img {
    width: 100%;
    height: auto;
}
.site-footer-section-2 .ast-builder-layout-element[data-section="section-fb-social-icons-1"] {
    width:158px;
}
@media (max-width: 921px) {
    .ast-header-break-point .ast-builder-layout-element[data-section="section-fb-social-icons-1"] {
        display: flex;
        justify-content: space-around!important;
    }
}
@media (max-width: 1900px) {
    .site-footer #footerswirl {
        margin-left: -32vw;
        margin-top: -110px;
    }
}
@media (max-width: 1600px) {
    .site-footer #footerswirl {
        margin-top: -95px;
        margin-left: -25vw;
    }
}
@media (max-width: 1400px) {
    .site-footer #footerswirl {
        margin-top: -95px;
        margin-left: -12vw;
    }
}
@media (max-width: 1200px) {
    .site-footer #footerswirl {
        margin-top: -90px;
        margin-left: -20vw;
    }
}
@media (max-width: 800px) {
    .site-footer #footerswirl {
        margin-top: -60px;
        margin-left: -26vw;
    }
}
.site-footer .footer-social-inner-wrap {
    white-space: nowrap;
}
.site-footer .ast-footer-social-wrap {
    width: auto!important;
}
@media(max-width:921.96px) {
    .site-footer .ast-footer-social-wrap {
        width: 100% !important;
    }
    .site-footer-section-2 .ast-builder-layout-element[data-section="section-fb-social-icons-1"] {
        width: 100%;
    }
}
.site-footer .redbutton {
    background: var(--red);
    color: var(--white)!important;
    padding: 2px 10px;
    border-radius: 0;
    font-weight: 700;
    text-transform: uppercase;
    transition: all 0.3s ease-in-out;
    border: none;
    display: inline-block;
}
.site-footer a#rb:hover .redbutton {
    background:#cf0101;
}
.site-footer .ast-footer-html-4 .ast-builder-html-element div {
    display:flex!important;
    justify-content: flex-end;
    gap:20px;
    align-items: baseline;
}
.site-footer .ast-footer-html-4 .ast-builder-html-element p {
    margin-bottom: 0px!important;
}

.site-footer .ast-builder-grid-row-container-inner {
    max-width: 1360px;
    margin: auto;
    width: 100%;
    padding-left: 20px;
    padding-right: 20px;
}
.site-footer ul.menu {
    padding-left:0px!important;
}
.site-footer .widget-title {
    font-family: "Montserrat", sans-serif!important;
    text-transform:capitalize!important;
    font-weight:700!important;
}
.site-footer .widget_nav_menu {
    padding-left:20px;
}
.footdesc {
    font-size: 0.875rem;
    line-height: 1.85;
    color: #C1C4C9;
    white-space: nowrap;
}
.site-footer h2 {
    margin-top:0px;
    margin-bottom:18px!important;
}
.site-footer .menu li {
    margin-top:10px;
}

@media (max-width:1280px) {
    .ast-builder-grid-row-5-equal .ast-builder-grid-row {
        grid-template-columns: repeat(3, 1fr);
    }
}

@media (max-width: 1200px) {
    .site-footer .ast-builder-grid-row-container-inner {
        max-width: 1140px;
    }
}
@media (max-width: 991.96px) {
    .site-footer .ast-builder-grid-row-container-inner {
        max-width: 960px;
    }
}
@media (max-width: 921.96px) {
    .site-footer .widget_nav_menu {
        padding-left:0px;
    }
    .site-footer h2 {
        margin-top:14px;
        margin-bottom:14px!important;
    }
    .site-footer .menu li {
        margin-top:10px;
    }
    .ast-builder-grid-row-5-equal .ast-builder-grid-row {
        grid-template-columns: repeat(2, 1fr)!important;
    }
    .ast-builder-grid-row-5-equal .ast-builder-grid-row > *:first-child {
        grid-column: 1 / span 2; /* Makes the first child span both columns */
    }
    .footdesc {
        margin-bottom: 20px;
    }
}
@media (max-width: 767.96px) {
    .site-footer .ast-builder-grid-row-container-inner {
        max-width: 720px;
    }
    .site-footer ul.menu {
        font-size: 0.875rem;
    }
}
@media (max-width: 575.96px) {
    .site-footer .ast-builder-grid-row-container-inner {
        max-width: 540px;
    }
    .ast-builder-footer-grid-columns {
        grid-column-gap: 20px;
    }
    .site-footer .ast-footer-html-4 .ast-builder-html-element div {
        justify-content: flex-start;
        flex-wrap: wrap;
    }
    .ast-footer-copyright {
        text-align: left!important;
    }
    [data-section="section-fb-social-icons-1"] .footer-social-inner-wrap {
        text-align: left!important;
        margin-top:10px;
    }
    #rb { margin-top: -4px; }
}




/* containers */

@media (min-width: 576px) {
    .container, .container-sm {
        max-width: 740px;
    }
}
@media (min-width: 768px) {
    .container, .container-md, .container-sm {
        max-width: 900px;
    }
}
@media (min-width: 992px) {
    .container, .container-lg, .container-md, .container-sm {
        max-width: 1100px;
    }
}
@media (min-width: 1200px) {
    .container, .container-lg, .container-md, .container-sm, .container-xl {
        max-width: 1300px;
    }
}
@media (min-width: 1400px) {
    .container, .container-lg, .container-md, .container-sm, .container-xl, .container-xxl {
        max-width: 1320px;
    }
}


/* ============================================================
   Global Alert Bar
   ============================================================ */
.wlu-alert-bar {
    position: fixed;
    bottom: 0;
    left: 0;
    width: 100%;
    background-color: var(--yellow);
    z-index: 9999;
    padding: 12px 20px;
    box-shadow: 0 -3px 10px rgba(0, 0, 0, 0.15);
    transition: transform 0.3s ease, opacity 0.3s ease;
}

.wlu-alert-bar.is-hidden {
    display: none;
}

.wlu-alert-bar__inner {
    position: relative;
    display: flex;
    align-items: center;
    justify-content: center;
    gap: 12px;
    max-width: 1320px;
    margin: 0 auto;
    padding: 0 48px;
}

.wlu-alert-bar__text {
    font-size: 15px;
    font-weight: 600;
    color: var(--black);
    text-align: center;
    margin: 0;
    line-height: 1.4;
}

.wlu-alert-bar__text br {
    display: none;
}

.wlu-alert-bar__cta {
    display: inline-block;
    background-color: var(--black);
    color: var(--white) !important;
    padding: 7px 18px;
    font-size: 13px;
    font-weight: 700;
    font-family: "Montserrat", sans-serif;
    text-decoration: none !important;
    text-transform: uppercase;
    letter-spacing: 0.06em;
    flex-shrink: 0;
    transition: background-color 0.2s ease;
    white-space: nowrap;
}

.wlu-alert-bar__cta:hover {
    background-color: var(--dark-gray);
    color: var(--white) !important;
}

.wlu-alert-bar__close {
    position: absolute;
    right: 0;
    top: 50%;
    transform: translateY(-50%);
    background: none;
    border: none;
    font-size: 24px;
    line-height: 1;
    color: var(--black);
    cursor: pointer;
    padding: 0 2px;
    opacity: 0.6;
    transition: opacity 0.2s ease;
}

.wlu-alert-bar__close:hover {
    opacity: 1;
}

@media (max-width: 767px) {
    .wlu-alert-bar__inner {
        flex-wrap: wrap;
        gap: 8px;
        padding: 0 40px;
    }

    .wlu-alert-bar__text {
        font-size: 14px;
        flex-basis: 100%;
    }

    .wlu-alert-bar__cta {
        font-size: 12px;
        padding: 6px 14px;
    }
}

@media (max-width: 479.96px) {
    .ast-builder-grid-row-5-equal .ast-builder-grid-row {
        grid-template-columns: none !important;
    }
    .ast-builder-footer-grid-columns { display:block!important; }
    .site-footer-section { padding-bottom: 20px!important; }
}