@import url('https://fonts.googleapis.com/css2?family=Allura&display=swap');

/* Home promo banner: keep the good home state */
.promo-content{
  z-index: 2;
  display: flex;
  flex-direction: column;
  justify-content: center;
  max-width: 700px;
  height: 100%;
  padding: 58px var(--space-page-x) 0 !important;
  position: relative;
}

.promo-label,
.promo-label.reveal,
.promo-label.visible,
.promo-label-force-visible,
.promo-label-force-visible.reveal,
.promo-label-force-visible.visible{
  position: relative !important;
  top: auto !important;
  left: auto !important;
  z-index: 6 !important;
  display: inline-flex !important;
  align-items: center;
  align-self: flex-start;
  margin: 0 0 .9rem !important;
  padding: .24rem .62rem !important;
  opacity: 1 !important;
  visibility: visible !important;
  transform: none !important;
  color: #f5f1ea !important;
  background: rgba(17,17,17,.38) !important;
  border: 1px solid rgba(245,241,234,.22) !important;
  text-shadow: 0 2px 10px rgba(0,0,0,.34);
  backdrop-filter: none !important;
  -webkit-backdrop-filter: none !important;
  mix-blend-mode: normal !important;
  isolation: isolate;
}

.promo-heading{
  display: block !important;
  padding-top: .14em !important;
  font-family: 'Allura', cursive !important;
  font-style: normal !important;
  font-weight: 400 !important;
  font-size: clamp(2.65rem, 5.6vw, 5rem) !important;
  line-height: 1.12 !important;
  letter-spacing: 0 !important;
  margin: 0 0 1rem !important;
  color: var(--ivory) !important;
  text-shadow: 0 2px 10px rgba(17,17,17,.18);
}

.promo-sub{
  max-width: 470px;
  margin-bottom: 2rem !important;
}

@media (max-width: 768px){
  .promo-content{
    padding: 42px var(--space-page-x-mobile) 0 !important;
  }

  .promo-label,
  .promo-label.reveal,
  .promo-label.visible,
  .promo-label-force-visible,
  .promo-label-force-visible.reveal,
  .promo-label-force-visible.visible{
    max-width: 100%;
    font-size: .54rem !important;
    letter-spacing: .2em !important;
  }

  .promo-heading{
    font-size: clamp(2.15rem, 11vw, 3.7rem) !important;
    line-height: 1.1 !important;
    padding-top: .16em !important;
  }
}

/* Store/category header: readable over light banner and behaves like home on scroll */
.post-type-archive-product .site-header,
.tax-product_cat .site-header,
.page-template-page-shop .site-header{
  top: var(--space-header-offset) !important;
}

.post-type-archive-product .site-header:not(.scrolled),
.tax-product_cat .site-header:not(.scrolled),
.page-template-page-shop .site-header:not(.scrolled){
  background: transparent !important;
  border-bottom: none !important;
  backdrop-filter: none !important;
  -webkit-backdrop-filter: none !important;
}

.post-type-archive-product .site-header:not(.scrolled) .header-logo,
.post-type-archive-product .site-header:not(.scrolled) .header-nav a,
.post-type-archive-product .site-header:not(.scrolled) .header-action-btn,
.tax-product_cat .site-header:not(.scrolled) .header-logo,
.tax-product_cat .site-header:not(.scrolled) .header-nav a,
.tax-product_cat .site-header:not(.scrolled) .header-action-btn,
.page-template-page-shop .site-header:not(.scrolled) .header-logo,
.page-template-page-shop .site-header:not(.scrolled) .header-nav a,
.page-template-page-shop .site-header:not(.scrolled) .header-action-btn{
  color: #0e1e46 !important;
}

.post-type-archive-product .site-header:not(.scrolled) .header-logo span,
.tax-product_cat .site-header:not(.scrolled) .header-logo span,
.page-template-page-shop .site-header:not(.scrolled) .header-logo span{
  color: #0e1e46 !important;
}

.post-type-archive-product .site-header:not(.scrolled) .header-nav a::after,
.tax-product_cat .site-header:not(.scrolled) .header-nav a::after,
.page-template-page-shop .site-header:not(.scrolled) .header-nav a::after{
  background: #0e1e46 !important;
}

/* Dropdown before scroll: make it visible over the light banner */
.post-type-archive-product .site-header:not(.scrolled) .header-nav > li > .sub-menu,
.tax-product_cat .site-header:not(.scrolled) .header-nav > li > .sub-menu,
.page-template-page-shop .site-header:not(.scrolled) .header-nav > li > .sub-menu{
  background: rgba(255,255,255,.96) !important;
  border: 1px solid rgba(14,30,70,.12) !important;
  box-shadow: 0 16px 40px rgba(14,30,70,.08);
}

.post-type-archive-product .site-header:not(.scrolled) .header-nav > li > .sub-menu a,
.post-type-archive-product .site-header:not(.scrolled) .header-nav > li > .sub-menu > .menu-item-has-children > a,
.post-type-archive-product .site-header:not(.scrolled) .header-nav > li > .sub-menu > .menu-item-has-children > .sub-menu a,
.tax-product_cat .site-header:not(.scrolled) .header-nav > li > .sub-menu a,
.tax-product_cat .site-header:not(.scrolled) .header-nav > li > .sub-menu > .menu-item-has-children > a,
.tax-product_cat .site-header:not(.scrolled) .header-nav > li > .sub-menu > .menu-item-has-children > .sub-menu a,
.page-template-page-shop .site-header:not(.scrolled) .header-nav > li > .sub-menu a,
.page-template-page-shop .site-header:not(.scrolled) .header-nav > li > .sub-menu > .menu-item-has-children > a,
.page-template-page-shop .site-header:not(.scrolled) .header-nav > li > .sub-menu > .menu-item-has-children > .sub-menu a{
  color: #0e1e46 !important;
}

.post-type-archive-product .site-header.scrolled,
.tax-product_cat .site-header.scrolled,
.page-template-page-shop .site-header.scrolled{
  top: 0 !important;
  background: #111111eb !important;
  border-bottom: 1px solid var(--border) !important;
}

.post-type-archive-product .site-header.scrolled .header-logo,
.post-type-archive-product .site-header.scrolled .header-nav a,
.post-type-archive-product .site-header.scrolled .header-action-btn,
.tax-product_cat .site-header.scrolled .header-logo,
.tax-product_cat .site-header.scrolled .header-nav a,
.tax-product_cat .site-header.scrolled .header-action-btn,
.page-template-page-shop .site-header.scrolled .header-logo,
.page-template-page-shop .site-header.scrolled .header-nav a,
.page-template-page-shop .site-header.scrolled .header-action-btn{
  color: var(--ivory) !important;
}

.post-type-archive-product .site-header.scrolled .header-logo span,
.tax-product_cat .site-header.scrolled .header-logo span,
.page-template-page-shop .site-header.scrolled .header-logo span{
  color: var(--accent) !important;
}

.shop-hero.shop-hero--image-banner{
  position: relative;
  width: 100%;
  min-height: 0 !important;
  padding: 0 !important;
  background: #d7eef8 !important;
  overflow: hidden;
}

.shop-hero.shop-hero--image-banner .shop-hero-bg{
  display: block;
  width: 100%;
  height: auto;
  position: relative;
  inset: auto;
  object-fit: initial !important;
  object-position: initial !important;
  filter: none !important;
  background: #d7eef8;
}

.shop-hero.shop-hero--image-banner .shop-hero-overlay{
  display: none !important;
}

/* Shopping typography = modern Jost everywhere commerce-related */
.category-name,
.category-count,
.product-name,
.product-price,
.carousel-item-name,
.carousel-item-price,
.shop-toolbar-title,
.shop-toolbar-subcopy,
.shop-product-title,
.shop-product-price,
.shop-product-link,
.single-product-title,
.single-product-price,
.single-product-highlight h3,
.single-product-panel-title,
.single-product-related-name,
.single-product-related-price{
  font-family: var(--font-family-body) !important;
  font-style: normal !important;
  letter-spacing: -0.02em !important;
  text-decoration: none !important;
}

.category-name{
  font-weight: 500 !important;
  font-size: .95rem !important;
  line-height: 1.22 !important;
}

.category-count{
  font-weight: 400 !important;
  font-size: .78rem !important;
}

.product-name{
  color: var(--ivory) !important;
  font-weight: 500 !important;
  font-size: 1rem !important;
  line-height: 1.28 !important;
}

.product-price{
  color: var(--beige) !important;
  font-weight: 500 !important;
  font-size: 1.1rem !important;
}

.carousel-item-name{
  color: var(--charcoal) !important;
  font-weight: 500 !important;
  font-size: .92rem !important;
  line-height: 1.24 !important;
}

.carousel-item-price{
  color: var(--accent) !important;
  font-weight: 500 !important;
  font-size: .92rem !important;
}

.shop-toolbar-title{
  font-weight: 500 !important;
  font-size: clamp(1.4rem, 2.4vw, 2rem) !important;
  line-height: 1.08 !important;
}

.shop-toolbar-subcopy{
  margin-top: .7rem;
  color: rgba(245,241,234,.78);
  font-size: .9rem;
  line-height: 1.65;
}

.single-product-title{
  font-weight: 500 !important;
  font-size: clamp(1.75rem, 3.1vw, 2.35rem) !important;
  line-height: 1.05 !important;
}

.single-product-price{
  font-weight: 500 !important;
  font-size: clamp(1.18rem, 2vw, 1.75rem) !important;
  color: var(--beige) !important;
}

.single-product-highlight h3{
  font-weight: 500 !important;
  font-size: .98rem !important;
  line-height: 1.24 !important;
}

.single-product-panel-title{
  font-weight: 500 !important;
  font-size: 1.12rem !important;
  line-height: 1.2 !important;
}

.single-product-related-name{
  font-weight: 500 !important;
  font-size: .92rem !important;
  line-height: 1.24 !important;
}

.single-product-related-price{
  font-weight: 500 !important;
  font-size: .92rem !important;
}

/* Pointer cleanup */
.footer-links a,
.footer-social a,
.social-link,
.carousel-item,
.carousel-item *,
.carousel-item:hover,
.carousel-item:hover *{
  cursor: pointer !important;
}

.footer-links a,
.footer-social a,
.carousel-item,
.carousel-item *,
.carousel-item:hover *{
  text-decoration: none !important;
}


/* Store pages: keep header strip visible before scroll and dropdown readable */
.post-type-archive-product .site-header,
.tax-product_cat .site-header,
.single-product .site-header,
.page-template-page-shop .site-header{
  top: var(--space-header-offset) !important;
}
.post-type-archive-product .site-header:not(.scrolled),
.tax-product_cat .site-header:not(.scrolled),
.single-product .site-header:not(.scrolled),
.page-template-page-shop .site-header:not(.scrolled){
  background: rgba(17,17,17,.86) !important;
  border-bottom: 1px solid var(--border) !important;
  backdrop-filter: blur(14px);
  -webkit-backdrop-filter: blur(14px);
}
.post-type-archive-product .site-header:not(.scrolled) .header-logo,
.post-type-archive-product .site-header:not(.scrolled) .header-nav a,
.post-type-archive-product .site-header:not(.scrolled) .header-action-btn,
.tax-product_cat .site-header:not(.scrolled) .header-logo,
.tax-product_cat .site-header:not(.scrolled) .header-nav a,
.tax-product_cat .site-header:not(.scrolled) .header-action-btn,
.single-product .site-header:not(.scrolled) .header-logo,
.single-product .site-header:not(.scrolled) .header-nav a,
.single-product .site-header:not(.scrolled) .header-action-btn,
.page-template-page-shop .site-header:not(.scrolled) .header-logo,
.page-template-page-shop .site-header:not(.scrolled) .header-nav a,
.page-template-page-shop .site-header:not(.scrolled) .header-action-btn{
  color: var(--ivory) !important;
}
.post-type-archive-product .site-header:not(.scrolled) .header-logo span,
.tax-product_cat .site-header:not(.scrolled) .header-logo span,
.single-product .site-header:not(.scrolled) .header-logo span,
.page-template-page-shop .site-header:not(.scrolled) .header-logo span{
  color: var(--accent) !important;
}
.post-type-archive-product .site-header:not(.scrolled) .header-nav > li > .sub-menu,
.tax-product_cat .site-header:not(.scrolled) .header-nav > li > .sub-menu,
.single-product .site-header:not(.scrolled) .header-nav > li > .sub-menu,
.page-template-page-shop .site-header:not(.scrolled) .header-nav > li > .sub-menu{
  background: rgba(17,17,17,.96) !important;
  border: 1px solid rgba(245,241,234,.1) !important;
}
.post-type-archive-product .site-header:not(.scrolled) .header-nav > li > .sub-menu a,
.tax-product_cat .site-header:not(.scrolled) .header-nav > li > .sub-menu a,
.single-product .site-header:not(.scrolled) .header-nav > li > .sub-menu a,
.page-template-page-shop .site-header:not(.scrolled) .header-nav > li > .sub-menu a,
.post-type-archive-product .site-header:not(.scrolled) .header-nav > li > .sub-menu > .menu-item-has-children > a,
.tax-product_cat .site-header:not(.scrolled) .header-nav > li > .sub-menu > .menu-item-has-children > a,
.single-product .site-header:not(.scrolled) .header-nav > li > .sub-menu > .menu-item-has-children > a,
.page-template-page-shop .site-header:not(.scrolled) .header-nav > li > .sub-menu > .menu-item-has-children > a,
.post-type-archive-product .site-header:not(.scrolled) .header-nav > li > .sub-menu > .menu-item-has-children > .sub-menu a,
.tax-product_cat .site-header:not(.scrolled) .header-nav > li > .sub-menu > .menu-item-has-children > .sub-menu a,
.single-product .site-header:not(.scrolled) .header-nav > li > .sub-menu > .menu-item-has-children > .sub-menu a,
.page-template-page-shop .site-header:not(.scrolled) .header-nav > li > .sub-menu > .menu-item-has-children > .sub-menu a{
  color: var(--ivory) !important;
}


/* Start store/category banner below the fixed nav strip to prevent overlap */
.post-type-archive-product .shop-hero.shop-hero--image-banner,
.tax-product_cat .shop-hero.shop-hero--image-banner,
.page-template-page-shop .shop-hero.shop-hero--image-banner{
  margin-top: calc(var(--space-header-offset) + var(--space-header-y)) !important;
}

@media (max-width: 768px){
  .post-type-archive-product .shop-hero.shop-hero--image-banner,
  .tax-product_cat .shop-hero.shop-hero--image-banner,
  .page-template-page-shop .shop-hero.shop-hero--image-banner{
    margin-top: calc(42px + 64px) !important;
  }
}


/* =========================================
   Current targeted fixes only
   1) repair top Shop menu interaction
   2) pull shop/category banner closer to the top nav strip
   ========================================= */

/* Keep the main Shop item clickable */
.header-nav > li.menu-item-has-children > a{
  pointer-events: auto !important;
}

/* Also allow the grouped submenu headings to be clickable instead of dead labels */
.header-nav > li > .sub-menu > .menu-item-has-children > a{
  pointer-events: auto !important;
  cursor: pointer !important;
}

/* Keep submenu links readable and consistent */
.header-nav > li > .sub-menu a{
  text-decoration: none !important;
}

/* Reduce the visible empty gap so the hero feels attached to the nav strip */
.post-type-archive-product .shop-hero.shop-hero--image-banner,
.tax-product_cat .shop-hero.shop-hero--image-banner,
.page-template-page-shop .shop-hero.shop-hero--image-banner{
  margin-top: var(--space-header-offset) !important;
}


/* =========================================
   CURRENT FIXES ONLY
   1) restore Shop submenu text/items
   2) remove the extra visible gap above the store banner
   ========================================= */

/* Desktop shop dropdown: restore grouped labels and child links visibly */
.header-nav > li > .sub-menu > .menu-item-has-children{
  display: block !important;
  width: 100% !important;
}

.header-nav > li > .sub-menu > .menu-item-has-children > a{
  display: block !important;
  padding: 14px 18px 6px !important;
  color: var(--ivory) !important;
  opacity: 1 !important;
  font-size: 0.72rem !important;
  font-weight: 500 !important;
  letter-spacing: 0.18em !important;
  line-height: 1.2 !important;
  text-transform: uppercase !important;
  text-decoration: none !important;
  pointer-events: auto !important;
}

.header-nav > li > .sub-menu > .menu-item-has-children > .sub-menu{
  position: static !important;
  display: flex !important;
  flex-direction: column !important;
  gap: 0 !important;
  min-width: 0 !important;
  padding: 0 0 8px !important;
  margin: 0 !important;
  background: transparent !important;
  border: 0 !important;
  opacity: 1 !important;
  visibility: visible !important;
  transform: none !important;
}

.header-nav > li > .sub-menu > .menu-item-has-children > .sub-menu a{
  display: block !important;
  padding: var(--nav-dropdown-child-padding) !important;
  color: rgba(245,241,234,.82) !important;
  opacity: 1 !important;
  white-space: nowrap !important;
  text-decoration: none !important;
}

.header-nav > li > .sub-menu > .menu-item-has-children > .sub-menu a:hover{
  color: var(--ivory) !important;
}

/* Store pages before scroll on light header banner */
.post-type-archive-product .site-header:not(.scrolled) .header-nav > li > .sub-menu > .menu-item-has-children > a,
.tax-product_cat .site-header:not(.scrolled) .header-nav > li > .sub-menu > .menu-item-has-children > a,
.single-product .site-header:not(.scrolled) .header-nav > li > .sub-menu > .menu-item-has-children > a,
.page-template-page-shop .site-header:not(.scrolled) .header-nav > li > .sub-menu > .menu-item-has-children > a{
  color: #0e1e46 !important;
}

.post-type-archive-product .site-header:not(.scrolled) .header-nav > li > .sub-menu > .menu-item-has-children > .sub-menu a,
.tax-product_cat .site-header:not(.scrolled) .header-nav > li > .sub-menu > .menu-item-has-children > .sub-menu a,
.single-product .site-header:not(.scrolled) .header-nav > li > .sub-menu > .menu-item-has-children > .sub-menu a,
.page-template-page-shop .site-header:not(.scrolled) .header-nav > li > .sub-menu > .menu-item-has-children > .sub-menu a{
  color: #0e1e46 !important;
}

/* Make the banner touch the nav strip instead of sitting lower with a visible gap */
.post-type-archive-product .shop-hero.shop-hero--image-banner,
.tax-product_cat .shop-hero.shop-hero--image-banner,
.single-product .shop-hero.shop-hero--image-banner,
.page-template-page-shop .shop-hero.shop-hero--image-banner{
  margin-top: 0 !important;
}

@media (max-width: 768px){
  .post-type-archive-product .shop-hero.shop-hero--image-banner,
  .tax-product_cat .shop-hero.shop-hero--image-banner,
  .single-product .shop-hero.shop-hero--image-banner,
  .page-template-page-shop .shop-hero.shop-hero--image-banner{
    margin-top: 0 !important;
  }
}


/* =========================================
   Current targeted fixes only
   1) desktop Shop submenu labels/links must be visibly rendered
   2) shop/category banner should begin directly under the black nav strip
   ========================================= */

/* Make submenu text explicit and visible */
.header-nav .nav-link-text{
  display: inline !important;
  opacity: 1 !important;
  visibility: visible !important;
  color: inherit !important;
}

/* Restore grouped submenu headings */
.header-nav > li > .sub-menu > li.submenu-group{
  display: block !important;
  width: 100% !important;
}

.header-nav > li > .sub-menu > li.submenu-group > a.submenu-group-link{
  display: block !important;
  width: 100% !important;
  padding: 14px 18px 6px !important;
  color: var(--ivory) !important;
  opacity: 1 !important;
  font-size: 0.72rem !important;
  font-weight: 500 !important;
  letter-spacing: 0.18em !important;
  line-height: 1.2 !important;
  text-transform: uppercase !important;
  text-decoration: none !important;
  pointer-events: auto !important;
}

.header-nav > li > .sub-menu > li.submenu-group > a.submenu-group-link::before,
.header-nav > li > .sub-menu > li.submenu-group > a.submenu-group-link::after{
  content: none !important;
  display: none !important;
}

.header-nav > li > .sub-menu > li.submenu-group > .sub-menu{
  position: static !important;
  display: flex !important;
  flex-direction: column !important;
  gap: 0 !important;
  min-width: 0 !important;
  padding: 0 0 8px !important;
  margin: 0 !important;
  background: transparent !important;
  border: 0 !important;
  opacity: 1 !important;
  visibility: visible !important;
  transform: none !important;
}

.header-nav > li > .sub-menu > li.submenu-group > .sub-menu a{
  display: block !important;
  padding: var(--nav-dropdown-child-padding) !important;
  color: rgba(245,241,234,.82) !important;
  opacity: 1 !important;
  visibility: visible !important;
  text-decoration: none !important;
  white-space: nowrap !important;
}

.header-nav > li > .sub-menu > li.submenu-group > .sub-menu a:hover{
  color: var(--ivory) !important;
}

/* Before scroll on store-like pages, use dark navy text on the light header/banner */
.post-type-archive-product .site-header:not(.scrolled) .header-nav > li > .sub-menu > li.submenu-group > a.submenu-group-link,
.tax-product_cat .site-header:not(.scrolled) .header-nav > li > .sub-menu > li.submenu-group > a.submenu-group-link,
.single-product .site-header:not(.scrolled) .header-nav > li > .sub-menu > li.submenu-group > a.submenu-group-link,
.page-template-page-shop .site-header:not(.scrolled) .header-nav > li > .sub-menu > li.submenu-group > a.submenu-group-link{
  color: #0e1e46 !important;
}

.post-type-archive-product .site-header:not(.scrolled) .header-nav > li > .sub-menu > li.submenu-group > .sub-menu a,
.tax-product_cat .site-header:not(.scrolled) .header-nav > li > .sub-menu > li.submenu-group > .sub-menu a,
.single-product .site-header:not(.scrolled) .header-nav > li > .sub-menu > li.submenu-group > .sub-menu a,
.page-template-page-shop .site-header:not(.scrolled) .header-nav > li > .sub-menu > li.submenu-group > .sub-menu a{
  color: #0e1e46 !important;
}

/* Banner should start directly under the black nav strip, not under the promo bar and not behind the header */
.post-type-archive-product .shop-hero.shop-hero--image-banner,
.tax-product_cat .shop-hero.shop-hero--image-banner,
.single-product .shop-hero.shop-hero--image-banner,
.page-template-page-shop .shop-hero.shop-hero--image-banner{
  margin-top: calc(var(--space-header-offset) + var(--space-header-y)) !important;
}

@media (max-width: 768px){
  .post-type-archive-product .shop-hero.shop-hero--image-banner,
  .tax-product_cat .shop-hero.shop-hero--image-banner,
  .single-product .shop-hero.shop-hero--image-banner,
  .page-template-page-shop .shop-hero.shop-hero--image-banner{
    margin-top: calc(var(--space-header-offset) + 64px) !important;
  }
}
