/**
 * Header / nav / mega-menu styles.
 *
 * Static port of the Magento p/d theme (skin/frontend/p/d/css_dom/styles.css,
 * header region) + the design tokens it references (css_dom/global_vars.css).
 *
 * Notes:
 *  - Search (#pas-mini-form / .pas-*) and the account dropdown (.user-menu-wrap /
 *    .myaccount-*) rules are intentionally NOT ported.
 *  - Font tokens use the p/d HEADER scale (--font-size-scale: 4px), so --font-size-N-scale
 *    equals N + 4 px, and --font-weight-base is 500 (--font-medium) — matching plumrocket's
 *    .header, NOT the interior-page body scale. Primary font is Darker Grotesque (the p/d
 *    `.header` selector sets --primary-font-family to darker-grotesque; Lato
 *    is only the body font of interior pages, NOT the header). Secondary is Open Sans
 *    (Top/New badges). Both self-hosted via the @font-face block below (files in
 *    ../fonts/), so this CSS + fonts/ is portable to the sibling "learn" theme.
 *  - Descendant combinators use SINGLE spaces (kept consistent with the source).
 *  - Image url()s are relative to this css/ dir; images/ is its sibling (../images/).
 */

/* --- Header webfonts (Darker Grotesque primary, Open Sans secondary) — ported from p/d global_vars.css --- */
@font-face{font-family:'Darker Grotesque';font-weight:500;font-style:normal;font-display:swap;src:url(../fonts/Darker_Grotesque/DarkerGrotesque-Medium.woff2) format("woff2"),url(../fonts/Darker_Grotesque/DarkerGrotesque-Medium.ttf) format("truetype")}
@font-face{font-family:'Darker Grotesque';font-weight:600;font-style:normal;font-display:swap;src:url(../fonts/Darker_Grotesque/DarkerGrotesque-SemiBold.woff2) format("woff2"),url(../fonts/Darker_Grotesque/DarkerGrotesque-SemiBold.ttf) format("truetype")}
@font-face{font-family:'Darker Grotesque';font-weight:700;font-style:normal;font-display:swap;src:url(../fonts/Darker_Grotesque/DarkerGrotesque-Bold.woff2) format("woff2"),url(../fonts/Darker_Grotesque/DarkerGrotesque-Bold.ttf) format("truetype")}
@font-face{font-family:'Darker Grotesque';font-weight:800;font-style:normal;font-display:swap;src:url(../fonts/Darker_Grotesque/DarkerGrotesque-ExtraBold.woff2) format("woff2"),url(../fonts/Darker_Grotesque/DarkerGrotesque-ExtraBold.ttf) format("truetype")}
@font-face{font-family:'Darker Grotesque';font-weight:900;font-style:normal;font-display:swap;src:url(../fonts/Darker_Grotesque/DarkerGrotesque-Black.woff2) format("woff2"),url(../fonts/Darker_Grotesque/DarkerGrotesque-Black.ttf) format("truetype")}
@font-face{font-family:'Open Sans';font-weight:400;font-style:normal;font-display:swap;src:url(../fonts/openSans/OpenSans-Regular.woff2) format("woff2"),url(../fonts/openSans/OpenSans-Regular.ttf) format("truetype")}
@font-face{font-family:'Open Sans';font-weight:600;font-style:normal;font-display:swap;src:url(../fonts/openSans/OpenSans-SemiBold.woff2) format("woff2"),url(../fonts/openSans/OpenSans-SemiBold.ttf) format("truetype")}
@font-face{font-family:'Open Sans';font-weight:700;font-style:normal;font-display:swap;src:url(../fonts/openSans/OpenSans-Bold.woff2) format("woff2"),url(../fonts/openSans/OpenSans-Bold.ttf) format("truetype")}

:root {
    --base-color: #27293b;
    --color-gray-300: #E6E6E6;
    --header-icon-color: #626577;
    --header-icon-color-on-hover: var(--base-color);
    --link-color: #1861da;
    --primary-green: #1B9769;

    --header-space-y: 9px;
    --gutter: 20px;

    --header-submenu-box-shadow: inset 0 13px 20px 0 rgba(0, 0, 0, 0.05);
    --header-submenu-box-shadow-1: 0 24px 32px 4px rgba(16, 22, 33, 0.14);

    --primary-font-family: 'Darker Grotesque', Arial, Helvetica, sans-serif;
    --secondary-font-family: 'Open Sans', Arial, Helvetica, sans-serif;
    --font-weight-base: 500; /* p/d .header uses --font-medium (500); Darker Grotesque reads thin at 400 */

    --font-size-10: 10px;
    --font-size-18: 18px;
    --font-size-20: 20px;

    /* p/d .header applies --font-size-scale: 4px, so each N-scale = N + 4 (the header is NOT on the interior scale=0) */
    --font-size-10-scale: 14px;
    --font-size-13-scale: 17px;
    --font-size-14-scale: 18px;
    --font-size-15-scale: 19px;
    --font-size-16-scale: 20px;

    --h-corecttion: -4px;
}

@media (min-width: 1024px){
    :root {
        --header-space-y: 14px;
    }
}

.btn-h-cor > span{
    margin-top: var(--h-corecttion, initial);
}

/* ---------- header shell ---------- */
.header{
  background: #fff;
  border-bottom: 1px solid #E6E6E6;
  box-shadow: 0 13px 20px rgba(0, 0, 0, 0.05);
  transition: opacity 0.3s ease;
  font-family: var(--primary-font-family);
}

.header .container{
  max-width: 1776px;
  margin: 0 auto;
  padding: 0 var(--gutter);
  width: 100%;
  box-sizing: border-box;
  position: relative; /* anchor for desktop .level0_wrapper mega-menu (top: calc(100% + 10px)) */
}

.header.sticky-header{
  --header-space-y: 5px;

  position: fixed;
  top: 0;
  left: 0;
  width: 100%;
  z-index: 1000;
}

.header-top_wrap{
  display: grid;
  grid-template-columns: auto auto 1fr;
  flex-wrap: wrap;
  gap: 20px;
  align-items: center;
  padding: var(--header-space-y) 0;
  width: 100%;
  max-height: 78px;
  transition: all .2s ease-out;
}

.header-menu-button-wrap{
  order: -4;
}

.header .logo{
  margin:0;
  order: -3;
}

.header .logo img{
  display: block;
  max-width: 100%;
  height: auto;
}

@media (min-width: 480px){
  .header .logo{
    flex-shrink: 0;
  }
}

@media (min-width:1280px){
  .header-top_wrap{
    display: flex;
  }

  .header-menu-button-wrap{
    display: none;
  }
}

@media (min-width:1600px){
  .header-top_wrap{
    flex-wrap: nowrap;
    gap: 35px;
  }

 .main-menu-wrap .nav-primary{
   gap: 15px;
 }
}

/* ---------- header toplinks ---------- */
.header-toplinks{
  display: flex;
  align-items: center;
}

.header-toplinks li{
  display:block;
  cursor:pointer;
  text-align:left;
}

.header-toplinks .header-toplinks-user{
  display: block;
}

.header-icon{
  cursor: pointer;
  color: var(--header-icon-color);
  transition: color .2s ease;
  padding: 10px;
  display: block;
}

/* override WP theme's a:visited (blue) so the icon keeps its grey color after the link is visited */
.header-icon:link,
.header-icon:visited{
  color: var(--header-icon-color);
}

.header-menu-button{
  margin: 0 -10px;
}

.header-icon svg{
  display: block;
  margin: 0 auto;
}

.header-toplinks .header-toplinks-support{
  display: none;
}

.header-toplinks-support .contact-us_btn{
  display: flex;
  align-items: center;
  justify-content: center;
  box-shadow: 0 13px 20px 0 rgba(0, 0, 0, 0.05);
  background: #fff;
  color: var(--primary-green);
  border: 1px solid var(--primary-green);
  border-radius: 64px;
  padding: 9px 20px;
  margin-left: 25px;
  font-weight: 600;
  font-size: var(--font-size-20);
  line-height: 1;
  text-align: center;
  text-decoration: none;
  width: 145px;
  max-width: 100%;
  min-height: 40px;

  transition: all 0.3s ease;
}

.header-toplinks-support .contact-us_btn:hover{
  color: #fff;
  background: var(--primary-green);
}

@media (min-width: 768px){
  .header-icon:hover{
    color: var(--header-icon-color-on-hover);
  }

  .active .header-icon{
    color: var(--header-icon-color-on-hover);
  }

  .header-toplinks .header-toplinks-support{
    display: block;
  }
}

.header-toplinks_wrapper{
  margin-left: auto; /* push user/cart/Contact Us flush right at all widths (port has no header search to fill the gap >1599px) */
}

@media (min-width:1024px){
  .header-icon{
    padding: 15px;
    min-width: 52px;
  }

  .header-toplinks-support .contact-us_btn{
    margin-left: 15px;
  }
}

/*---------- main menu ----------*/
.main-menu-wrap{
  order: -2;
  flex-shrink: 0;
}

.nav-primary{
  font-weight:600;
  display: flex;
  list-style: none;
  margin: 0;
  padding: 0;
}

.nav-primary > .parent > ul{
  display: none;
}

.nav-primary > li{
  display:block;
}

.nav-primary .offers-nav .level0 {
  display: inline-flex;
  align-items: center;
  gap: 5px;
  width: 100%;
}

.nav-primary .offers-nav svg{
  color: #F1A54B;
  display: block;
}

.nav-primary .contact-nav{
  display:none
}

.nav-primary > li > a{
  display:block;
  line-height: 1.2;
  color: var(--base-color);
  text-decoration:none;
  padding: 10px;
  position:relative;
  font-size: var(--font-size-18);
}

.nav-primary > li > .has-children{
  padding-right: 30px;
}

.nav-primary > .parent ul{
  list-style: none;
  margin: 0;
  padding: 0; /* WP default ul indent (44px) would push level1 links off-grid */
}

.main-menu-wrap .nav-primary .view-all{
  display:none;
}

.level0_wrapper .level0 > .first.parent{
  grid-column: 1;
  grid-row: 1/4;
}

.level0_wrapper .level0 > .parent.nav-3-2{
  grid-column: 2;
  grid-row: 1/2;
}

.level0_wrapper .level0 > .parent.nav-3-3{
  grid-column: 2;
  grid-row: 2/3;
}

.level0_wrapper .level0 > .parent.nav-3-4{
  grid-column: 2;
  grid-row: 3/4;
}

.level0_wrapper .level0 > .parent.nav-3-5{
  grid-column: 3;
  grid-row: 1/2;
}

.level0_wrapper .bannerWrapper{
  grid-column: 3;
  grid-row: 2/4;
}

.level0_wrapper li.parent > a,
.level0_wrapper li.parent > span{
  color: #303030;
  font-style: normal;
  font-size: var(--font-size-15-scale); /* 19px — match plumrocket column heading (WP inheritance chain differs from Magento) */
  font-weight: 700;
  line-height: normal;
  text-decoration: none;
  padding-bottom: 12px;
  position: relative;
  display: block;
  cursor: default;
}

.level0_wrapper.resources .level1 a{
  color: #000;
  font-size: 20px;
  font-weight: 700;
  line-height: 1.5;
  letter-spacing: 0.4px;
  text-decoration: none;
  display: block;
}

.level0_wrapper .level1 a strong{
  font-weight: 700; /* WP/browser default strong=bolder renders 900 over the 700 link; keep uniform 700 like plumrocket */
}

.level0_wrapper.resources .nav-desk{
  display: block;
  margin-top: 15px;
  color: var(--header-icon-color);
  font-size: var(--font-size-14-scale);
  font-weight: var(--font-weight-base);
  line-height: 1.2;
  letter-spacing: 0.28px;
}

.level0_wrapper .level2 a,
.level0_wrapper .level2 span{
  text-decoration: none;
  color: #494949;
  font-size: var(--font-size-15-scale);
  font-style: normal;
  font-weight: var(--font-weight-base);
  line-height: 1.2;
  display: block;
  padding: 9px 0;
}

.level0_wrapper .level2 span{
  cursor: default;
}

.level0_wrapper .nav-more_link-wrp.active a{
  text-decoration: none;
}

/*    Nav banner    */

.level0_wrapper .bannerWrapper{
  position: relative;
}

.navBanner{
  padding: 16px 32px 32px;
  border-radius: 8px;
  background: #fff;
  border: 1px solid #E2E2E2;
}

.navBanner > img{
  margin-bottom: 15px;
}

.navBanner-text{
  color: #212429;
  font-size: var(--font-size-15-scale);
  font-style: normal;
  font-weight: var(--font-weight-base);
  line-height: 1.6;
  margin-bottom: 25px;
}

.navBanner-link{
  color: var(--link-color);
  font-size: var(--font-size-14-scale);
  font-style: normal;
  font-weight: 600;
  text-decoration: none;
  display: inline-flex;
  gap: 10px;
  align-items: center;
  position: relative;
  padding: 10px 0;
}

.navBanner-link:hover{
  text-decoration: underline;
}

.navBanner--compact{
  display: flex;
  flex-direction: column;
  gap: 8px;
  padding: 18px 20px;
  background: #F4F3F3;
  border: 0;
  border-radius: 10px;
}

.navBanner--compact .navBanner-head{
  display: flex;
  align-items: center;
  gap: 14px;
}

.navBanner--compact .navBanner-head > img{
  width: 60px;
  height: auto;
  margin: 0;
  flex-shrink: 0;
}

.navBanner--compact .navBanner-text{
  line-height: 1.45;
  margin-bottom: 0;
}

/*    Nav labels    */

.level0_wrapper .nav-label_wrapper{
  display: flex;
  align-items: center;
  width: 100%;
}

.level0_wrapper .nav-label_wrapper a{
  display: flex;
  align-items: center;
  width: 100%;
}

.nav-label_wrapper .label{
  padding: 6px;
  line-height: 1;
  color: #FFF;
  font-family:var(--secondary-font-family);
  font-size: var(--font-size-10);
  font-style: normal;
  font-weight: 700;
  border-radius: 4px;
  margin-left: 7px;
  background: #83BE4F;
}

.nav-label_wrapper .label--top{
  background: #83BE4F;
}

.nav-label_wrapper .label--new{
  background: #F48A0C;
}

@media (min-width:1280px){
  .nav-primary > li > a:before{
    content: '';
    position: absolute;
    right: 2px;
    left: 2px;
    bottom: -18px;
    height: 4px;
    transition: all .3s ease;
  }

  .nav-primary > li > a:hover:before,
  .nav-primary > .navOpen > a:before{
    background: var(--primary-green);
  }

  .nav-primary > .level0.active > a:before{
    background: var(--primary-green);
  }

  [data-accordion] > .has-children:after{
    content: '';
    right: 10px;
    position: absolute;
    top: 50%;
    transform: translateY(-50%);
    width: 10px;
    height: 10px;
    transition: all .3s ease;
    background: url('../images/caret_down_gray.svg') no-repeat center;
    background-size: contain;
  }

  .navOpen[data-accordion] > .has-children:after{
    transform: translateY(-50%) rotate(180deg);
  }

  .nav-primary .level0_wrapper .level0{
    max-width: 1250px;
    padding: 40px 0;
    margin: 0 auto;
    display: grid;
    grid-template-columns: repeat(3, 1fr);
    gap: 24px 55px;
  }

  .nav-primary .level0_wrapper.resources .level0{
    grid-template-columns: 1fr 1fr;
    gap: 35px;
  }

  .nav-primary > .parent:not(.navOpen) > .level0_wrapper{
    height: 0;
    width: 0;
    overflow: hidden;
    opacity: 0;
    transform: scale(0.8);
    z-index: -1;
  }

  .main-menu-wrap .parent > .level0_wrapper{
    position: absolute;
    top: calc(100% + 10px);
    left: 0;
    right: 0;
    width: 100%;
    max-width: 1200px;
    margin: 0 auto;
    z-index:3001;
    box-shadow: 0 22px 61px 0 rgba(0, 0, 0, 0.16);
    backdrop-filter: blur(31px);
    color: #494949;
    transition: all .3s ease, width .1s ease;
    padding: 0 50px;
    background: #fff;
    border-radius: 8px;
  }

  .main-menu-wrap .parent > .level0_wrapper.resources{
    max-width: 700px;
    left: initial;
    right: initial;
    transform: translateX(-39%);
  }

  .main-menu-wrap .level0_wrapper:before{
    content: '';
    position: absolute;
    top: -11px;
    left: 0;
    right: 0;
    height: 12px;
  }

  .level0_wrapper li.parent > a,
  .level0_wrapper li.parent > span{
    margin-bottom: 16px;
  }

  .level0_wrapper li.parent > a:after,
  .level0_wrapper li.parent > span:after{
    content: '';
    position: absolute;
    bottom: 0;
    left: 0;
    width: 30px;
    height: 3px;
    background: var(--primary-green);
  }

  .level0_wrapper .nav-more_link-wrp a{
    display: inline-block;
    color: var(--link-color);
    font-size: var(--font-size-14-scale);
    font-style: normal;
    font-weight: 600;
    background: url('../images/nav_arrow_right.svg') center right no-repeat;
    padding: 9px 30px 9px 0;
  }

  .level0_wrapper .level2.nav-more_link-wrp a:after{
    content: none;
  }

  .level0_wrapper .level2.nav-more_link-wrp a:hover{
    text-decoration: underline;
  }
}

@media (min-width: 1280px){
  .level0_wrapper .level0{
    grid-template-columns: repeat(3, auto);
    gap: 40px 120px;
  }

  .level0_wrapper.resources .level1 a,
  .level0_wrapper .level2 a,
  .navBanner-link{
    position: relative;
  }

  .navBanner-link{
    z-index: 1;
  }

  .level0_wrapper.resources .level1 a:after,
  .level0_wrapper .level2 a:after{
    position: absolute;
    content: '';
    left: -20px;
    right: -20px;
    top: -10px;
    bottom: -20px;
    border-radius: 8px;
    background: #F4F3F3;
    opacity: 0;
    z-index: -1;
    transition: all .3s ease;
  }

  .level0_wrapper .level2 a:after{
    top: 0;
    bottom: 0;
    left: -14px;
    right: -14px;
  }

  .level0_wrapper.resources .level1 a:hover:after,
  .level0_wrapper .level2 a:hover:after{
    opacity: 1;
  }

  .level0_wrapper .bannerWrapper{
    margin: 0;
    padding: 0;
    align-self: start;
  }
}

@media (min-width: 1440px){
  .nav-primary > li > a{
    padding: 10px 15px;
    position:relative;
    font-size: var(--font-size-20);
  }

  .nav-primary > li > .has-children {
    padding-right: 40px;
  }

  [data-accordion] > .has-children:after {
    right: 15px;
  }
}

@media (max-width: 1279px){
  .main-menu-wrap {
    display: none;
    position: absolute;
    top: 100%;
    left: 0;
    right: 0;
    box-shadow: var(--header-submenu-box-shadow), var(--header-submenu-box-shadow-1);
    transition: all .3s ease;
    padding-bottom: 60px;
    z-index: 5001;
    background: #fff;
  }

  .main-menu-wrap.open-main-menu{
    display: block;
  }
}

@media (max-width:1279px){
  .nav-primary {
    display: block;
    margin: 0;
    transition: all .3s ease;
  }

  .nav-primary > li {
    float: none
  }

  .nav-primary > li > a {
    font-size: var(--font-size-20);
    text-align: left;
    padding: 15px 10px;
    border-top: 1px solid #ECECEC;
    position: relative;
  }

  .nav-primary > li[data-accordion] > a {
    padding-right: 15px;
  }

  .level0_wrapper .level2 a,
  .level0_wrapper .level2 span{
    padding: 11px 0;
  }

  .nav-more_link-wrp a{
    text-transform: uppercase;
  }

  .nav-primary .contact-nav {
    display: block
  }

  /* Nav Accordion styles */

  .level0_wrapper{
    padding: 10px 25px 25px 25px;
    background: #f5f5f5;
  }

  .level0.parent > .has-children{
    position: relative;
  }

  [data-accordion] > .has-children:after,
  .level0 .parent > .has-children:after{
    content: '';
    position: absolute;
    top: 50%;
    transform: translateY(-50%);
    width: 20px;
    height: 20px;
    transition: all .3s ease;
  }

  .level0_wrapper li.parent > a,
  .level0_wrapper li.parent > span{
    padding: 14px 0;
    border-bottom: 1px solid #d3d3d3;
  }

  .level0_wrapper.resources .level1 a{
    padding: 14px 0;
    border-bottom: 1px solid #d3d3d3;
    color: #303030;
    font-weight: 700;
    text-decoration: none;
    position: relative;
    display: block;
    cursor: default;
  }

  .level0_wrapper.resources .nav-desk{
    display: none;
  }

  [data-accordion] > .has-children:after{
    right: 15px;
    background: url('../images/caret_down_gray.svg') no-repeat center;
  }

  .level0 .parent > .has-children:after{
    background: url('../images/caret_down_gray.svg') no-repeat center;
    right: 0;
  }

  .parent.open > .has-children:after{
    transform: translateY(-50%) rotate(180deg);
  }

  .parent > ul,
  .parent .level0_wrapper{
    transition: all .3s ease;
  }

  .parent > ul{
    padding: 5px 0 10px 0;
  }

  .parent:not(.open) > ul,
  .parent:not(.open) > .level0_wrapper{
    position: absolute;
    z-index: -1;
    height: 0;
    width: 100%;
    overflow: hidden;
    opacity: 0;
    transform: translateX(-100px);
  }

  .navBanner{
    display: none;
  }
}
