/* =========================================================================
   Evo Labs — Front-end fixes (homepage contrast + footer pills + mobile)
   added 2026-06-06 • child theme override • scoped, reversible
   ========================================================================= */

/* -------------------------------------------------------------------------
   1) HEADING CONTRAST on dark sections
   A global `h2 { color: navy !important }` rule clobbers headings the page
   author intended to be white on dark backgrounds:
     • "Every Compound."  (h2.section-h2 has inline style="color:#fff")
     • "Research-Grade Peptides."  (h2.cta-section__h2, navy on navy)
   Restore them to white. The gradient ".tg" sub-line keeps its own fill.
   ------------------------------------------------------------------------- */
h2[style*="color:#fff"], h2[style*="color: #fff"], h2[style*="#ffffff"],
h3[style*="color:#fff"], h3[style*="color: #fff"], h3[style*="#ffffff"]{
  color:#ffffff !important;
}
h2.cta-section__h2{ color:#ffffff !important; }
.cta-section .cta-section__h2{ color:#ffffff !important; }
/* keep the gradient highlight line readable on navy (was navy-ish blue) */
.cta-section__h2 .tg, .section-h2 .tg{ filter:saturate(1.15) brightness(1.12); }

/* -------------------------------------------------------------------------
   2) FOOTER POLICY PILLS  (.box-button — only the 3 footer policy links)
   Currently transparent/no border/no padding => looked like bare text.
   Restyle as clean outlined pills suited to the dark footer.
   ------------------------------------------------------------------------- */
/* The footer policy pills inherit a global rule
   `.elementor-button-wrapper .elementor-button{background:var(--evo-gradient)!important}`
   (specificity 0,4,0) from post-50892.css. Beat it with a footer-scoped
   selector at higher specificity (0,4,1) so we can apply a clean, subtle
   outlined pill (appropriate for footer legal links). `background:` shorthand
   wipes the gradient image. */
.elementor-21569 .elementor-button-wrapper a.box-button.elementor-button{
  display:inline-flex !important; align-items:center !important; justify-content:center !important;
  background:rgba(255,255,255,.06) !important;
  border:1px solid rgba(255,255,255,.2) !important;
  color:#cdd5f0 !important;
  padding:8px 16px !important;
  border-radius:999px !important;
  font-size:12.5px !important; font-weight:500 !important; line-height:1 !important;
  letter-spacing:.01em !important; text-decoration:none !important;
  margin:5px 8px 5px 0 !important;
  transition:background .2s ease,border-color .2s ease,color .2s ease,transform .15s ease !important;
}
.elementor-21569 .elementor-button-wrapper a.box-button.elementor-button:hover,
.elementor-21569 .elementor-button-wrapper a.box-button.elementor-button:focus-visible{
  background:rgba(43,82,232,.28) !important;
  border-color:rgba(43,82,232,.6) !important;
  color:#ffffff !important; transform:translateY(-1px) !important;
}

/* -------------------------------------------------------------------------
   3) MOBILE polish (homepage already responsive — these are safe refinements)
   ------------------------------------------------------------------------- */
/* -------------------------------------------------------------------------
   4) Compliance / announcement banner — rotating fade between 3 messages
   ------------------------------------------------------------------------- */
#evo-compliance-banner .ecb-rotator{ display:inline-grid; }
#evo-compliance-banner .ecb-msg{
  grid-area:1 / 1; text-align:center;
  font-size:13px; font-weight:600; color:rgba(255,255,255,.9); letter-spacing:.03em;
  font-family:'Inter',sans-serif;
  opacity:0; animation:ecbRotate 12s infinite;
}
#evo-compliance-banner .ecb-msg:nth-child(2){ animation-delay:4s; }
#evo-compliance-banner .ecb-msg:nth-child(3){ animation-delay:8s; }
@keyframes ecbRotate{
  0%{opacity:0} 4%{opacity:1} 30%{opacity:1} 36%{opacity:0} 100%{opacity:0}
}
@media (prefers-reduced-motion: reduce){
  #evo-compliance-banner .ecb-msg{ animation:none; }
  #evo-compliance-banner .ecb-msg:nth-child(1){ opacity:1; }
  #evo-compliance-banner .ecb-msg:nth-child(n+2){ display:none; }
}

/* -------------------------------------------------------------------------
   5) Mobile menu popup 73689 — custom premium menu. The markup + base styles
      live inline in the popup HTML widget; these are high-specificity overrides
      the inline <style> can't win: full-width panel + correct logo sizing.
   ------------------------------------------------------------------------- */
#elementor-popup-modal-73689 .dialog-widget-content{ width:100% !important; max-width:100vw !important; border:0 !important; }
#elementor-popup-modal-73689 .dialog-message,
#elementor-popup-modal-73689 .elementor,
#elementor-popup-modal-73689 .elementor-section,
#elementor-popup-modal-73689 .elementor-container,
#elementor-popup-modal-73689 .elementor-column,
#elementor-popup-modal-73689 .elementor-widget-wrap,
#elementor-popup-modal-73689 .elementor-widget-html,
#elementor-popup-modal-73689 .elementor-widget-html > .elementor-widget-container,
#elementor-popup-modal-73689 .evm{ width:100% !important; max-width:100vw !important; }
#elementor-popup-modal-73689 .evm__head img.evm__logo{ height:40px !important; width:auto !important; max-width:170px !important; }
#elementor-popup-modal-73689 .dialog-close-button{ display:none !important; }
/* fit the visible viewport (mobile browser chrome makes 100vh too tall -> bottom got cut off) */
html body #elementor-popup-modal-73689 .dialog-widget-content{ height:100dvh !important; max-height:100dvh !important; overflow-y:auto !important; }
#elementor-popup-modal-73689 .evm{ min-height:100dvh !important; }
/* trim heights a touch so everything fits without scrolling on shorter phones */
#elementor-popup-modal-73689 .evm__head{ padding:18px 24px 12px !important; }
#elementor-popup-modal-73689 .evm__link{ padding:16px 0 !important; }
#elementor-popup-modal-73689 .evm__foot{ padding:14px 24px 20px !important; }

@media (max-width:767px){
  /* footer policy pills: comfortable spacing & tap size */
  .elementor-21569 .elementor-button-wrapper a.box-button.elementor-button{ padding:10px 16px !important; font-size:13px !important; margin:5px 4px !important; }
  .elementor-21569 .elementor-button-wrapper{ display:inline-block !important; }

  /* hero trust pill: was nowrap+left-aligned -> wrapped mid-claim awkwardly.
     Flow as centered inline text so it wraps cleanly BETWEEN claims
     (HTML wraps each claim in non-breaking text; separators are breakable). */
  /* hero trust pill -> compact, single clean line, centered (was 2 rows w/ dangling dot) */
  .hero__pill{
    display:flex !important; align-items:center !important; justify-content:center !important;
    width:-moz-fit-content !important; width:fit-content !important; max-width:100% !important;
    margin:0 auto 20px !important; padding:7px 15px !important; gap:7px !important; line-height:1.2 !important;
  }
  .hero__pill-dot{ display:inline-flex !important; flex:0 0 auto !important; margin:0 !important; }
  .hero__pill-text{ display:inline !important; font-size:9.5px !important; letter-spacing:.05em !important; white-space:nowrap !important; }
  /* hero eyebrow tagline -> single line (was orphaning "Tested") */
  .hero__stat{ font-size:9.5px !important; letter-spacing:.03em !important; }

  /* Hero stacking on mobile: the image column has order:-1 (image-first).
     Flip so the text column (eyebrow tagline + cGMP pill + headline + CTAs)
     sits ABOVE the image, matching the desktop reading order. */
  .hero__inner > .hero__visual{ order:2 !important; }

  /* smaller announcement banner on mobile */
  #evo-compliance-banner{ padding:7px 16px !important; }
  #evo-compliance-banner .ecb-msg{ font-size:11px !important; letter-spacing:.02em !important; }

  /* tighten the big empty space above the hero content (was ~128px) */
  .hero{ padding-top:26px !important; }
  .hero__inner{ padding-top:10px !important; }

  /* Footer (global) trust badges: cGMP / ISO Certified / USA Made / HPLC
     Verified -> keep all four on ONE row on mobile (were wrapping to 2). */
  .elementor-element-badges1a2b .elementor-widget-container > div{
    flex-wrap:nowrap !important; gap:5px !important;
    justify-content:center !important;
  }
  .elementor-element-badges1a2b span{
    font-size:8.5px !important; padding:3px 7px !important;
    white-space:nowrap !important; letter-spacing:0 !important;
  }
  /* Hero trust strip (HPLC Tested / Third-Party / Same-Day Dispatch / Free Shipping)
     was 4 sparse text rows with tiny dots — rebuild as a clean trust card with
     brand check-circle icons + dividers (mobile only). */
  .hero__strip-inner{
    display:flex !important; flex-direction:column !important; gap:0 !important;
    justify-content:flex-start !important; align-items:stretch !important;
    background:#fff !important; border:1px solid #DDE3F5 !important; border-radius:14px !important;
    padding:2px 16px !important; box-shadow:0 8px 24px -12px rgba(10,23,68,.22) !important;
  }
  .hero__strip-inner .strip-item{
    display:flex !important; align-items:center !important; gap:11px !important;
    width:100% !important; padding:12px 0 !important; margin:0 !important;
    font-size:12.5px !important; font-weight:500 !important; line-height:1.3 !important;
    color:#1E2540 !important; text-align:left !important; justify-content:flex-start !important;
    border-bottom:1px solid #EEF2FF !important;
  }
  .hero__strip-inner .strip-item:last-child{ border-bottom:none !important; }
  .hero__strip-inner .strip-item .strip-dot{
    flex:0 0 18px !important; width:18px !important; height:18px !important; min-width:18px !important;
    margin:0 !important; border-radius:0 !important;
    background:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Ccircle cx='12' cy='12' r='11' fill='%232B52E8'/%3E%3Cpath d='M7 12.5l3 3 7-7' fill='none' stroke='%23ffffff' stroke-width='2.5' stroke-linecap='round' stroke-linejoin='round'/%3E%3C/svg%3E") center/contain no-repeat !important;
  }

  /* Footer tagline -> one line on mobile (was wrapping at 13-15px).
     High specificity to beat Elementor's per-widget mobile typography. */
  .elementor-21569 .elementor-element.elementor-element-e7a51ce,
  .elementor-21569 .elementor-element.elementor-element-e7a51ce .elementor-widget-container,
  .elementor-21569 .elementor-element.elementor-element-e7a51ce p,
  .elementor-21569 .elementor-element.elementor-element-e7a51ce div{
    font-size:9.5px !important; line-height:1.45 !important;
  }
}

/* -------------------------------------------------------------------------
   6) Sticky mobile CTA bar (home pages) + same-day dispatch countdown
   ------------------------------------------------------------------------- */
#evo-sticky-cta{ display:none; }
@media (max-width:767px){
  #evo-sticky-cta{ display:flex; flex-direction:column; gap:8px;
    position:fixed; left:0; right:0; bottom:0; z-index:9990;
    padding:10px 16px; padding-bottom:calc(10px + env(safe-area-inset-bottom,0px));
    background:rgba(6,9,26,.93); -webkit-backdrop-filter:blur(10px); backdrop-filter:blur(10px);
    border-top:1px solid rgba(255,255,255,.12); }
  #evo-sticky-cta .esc__urgency{ display:flex; align-items:center; justify-content:center; gap:7px;
    font:600 11.5px/1 'Inter',sans-serif; color:#cdd5f0; }
  #evo-sticky-cta .esc__urgency b{ color:#fff; }
  #evo-sticky-cta .esc__dot{ width:7px; height:7px; border-radius:50%; background:#37d39a;
    box-shadow:0 0 0 3px rgba(55,211,154,.25); animation:escPulse 1.6s infinite; flex:0 0 auto; }
  @keyframes escPulse{ 50%{ box-shadow:0 0 0 7px rgba(55,211,154,0); } }
  #evo-sticky-cta .esc__btn{ display:block; text-align:center; padding:14px; border-radius:12px;
    font:600 15px/1 'Inter',sans-serif; color:#fff !important; text-decoration:none;
    background:linear-gradient(135deg,#2B52E8,#7B2FE8); box-shadow:0 -2px 20px -8px rgba(43,82,232,.6); }
  #evo-sticky-cta .esc--in{ display:none; }
  body.logged-in #evo-sticky-cta .esc--out{ display:none; }
  body.logged-in #evo-sticky-cta .esc--in{ display:block; }
  body.home .elementor-location-footer,
  body.page-id-95277 .elementor-location-footer,
  body.page-id-95309 .elementor-location-footer{ padding-bottom:100px !important; }
}


/* -------------------------------------------------------------------------
   7) SHOP / WooCommerce LUXURY product cards (2026-06-06 rebuild)
   Works with the child template woocommerce/content-product.php which renders
   <li class="product evo-card"> … custom markup. High-specificity + !important
   so The7 / Elementor / WC button styles can't silently override.
   Brand hex inlined (home --tokens are not global). Reversible: delete §7.
   ------------------------------------------------------------------------- */

/* grid layout — fluid columns (minmax 0 prevents long titles/prices blowing width) */
.woocommerce ul.products.elementor-grid{
  display:grid !important;
  grid-template-columns:repeat(3,minmax(0,1fr)) !important;
  gap:22px !important; margin:0 !important; padding:0 !important;
}

/* ── CARD SHELL ── */
.woocommerce ul.products li.product.evo-card{
  width:auto !important; min-width:0 !important; margin:0 !important; padding:0 !important;
  display:flex !important; flex-direction:column !important;
  background:#fff !important; border:1px solid #E7ECFA !important; border-radius:18px !important;
  overflow:hidden !important; position:relative !important; list-style:none !important;
  box-shadow:0 1px 3px rgba(10,23,68,.04), 0 10px 30px -16px rgba(10,23,68,.18) !important;
  transition:transform .26s cubic-bezier(.2,.7,.3,1), box-shadow .26s ease, border-color .26s ease !important;
}
.woocommerce ul.products li.product.evo-card::before{
  content:'' !important; position:absolute !important; top:0; left:0; right:0; height:3px !important;
  background:linear-gradient(135deg,#2B52E8,#7B2FE8) !important;
  transform:scaleX(0) !important; transform-origin:left !important; transition:transform .35s ease !important; z-index:4 !important;
}
.woocommerce ul.products li.product.evo-card:hover{
  transform:translateY(-6px) !important;
  box-shadow:0 22px 50px -20px rgba(10,23,68,.34) !important; border-color:rgba(43,82,232,.22) !important;
}
.woocommerce ul.products li.product.evo-card:hover::before{ transform:scaleX(1) !important; }

/* ── IMAGE WELL ── */
.woocommerce ul.products li.product.evo-card a.evo-card__media{
  display:block !important; position:relative !important; margin:0 !important; padding:18px !important;
  background:radial-gradient(120% 90% at 50% 0%, #FAFCFF 0%, #EEF3FF 100%) !important;
  border-bottom:1px solid #EEF2FF !important; overflow:hidden !important; line-height:0 !important;
}
.woocommerce ul.products li.product.evo-card a.evo-card__media img{
  position:relative !important; z-index:1 !important;
  width:100% !important; height:auto !important; aspect-ratio:1/1 !important; object-fit:contain !important;
  margin:0 !important; border-radius:8px !important; transition:transform .4s ease !important;
}
.woocommerce ul.products li.product.evo-card:hover a.evo-card__media img{ transform:scale(1.05) !important; }

/* ── BADGES ── */
.woocommerce ul.products li.product.evo-card .evo-badge{
  position:absolute !important; z-index:3 !important; display:inline-flex !important; align-items:center !important; gap:5px !important;
  font:700 9.5px/1 'Inter',sans-serif !important; letter-spacing:.06em !important; text-transform:uppercase !important;
  padding:6px 9px !important; border-radius:8px !important; -webkit-backdrop-filter:blur(6px) !important; backdrop-filter:blur(6px) !important;
  white-space:nowrap !important; max-width:calc(100% - 24px) !important; overflow:hidden !important; text-overflow:ellipsis !important;
}
.woocommerce ul.products li.product.evo-card .evo-badge--cat{
  top:12px !important; left:12px !important; color:#1A2F6E !important;
  background:rgba(255,255,255,.85) !important; border:1px solid rgba(43,82,232,.14) !important;
}
.woocommerce ul.products li.product.evo-card .evo-badge--purity{
  top:12px !important; right:12px !important; color:#fff !important;
  background:linear-gradient(135deg,rgba(43,82,232,.94),rgba(123,47,232,.94)) !important;
  box-shadow:0 4px 12px -4px rgba(43,82,232,.6) !important;
}
.woocommerce ul.products li.product.evo-card .evo-badge--purity svg{ width:11px !important; height:11px !important; }

/* ── BODY ── */
.woocommerce ul.products li.product.evo-card .evo-card__body{
  display:flex !important; flex-direction:column !important; flex:1 1 auto !important; padding:16px 16px 0 !important;
}
.woocommerce ul.products li.product.evo-card a.evo-card__titlelink{ display:block !important; margin:0 !important; padding:0 !important; }
.woocommerce ul.products li.product.evo-card h2.evo-card__title{
  font-family:'Space Grotesk',sans-serif !important; font-size:16.5px !important; font-weight:700 !important;
  color:#0A1744 !important; letter-spacing:-.01em !important; line-height:1.28 !important; margin:0 0 4px !important; padding:0 !important;
  display:-webkit-box !important; -webkit-line-clamp:2 !important; -webkit-box-orient:vertical !important; overflow:hidden !important;
  min-height:2.56em !important; transition:color .2s ease !important;
}
.woocommerce ul.products li.product.evo-card:hover h2.evo-card__title{ color:#2B52E8 !important; }
.woocommerce ul.products li.product.evo-card .evo-card__spec{
  font:500 12.5px/1.4 'Inter',sans-serif !important; color:#6979A0 !important; margin:0 0 14px !important;
}
.woocommerce ul.products li.product.evo-card .evo-card__foot{
  margin-top:auto !important; display:flex !important; align-items:flex-end !important; justify-content:space-between !important;
  gap:10px !important; padding-top:14px !important; border-top:1px solid #EEF2FF !important;
}
.woocommerce ul.products li.product.evo-card .evo-card__price{
  font-family:'JetBrains Mono','SFMono-Regular',monospace !important; font-size:19px !important; font-weight:600 !important;
  color:#0A1744 !important; line-height:1 !important; padding:0 !important; margin:0 !important;
}
.woocommerce ul.products li.product.evo-card .evo-card__price .woocommerce-Price-amount{ color:#0A1744 !important; font-weight:600 !important; }
.woocommerce ul.products li.product.evo-card .evo-card__price .evo-from{
  display:block !important; font:600 9px/1 'Inter',sans-serif !important; letter-spacing:.1em !important; text-transform:uppercase !important;
  color:#9BAABF !important; margin-bottom:5px !important;
}
.woocommerce ul.products li.product.evo-card .evo-card__price del{ opacity:.45 !important; font-weight:400 !important; font-size:14px !important; }
.woocommerce ul.products li.product.evo-card .evo-card__price ins{ text-decoration:none !important; }

/* ── CTA BUTTON (real WC ajax add-to-cart / select options) ── */
.woocommerce ul.products li.product.evo-card a.button{
  display:flex !important; align-items:center !important; justify-content:center !important; gap:8px !important;
  margin:16px !important; width:calc(100% - 32px) !important; box-sizing:border-box !important;
  min-height:48px !important; padding:13px 14px !important;
  background:linear-gradient(135deg,#2B52E8,#7B2FE8) !important; color:#fff !important; border:0 !important; border-radius:13px !important;
  font:600 14.5px/1 'Inter',sans-serif !important; letter-spacing:-.01em !important; text-align:center !important;
  box-shadow:0 8px 22px -10px rgba(43,82,232,.7) !important; -webkit-tap-highlight-color:transparent !important;
  transition:box-shadow .2s ease, transform .12s ease, filter .2s ease !important; white-space:nowrap !important;
}
.woocommerce ul.products li.product.evo-card a.button::before{
  content:'' !important; width:16px !important; height:16px !important; flex:0 0 16px !important;
  background:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23ffffff' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Ccircle cx='9' cy='21' r='1'/%3E%3Ccircle cx='20' cy='21' r='1'/%3E%3Cpath d='M1 1h4l2.7 13.4a2 2 0 0 0 2 1.6h9.7a2 2 0 0 0 2-1.6L23 6H6'/%3E%3C/svg%3E") center/contain no-repeat !important;
}
.woocommerce ul.products li.product.evo-card a.button:hover{ box-shadow:0 12px 30px -10px rgba(43,82,232,.85) !important; filter:brightness(1.05) !important; }
.woocommerce ul.products li.product.evo-card a.button:active{ transform:translateY(1px) !important; }
/* "Select options" (variable / non-ajax) -> outlined variant, no cart icon */
.woocommerce ul.products li.product.evo-card a.button:not(.add_to_cart_button){
  background:#fff !important; color:#2B52E8 !important; border:1.5px solid rgba(43,82,232,.28) !important; box-shadow:none !important;
}
.woocommerce ul.products li.product.evo-card a.button:not(.add_to_cart_button)::before{ display:none !important; }
.woocommerce ul.products li.product.evo-card a.button:not(.add_to_cart_button):hover{ background:rgba(43,82,232,.05) !important; border-color:#2B52E8 !important; filter:none !important; }
/* post-add "View cart" link */
.woocommerce ul.products li.product.evo-card a.added_to_cart{
  display:block !important; margin:-4px 16px 16px !important; text-align:center !important;
  font:600 12.5px/1 'Inter',sans-serif !important; color:#2B52E8 !important; padding:9px !important;
  border:1px solid rgba(43,82,232,.25) !important; border-radius:10px !important;
}
.woocommerce ul.products li.product.evo-card a.button.loading{ opacity:.75 !important; }

/* ── TOOLBAR (result count + ordering + The7 view switcher) ── */
.woocommerce .switcher-wrap{ display:flex !important; align-items:center !important; justify-content:space-between !important; flex-wrap:wrap !important; gap:10px !important; margin-bottom:22px !important; }
.woocommerce .woocommerce-result-count{ font:500 13px/1.4 'Inter',sans-serif !important; color:#6979A0 !important; margin:0 !important; }
.woocommerce .woocommerce-ordering select, .woocommerce select.orderby{
  font:500 13.5px/1 'Inter',sans-serif !important; color:#0A1744 !important; background:#fff !important;
  border:1px solid #DDE3F5 !important; border-radius:12px !important; padding:12px 38px 12px 14px !important;
  min-height:44px !important; cursor:pointer !important; box-shadow:0 1px 3px rgba(10,23,68,.05) !important; max-width:100% !important;
}

/* ════════ MOBILE ════════ */
@media (max-width:767px){
  .woocommerce ul.products.elementor-grid{ grid-template-columns:repeat(2,minmax(0,1fr)) !important; gap:12px !important; }
  .woocommerce ul.products li.product.evo-card{ border-radius:16px !important; }
  .woocommerce ul.products li.product.evo-card a.evo-card__media{ padding:12px !important; }
  .woocommerce ul.products li.product.evo-card .evo-badge{ font-size:8px !important; padding:4px 7px !important; gap:4px !important; }
  .woocommerce ul.products li.product.evo-card .evo-badge--cat{ top:9px !important; left:9px !important; }
  .woocommerce ul.products li.product.evo-card .evo-badge--purity{ top:9px !important; right:9px !important; }
  .woocommerce ul.products li.product.evo-card .evo-badge--purity svg{ width:9px !important; height:9px !important; }
  .woocommerce ul.products li.product.evo-card .evo-card__body{ padding:13px 13px 0 !important; }
  .woocommerce ul.products li.product.evo-card h2.evo-card__title{ font-size:14px !important; line-height:1.3 !important; min-height:2.6em !important; }
  .woocommerce ul.products li.product.evo-card .evo-card__spec{ font-size:11.5px !important; margin-bottom:11px !important; }
  .woocommerce ul.products li.product.evo-card .evo-card__foot{ padding-top:11px !important; }
  .woocommerce ul.products li.product.evo-card .evo-card__price{ font-size:16px !important; }
  .woocommerce ul.products li.product.evo-card a.button{ margin:12px !important; width:calc(100% - 24px) !important; min-height:46px !important; font-size:13.5px !important; padding:12px 10px !important; border-radius:11px !important; }
  /* declutter + tidy toolbar */
  .woocommerce .view-mode-switcher{ display:none !important; }
  .woocommerce .switcher-wrap{ gap:8px !important; margin-bottom:16px !important; }
  .woocommerce .woocommerce-result-count{ font-size:12px !important; flex:1 1 auto !important; }
  .woocommerce .woocommerce-ordering{ flex:0 0 auto !important; margin:0 !important; }
  .woocommerce .woocommerce-ordering select, .woocommerce select.orderby{ font-size:13px !important; padding:11px 34px 11px 12px !important; }
  /* top trust banner: drop the 1px dividers when items wrap to stacked rows */
  .elementor-element-sh_banner_html2 div[style*="width:1px"]{ display:none !important; }
  .elementor-element-sh_banner_html2 span{ font-size:12px !important; }
}

/* -------------------------------------------------------------------------
   7b) Button specificity boost — The7 styles a.button via #main-scoped dynamic
   CSS (ID specificity) which beat the class-only rules above (button stayed
   navy/block). Re-assert with #page #main (2 IDs) so the gradient + flex win.
   ------------------------------------------------------------------------- */
#page #main .woocommerce ul.products li.product.evo-card a.button,
body#the7-body .woocommerce ul.products li.product.evo-card a.button{
  display:flex !important; align-items:center !important; justify-content:center !important; gap:8px !important;
  margin:16px !important; width:calc(100% - 32px) !important; box-sizing:border-box !important;
  min-height:48px !important; padding:13px 14px !important;
  background:linear-gradient(135deg,#2B52E8,#7B2FE8) !important; background-color:#2B52E8 !important;
  color:#fff !important; border:0 !important; border-radius:13px !important;
  font:600 14.5px/1 'Inter',sans-serif !important; letter-spacing:-.01em !important; text-align:center !important;
  box-shadow:0 8px 22px -10px rgba(43,82,232,.7) !important; white-space:nowrap !important;
}
#page #main .woocommerce ul.products li.product.evo-card a.button:hover,
body#the7-body .woocommerce ul.products li.product.evo-card a.button:hover{
  box-shadow:0 12px 30px -10px rgba(43,82,232,.85) !important; filter:brightness(1.05) !important;
}
#page #main .woocommerce ul.products li.product.evo-card a.button:not(.add_to_cart_button),
body#the7-body .woocommerce ul.products li.product.evo-card a.button:not(.add_to_cart_button){
  background:#fff !important; background-color:#fff !important; color:#2B52E8 !important;
  border:1.5px solid rgba(43,82,232,.28) !important; box-shadow:none !important;
}
#page #main .woocommerce ul.products li.product.evo-card a.button:not(.add_to_cart_button):hover,
body#the7-body .woocommerce ul.products li.product.evo-card a.button:not(.add_to_cart_button):hover{
  background:rgba(43,82,232,.05) !important; border-color:#2B52E8 !important; filter:none !important;
}
@media (max-width:767px){
  #page #main .woocommerce ul.products li.product.evo-card a.button,
  body#the7-body .woocommerce ul.products li.product.evo-card a.button{
    margin:12px !important; width:calc(100% - 24px) !important; min-height:46px !important;
    font-size:13.5px !important; padding:12px 10px !important; border-radius:11px !important;
  }
}

/* -------------------------------------------------------------------------
   7c) Variable products -> outlined "Select options" (matches approved mockup),
       drop the cart icon (it doesn't add to cart directly).
   ------------------------------------------------------------------------- */
#page #main .woocommerce ul.products li.product.evo-card a.button.product_type_variable,
body#the7-body .woocommerce ul.products li.product.evo-card a.button.product_type_variable{
  background:#fff !important; background-color:#fff !important; color:#2B52E8 !important;
  border:1.5px solid rgba(43,82,232,.30) !important; box-shadow:none !important;
}
#page #main .woocommerce ul.products li.product.evo-card a.button.product_type_variable:hover,
body#the7-body .woocommerce ul.products li.product.evo-card a.button.product_type_variable:hover{
  background:rgba(43,82,232,.05) !important; border-color:#2B52E8 !important; filter:none !important;
}
.woocommerce ul.products li.product.evo-card a.button.product_type_variable::before{ display:none !important; }

/* -------------------------------------------------------------------------
   7d) Shop dark hero band (#evo-shop-hero injected via functions.php on is_shop)
       + tidy the toolbar row (hide duplicate title column, keep sort/filter).
   ------------------------------------------------------------------------- */
#evo-shop-hero{ position:relative; overflow:hidden;
  background:linear-gradient(165deg,#0A1744 0%,#11225C 55%,#1A2F6E 100%);
}
#evo-shop-hero::before{ content:''; position:absolute; top:-150px; right:-110px; width:520px; height:520px; border-radius:50%;
  background:radial-gradient(ellipse,rgba(123,47,232,.32),transparent 60%); pointer-events:none; }
#evo-shop-hero::after{ content:''; position:absolute; bottom:-170px; left:-90px; width:480px; height:480px; border-radius:50%;
  background:radial-gradient(ellipse,rgba(43,82,232,.28),transparent 60%); pointer-events:none; }
#evo-shop-hero .evo-shop-hero__inner{ position:relative; z-index:1; max-width:1200px; margin:0 auto; padding:46px 40px 40px; }
.evo-shop-hero__eyebrow{ display:inline-flex; align-items:center; gap:9px; font:600 11px/1 'Inter',sans-serif;
  letter-spacing:.18em; text-transform:uppercase; color:#8aa0ff; margin-bottom:14px; }
.evo-shop-hero__eyebrow::before{ content:''; width:22px; height:2px; background:linear-gradient(135deg,#2B52E8,#7B2FE8); border-radius:2px; }
#evo-shop-hero h1.evo-shop-hero__title{ font-family:'Space Grotesk',sans-serif; font-size:clamp(30px,5vw,46px); font-weight:700;
  color:#fff !important; letter-spacing:-.03em; line-height:1.05; margin:0 0 14px; }
#evo-shop-hero h1.evo-shop-hero__title span{ background:linear-gradient(90deg,#7ea2ff,#b98cff);
  -webkit-background-clip:text; background-clip:text; -webkit-text-fill-color:transparent; }
.evo-shop-hero__sub{ font-size:15.5px; line-height:1.65; color:rgba(255,255,255,.62); max-width:560px; margin:0; }

/* toolbar row: hide the now-duplicate title column, let controls breathe */
.elementor-element-547a1d9{ display:none !important; }
#main .elementor-element-8e482e6 .elementor-element-9853796{ width:100% !important; }
#main .elementor-element-8e482e6 .elementor-element-9853796 .elementor-widget-wrap{ justify-content:flex-end !important; }

@media (max-width:767px){
  #evo-shop-hero .evo-shop-hero__inner{ padding:30px 20px 26px; }
  .evo-shop-hero__eyebrow{ font-size:10px; letter-spacing:.14em; margin-bottom:11px; }
  .evo-shop-hero__sub{ font-size:13.5px; line-height:1.6; }
  #main .elementor-element-8e482e6 .elementor-element-9853796 .elementor-widget-wrap{ justify-content:flex-start !important; }
}

/* -------------------------------------------------------------------------
   7e) SHOP mobile cleanup + filter panel branding (2026-06-06)
   ------------------------------------------------------------------------- */

/* (5) purity badge -> bottom-right (was top-right, overlapped the cat badge);
       text shortened to "HPLC" in the template. Applies all viewports. */
.woocommerce ul.products li.product.evo-card .evo-badge--purity{
  top:auto !important; bottom:12px !important; right:12px !important; left:auto !important;
}

/* (4) FILTER PANEL — brand the Elementor lightbox that holds the category list.
       Scoped with :has(.cat-item) so other lightboxes are untouched. */
.dialog-lightbox-widget-content:has(.cat-item){
  background:#fff !important; box-shadow:0 24px 80px -20px rgba(10,23,68,.45) !important;
  border-right:1px solid #E7ECFA !important;
}
.dialog-lightbox-widget-content:has(.cat-item) .elementor{ padding:8px 18px 24px !important; }
/* panel heading(s) */
.dialog-lightbox-widget-content:has(.cat-item) .elementor-heading-title,
.dialog-lightbox-widget-content:has(.cat-item) .widget-title,
.dialog-lightbox-widget-content:has(.cat-item) .widgettitle{
  font-family:'Space Grotesk',sans-serif !important; font-weight:700 !important; color:#0A1744 !important;
  letter-spacing:-.01em !important;
}
/* category list */
.dialog-lightbox-widget-content:has(.cat-item) ul.product-categories,
.dialog-lightbox-widget-content:has(.cat-item) ul{ list-style:none !important; margin:0 !important; padding:0 !important; }
.dialog-lightbox-widget-content:has(.cat-item) .cat-item{ margin:0 0 8px !important; padding:0 !important; border:0 !important; }
.dialog-lightbox-widget-content:has(.cat-item) a.cat-item-wrap,
.dialog-lightbox-widget-content:has(.cat-item) a.evo-all-products-link{
  display:flex !important; align-items:center !important; justify-content:space-between !important; gap:10px !important;
  padding:14px 16px !important; margin:0 0 8px !important; border-radius:12px !important;
  border:1px solid #E7ECFA !important; background:#fff !important; box-shadow:0 1px 2px rgba(10,23,68,.04) !important;
  font:600 14.5px/1.25 'Space Grotesk',sans-serif !important; color:#0A1744 !important; text-decoration:none !important;
  transition:background .18s ease, border-color .18s ease, transform .12s ease, box-shadow .18s ease !important;
}
.dialog-lightbox-widget-content:has(.cat-item) a.cat-item-wrap:hover,
.dialog-lightbox-widget-content:has(.cat-item) a.evo-all-products-link:hover{
  background:linear-gradient(135deg,rgba(43,82,232,.07),rgba(123,47,232,.07)) !important;
  border-color:rgba(43,82,232,.30) !important; transform:translateX(2px) !important;
  box-shadow:0 6px 16px -8px rgba(43,82,232,.4) !important;
}
.dialog-lightbox-widget-content:has(.cat-item) .item-content{ flex:1 1 auto !important; }
/* chevron */
.dialog-lightbox-widget-content:has(.cat-item) .next-level-button{
  flex:0 0 16px !important; width:16px !important; height:16px !important; border:0 !important; background:none !important;
}
.dialog-lightbox-widget-content:has(.cat-item) .cat-item-wrap::after{
  content:'' !important; flex:0 0 16px !important; width:16px !important; height:16px !important;
  background:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%232B52E8' stroke-width='2.5' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpolyline points='9 18 15 12 9 6'/%3E%3C/svg%3E") center/contain no-repeat !important;
}
.dialog-lightbox-widget-content:has(.cat-item) a.evo-all-products-link{ background:linear-gradient(135deg,#2B52E8,#7B2FE8) !important; color:#fff !important; border-color:transparent !important; box-shadow:0 8px 20px -10px rgba(43,82,232,.7) !important; }
/* close button -> circular */
.dialog-lightbox-widget-content:has(.cat-item) .dialog-lightbox-close-button,
.dialog-lightbox-widget-content:has(.cat-item) .dialog-close-button{
  width:38px !important; height:38px !important; border-radius:50% !important;
  background:#F4F7FF !important; border:1px solid #E7ECFA !important; color:#0A1744 !important;
  display:flex !important; align-items:center !important; justify-content:center !important; top:14px !important; right:14px !important;
}

/* ════════ MOBILE-only shop toolbar/banner ════════ */
@media (max-width:767px){
  /* (1) trust banner -> compact stacked rows (was 24px gaps, ~135px tall) */
  .elementor-element-sh_banner_html2 div[style*="flex-wrap"]{ gap:6px 16px !important; }
  .elementor-element-sh_banner_html2 span{ font-size:11px !important; }
  .elementor-element-sh_banner_html2 svg{ width:13px !important; height:13px !important; }
  .elementor-element-sh_banner_html2 .elementor-widget-container{ padding-top:4px !important; padding-bottom:4px !important; }

  /* (2) result count -> off the edge */
  .woocommerce .switcher-wrap{ padding:0 16px !important; }
  .woocommerce .woocommerce-result-count{ padding-left:2px !important; }

  /* (3) sort + filter -> full-width row, dropdown grows, filter fixed, edge padding */
  #main .elementor-element-9853796 > .elementor-widget-wrap{
    display:flex !important; flex-wrap:nowrap !important; align-items:center !important;
    gap:10px !important; padding:0 16px !important; justify-content:space-between !important;
  }
  #main .elementor-element-9853796 > .elementor-widget-wrap > .elementor-widget{ margin-bottom:0 !important; }
  #main .elementor-element-9853796 > .elementor-widget-wrap > .elementor-widget:first-child{ flex:1 1 auto !important; }
  #main .elementor-element-9853796 .the7-wc-catalog-ordering,
  #main .elementor-element-9853796 .the7-wc-catalog-ordering select,
  #main .elementor-element-9853796 select.orderby{ width:100% !important; max-width:none !important; }
  #main .elementor-element-9853796 .elementor-element-71cd1eb{ flex:0 0 auto !important; }

  /* filter panel slightly wider tap rows on mobile */
  .dialog-lightbox-widget-content:has(.cat-item) .elementor{ padding:8px 16px 22px !important; }
}

/* -------------------------------------------------------------------------
   7f) Shop toolbar fine-tune — force the sort <select> to fill (The7 pins it
   to 180px via #main CSS), match the Filter button height, trim trust bar.
   ------------------------------------------------------------------------- */
@media (max-width:767px){
  #page #main .elementor-element-b3469ea,
  #page #main .elementor-element-b3469ea > div,
  #page #main .the7-wc-catalog-ordering,
  #page #main .the7-wc-catalog-ordering select,
  #page #main .elementor-element-9853796 select.orderby,
  body#the7-body .the7-wc-catalog-ordering select{
    width:100% !important; max-width:none !important; box-sizing:border-box !important;
  }
  /* Filter button -> match the 44px dropdown height, align contents */
  #page #main .elementor-element-71cd1eb .elementor-button,
  #page #main .elementor-element-71cd1eb a.elementor-button,
  #page #main .elementor-element-71cd1eb a,
  #page #main .elementor-element-71cd1eb button{
    min-height:44px !important; height:44px !important;
    display:inline-flex !important; align-items:center !important; justify-content:center !important;
  }
  /* trust banner: trim a touch more (was 107px) */
  .elementor-element-sh_banner_html2 .elementor-widget-container{ padding-top:2px !important; padding-bottom:2px !important; }
  .elementor-element-sh_banner_html2 div[style*="flex-wrap"]{ gap:4px 14px !important; }
}

/* 7g) align the toolbar (sort+filter) to the same 16px edge as the result
   count + cards (the Elementor section had 30px side padding). */
@media (max-width:767px){
  #main .elementor-element-8e482e6{ padding-left:16px !important; padding-right:16px !important; }
  #page #main .elementor-element-9853796 > .elementor-widget-wrap{ padding-left:0 !important; padding-right:0 !important; }
}

/* 7h) mobile: give the product grid the same 16px side gutter as the toolbar
   + result count (cards were flush at x=0 against the viewport edge). */
@media (max-width:767px){
  .woocommerce ul.products.elementor-grid{ padding-left:16px !important; padding-right:16px !important; }
}

/* 7i) filter panel: hide The7's left-positioned next-level chevron + its blue
   accent bar so my clean row + right chevron show. */
.dialog-lightbox-widget-content:has(.cat-item) .cat-item-wrap .next-level-button{ display:none !important; }
.dialog-lightbox-widget-content:has(.cat-item) .cat-item-wrap{ border-left-width:1px !important; }
.dialog-lightbox-widget-content:has(.cat-item) .cat-item-wrap .item-content{ padding-left:0 !important; }

/* 7j) filter panel: kill the list-marker chevron on the category <li> items
   (The7 sets list-style on .cat-item; ul{list-style:none} didn't reach it). */
.dialog-lightbox-widget-content:has(.cat-item) li,
.dialog-lightbox-widget-content:has(.cat-item) li.cat-item,
.dialog-lightbox-widget-content:has(.cat-item) ul.product-categories li{
  list-style:none !important; list-style-type:none !important; list-style-image:none !important;
}
.dialog-lightbox-widget-content:has(.cat-item) li::marker,
.dialog-lightbox-widget-content:has(.cat-item) li.cat-item::marker{ content:'' !important; }

/* 7k) filter panel: hide ANY non-text child of the category link (catch-all for
   The7's injected chevron/arrow icon that resisted pseudo/marker overrides). */
.dialog-lightbox-widget-content:has(.cat-item) a.cat-item-wrap > *:not(.item-content){ display:none !important; }
.dialog-lightbox-widget-content:has(.cat-item) a.cat-item-wrap{ padding-left:16px !important; }
