/*
Theme Name: Blue Water Peptides
Theme URI: https://bluewaterpeptides.com
Author: Blue Water Peptides
Author URI: https://bluewaterpeptides.com
Description: A professional light blue and white medical-grade theme for Blue Water Peptides, built for WordPress and WooCommerce.
Version: 2.95.0
Requires at least: 6.0
Tested up to: 6.5
Requires PHP: 7.4
WC requires at least: 7.0
WC tested up to: 9.0
License: GNU General Public License v2 or later
License URI: http://www.gnu.org/licenses/gpl-2.0.html
Text Domain: bluewaterpeptides
Tags: woocommerce, e-commerce, medical, peptides, blue, white, clean, modern
*/

/* =========================================================
   CSS VARIABLES
   ========================================================= */
:root {
  /* Royal blue + deep navy + chrome — matches the Blue Water Peptides label */
  --bwp-blue:        #1e4e92;   /* royal blue — primary accent */
  --bwp-blue-dark:   #163a6e;   /* darker royal */
  --bwp-blue-deeper: #001e3f;   /* deep navy — hero/footer */
  --bwp-blue-light:  #cfdaea;   /* pale blue */
  --bwp-blue-pale:   #eef2f8;   /* very pale blue — light sections */
  --bwp-white:       #ffffff;
  --bwp-off-white:   #f5f7fa;
  --bwp-text-dark:   #0e2138;
  --bwp-text-mid:    #3b4a60;
  --bwp-text-light:  #6c7888;
  --bwp-border:      #d6dce4;
  --bwp-accent:      #2a5da8;   /* brighter royal for highlights */
  --bwp-success:     #22a06b;
  /* Chrome / silver accents */
  --bwp-navy:        #0a2b52;
  --bwp-silver:      #c8ced6;
  --bwp-silver-light:#e8ebef;
  --bwp-silver-dark: #8a929c;
  --bwp-chrome:      linear-gradient(180deg, #e8ebef 0%, #aab2bc 45%, #7c848e 55%, #c2c8d0 100%);
  --bwp-radius:      8px;
  --bwp-radius-lg:   14px;
  --bwp-shadow:      0 4px 18px rgba(10,43,82,0.12);
  --bwp-shadow-lg:   0 10px 38px rgba(10,43,82,0.18);
  --bwp-font:        'Inter', 'Helvetica Neue', Arial, sans-serif;
  --bwp-font-heading:'Oswald', 'Helvetica Neue', Arial, sans-serif;
  --bwp-transition:  0.22s ease;
}

/* =========================================================
   RESET & BASE
   ========================================================= */
*, *::before, *::after { box-sizing: border-box; margin: 0; padding: 0; }

html { font-size: 16px; scroll-behavior: smooth; }

/* Prevent horizontal scroll / off-canvas content on mobile */
html, body { max-width: 100%; overflow-x: hidden; }

body {
  font-family: var(--bwp-font);
  color: var(--bwp-text-dark);
  background: var(--bwp-white);
  line-height: 1.65;
  -webkit-font-smoothing: antialiased;
}

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

a { color: var(--bwp-blue); text-decoration: none; transition: color var(--bwp-transition); }
a:hover { color: var(--bwp-blue-dark); }

h1,h2,h3,h4,h5,h6 {
  font-family: var(--bwp-font-heading);
  font-weight: 700;
  line-height: 1.2;
  color: var(--bwp-text-dark);
}

ul { list-style: none; }

/* =========================================================
   UTILITY
   ========================================================= */
.bwp-container {
  max-width: 1240px;
  margin: 0 auto;
  padding: 0 24px;
}

.bwp-section { padding: 80px 0; }
.bwp-section--sm { padding: 48px 0; }
.bwp-section--lg { padding: 120px 0; }

.bwp-text-center { text-align: center; }

.bwp-badge {
  display: inline-block;
  background: var(--bwp-blue-light);
  color: var(--bwp-blue-dark);
  font-size: 0.78rem;
  font-weight: 700;
  letter-spacing: 0.09em;
  text-transform: uppercase;
  padding: 5px 14px;
  border-radius: 30px;
  margin-bottom: 14px;
}

.bwp-section-title {
  font-size: clamp(1.6rem, 3vw, 2.4rem);
  margin-bottom: 14px;
}

.bwp-section-subtitle {
  font-size: 1.05rem;
  color: var(--bwp-text-mid);
  max-width: 620px;
  margin: 0 auto 44px;
  line-height: 1.7;
}

/* =========================================================
   BUTTONS
   ========================================================= */
.bwp-btn {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  gap: 8px;
  padding: 14px 32px;
  border-radius: var(--bwp-radius);
  font-family: var(--bwp-font-heading);
  font-size: 0.93rem;
  font-weight: 700;
  letter-spacing: 0.04em;
  cursor: pointer;
  border: 2px solid transparent;
  transition: all var(--bwp-transition);
  text-decoration: none;
  white-space: nowrap;
}

.bwp-btn--primary {
  background: var(--bwp-blue);
  color: var(--bwp-white);
  border-color: var(--bwp-blue);
}
.bwp-btn--primary:hover {
  background: var(--bwp-blue-dark);
  border-color: var(--bwp-blue-dark);
  color: var(--bwp-white);
  transform: translateY(-2px);
  box-shadow: 0 6px 20px rgba(26,155,192,0.30);
}

.bwp-btn--outline {
  background: transparent;
  color: var(--bwp-blue);
  border-color: var(--bwp-blue);
}
.bwp-btn--outline:hover {
  background: var(--bwp-blue);
  color: var(--bwp-white);
  transform: translateY(-2px);
}

.bwp-btn--white {
  background: var(--bwp-white);
  color: var(--bwp-blue-dark);
  border-color: var(--bwp-white);
}
.bwp-btn--white:hover {
  background: var(--bwp-blue-light);
  color: var(--bwp-blue-deeper);
  transform: translateY(-2px);
}

.bwp-btn--white-outline {
  background: transparent;
  color: var(--bwp-white);
  border-color: rgba(255,255,255,0.7);
}
.bwp-btn--white-outline:hover {
  background: rgba(255,255,255,0.15);
  color: var(--bwp-white);
  border-color: var(--bwp-white);
}

.bwp-btn--lg {
  padding: 17px 40px;
  font-size: 1rem;
}

/* =========================================================
   ANNOUNCEMENT BAR
   ========================================================= */
.bwp-announcement-bar {
  background: var(--bwp-blue-deeper);
  color: var(--bwp-white);
  text-align: center;
  padding: 10px 24px;
  font-size: 0.85rem;
  font-weight: 500;
  letter-spacing: 0.03em;
  position: relative;
  z-index: 200;
}

.bwp-announcement-bar a {
  color: var(--bwp-white);
  text-decoration: underline;
  text-underline-offset: 3px;
}

.bwp-announcement-bar strong { font-weight: 800; }

/* =========================================================
   HEADER
   ========================================================= */
.bwp-header {
  position: sticky;
  top: 0;
  z-index: 100;
  background: var(--bwp-white);
  border-bottom: 1px solid var(--bwp-border);
  box-shadow: 0 2px 12px rgba(26,155,192,0.08);
}

.bwp-header__inner {
  display: flex;
  align-items: center;
  justify-content: space-between;
  height: 76px;
  gap: 24px;
}

/* Logo */
.bwp-logo {
  display: flex;
  align-items: center;
  gap: 10px;
  text-decoration: none;
  flex-shrink: 0;
}

.bwp-logo__icon {
  width: 44px;
  height: 44px;
  background: linear-gradient(135deg, var(--bwp-blue) 0%, var(--bwp-blue-deeper) 100%);
  border-radius: 10px;
  display: flex;
  align-items: center;
  justify-content: center;
}

.bwp-logo__icon svg { width: 26px; height: 26px; fill: none; }

/* New hexagon wave logo mark (PNG has transparent padding so it never clips) */
.bwp-logo__mark { width: 58px; height: auto; display: block; flex-shrink: 0; }

.bwp-logo__text { display: flex; flex-direction: column; line-height: 1.05; }
.bwp-logo__name {
  font-family: var(--bwp-font-heading);
  font-size: 1.18rem;
  font-weight: 700;
  color: var(--bwp-blue-deeper);
  letter-spacing: 0.04em;
  text-transform: uppercase;
}
.bwp-logo__tagline {
  font-size: 0.66rem;
  font-weight: 600;
  color: var(--bwp-text-light);
  letter-spacing: 0.12em;
  text-transform: uppercase;
}

/* Primary Nav */
.bwp-nav { display: flex; align-items: center; gap: 4px; flex: 1; justify-content: center; }

.bwp-nav__item { position: relative; }

.bwp-nav__link {
  display: flex;
  align-items: center;
  gap: 5px;
  padding: 8px 14px;
  font-size: 0.88rem;
  font-weight: 600;
  color: var(--bwp-text-dark);
  border-radius: var(--bwp-radius);
  transition: all var(--bwp-transition);
  text-decoration: none;
}

.bwp-nav__link:hover, .bwp-nav__link.active {
  color: var(--bwp-blue);
  background: var(--bwp-blue-pale);
}

.bwp-nav__link svg { width: 13px; height: 13px; transition: transform var(--bwp-transition); }
.bwp-nav__item:hover .bwp-nav__link svg { transform: rotate(180deg); }

/* Dropdown */
.bwp-dropdown {
  position: absolute;
  top: calc(100% + 8px);
  left: 0;
  min-width: 220px;
  background: var(--bwp-white);
  border: 1px solid var(--bwp-border);
  border-radius: var(--bwp-radius-lg);
  box-shadow: var(--bwp-shadow-lg);
  padding: 8px;
  opacity: 0;
  visibility: hidden;
  transform: translateY(-8px);
  transition: all var(--bwp-transition);
  z-index: 300;
}

.bwp-nav__item:hover .bwp-dropdown {
  opacity: 1;
  visibility: visible;
  transform: translateY(0);
}

.bwp-dropdown a {
  display: block;
  padding: 9px 14px;
  font-size: 0.87rem;
  font-weight: 500;
  color: var(--bwp-text-dark);
  border-radius: var(--bwp-radius);
  transition: all var(--bwp-transition);
}

.bwp-dropdown a:hover {
  background: var(--bwp-blue-pale);
  color: var(--bwp-blue);
  padding-left: 18px;
}

/* Header Actions */
.bwp-header__actions {
  display: flex;
  align-items: center;
  gap: 10px;
  flex-shrink: 0;
}

.bwp-header__icon-btn {
  display: flex;
  align-items: center;
  justify-content: center;
  width: 40px;
  height: 40px;
  border-radius: var(--bwp-radius);
  color: var(--bwp-text-dark);
  transition: all var(--bwp-transition);
  position: relative;
  text-decoration: none;
}

.bwp-header__icon-btn:hover {
  background: var(--bwp-blue-pale);
  color: var(--bwp-blue);
}

.bwp-header__icon-btn svg { width: 20px; height: 20px; }

.bwp-cart-count {
  position: absolute;
  top: 3px;
  right: 3px;
  background: var(--bwp-blue);
  color: var(--bwp-white);
  font-size: 0.65rem;
  font-weight: 800;
  min-width: 17px;
  height: 17px;
  border-radius: 999px;
  display: flex;
  align-items: center;
  justify-content: center;
  padding: 0 4px;
}

/* Search bar */
.bwp-header__search { position: relative; }

.bwp-header__search input {
  border: 1px solid var(--bwp-border);
  border-radius: 30px;
  padding: 8px 36px 8px 16px;
  font-size: 0.85rem;
  color: var(--bwp-text-dark);
  background: var(--bwp-blue-pale);
  width: 190px;
  outline: none;
  transition: all var(--bwp-transition);
}

.bwp-header__search input:focus {
  border-color: var(--bwp-blue);
  background: var(--bwp-white);
  width: 220px;
  box-shadow: 0 0 0 3px rgba(26,155,192,0.12);
}

.bwp-header__search button {
  position: absolute;
  right: 10px;
  top: 50%;
  transform: translateY(-50%);
  background: none;
  border: none;
  cursor: pointer;
  color: var(--bwp-text-light);
  padding: 0;
  display: flex;
}

.bwp-header__search button svg { width: 16px; height: 16px; }

/* Mobile menu toggle */
.bwp-menu-toggle {
  display: none;
  flex-direction: column;
  gap: 5px;
  width: 40px;
  height: 40px;
  align-items: center;
  justify-content: center;
  cursor: pointer;
  border-radius: var(--bwp-radius);
  border: none;
  background: none;
  transition: background var(--bwp-transition);
}
.bwp-menu-toggle:hover { background: var(--bwp-blue-pale); }
.bwp-menu-toggle span {
  display: block;
  width: 22px;
  height: 2px;
  background: var(--bwp-text-dark);
  border-radius: 2px;
  transition: all var(--bwp-transition);
}
.bwp-menu-toggle.active span:nth-child(1) { transform: rotate(45deg) translate(5px, 5px); }
.bwp-menu-toggle.active span:nth-child(2) { opacity: 0; }
.bwp-menu-toggle.active span:nth-child(3) { transform: rotate(-45deg) translate(5px, -5px); }

/* Mobile Nav Drawer */
.bwp-mobile-nav {
  display: none;
  position: fixed;
  inset: 0;
  z-index: 999;
}

.bwp-mobile-nav__overlay {
  position: absolute;
  inset: 0;
  background: rgba(0,0,0,0.4);
  backdrop-filter: blur(2px);
}

.bwp-mobile-nav__drawer {
  position: absolute;
  top: 0;
  right: 0;
  width: 320px;
  height: 100%;
  background: var(--bwp-white);
  overflow-y: auto;
  padding: 24px;
  transform: translateX(100%);
  transition: transform 0.3s ease;
}

.bwp-mobile-nav.open .bwp-mobile-nav__drawer { transform: translateX(0); }

.bwp-mobile-nav__close {
  display: flex;
  align-items: center;
  justify-content: space-between;
  margin-bottom: 28px;
}

.bwp-mobile-nav__close button {
  background: none;
  border: none;
  cursor: pointer;
  color: var(--bwp-text-dark);
}

.bwp-mobile-nav__links a {
  display: block;
  padding: 13px 0;
  font-size: 1.05rem;
  font-weight: 600;
  color: var(--bwp-text-dark);
  border-bottom: 1px solid var(--bwp-blue-light);
  transition: color var(--bwp-transition);
}

.bwp-mobile-nav__links a:hover { color: var(--bwp-blue); }

/* =========================================================
   HERO SECTION
   ========================================================= */
/* ── Hero background: one photograph, five cuts ──────────────────────────
   `background-size: cover` always throws away the surplus on one axis. When
   the IMAGE is wider than the frame it loses width, and anchored right that
   comes off the LEFT — which is exactly the open water the headline sits on.
   When the image is TALLER it loses height instead and the horizontal
   composition survives untouched.

   So every cut below is built at, or narrower than, the narrowest frame it
   will ever meet, and is anchored right bottom. Wide screens then eat into
   manufactured sky at the top, never into the sides.

   What bounds each band is the seal: it is the highest thing in the frame,
   and the moment a crop reaches it the picture is ruined. That is the whole
   reason there are three desktop cuts rather than one.

   The first declaration in each pair is the JPEG fallback; browsers that
   understand image-set() take the second and never fetch it.              */
.bwp-hero {
  background-color: var(--bwp-blue-deeper);
  background-image: url('assets/images/hero-sq.jpg');
  background-image: image-set(url('assets/images/hero-sq.webp') type('image/webp'),
                              url('assets/images/hero-sq.jpg')  type('image/jpeg'));
  background-repeat: no-repeat;
  background-size: cover;
  background-position: right bottom;
  position: relative;
  overflow: hidden;
  min-height: 624px;
  display: flex;
  align-items: center;
}

/* 768–1023 is its own shape. The headline is uppercase Oswald and wraps to
   three lines in a narrow column, and the buttons stack, so the frame is
   nearly square here — 0.99 at 768 — and the landscape cuts above would have
   to crop a third of their width to fit, dragging the vials under the copy. */
@media (max-width: 1023px) {
  .bwp-hero {
    background-image: url('assets/images/hero-md.jpg');
    background-image: image-set(url('assets/images/hero-md.webp') type('image/webp'),
                                url('assets/images/hero-md.jpg')  type('image/jpeg'));
  }
}

@media (min-width: 1600px) {
  .bwp-hero {
    background-image: url('assets/images/hero-wide.jpg');
    background-image: image-set(url('assets/images/hero-wide.webp') type('image/webp'),
                                url('assets/images/hero-wide.jpg')  type('image/jpeg'));
  }
}
@media (min-width: 2000px) {
  .bwp-hero {
    background-image: url('assets/images/hero-xl.jpg');
    background-image: image-set(url('assets/images/hero-xl.webp') type('image/webp'),
                                url('assets/images/hero-xl.jpg')  type('image/jpeg'));
  }
}

/* Below 768 the frame is portrait-shaped and a landscape photograph in it has
   all its sky cropped away, so the vials swallow the copy. These widths get a
   portrait photograph of their own, and because the copy is centred ON it with
   nowhere to move sideways, a light top-down wash goes with it. */
@media (max-width: 767px) {
  .bwp-hero {
    background-image:
      linear-gradient(180deg, rgba(0,24,52,0.42) 0%, rgba(0,26,56,0.26) 40%,
                              rgba(0,28,60,0.06) 64%, rgba(0,28,60,0) 100%),
      url('assets/images/hero-tab.jpg');
    background-image:
      linear-gradient(180deg, rgba(0,24,52,0.42) 0%, rgba(0,26,56,0.26) 40%,
                              rgba(0,28,60,0.06) 64%, rgba(0,28,60,0) 100%),
      image-set(url('assets/images/hero-tab.webp') type('image/webp'),
                url('assets/images/hero-tab.jpg')  type('image/jpeg'));
    background-size: cover, cover;
    background-position: center, center bottom;
  }
}
@media (max-width: 599px) {
  .bwp-hero {
    background-image:
      linear-gradient(180deg, rgba(0,24,52,0.42) 0%, rgba(0,26,56,0.26) 40%,
                              rgba(0,28,60,0.06) 64%, rgba(0,28,60,0) 100%),
      url('assets/images/hero-phone.jpg');
    background-image:
      linear-gradient(180deg, rgba(0,24,52,0.42) 0%, rgba(0,26,56,0.26) 40%,
                              rgba(0,28,60,0.06) 64%, rgba(0,28,60,0) 100%),
      image-set(url('assets/images/hero-phone.webp') type('image/webp'),
                url('assets/images/hero-phone.jpg')  type('image/jpeg'));
  }
}

/* The photograph brings its own light, so the big white radial goes; only the
   dot texture and a whisper of weight under the sticky header remain. */
.bwp-hero::before {
  content: '';
  position: absolute;
  inset: 0;
  background:
    linear-gradient(180deg, rgba(0,20,45,0.30) 0%, rgba(0,20,45,0) 140px),
    url("data:image/svg+xml,%3Csvg width='60' height='60' viewBox='0 0 60 60' xmlns='http://www.w3.org/2000/svg'%3E%3Cg fill='none' fill-rule='evenodd'%3E%3Cg fill='%23ffffff' fill-opacity='0.03'%3E%3Cpath d='M36 34v-4h-2v4h-4v2h4v4h2v-4h4v-2h-4zm0-30V0h-2v4h-4v2h4v4h2V6h4V4h-4zM6 34v-4H4v4H0v2h4v4h2v-4h4v-2H6zM6 4V0H4v4H0v2h4v4h2V6h4V4H6z'/%3E%3C/g%3E%3C/g%3E%3C/svg%3E");
  pointer-events: none;
}

/* .bwp-hero is display:flex, so .bwp-container is a flex item and sizes itself
   to its contents. Narrow the copy without this and the whole block shrinks to
   fit, then the auto margins centre it in the middle of the page. */
.bwp-hero .bwp-container { width: 100%; }

.bwp-hero__inner {
  position: relative;
  z-index: 2;
  display: grid;
  grid-template-columns: 1fr;
  gap: 0;
  /* The copy sits on the floor of the frame; the product keeps the open sky. */
  align-items: end;
  padding: 150px 0 54px;
}

/* The copy has to stop where the vials begin. They start at 53% on laptops and
   move right as the frame widens, so this is the binding constraint, not taste. */
.bwp-hero__content {
  color: var(--bwp-white);
  max-width: min(500px, 46%);
}

.bwp-hero__eyebrow {
  display: inline-flex;
  align-items: flex-start;
  gap: 9px;
  /* Inverted: a white tint was invisible against open water. */
  background: rgba(0,26,56,0.58);
  -webkit-backdrop-filter: blur(6px);
          backdrop-filter: blur(6px);
  color: var(--bwp-white);
  font-size: 0.78rem;
  font-weight: 700;
  letter-spacing: 0.1em;
  text-transform: uppercase;
  line-height: 1.5;
  padding: 7px 18px;
  border-radius: 30px;
  border: 1px solid rgba(255,255,255,0.52);
  text-shadow: 0 1px 2px rgba(0,18,40,0.45);
  margin-bottom: 24px;
}

/* Keep the dot on the first line even when the text wraps to two lines */
.bwp-hero__eyebrow-dot {
  width: 7px;
  height: 7px;
  background: #8fb4e8;
  border-radius: 50%;
  flex-shrink: 0;
  margin-top: 0.55em;
}

/* Keep "Research Grade • Shipped from the USA" together; let "COA Verified" wrap */
.bwp-hero__eyebrow-primary { white-space: nowrap; }

.bwp-hero__headline {
  font-size: clamp(2rem, 3vw, 2.7rem);
  font-weight: 900;
  color: var(--bwp-white);
  line-height: 1.1;
  margin-bottom: 16px;
  letter-spacing: -0.02em;
  /* The tight ring thickens the glyph edge, which is what actually buys
     contrast on bright water; the wide one only seats it. A wide blur alone
     reads as smudge and does far less work. */
  text-shadow: 0 0 1px rgba(0,18,40,0.85), 0 1px 2px rgba(0,18,40,0.60),
               0 3px 18px rgba(0,20,45,0.55);
}

/* The accent was #8fb4e8 — fine against a graded navy, about 1.6:1 against
   open water. Light type on light water cannot be rescued, so the word goes
   white and keeps the brand colour as a rule underneath it, where a
   low-contrast line is still perfectly legible. */
.bwp-hero__headline em {
  font-style: normal;
  color: var(--bwp-white);
  background-image: linear-gradient(#8fb4e8, #8fb4e8);
  background-repeat: no-repeat;
  background-size: 100% 4px;
  background-position: 0 92%;
  padding-bottom: 4px;
}

.bwp-hero__subtext {
  font-size: 1rem;
  color: var(--bwp-white);
  margin-bottom: 24px;
  line-height: 1.65;
  max-width: 100%;
  text-shadow: 0 0 1px rgba(0,18,40,0.70), 0 1px 2px rgba(0,18,40,0.60),
               0 2px 12px rgba(0,20,45,0.50);
}

.bwp-hero__ctas { display: flex; gap: 14px; flex-wrap: wrap; align-items: center; }

.bwp-hero__trust {
  display: flex;
  gap: 14px 22px;
  margin-top: 26px;
  padding-top: 18px;
  border-top: 1px solid rgba(255,255,255,0.42);
  flex-wrap: wrap;
}

.bwp-hero__trust-item {
  display: flex;
  align-items: center;
  gap: 8px;
  font-size: 0.8rem;
  color: var(--bwp-white);
  font-weight: 600;
  text-shadow: 0 0 1px rgba(0,18,40,0.70), 0 1px 2px rgba(0,18,40,0.60),
               0 2px 8px rgba(0,20,45,0.40);
}

.bwp-hero__trust-item svg {
  width: 16px;
  height: 16px;
  color: #8fb4e8;
  flex-shrink: 0;
}

/* The vials live in the background photograph now, so the lineup column, its
   reflection and the slide-in animation are retired. The markup went with it;
   see front-page.php. */

/* Once the grade came off the picture, the outline button was the weakest
   thing on the page — a transparent box on open sea. It gets a ground. */
.bwp-hero .bwp-btn--white-outline {
  background: rgba(0,26,56,0.62);
  border-color: rgba(255,255,255,0.62);
  color: var(--bwp-white);
  -webkit-backdrop-filter: blur(6px);
          backdrop-filter: blur(6px);
}
.bwp-hero .bwp-btn--white-outline:hover {
  background: rgba(0,26,56,0.80);
  border-color: var(--bwp-white);
}
.bwp-hero .bwp-btn--white { box-shadow: 0 6px 22px rgba(0,18,40,0.30); }


/* =========================================================
   TRUST STRIP
   ========================================================= */
.bwp-trust-strip {
  background: var(--bwp-blue-pale);
  border-bottom: 1px solid var(--bwp-border);
  padding: 20px 0;
}

.bwp-trust-strip__grid {
  display: flex;
  justify-content: space-around;
  align-items: center;
  gap: 16px;
  flex-wrap: wrap;
}

.bwp-trust-strip__item {
  display: flex;
  align-items: center;
  gap: 10px;
  font-size: 0.85rem;
  font-weight: 600;
  color: var(--bwp-text-mid);
}

.bwp-trust-strip__item svg {
  width: 22px;
  height: 22px;
  color: var(--bwp-blue);
  flex-shrink: 0;
}

/* =========================================================
   VERIFICATION STRIP (HPLC / MS / COA)
   ========================================================= */
.bwp-verify-strip {
  background: var(--bwp-blue-pale);
  border-bottom: 1px solid var(--bwp-border);
  padding: 30px 0;
}

.bwp-verify-strip__grid {
  display: flex;
  justify-content: center;
  align-items: center;
  gap: 56px;
  flex-wrap: wrap;
}

.bwp-verify-strip__item {
  display: flex;
  align-items: center;
  gap: 16px;
}

.bwp-verify-strip__ic {
  width: 60px;
  height: 60px;
  border-radius: 50%;
  background: var(--bwp-blue);
  color: #fff;
  display: flex;
  align-items: center;
  justify-content: center;
  font-family: var(--bwp-font-heading);
  font-weight: 800;
  font-size: 1rem;
  letter-spacing: 0.02em;
  flex-shrink: 0;
}

.bwp-verify-strip__text strong {
  display: block;
  color: var(--bwp-text-dark);
  font-family: var(--bwp-font-heading);
  font-size: 1.05rem;
  font-weight: 700;
}

.bwp-verify-strip__text span {
  display: block;
  color: var(--bwp-text-light);
  font-size: 0.88rem;
  margin-top: 2px;
}

@media (max-width: 768px) {
  .bwp-verify-strip__grid { gap: 28px; flex-direction: column; align-items: flex-start; padding-left: 8px; }
}

/* =========================================================
   FEATURED CATEGORIES
   ========================================================= */
.bwp-categories { background: var(--bwp-white); }

.bwp-categories__grid {
  display: grid;
  grid-template-columns: repeat(auto-fit, minmax(200px, 1fr));
  gap: 20px;
  margin-top: 44px;
}

.bwp-category-card {
  background: var(--bwp-blue-pale);
  border: 1px solid var(--bwp-border);
  border-radius: var(--bwp-radius-lg);
  padding: 32px 24px;
  text-align: center;
  transition: all var(--bwp-transition);
  text-decoration: none;
  display: block;
  cursor: pointer;
}

.bwp-category-card:hover {
  background: var(--bwp-blue-light);
  border-color: var(--bwp-blue);
  transform: translateY(-4px);
  box-shadow: var(--bwp-shadow);
}

.bwp-category-card__icon {
  width: 64px;
  height: 64px;
  background: var(--bwp-white);
  border-radius: 50%;
  margin: 0 auto 16px;
  display: flex;
  align-items: center;
  justify-content: center;
  box-shadow: 0 2px 10px rgba(26,155,192,0.12);
  transition: all var(--bwp-transition);
}

.bwp-category-card:hover .bwp-category-card__icon {
  background: var(--bwp-blue);
}

.bwp-category-card__icon svg {
  width: 30px;
  height: 30px;
  color: var(--bwp-blue);
  transition: color var(--bwp-transition);
}

.bwp-category-card:hover .bwp-category-card__icon svg { color: var(--bwp-white); }

.bwp-category-card__name {
  font-size: 0.98rem;
  font-weight: 700;
  color: var(--bwp-text-dark);
  margin-bottom: 4px;
  font-family: var(--bwp-font-heading);
}

.bwp-category-card__count {
  font-size: 0.8rem;
  color: var(--bwp-text-light);
}

/* =========================================================
   FEATURED PRODUCTS (WooCommerce)
   ========================================================= */
.bwp-products { background: var(--bwp-off-white); }

.bwp-products__header {
  display: flex;
  align-items: flex-end;
  justify-content: space-between;
  margin-bottom: 40px;
  gap: 20px;
  flex-wrap: wrap;
}

.bwp-products__header-left { max-width: 560px; }

/* WooCommerce product grid overrides (homepage featured section) */
.bwp-products .woocommerce ul.products {
  display: grid !important;
  grid-template-columns: repeat(4, 1fr) !important;
  gap: 24px !important;
  margin: 0 !important;
  padding: 0 !important;
  list-style: none !important;
  float: none !important;
  clear: both !important;
}

.bwp-products .woocommerce ul.products::before,
.bwp-products .woocommerce ul.products::after { display: none !important; }

.bwp-products .woocommerce ul.products li.product {
  float: none !important;
  width: 100% !important;
  margin: 0 !important;
  padding: 0 !important;
  background: var(--bwp-white);
  border: 1px solid var(--bwp-border);
  border-radius: var(--bwp-radius-lg);
  overflow: hidden;
  transition: all var(--bwp-transition);
  box-shadow: none;
}

.bwp-products .woocommerce ul.products li.product:hover {
  border-color: var(--bwp-blue);
  box-shadow: var(--bwp-shadow);
  transform: translateY(-4px);
}

.bwp-products .woocommerce ul.products li.product .woocommerce-loop-product__link {
  display: block;
  text-decoration: none;
}

.bwp-products .woocommerce ul.products li.product img {
  width: 100%;
  aspect-ratio: 1 / 1;
  object-fit: cover;
  transition: transform 0.4s ease;
}

.bwp-products .woocommerce ul.products li.product:hover img { transform: scale(1.04); }

.bwp-products .woocommerce ul.products li.product .product-info {
  padding: 18px 20px;
}

.bwp-products .woocommerce ul.products li.product .woocommerce-loop-product__title {
  font-family: var(--bwp-font-heading) !important;
  font-size: 0.95rem !important;
  font-weight: 700 !important;
  color: var(--bwp-text-dark) !important;
  margin: 0 0 6px !important;
  padding: 0 !important;
  line-height: 1.3 !important;
}

.bwp-products .woocommerce ul.products li.product .price {
  color: var(--bwp-blue-dark) !important;
  font-weight: 800 !important;
  font-size: 1.05rem !important;
  font-family: var(--bwp-font-heading) !important;
}

.bwp-products .woocommerce ul.products li.product .price del {
  color: var(--bwp-text-light) !important;
  font-size: 0.85rem !important;
}

.bwp-products .woocommerce ul.products li.product .star-rating {
  margin: 6px 0 !important;
}

.bwp-products .woocommerce ul.products li.product a.button,
.bwp-products .woocommerce ul.products li.product .add_to_cart_button {
  display: block !important;
  width: calc(100% - 40px) !important;
  margin: 0 20px 20px !important;
  padding: 11px 20px !important;
  background: var(--bwp-blue) !important;
  color: var(--bwp-white) !important;
  border: none !important;
  border-radius: var(--bwp-radius) !important;
  font-family: var(--bwp-font-heading) !important;
  font-weight: 700 !important;
  font-size: 0.86rem !important;
  cursor: pointer !important;
  transition: all var(--bwp-transition) !important;
  text-align: center !important;
  text-decoration: none !important;
}

.bwp-products .woocommerce ul.products li.product a.button:hover,
.bwp-products .woocommerce ul.products li.product .add_to_cart_button:hover {
  background: var(--bwp-blue-dark) !important;
  transform: none !important;
  box-shadow: none !important;
}

/* Sale badge */
.bwp-products .woocommerce ul.products li.product .onsale {
  background: var(--bwp-blue) !important;
  color: white !important;
  border-radius: 6px !important;
  font-size: 0.75rem !important;
  font-weight: 700 !important;
  min-width: auto !important;
  min-height: auto !important;
  line-height: 1 !important;
  padding: 5px 10px !important;
  top: 12px !important;
  left: 12px !important;
}

/* =========================================================
   WHY CHOOSE US
   ========================================================= */
.bwp-why { background: var(--bwp-white); }

.bwp-why__grid {
  display: grid;
  grid-template-columns: repeat(auto-fit, minmax(240px, 1fr));
  gap: 28px;
  margin-top: 52px;
}

.bwp-why__card {
  background: var(--bwp-blue-pale);
  border: 1px solid var(--bwp-border);
  border-radius: var(--bwp-radius-lg);
  padding: 36px 28px;
  transition: all var(--bwp-transition);
}

.bwp-why__card:hover {
  background: var(--bwp-white);
  border-color: var(--bwp-blue);
  box-shadow: var(--bwp-shadow);
  transform: translateY(-3px);
}

.bwp-why__card-icon {
  width: 56px;
  height: 56px;
  background: var(--bwp-blue-light);
  border-radius: 14px;
  display: flex;
  align-items: center;
  justify-content: center;
  margin-bottom: 20px;
  transition: all var(--bwp-transition);
}

.bwp-why__card:hover .bwp-why__card-icon { background: var(--bwp-blue); }
.bwp-why__card-icon svg { width: 26px; height: 26px; color: var(--bwp-blue); transition: color var(--bwp-transition); }
.bwp-why__card:hover .bwp-why__card-icon svg { color: var(--bwp-white); }

.bwp-why__card-title {
  font-size: 1.05rem;
  font-weight: 700;
  margin-bottom: 10px;
  font-family: var(--bwp-font-heading);
}

.bwp-why__card-text { font-size: 0.88rem; color: var(--bwp-text-mid); line-height: 1.7; }

/* =========================================================
   ABOUT SPLIT
   ========================================================= */
.bwp-about { background: var(--bwp-off-white); }

.bwp-about__inner {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 64px;
  align-items: center;
}

.bwp-about__image-wrap {
  position: relative;
  border-radius: 20px;
  overflow: hidden;
  aspect-ratio: 4/3;
  background: linear-gradient(135deg, var(--bwp-blue-light) 0%, var(--bwp-blue-pale) 100%);
  display: flex;
  align-items: center;
  justify-content: center;
}

.bwp-about__image-wrap img {
  width: 100%;
  height: 100%;
  object-fit: cover;
  border-radius: 20px;
}

.bwp-about__image-placeholder {
  display: flex;
  flex-direction: column;
  align-items: center;
  gap: 16px;
  color: var(--bwp-blue);
  opacity: 0.5;
}

.bwp-about__image-placeholder svg { width: 64px; height: 64px; }
.bwp-about__image-placeholder span { font-size: 0.85rem; font-weight: 600; }

.bwp-about__badge {
  position: absolute;
  bottom: 20px;
  right: 20px;
  background: var(--bwp-white);
  border: 1px solid var(--bwp-border);
  border-radius: var(--bwp-radius-lg);
  padding: 14px 18px;
  box-shadow: var(--bwp-shadow);
  display: flex;
  align-items: center;
  gap: 10px;
}

.bwp-about__badge-icon {
  width: 40px;
  height: 40px;
  background: var(--bwp-blue-pale);
  border-radius: 10px;
  display: flex;
  align-items: center;
  justify-content: center;
}

.bwp-about__badge-icon svg { width: 22px; height: 22px; color: var(--bwp-blue); }
.bwp-about__badge-text strong { display: block; font-size: 1rem; font-weight: 800; color: var(--bwp-text-dark); }
.bwp-about__badge-text span { font-size: 0.75rem; color: var(--bwp-text-light); font-weight: 500; }

.bwp-about__content { }

.bwp-about__stats {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 20px;
  margin: 32px 0 36px;
}

.bwp-about__stat {
  background: var(--bwp-white);
  border: 1px solid var(--bwp-border);
  border-radius: var(--bwp-radius-lg);
  padding: 20px;
}

.bwp-about__stat-number {
  font-size: 1.8rem;
  font-weight: 900;
  color: var(--bwp-blue);
  line-height: 1;
  font-family: var(--bwp-font-heading);
}

.bwp-about__stat-label { font-size: 0.82rem; color: var(--bwp-text-light); font-weight: 500; margin-top: 4px; }

/* =========================================================
   LAB TESTING SECTION
   ========================================================= */
.bwp-lab { background: linear-gradient(135deg, var(--bwp-blue-deeper) 0%, var(--bwp-blue) 100%); color: var(--bwp-white); }

.bwp-lab__inner {
  display: grid;
  grid-template-columns: 1.1fr 1fr;
  gap: 72px;
  align-items: center;
}

.bwp-lab__content .bwp-badge {
  background: rgba(255,255,255,0.15);
  color: var(--bwp-white);
  border: 1px solid rgba(255,255,255,0.25);
}

.bwp-lab__content h2 { color: var(--bwp-white); }
.bwp-lab__content p { color: rgba(255,255,255,0.8); line-height: 1.75; margin: 18px 0 32px; font-size: 1.02rem; }

.bwp-lab__features { display: flex; flex-direction: column; gap: 18px; margin-bottom: 36px; }

.bwp-lab__feature {
  display: flex;
  align-items: flex-start;
  gap: 14px;
}

.bwp-lab__feature-icon {
  width: 38px;
  height: 38px;
  background: rgba(255,255,255,0.15);
  border-radius: 10px;
  display: flex;
  align-items: center;
  justify-content: center;
  flex-shrink: 0;
  margin-top: 2px;
}

.bwp-lab__feature-icon svg { width: 20px; height: 20px; color: #8fb4e8; }
.bwp-lab__feature-text strong { display: block; font-size: 0.92rem; font-weight: 700; color: var(--bwp-white); margin-bottom: 3px; }
.bwp-lab__feature-text span { font-size: 0.83rem; color: rgba(255,255,255,0.7); }

.bwp-lab__visual {
  display: flex;
  justify-content: center;
}

.bwp-coa-card {
  background: rgba(255,255,255,0.12);
  border: 1px solid rgba(255,255,255,0.25);
  border-radius: 20px;
  backdrop-filter: blur(12px);
  padding: 32px;
  max-width: 340px;
  width: 100%;
}

.bwp-coa-card__header {
  display: flex;
  align-items: center;
  gap: 12px;
  margin-bottom: 24px;
  padding-bottom: 20px;
  border-bottom: 1px solid rgba(255,255,255,0.2);
}

.bwp-coa-card__header-icon {
  width: 48px;
  height: 48px;
  background: rgba(126,234,255,0.2);
  border-radius: 12px;
  display: flex;
  align-items: center;
  justify-content: center;
}

.bwp-coa-card__header-icon svg { width: 26px; height: 26px; color: #8fb4e8; }

.bwp-coa-card__header-text strong { color: var(--bwp-white); font-weight: 700; display: block; font-size: 0.95rem; }
.bwp-coa-card__header-text span { color: rgba(255,255,255,0.6); font-size: 0.78rem; }

.bwp-coa-row {
  display: flex;
  justify-content: space-between;
  align-items: center;
  padding: 10px 0;
  border-bottom: 1px solid rgba(255,255,255,0.1);
  font-size: 0.86rem;
}

.bwp-coa-row:last-child { border-bottom: none; }
.bwp-coa-row__label { color: rgba(255,255,255,0.65); }
.bwp-coa-row__value { font-weight: 700; color: var(--bwp-white); }
.bwp-coa-row__value.pass { color: #6ee7a8; }

/* =========================================================
   TESTIMONIALS
   ========================================================= */
.bwp-testimonials { background: var(--bwp-white); }

.bwp-testimonials__grid {
  display: grid;
  grid-template-columns: repeat(auto-fit, minmax(280px, 1fr));
  gap: 24px;
  margin-top: 48px;
}

.bwp-testimonial-card {
  background: var(--bwp-blue-pale);
  border: 1px solid var(--bwp-border);
  border-radius: var(--bwp-radius-lg);
  padding: 30px 28px;
  transition: all var(--bwp-transition);
}

.bwp-testimonial-card:hover {
  border-color: var(--bwp-blue);
  box-shadow: var(--bwp-shadow);
}

.bwp-testimonial-card__stars {
  display: flex;
  gap: 3px;
  color: #f6a623;
  font-size: 1rem;
  margin-bottom: 14px;
}

.bwp-testimonial-card__quote {
  font-size: 0.93rem;
  color: var(--bwp-text-mid);
  line-height: 1.75;
  font-style: italic;
  margin-bottom: 22px;
}

.bwp-testimonial-card__author { display: flex; align-items: center; gap: 12px; }

.bwp-testimonial-card__avatar {
  width: 42px;
  height: 42px;
  border-radius: 50%;
  background: var(--bwp-blue-light);
  display: flex;
  align-items: center;
  justify-content: center;
  font-size: 0.9rem;
  font-weight: 800;
  color: var(--bwp-blue-dark);
  flex-shrink: 0;
  font-family: var(--bwp-font-heading);
}

.bwp-testimonial-card__author-name { font-weight: 700; font-size: 0.88rem; color: var(--bwp-text-dark); }
.bwp-testimonial-card__author-role { font-size: 0.78rem; color: var(--bwp-text-light); }

/* =========================================================
   NEWSLETTER
   ========================================================= */
.bwp-newsletter {
  background: var(--bwp-blue-pale);
  border-top: 1px solid var(--bwp-border);
  border-bottom: 1px solid var(--bwp-border);
}

.bwp-newsletter__inner {
  display: flex;
  align-items: center;
  gap: 60px;
  flex-wrap: wrap;
}

.bwp-newsletter__text { flex: 1; min-width: 280px; }
.bwp-newsletter__text h2 { font-size: 1.7rem; margin-bottom: 8px; }
.bwp-newsletter__text p { color: var(--bwp-text-mid); font-size: 0.93rem; }

.bwp-newsletter__form { flex: 1; min-width: 300px; }

.bwp-newsletter__form form {
  display: flex;
  gap: 10px;
}

.bwp-newsletter__form input[type="email"] {
  flex: 1;
  border: 1px solid var(--bwp-border);
  border-radius: var(--bwp-radius);
  padding: 13px 18px;
  font-size: 0.9rem;
  color: var(--bwp-text-dark);
  background: var(--bwp-white);
  outline: none;
  transition: border-color var(--bwp-transition);
}

.bwp-newsletter__form input[type="email"]:focus { border-color: var(--bwp-blue); box-shadow: 0 0 0 3px rgba(26,155,192,0.12); }

.bwp-newsletter__form input[type="submit"] {
  background: var(--bwp-blue);
  color: var(--bwp-white);
  border: none;
  border-radius: var(--bwp-radius);
  padding: 13px 24px;
  font-family: var(--bwp-font-heading);
  font-weight: 700;
  font-size: 0.88rem;
  cursor: pointer;
  transition: background var(--bwp-transition);
  white-space: nowrap;
}

.bwp-newsletter__form input[type="submit"]:hover { background: var(--bwp-blue-dark); }

/* =========================================================
   FOOTER
   ========================================================= */
.bwp-footer {
  background: var(--bwp-text-dark);
  color: rgba(255,255,255,0.75);
  padding: 64px 0 0;
}

.bwp-footer__grid {
  display: grid;
  grid-template-columns: 2fr 1fr 1fr 1fr;
  gap: 48px;
  padding-bottom: 48px;
  border-bottom: 1px solid rgba(255,255,255,0.08);
}

.bwp-footer__brand .bwp-logo__name { color: var(--bwp-white); }
.bwp-footer__brand .bwp-logo__tagline { color: rgba(255,255,255,0.4); }

.bwp-footer__brand-desc {
  font-size: 0.87rem;
  color: rgba(255,255,255,0.55);
  line-height: 1.75;
  margin: 18px 0 24px;
  max-width: 300px;
}

.bwp-footer__social { display: flex; gap: 10px; }

.bwp-footer__social a {
  width: 36px;
  height: 36px;
  background: rgba(255,255,255,0.08);
  border-radius: 8px;
  display: flex;
  align-items: center;
  justify-content: center;
  color: rgba(255,255,255,0.6);
  transition: all var(--bwp-transition);
}

.bwp-footer__social a:hover {
  background: var(--bwp-blue);
  color: var(--bwp-white);
}

.bwp-footer__social a svg { width: 16px; height: 16px; }

.bwp-footer__col h4 {
  color: var(--bwp-white);
  font-size: 0.88rem;
  font-weight: 700;
  letter-spacing: 0.06em;
  text-transform: uppercase;
  margin-bottom: 18px;
  font-family: var(--bwp-font-heading);
}

.bwp-footer__col ul { display: flex; flex-direction: column; gap: 10px; }

.bwp-footer__col ul li a {
  color: rgba(255,255,255,0.55);
  font-size: 0.875rem;
  transition: color var(--bwp-transition);
  text-decoration: none;
}

.bwp-footer__col ul li a:hover { color: var(--bwp-white); }

.bwp-footer__bottom {
  padding: 22px 0;
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 16px;
  flex-wrap: wrap;
}

.bwp-footer__bottom p { font-size: 0.82rem; color: rgba(255,255,255,0.35); }

.bwp-footer__bottom-links { display: flex; gap: 20px; }
.bwp-footer__bottom-links a {
  font-size: 0.82rem;
  color: rgba(255,255,255,0.35);
  text-decoration: none;
  transition: color var(--bwp-transition);
}

.bwp-footer__bottom-links a:hover { color: var(--bwp-white); }

/* =========================================================
   WOOCOMMERCE GLOBAL OVERRIDES
   ========================================================= */

/* ── Global product grid: CSS Grid for every WC loop ──────
   Overrides WC's float-based columns-N layout everywhere.
   Kills .first clear:left that causes orphaned top-row products.
   ─────────────────────────────────────────────────────────── */
.woocommerce ul.products,
.woocommerce-page ul.products {
  display: grid !important;
  grid-template-columns: repeat(3, 1fr) !important;
  gap: 24px !important;
  margin: 0 !important;
  padding: 0 !important;
  list-style: none !important;
  float: none !important;
  clear: none !important;
}

/* Kill WC pseudo-elements that can break grid */
.woocommerce ul.products::before,
.woocommerce ul.products::after,
.woocommerce-page ul.products::before,
.woocommerce-page ul.products::after { display: none !important; }

/* Every product cell — uniform, no floats, no WC width overrides */
.woocommerce ul.products li.product,
.woocommerce-page ul.products li.product {
  float: none !important;
  clear: none !important;       /* ← this is the key: kills .first clear:left */
  width: 100% !important;
  margin: 0 !important;
  padding: 0 !important;
  display: flex !important;
  flex-direction: column !important;
  background: var(--bwp-white);
  border: 1px solid var(--bwp-border);
  border-radius: var(--bwp-radius-lg);
  overflow: hidden;
  transition: transform var(--bwp-transition), box-shadow var(--bwp-transition), border-color var(--bwp-transition);
}

.woocommerce ul.products li.product:hover,
.woocommerce-page ul.products li.product:hover {
  border-color: var(--bwp-blue);
  box-shadow: var(--bwp-shadow);
  transform: translateY(-4px);
}

/* Product images — square, consistent */
.woocommerce ul.products li.product img,
.woocommerce-page ul.products li.product img {
  width: 100% !important;
  aspect-ratio: 1 / 1;
  object-fit: cover;
  display: block;
  transition: transform 0.4s ease;
}

.woocommerce ul.products li.product:hover img,
.woocommerce-page ul.products li.product:hover img { transform: scale(1.04); }

/* Product info wrapper — match the homepage "Top Sellers" padding so the
   title/price/badges aren't flush against the card edge on the shop page */
.woocommerce ul.products li.product .product-info,
.woocommerce-page ul.products li.product .product-info {
  padding: 18px 20px !important;
}

/* Product title */
.woocommerce ul.products li.product .woocommerce-loop-product__title,
.woocommerce-page ul.products li.product .woocommerce-loop-product__title {
  font-family: var(--bwp-font-heading) !important;
  font-size: 0.95rem !important;
  font-weight: 700 !important;
  color: var(--bwp-text-dark) !important;
  margin-bottom: 6px !important;
  padding: 0 !important;
  line-height: 1.3 !important;
}

/* Price */
.woocommerce ul.products li.product .price,
.woocommerce-page ul.products li.product .price {
  color: var(--bwp-blue-dark) !important;
  font-weight: 800 !important;
  font-size: 1.05rem !important;
  font-family: var(--bwp-font-heading) !important;
}

/* Add-to-cart button */
.woocommerce ul.products li.product a.button,
.woocommerce ul.products li.product .add_to_cart_button,
.woocommerce-page ul.products li.product a.button,
.woocommerce-page ul.products li.product .add_to_cart_button {
  display: block !important;
  width: calc(100% - 40px) !important;
  margin: 0 20px 20px !important;
  padding: 11px 20px !important;
  background: var(--bwp-blue) !important;
  color: var(--bwp-white) !important;
  border: none !important;
  border-radius: var(--bwp-radius) !important;
  font-family: var(--bwp-font-heading) !important;
  font-weight: 700 !important;
  font-size: 0.85rem !important;
  cursor: pointer !important;
  transition: background var(--bwp-transition) !important;
  text-align: center !important;
  text-decoration: none !important;
  margin-top: auto !important;
}

.woocommerce ul.products li.product a.button:hover,
.woocommerce ul.products li.product .add_to_cart_button:hover,
.woocommerce-page ul.products li.product a.button:hover,
.woocommerce-page ul.products li.product .add_to_cart_button:hover {
  background: var(--bwp-blue-dark) !important;
}

/* Responsive: 2-col on tablet, 1-col on mobile */
@media (max-width: 900px) {
  .woocommerce ul.products,
  .woocommerce-page ul.products {
    grid-template-columns: repeat(2, 1fr) !important;
  }
}

@media (max-width: 480px) {
  /* Two products per row on phones, sized to fit with no horizontal scroll */
  .woocommerce ul.products,
  .woocommerce-page ul.products {
    grid-template-columns: 1fr 1fr !important;
    gap: 12px !important;
  }
  .woocommerce ul.products li.product .product-info,
  .woocommerce-page ul.products li.product .product-info { padding: 12px 12px !important; }
  .woocommerce ul.products li.product .woocommerce-loop-product__title,
  .woocommerce-page ul.products li.product .woocommerce-loop-product__title {
    font-size: 0.9rem !important;
    overflow-wrap: break-word;
    word-break: break-word;
  }
  .woocommerce ul.products li.product .price,
  .woocommerce-page ul.products li.product .price { font-size: 0.95rem !important; }
  .woocommerce ul.products li.product a.button,
  .woocommerce ul.products li.product .add_to_cart_button,
  .woocommerce-page ul.products li.product a.button,
  .woocommerce-page ul.products li.product .add_to_cart_button {
    padding: 9px 6px !important;
    font-size: 0.76rem !important;
  }
}

/* Breadcrumbs */
.woocommerce .woocommerce-breadcrumb {
  font-size: 0.83rem;
  color: var(--bwp-text-light);
  margin-bottom: 24px;
  padding: 12px 0;
}

.woocommerce .woocommerce-breadcrumb a { color: var(--bwp-blue); }

/* Notices */
.woocommerce-message, .woocommerce-info {
  background: var(--bwp-blue-pale) !important;
  border-top: 3px solid var(--bwp-blue) !important;
  color: var(--bwp-text-dark) !important;
  border-radius: 0 0 var(--bwp-radius) var(--bwp-radius) !important;
}

.woocommerce-error {
  border-top: 3px solid #e53e3e !important;
  border-radius: 0 0 var(--bwp-radius) var(--bwp-radius) !important;
}

/* Forms */
.woocommerce form .form-row input.input-text,
.woocommerce form .form-row textarea {
  border: 1px solid var(--bwp-border) !important;
  border-radius: var(--bwp-radius) !important;
  padding: 12px 16px !important;
  font-family: var(--bwp-font) !important;
  font-size: 0.9rem !important;
  transition: all var(--bwp-transition) !important;
  width: 100% !important;
}

.woocommerce form .form-row input.input-text:focus,
.woocommerce form .form-row textarea:focus {
  border-color: var(--bwp-blue) !important;
  box-shadow: 0 0 0 3px rgba(26,155,192,0.12) !important;
  outline: none !important;
}

/* Buttons global */
.woocommerce a.button,
.woocommerce button.button,
.woocommerce input.button,
.woocommerce #respond input#submit {
  background: var(--bwp-blue) !important;
  color: var(--bwp-white) !important;
  border: none !important;
  border-radius: var(--bwp-radius) !important;
  font-family: var(--bwp-font-heading) !important;
  font-weight: 700 !important;
  font-size: 0.9rem !important;
  padding: 12px 24px !important;
  cursor: pointer !important;
  transition: background var(--bwp-transition) !important;
}

.woocommerce a.button:hover,
.woocommerce button.button:hover,
.woocommerce input.button:hover,
.woocommerce #respond input#submit:hover {
  background: var(--bwp-blue-dark) !important;
  color: var(--bwp-white) !important;
}

.woocommerce a.button.alt,
.woocommerce button.button.alt {
  background: var(--bwp-blue-deeper) !important;
}

/* Single product */
.woocommerce div.product .woocommerce-tabs ul.tabs li.active a,
.woocommerce div.product .woocommerce-tabs ul.tabs li.active {
  border-top: 2px solid var(--bwp-blue) !important;
  color: var(--bwp-blue) !important;
}

.woocommerce div.product .woocommerce-tabs ul.tabs li a {
  font-family: var(--bwp-font-heading) !important;
  font-weight: 600 !important;
}

.woocommerce div.product p.price,
.woocommerce div.product span.price {
  color: var(--bwp-blue-dark) !important;
  font-size: 1.6rem !important;
  font-weight: 900 !important;
  font-family: var(--bwp-font-heading) !important;
}

/* Cart */
.woocommerce .cart-collaterals .cart_totals h2,
.woocommerce-cart .cart-collaterals h2 {
  font-family: var(--bwp-font-heading) !important;
  font-size: 1.2rem !important;
}

/* Checkout */
.woocommerce #payment {
  background: var(--bwp-blue-pale) !important;
  border-radius: var(--bwp-radius-lg) !important;
}

/* =========================================================
   SHOP / ARCHIVE PAGE
   ========================================================= */
.bwp-shop-header {
  background: linear-gradient(135deg, var(--bwp-blue-deeper) 0%, var(--bwp-blue) 100%);
  padding: 48px 0;
  color: var(--bwp-white);
}

.bwp-shop-header h1 {
  font-size: clamp(1.6rem, 3vw, 2.4rem);
  color: var(--bwp-white);
  margin-bottom: 8px;
}

.bwp-shop-header p { color: rgba(255,255,255,0.75); font-size: 1rem; }

.bwp-shop-wrap {
  display: grid;
  grid-template-columns: 260px 1fr;
  gap: 36px;
  align-items: start;
  padding: 48px 0;
}

/* Sidebar filters */
.bwp-shop-sidebar {
  background: var(--bwp-white);
  border: 1px solid var(--bwp-border);
  border-radius: var(--bwp-radius-lg);
  padding: 28px;
  position: sticky;
  top: 100px;
}

.bwp-shop-sidebar h3 {
  font-size: 0.78rem;
  font-weight: 800;
  letter-spacing: 0.1em;
  text-transform: uppercase;
  color: var(--bwp-text-light);
  margin-bottom: 14px;
  padding-bottom: 10px;
  border-bottom: 1px solid var(--bwp-border);
}

/* WC widget styling within sidebar */
.bwp-shop-sidebar .widget { margin-bottom: 28px; }
.bwp-shop-sidebar .widget:last-child { margin-bottom: 0; }
.bwp-shop-sidebar .widget_title, .bwp-shop-sidebar h2.widget-title {
  font-size: 0.78rem !important;
  font-weight: 800 !important;
  letter-spacing: 0.1em !important;
  text-transform: uppercase !important;
  color: var(--bwp-text-light) !important;
  margin-bottom: 14px !important;
  padding-bottom: 10px !important;
  border-bottom: 1px solid var(--bwp-border) !important;
}

.bwp-shop-sidebar ul li a {
  font-size: 0.88rem;
  color: var(--bwp-text-dark);
  display: flex;
  justify-content: space-between;
  padding: 7px 0;
  border-bottom: 1px solid rgba(197,223,233,0.4);
  transition: color var(--bwp-transition);
}

.bwp-shop-sidebar ul li a:hover { color: var(--bwp-blue); }

/* =========================================================
   PAGE HERO (inner pages)
   ========================================================= */
.bwp-page-hero {
  background: linear-gradient(135deg, var(--bwp-blue-deeper) 0%, var(--bwp-blue) 100%);
  padding: 56px 0;
  color: var(--bwp-white);
}

.bwp-page-hero h1 { color: var(--bwp-white); font-size: clamp(1.8rem, 3vw, 2.6rem); }
.bwp-page-hero .woocommerce-breadcrumb { color: rgba(255,255,255,0.65); }
.bwp-page-hero .woocommerce-breadcrumb a { color: rgba(255,255,255,0.85); }

/* =========================================================
   CONTENT PAGES
   ========================================================= */
.bwp-page-content { padding: 60px 0 80px; }

.bwp-page-content .bwp-container { max-width: 820px; }

.bwp-page-content h2 { font-size: 1.5rem; margin: 36px 0 14px; }
.bwp-page-content h3 { font-size: 1.2rem; margin: 28px 0 10px; }
.bwp-page-content p { margin-bottom: 18px; color: var(--bwp-text-mid); line-height: 1.8; }
.bwp-page-content ul { margin: 0 0 18px 24px; }
.bwp-page-content ul li { margin-bottom: 8px; color: var(--bwp-text-mid); }

/* Restore bullets on plain content pages (privacy, terms, returns, shipping),
   which the unscoped `ul { list-style: none }` reset near the top of this file
   otherwise flattens into unmarked indented text. Direct children only, so
   wrapped layouts such as .bwp-about-page and the FAQ comparison columns keep
   their intentional list-style: none. */
.bwp-page-content .entry-content > ul { list-style: disc; }
.bwp-page-content .entry-content > ul > li { margin-bottom: 8px; }

/* =========================================================
   ABOUT US PAGE
   ========================================================= */
.bwp-about-page__lead {
  font-size: 1.28rem !important;
  line-height: 1.6 !important;
  color: var(--bwp-blue-deeper) !important;
  font-weight: 600;
  margin-bottom: 24px !important;
}
.bwp-about-page__highlight {
  background: var(--bwp-blue-pale);
  border-left: 4px solid var(--bwp-blue);
  border-radius: var(--bwp-radius);
  padding: 20px 24px;
  margin: 28px 0;
}
.bwp-about-page__highlight p {
  margin-bottom: 0;
  color: var(--bwp-text-dark);
  font-weight: 500;
}
.bwp-about-page__closing {
  font-family: var(--bwp-font-heading);
  font-size: 1.12rem !important;
  font-weight: 600;
  color: var(--bwp-blue-deeper) !important;
  margin-top: 28px !important;
}

/* =========================================================
   HOW PAYMENT WORKS PAGE
   ========================================================= */
.bwp-payment-page__lead {
  font-size: 1.28rem !important;
  line-height: 1.6 !important;
  color: var(--bwp-blue-deeper) !important;
  font-weight: 600;
  margin-bottom: 26px !important;
}

/* Numbered checkout steps */
.bwp-payment-page__steps {
  list-style: none;
  counter-reset: bwp-step;
  margin: 0 0 8px !important;
  padding: 0;
}
.bwp-payment-page__steps > li {
  counter-increment: bwp-step;
  position: relative;
  padding-left: 52px;
  margin-bottom: 26px;
}
.bwp-payment-page__steps > li::before {
  content: counter(bwp-step);
  position: absolute;
  left: 0;
  top: 2px;
  width: 34px;
  height: 34px;
  border-radius: 50%;
  background: var(--bwp-blue);
  color: var(--bwp-white);
  font-family: var(--bwp-font-heading);
  font-size: 1rem;
  font-weight: 600;
  line-height: 34px;
  text-align: center;
}
.bwp-payment-page__steps > li > h3 {
  margin: 0 0 8px !important;
  font-size: 1.12rem;
  color: var(--bwp-text-dark);
}
.bwp-payment-page__steps > li > p:last-child { margin-bottom: 0; }

/* Statement-descriptor callout — the reason this page exists */
.bwp-payment-page__descriptor {
  background: var(--bwp-blue-pale);
  border-left: 4px solid var(--bwp-blue);
  border-radius: var(--bwp-radius);
  padding: 20px 24px;
  margin: 24px 0 26px;
}
.bwp-payment-page__descriptor p { color: var(--bwp-text-dark); }
.bwp-payment-page__descriptor p:last-child { margin-bottom: 0; }
.bwp-payment-page__descriptor-title {
  font-weight: 600;
  font-size: 1.06rem;
  margin-bottom: 10px !important;
}
.bwp-payment-page__descriptor code {
  display: inline-block;
  background: var(--bwp-white);
  border: 1px solid var(--bwp-border);
  border-radius: 4px;
  padding: 2px 9px;
  font-family: ui-monospace, SFMono-Regular, Menlo, Consolas, monospace;
  font-size: 0.94em;
  letter-spacing: 0.04em;
  color: var(--bwp-blue-deeper);
  white-space: nowrap;
}
/* Restore bullets inside this page only — the global `ul { list-style: none }`
   reset on line 82 otherwise flattens content lists into unmarked text. */
.bwp-payment-page ul {
  list-style: disc;
  margin: 0 0 18px 24px;
}
.bwp-payment-page ul li { margin-bottom: 8px; }

.bwp-payment-page__closing {
  font-family: var(--bwp-font-heading);
  font-size: 1.1rem !important;
  font-weight: 600;
  color: var(--bwp-blue-deeper) !important;
}

@media (max-width: 600px) {
  .bwp-payment-page__steps > li { padding-left: 44px; }
  .bwp-payment-page__steps > li::before {
    width: 30px;
    height: 30px;
    line-height: 30px;
    font-size: 0.92rem;
  }
  .bwp-payment-page__descriptor { padding: 18px; }
  .bwp-payment-page__descriptor code { white-space: normal; word-break: break-all; }
}

/* =========================================================
   CONTACT / FORM PAGES — brand-matched styling
   ========================================================= */
/* rounded, soft-shadowed images in page content */
.bwp-page-content .entry-content img {
  border-radius: var(--bwp-radius-lg) !important;
  box-shadow: var(--bwp-shadow);
}
.bwp-page-content .entry-content figure { margin: 0; }

/* vertically center a form beside its image + breathing room */
.bwp-page-content .entry-content .wp-block-columns { align-items: center; gap: 44px; }

/* field labels */
.bwp-page-content .entry-content label,
.bwp-page-content .entry-content .grunion-field-label,
.bwp-page-content .entry-content .jetpack-field-label {
  display: block;
  font-family: var(--bwp-font-heading);
  font-weight: 600;
  font-size: 0.9rem;
  letter-spacing: 0.02em;
  color: var(--bwp-text-dark);
  margin-bottom: 6px;
}

/* text inputs + textarea */
.bwp-page-content .entry-content input[type="text"],
.bwp-page-content .entry-content input[type="email"],
.bwp-page-content .entry-content input[type="tel"],
.bwp-page-content .entry-content input[type="url"],
.bwp-page-content .entry-content input[type="number"],
.bwp-page-content .entry-content select,
.bwp-page-content .entry-content textarea {
  width: 100%;
  padding: 13px 16px;
  border: 1.5px solid var(--bwp-blue-light);
  border-radius: var(--bwp-radius);
  background: var(--bwp-white);
  font-family: var(--bwp-font);
  font-size: 0.98rem;
  color: var(--bwp-text-dark);
  box-sizing: border-box;
  transition: border-color var(--bwp-transition), box-shadow var(--bwp-transition);
}
.bwp-page-content .entry-content input:focus,
.bwp-page-content .entry-content select:focus,
.bwp-page-content .entry-content textarea:focus {
  outline: none;
  border-color: var(--bwp-blue);
  box-shadow: 0 0 0 3px rgba(30,78,146,0.15);
}
.bwp-page-content .entry-content textarea { min-height: 150px; resize: vertical; }
.bwp-page-content .entry-content ::placeholder { color: var(--bwp-text-light); }

/* field spacing */
.bwp-page-content .entry-content .grunion-field-wrap,
.bwp-page-content .entry-content .jetpack-field { margin-bottom: 18px; }

/* submit button — matches brand primary button */
.bwp-page-content .entry-content .wp-block-button__link,
.bwp-page-content .entry-content .grunion-field-submit-wrap button,
.bwp-page-content .entry-content button[type="submit"],
.bwp-page-content .entry-content input[type="submit"] {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  padding: 14px 40px !important;
  border: 2px solid var(--bwp-blue) !important;
  border-radius: var(--bwp-radius) !important;
  background: var(--bwp-blue) !important;
  color: var(--bwp-white) !important;
  font-family: var(--bwp-font-heading);
  font-size: 0.93rem;
  font-weight: 700;
  letter-spacing: 0.04em;
  text-transform: uppercase;
  cursor: pointer;
  transition: all var(--bwp-transition);
}
.bwp-page-content .entry-content .wp-block-button__link:hover,
.bwp-page-content .entry-content .grunion-field-submit-wrap button:hover,
.bwp-page-content .entry-content button[type="submit"]:hover,
.bwp-page-content .entry-content input[type="submit"]:hover {
  background: var(--bwp-blue-dark) !important;
  border-color: var(--bwp-blue-dark) !important;
  transform: translateY(-2px);
  box-shadow: var(--bwp-shadow);
}

/* =========================================================
   CART WIDGET
   ========================================================= */
.bwp-mini-cart {
  position: absolute;
  top: calc(100% + 8px);
  right: 0;
  width: 340px;
  background: var(--bwp-white);
  border: 1px solid var(--bwp-border);
  border-radius: var(--bwp-radius-lg);
  box-shadow: var(--bwp-shadow-lg);
  padding: 20px;
  z-index: 400;
  opacity: 0;
  visibility: hidden;
  transform: translateY(-8px);
  transition: all var(--bwp-transition);
}

.bwp-header__icon-btn:hover .bwp-mini-cart { opacity: 1; visibility: visible; transform: translateY(0); }

/* =========================================================
   RESPONSIVE
   ========================================================= */
@media (max-width: 1024px) {
  .bwp-about__inner { grid-template-columns: 1fr; gap: 40px; }
  .bwp-lab__inner { grid-template-columns: 1fr; gap: 40px; }
  .bwp-footer__grid { grid-template-columns: 1fr 1fr; gap: 32px; }
  .bwp-shop-wrap { grid-template-columns: 1fr; }
  .bwp-shop-sidebar { position: static; }
}

/* The hero stacks at 767, not 1024. Between the two the frame is still wide
   enough to hold copy beside the product, and the landscape cut still fits —
   stacking there would hand a portrait photograph to a landscape frame. */
@media (max-width: 767px) {
  .bwp-hero { min-height: 660px; }
  .bwp-hero__inner {
    align-items: center;
    /* The bottom pad grows with the viewport so the frame keeps roughly its
       shape as the phone widens. With a fixed pad the hero goes square and the
       vials ride straight up into the trust row. */
    padding: 116px 0 clamp(300px, 70vw, 520px);
    text-align: center;
  }
  .bwp-hero__content {
    max-width: none;
    display: flex;
    flex-direction: column;
    align-items: center;
  }
  .bwp-hero__eyebrow, .bwp-hero__ctas, .bwp-hero__trust { justify-content: center; }
  .bwp-hero__subtext { margin-left: auto; margin-right: auto; max-width: 460px; }
  .bwp-hero__trust { border-top: 0; padding-top: 0; margin-top: 22px; }

  /* Release the nowrap that keeps "Research Grade • From the USA" on one line.
     It needs 309px, and a 320px phone only offers 288 — the pill then sets the
     width of the whole centred column and the headline overhangs with it.
     Nothing moves at 360px and above, because text only wraps when it must;
     this just stops the smallest phones being pushed off their own screen.  */
  .bwp-hero__eyebrow-primary { white-space: normal; }
}

@media (max-width: 768px) {
  .bwp-nav { display: none; }
  .bwp-header__search { display: none; }
  .bwp-menu-toggle { display: flex; }
  .bwp-section { padding: 56px 0; }
  .bwp-section--lg { padding: 72px 0; }
  .bwp-about__stats { grid-template-columns: 1fr 1fr; }
  .bwp-footer__grid { grid-template-columns: 1fr; gap: 32px; }
  .bwp-newsletter__inner { flex-direction: column; gap: 28px; }
  .bwp-newsletter__form form { flex-direction: column; }
  .bwp-products .woocommerce ul.products { grid-template-columns: repeat(2, 1fr) !important; }
  .bwp-hero__ctas { flex-direction: column; align-items: stretch; width: 100%; }
  .bwp-hero__ctas .bwp-btn { width: 100%; }
  .bwp-footer__bottom { flex-direction: column; align-items: flex-start; }

  /* Keep the header within the screen: let the logo shrink, tighten actions */
  .bwp-container { padding-left: 16px; padding-right: 16px; }
  .bwp-header__inner { gap: 10px; height: 68px; }
  .bwp-logo { min-width: 0; flex-shrink: 1; gap: 8px; }
  .bwp-logo__mark { width: 46px; }
  .bwp-logo__text { min-width: 0; }
  .bwp-logo__name { font-size: 0.98rem; letter-spacing: 0.02em; }
  .bwp-logo__tagline { font-size: 0.58rem; letter-spacing: 0.08em; }
  .bwp-header__actions { gap: 4px; }
  .bwp-header__icon-btn, .bwp-menu-toggle { width: 38px; height: 38px; }

  /* On mobile, drop "COA Verified" to its own second line */
  .bwp-hero__eyebrow-secondary { display: block; }
}

@media (max-width: 480px) {
  .bwp-trust-strip__grid { flex-direction: column; align-items: flex-start; gap: 12px; }
  .bwp-categories__grid { grid-template-columns: repeat(2, 1fr); }
  .bwp-about__stats { grid-template-columns: 1fr; }
  .bwp-products .woocommerce ul.products { grid-template-columns: 1fr 1fr !important; }
  /* Keep flex children from forcing the page wider than the viewport */
  .bwp-newsletter__text, .bwp-newsletter__form { min-width: 0; }
  .bwp-logo__mark { width: 42px; }
  .bwp-logo__name { font-size: 0.92rem; }
}

/* =========================================================
   PRINT / ACCESSIBILITY
   ========================================================= */
:focus-visible { outline: 3px solid var(--bwp-blue); outline-offset: 3px; border-radius: 4px; }

@media (prefers-reduced-motion: reduce) {
  *, *::before, *::after { transition: none !important; animation: none !important; }
}

/* =========================================================
   AGE VERIFICATION GATE
   ========================================================= */
.bwp-age-gate {
  position: fixed;
  inset: 0;
  z-index: 99999;
  display: flex;
  align-items: center;
  justify-content: center;
  padding: 24px;
  background: linear-gradient(135deg, rgba(9,97,127,0.97) 0%, rgba(13,127,168,0.97) 60%, rgba(26,155,192,0.97) 100%);
  backdrop-filter: blur(6px);
  -webkit-backdrop-filter: blur(6px);
  animation: bwpGateIn 0.35s ease;
}

.bwp-age-gate--closing { opacity: 0; transition: opacity 0.35s ease; }

@keyframes bwpGateIn { from { opacity: 0; } to { opacity: 1; } }

.bwp-age-gate__card {
  background: var(--bwp-white);
  border-radius: var(--bwp-radius-lg);
  max-width: 460px;
  width: 100%;
  padding: 40px 36px 32px;
  text-align: center;
  box-shadow: 0 24px 70px rgba(0,0,0,0.35);
}

.bwp-age-gate__logo { max-width: 150px; height: auto; margin: 0 auto 18px; display: block; }

.bwp-age-gate__drop {
  width: 76px; height: 76px;
  margin: 0 auto 16px;
  border-radius: 50%;
  background: var(--bwp-blue-pale);
  color: var(--bwp-blue);
  display: flex; align-items: center; justify-content: center;
}

.bwp-age-gate__title {
  font-family: var(--bwp-font-heading);
  font-size: 1.6rem;
  font-weight: 800;
  color: var(--bwp-text-dark);
  margin-bottom: 12px;
}

.bwp-age-gate__msg {
  color: var(--bwp-text-mid);
  font-size: 0.95rem;
  line-height: 1.6;
  margin-bottom: 24px;
}

.bwp-age-gate__actions {
  display: flex;
  flex-direction: column;
  align-items: center;
  gap: 14px;
  margin-top: 8px;
}

.bwp-age-gate__enter { width: 100%; justify-content: center; }
.bwp-age-gate__enter:disabled { opacity: 0.5; cursor: not-allowed; }

.bwp-age-gate__leave {
  display: inline-block;
  padding: 10px 18px;
  border-radius: var(--bwp-radius);
  color: var(--bwp-text-light);
  font-size: 0.88rem;
  font-weight: 600;
  text-decoration: underline;
  transition: color var(--bwp-transition), background var(--bwp-transition);
}
.bwp-age-gate__leave:hover,
.bwp-age-gate__leave:focus-visible {
  color: var(--bwp-text-dark);
  background: var(--bwp-off-white);
}

.bwp-age-gate__legal {
  margin-top: 22px;
  padding-top: 18px;
  border-top: 1px solid var(--bwp-border);
  font-size: 0.74rem;
  color: var(--bwp-text-light);
  line-height: 1.55;
}

@media (max-width: 420px) {
  .bwp-age-gate__card { padding: 32px 22px 26px; }
  .bwp-age-gate__title { font-size: 1.4rem; }
}

/* =========================================================
   BRAND REFRESH — navy + chrome + Oswald (label-matched)
   ========================================================= */
/* Oswald reads best with a touch of tracking */
h1, h2, h3, .bwp-section-title, .bwp-hero__headline { letter-spacing: 0.01em; }

/* Footer logo sits on dark navy — make the wordmark white */
.bwp-logo--footer .bwp-logo__name { color: #fff; }
.bwp-logo--footer .bwp-logo__tagline { color: rgba(255,255,255,0.6); }

/* The hero used to carry a deep-navy gradient here. It cannot any more: this
   is the `background` SHORTHAND, so it resets background-image and wipes the
   photograph set above, wherever it appears in the file. The colour it was
   providing now lives on --bwp-blue-deeper as the hero's background-color,
   which is also what shows if the photograph ever fails to load. */

/* Chrome/silver ring on the verification badge icons */
.bwp-verify-strip__ic {
  background: linear-gradient(160deg, #2a5da8 0%, #1e4e92 50%, #163a6e 100%);
  box-shadow: 0 0 0 3px rgba(138,146,156,0.35), inset 0 1px 2px rgba(255,255,255,0.25);
}

/* Trust strip + section accents lean navy */
.bwp-trust-strip { background: var(--bwp-blue-pale); }

/* Primary button hover shadow to navy */
.bwp-btn--primary:hover { box-shadow: 0 6px 20px rgba(30,78,146,0.32); }

/* Hero eyebrow pill: chrome-tinted border */
.bwp-hero__eyebrow { border-color: rgba(200,206,214,0.5); background: rgba(255,255,255,0.08); }
.bwp-hero__eyebrow-dot { background: #8fb4e8; }

/* Verify strip: subtle silver top border for a metallic edge */
.bwp-verify-strip { border-top: 2px solid; border-image: var(--bwp-chrome) 1; }

/* Cart/secondary accents already pull from --bwp-blue (now royal). */

/* Hero headline in the label's uppercase Oswald treatment */
.bwp-hero__headline { text-transform: uppercase; font-weight: 700; }
.bwp-btn { text-transform: uppercase; }

/* =========================================================
   VETERAN-OWNED TOP STRIP (site-wide, subtle)
   ========================================================= */
.bwp-topbar {
  background: linear-gradient(180deg, #f4f6f9 0%, #e6eaf0 100%);
  border-bottom: 1px solid #d6dce4;
  font-size: 0.72rem;
  letter-spacing: 0.05em;
  position: relative;
  z-index: 210;
}
.bwp-topbar .bwp-container {
  display: flex;
  justify-content: center;
  align-items: center;
  min-height: 30px;
  padding-top: 4px;
  padding-bottom: 4px;
}
.bwp-topbar__veteran {
  display: inline-flex;
  align-items: center;
  gap: 8px;
  color: var(--bwp-text-mid);
  font-weight: 600;
  text-transform: uppercase;
}
.bwp-topbar__flag {
  display: block;
  border-radius: 1.5px;
  box-shadow: 0 0 0 1px rgba(0,0,0,0.06);
  flex-shrink: 0;
}
@media (max-width: 600px) {
  .bwp-topbar__veteran { font-size: 0.66rem; letter-spacing: 0.02em; text-align: center; }
}

/* =========================================================
   INNER PAGES POLISH — navy + chrome (shop / product / cart)
   ========================================================= */
/* Shop & inner page banners: deep navy gradient with a chrome base edge */
.bwp-shop-header,
.bwp-page-hero {
  /* Molecular peptide backdrop with a left-weighted dark scrim so the
     white title stays readable over the image. */
  background:
    linear-gradient(90deg, rgba(0,8,22,0.92) 0%, rgba(0,12,30,0.70) 42%, rgba(0,18,40,0.35) 100%),
    url('assets/images/page-banner.jpg') center center / cover no-repeat,
    #001428;
  border-bottom: 3px solid;
  border-image: var(--bwp-chrome) 1;
  position: relative;
}
.bwp-shop-header::after,
.bwp-page-hero::after {
  content: ""; position: absolute; inset: 0; pointer-events: none;
  background: radial-gradient(ellipse 70% 90% at 88% 50%, rgba(255,255,255,0.05) 0%, transparent 60%);
}
.bwp-shop-header h1, .bwp-page-hero h1 { font-family: var(--bwp-font-heading); text-transform: uppercase; letter-spacing: 0.01em; }
.bwp-shop-header .woocommerce-breadcrumb,
.bwp-page-hero .woocommerce-breadcrumb { color: rgba(255,255,255,0.7); }
.bwp-shop-header .woocommerce-breadcrumb a,
.bwp-page-hero .woocommerce-breadcrumb a { color: #9fc0ee; }

/* Section titles get a small chrome underline accent */
.bwp-section-title { position: relative; }

/* WooCommerce product price → royal blue, heading font */
.woocommerce ul.products li.product .price,
.woocommerce div.product p.price,
.woocommerce div.product span.price {
  color: var(--bwp-blue) !important;
  font-family: var(--bwp-font-heading) !important;
}

/* Sale flash → navy with chrome ring */
.woocommerce span.onsale {
  background: var(--bwp-blue-deeper) !important;
  color: #fff !important;
  box-shadow: 0 0 0 2px rgba(138,146,156,0.4);
  font-family: var(--bwp-font-heading) !important;
  text-transform: uppercase; letter-spacing: 0.04em;
}

/* Add-to-cart & primary WC buttons → royal, uppercase Oswald */
.woocommerce a.button, .woocommerce button.button,
.woocommerce input.button, .woocommerce #respond input#submit,
.woocommerce a.button.alt, .woocommerce button.button.alt {
  font-family: var(--bwp-font-heading) !important;
  text-transform: uppercase !important;
  letter-spacing: 0.04em !important;
}
.woocommerce a.button.alt, .woocommerce button.button.alt {
  background: var(--bwp-blue) !important;
}
.woocommerce a.button.alt:hover, .woocommerce button.button.alt:hover {
  background: var(--bwp-blue-deeper) !important;
}

/* Single product tabs active → royal underline */
.woocommerce div.product .woocommerce-tabs ul.tabs li.active a,
.woocommerce div.product .woocommerce-tabs ul.tabs li.active {
  border-top-color: var(--bwp-blue) !important;
  color: var(--bwp-blue) !important;
}

/* Cart totals & checkout: navy header card with chrome top edge */
.woocommerce .cart_totals,
.woocommerce-checkout #order_review {
  border: 1px solid var(--bwp-border);
  border-radius: var(--bwp-radius-lg);
  overflow: hidden;
  border-top: 3px solid;
  border-image: var(--bwp-chrome) 1;
}
.woocommerce .cart_totals h2,
.woocommerce-checkout #order_review_heading {
  background: var(--bwp-blue-deeper);
  color: #fff;
  font-family: var(--bwp-font-heading);
  text-transform: uppercase;
  letter-spacing: 0.03em;
  margin: 0 0 0 0 !important;
  padding: 16px 20px !important;
}
.woocommerce-checkout #order_review_heading { border-radius: var(--bwp-radius-lg) var(--bwp-radius-lg) 0 0; }
.woocommerce #payment { background: var(--bwp-blue-pale) !important; }

/* "Proceed to checkout" / place order → navy emphasis */
.woocommerce-cart .wc-proceed-to-checkout a.checkout-button,
.woocommerce #place_order {
  background: var(--bwp-blue-deeper) !important;
  font-size: 1.05rem !important;
}
.woocommerce-cart .wc-proceed-to-checkout a.checkout-button:hover,
.woocommerce #place_order:hover { background: var(--bwp-blue) !important; }

/* Quantity + coupon inputs align to navy focus */
.woocommerce .quantity .qty:focus,
.woocommerce form .form-row input.input-text:focus,
.woocommerce form .form-row textarea:focus {
  border-color: var(--bwp-blue) !important;
  box-shadow: 0 0 0 3px rgba(30,78,146,0.14) !important;
}

/* Shop sidebar heading → navy with chrome underline */
.bwp-shop-sidebar h3 {
  color: var(--bwp-blue-deeper) !important;
  border-bottom: 2px solid;
  border-image: var(--bwp-chrome) 1;
  padding-bottom: 8px;
}

/* =========================================================
   CERTIFICATE OF ANALYSIS (COA) BOX — single product page
   ========================================================= */
.bwp-coa {
  margin: 22px 0;
  border: 1px solid var(--bwp-border);
  border-radius: var(--bwp-radius-lg);
  overflow: hidden;
  background: var(--bwp-white);
  border-top: 3px solid;
  border-image: var(--bwp-chrome) 1;
}
.bwp-coa__head {
  display: flex;
  align-items: center;
  gap: 10px;
  background: var(--bwp-blue-deeper);
  color: #fff;
  font-family: var(--bwp-font-heading);
  font-weight: 700;
  text-transform: uppercase;
  letter-spacing: 0.04em;
  font-size: 1rem;
  padding: 13px 18px;
}
.bwp-coa__head svg { width: 20px; height: 20px; color: #8fb4e8; }
.bwp-coa__meta {
  list-style: none;
  margin: 0;
  padding: 8px 18px 4px;
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 6px 24px;
}
.bwp-coa__meta li {
  display: flex;
  justify-content: space-between;
  gap: 10px;
  font-size: 0.86rem;
  padding: 6px 0;
  border-bottom: 1px solid var(--bwp-blue-pale);
}
.bwp-coa__meta span { color: var(--bwp-text-light); }
.bwp-coa__meta strong { color: var(--bwp-text-dark); font-weight: 700; }
.bwp-coa__btn {
  display: flex;
  align-items: center;
  justify-content: center;
  gap: 9px;
  margin: 14px 18px 6px;
  padding: 13px 20px;
  background: var(--bwp-blue);
  color: #fff !important;
  font-family: var(--bwp-font-heading);
  font-weight: 700;
  text-transform: uppercase;
  letter-spacing: 0.04em;
  font-size: 0.92rem;
  border-radius: var(--bwp-radius);
  text-decoration: none;
  transition: background var(--bwp-transition), transform var(--bwp-transition);
}
.bwp-coa__btn:hover { background: var(--bwp-blue-deeper); transform: translateY(-1px); color:#fff; }
.bwp-coa__btn svg { width: 18px; height: 18px; }
.bwp-coa__note {
  text-align: center;
  font-size: 0.76rem;
  color: var(--bwp-text-light);
  padding: 0 18px 14px;
  margin: 0;
}
@media (max-width: 480px) { .bwp-coa__meta { grid-template-columns: 1fr; } }

/* =========================================================
   CONTACT PAGE INTRO
   ========================================================= */
.bwp-contact-intro { margin-bottom: 28px; }
.bwp-contact-intro h2 { font-family: var(--bwp-font-heading); font-size: 1.6rem; color: var(--bwp-text-dark); margin: 0 0 8px; }
.bwp-contact-intro p { color: var(--bwp-text-mid); line-height: 1.7; margin: 0; max-width: 640px; }

/* Contact details (email + mailing address) */
.bwp-contact-details {
  display: flex;
  flex-wrap: wrap;
  gap: 20px;
  margin-top: 32px;
}
.bwp-contact-detail {
  flex: 1 1 260px;
  background: var(--bwp-blue-pale);
  border: 1px solid var(--bwp-border);
  border-left: 4px solid var(--bwp-blue);
  border-radius: var(--bwp-radius);
  padding: 18px 22px;
}
.bwp-contact-detail__label {
  display: block;
  font-family: var(--bwp-font-heading);
  font-size: 0.72rem;
  font-weight: 700;
  letter-spacing: 0.12em;
  text-transform: uppercase;
  color: var(--bwp-blue);
  margin-bottom: 6px;
}
.bwp-contact-detail__value {
  display: block;
  font-style: normal;
  font-size: 1rem;
  line-height: 1.55;
  color: var(--bwp-text-dark);
  font-weight: 500;
}
a.bwp-contact-detail__value:hover { color: var(--bwp-blue); text-decoration: underline; }

/* Contact page building photos */
.bwp-contact-photos {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 20px;
  margin-top: 32px;
}
.bwp-contact-photo { margin: 0; }
.bwp-contact-photo img {
  width: 100%;
  height: 260px;
  object-fit: cover;
  border-radius: var(--bwp-radius-lg);
  box-shadow: var(--bwp-shadow);
  display: block;
}
.bwp-contact-photo figcaption {
  margin-top: 10px;
  font-size: 0.85rem;
  color: var(--bwp-text-light);
  text-align: center;
}
@media (max-width: 640px) {
  .bwp-contact-photos { grid-template-columns: 1fr; }
  .bwp-contact-photo img { height: 220px; }
}

/* =========================================================
   LAB RESULTS — COA GRID (square cards)
   ========================================================= */
.bwp-lab-page .bwp-page-content .bwp-container { max-width: 1180px; }

.bwp-coa-intro { margin: 0 0 4px; padding-bottom: 20px; border-bottom: 1px solid var(--bwp-blue-light); }
.bwp-coa-intro h2 { font-family: var(--bwp-font-heading); font-size: 1.7rem; color: var(--bwp-text-dark); margin: 0 0 8px; text-transform: uppercase; letter-spacing: 0.01em; }
.bwp-coa-intro p { color: var(--bwp-text-mid); line-height: 1.7; margin: 0; max-width: 760px; }

.bwp-coa-grid {
  display: grid;
  grid-template-columns: repeat(auto-fill, minmax(280px, 360px));
  justify-content: start;
  gap: 24px;
  margin: 34px 0 10px;
}
/* single latest-COA card shown in the homepage lab section */
.bwp-lab__coa { margin: 0; justify-content: center; }

/* card links to the PDF. min-height keeps a consistent size when content is
   short; the card grows with its content (long values, translated strings)
   instead of clipping, so nothing spills past the card and the button is
   never cut off. */
.bwp-coa-card {
  position: relative;
  display: flex; flex-direction: column;
  min-height: 300px;
  background: var(--bwp-white);
  border: 1px solid var(--bwp-blue-light);
  border-radius: var(--bwp-radius-lg);
  text-decoration: none;
  box-shadow: var(--bwp-shadow);
  transition: transform var(--bwp-transition), box-shadow var(--bwp-transition), border-color var(--bwp-transition);
}
.bwp-coa-card:hover { transform: translateY(-4px); box-shadow: var(--bwp-shadow-lg); border-color: var(--bwp-blue); }

/* image thumbnail on top */
.bwp-coa-card__media {
  position: relative; flex: 0 0 auto; height: 138px; padding: 10px;
  background: linear-gradient(160deg, var(--bwp-blue-pale) 0%, #dce6f3 100%);
  border-bottom: 1px solid var(--bwp-blue-light);
  border-radius: var(--bwp-radius-lg) var(--bwp-radius-lg) 0 0;
  overflow: hidden;
  display: flex; align-items: center; justify-content: center;
}
.bwp-coa-card__media img { max-width: 100%; max-height: 100%; object-fit: contain; display: block; }

/* When the media is a rendered certificate page rather than a vial photo, give
   it more height and crop to the TOP of the document. Fitting a whole portrait
   certificate into a short box makes the text unreadably small; the top is the
   part carrying the lab header, product name and purity. */
.bwp-coa-card__media--doc {
  height: 216px;
  padding: 0;
  align-items: flex-start;
  background: var(--bwp-white);
}
.bwp-coa-card__media--doc .bwp-coa-card__doc {
  width: 100%;
  max-width: none;
  height: 100%;
  max-height: none;
  object-fit: cover;
  object-position: top center;
}
.bwp-coa-card:hover .bwp-coa-card__media--doc .bwp-coa-card__doc { opacity: 0.94; }
.bwp-coa-card__ph { color: var(--bwp-blue); opacity: 0.45; }
.bwp-coa-card__ph svg { width: 46px; height: 46px; }
.bwp-coa-card__purity {
  position: absolute; top: 10px; right: 10px;
  max-width: calc(100% - 20px);
  display: inline-flex; align-items: center; gap: 4px;
  background: #159a4e; color: #fff;
  font-family: var(--bwp-font-heading); font-weight: 700; font-size: 0.78rem; letter-spacing: 0.02em;
  line-height: 1.2; white-space: normal; text-align: left;
  padding: 4px 10px 4px 8px; border-radius: 14px; box-shadow: 0 2px 8px rgba(18,110,55,0.32);
}
.bwp-coa-card__purity svg { width: 12px; height: 12px; flex: 0 0 auto; }

/* details fill the rest of the square */
.bwp-coa-card__body { flex: 1 1 auto; display: flex; flex-direction: column; padding: 12px 16px 14px; }
/* higher specificity so generic .bwp-page-content h3/ul/li rules can't inflate the card */
.bwp-coa-grid .bwp-coa-card__name {
  font-family: var(--bwp-font-heading); font-size: 1.02rem; line-height: 1.15;
  color: var(--bwp-text-dark); margin: 0 0 8px; padding: 0;
}
.bwp-coa-grid .bwp-coa-card__meta { list-style: none; margin: 0; padding: 0; }
.bwp-coa-grid .bwp-coa-card__meta li {
  display: flex; justify-content: space-between; align-items: baseline; gap: 12px;
  font-size: 0.82rem; margin: 0; padding: 5px 0; list-style: none;
  border-bottom: 1px solid var(--bwp-off-white); color: var(--bwp-text-dark);
}
.bwp-coa-grid .bwp-coa-card__meta li:last-child { border-bottom: 0; }
.bwp-coa-grid .bwp-coa-card__meta li span { color: var(--bwp-text-light); font-weight: 600; white-space: nowrap; }
.bwp-coa-grid .bwp-coa-card__meta li b { color: var(--bwp-text-dark); font-weight: 600; text-align: right; }

/* View COA button pinned to the bottom */
.bwp-coa-card__btn {
  margin-top: auto;
  display: inline-flex; align-items: center; justify-content: center; gap: 7px;
  background: var(--bwp-blue); color: #fff;
  font-family: var(--bwp-font-heading); font-weight: 700; font-size: 0.82rem;
  letter-spacing: 0.03em; text-transform: uppercase;
  padding: 10px 12px; border-radius: var(--bwp-radius);
  transition: background var(--bwp-transition);
}
.bwp-coa-card__btn svg { width: 15px; height: 15px; }
.bwp-coa-card:hover .bwp-coa-card__btn { background: var(--bwp-blue-dark); }

.bwp-coa-empty {
  text-align: center; padding: 48px 20px;
  background: var(--bwp-blue-pale);
  border: 1px dashed var(--bwp-blue-light);
  border-radius: var(--bwp-radius-lg);
  color: var(--bwp-text-mid); margin: 30px 0;
}

/* =========================================================
   CUSTOMER DISCOUNT TIERS (per-account % off)
   ========================================================= */
/* Struck-through original price + green discounted price */
.woocommerce ins.bwp-disc-price,
.woocommerce ins.bwp-disc-price .amount {
  text-decoration: none;
  color: var(--bwp-success);
  font-weight: 800;
}
.woocommerce del,
.woocommerce del .amount {
  color: var(--bwp-text-light);
  opacity: 0.85;
  font-weight: 500;
}
.woocommerce .price del { margin-right: 6px; }

/* Slim site-wide banner shown to a logged-in discounted customer */
.bwp-discount-banner {
  background: var(--bwp-success);
  color: #fff;
  text-align: center;
  font-family: var(--bwp-font-heading);
  font-size: 0.82rem;
  font-weight: 600;
  letter-spacing: 0.04em;
  padding: 7px 16px;
}

/* VIP Founder banner — green, with a premium gold-star treatment */
.bwp-discount-banner--founder {
  background: linear-gradient(90deg, #0c7a3c 0%, #159a4e 50%, #0c7a3c 100%);
  text-transform: uppercase;
  letter-spacing: 0.09em;
  font-weight: 700;
  border-bottom: 2px solid #e8c24a;
}

/* My Account dashboard note */
.bwp-account-discount-note {
  background: var(--bwp-blue-pale);
  border-left: 4px solid var(--bwp-success);
  border-radius: var(--bwp-radius);
  padding: 12px 16px;
  font-weight: 600;
  color: var(--bwp-text-dark);
  margin-bottom: 20px;
}
.bwp-account-discount-note--founder {
  border-left-color: #e8c24a;
  background: #f3f8f4;
}

/* =========================================================
   LAUNCH COUNTDOWN BAR (all pages, all visitors)
   ========================================================= */
.bwp-countdown {
  background: linear-gradient(90deg, var(--bwp-blue-deeper) 0%, var(--bwp-blue) 60%, #245699 100%);
  color: #fff;
  display: flex;
  align-items: center;
  justify-content: center;
  gap: 16px;
  flex-wrap: wrap;
  padding: 9px 16px;
  font-family: var(--bwp-font-heading);
  letter-spacing: 0.03em;
}
.bwp-countdown__label {
  font-weight: 600;
  font-size: 0.85rem;
  text-transform: uppercase;
}
.bwp-countdown__clock { display: inline-flex; gap: 8px; }
.bwp-countdown__seg {
  display: inline-flex;
  align-items: baseline;
  gap: 3px;
  background: rgba(255,255,255,0.14);
  border: 1px solid rgba(255,255,255,0.18);
  border-radius: 6px;
  padding: 3px 9px;
}
.bwp-countdown__seg b {
  font-size: 1.02rem;
  font-weight: 800;
  font-variant-numeric: tabular-nums;
  line-height: 1;
}
.bwp-countdown__seg i {
  font-style: normal;
  font-size: 0.62rem;
  text-transform: uppercase;
  opacity: 0.82;
  letter-spacing: 0.06em;
}
@media (max-width: 560px) {
  .bwp-countdown { gap: 10px; padding: 7px 10px; }
  .bwp-countdown__label { font-size: 0.72rem; }
  .bwp-countdown__clock { gap: 5px; }
  .bwp-countdown__seg { padding: 2px 6px; gap: 2px; }
  .bwp-countdown__seg b { font-size: 0.9rem; }
}

/* =========================================================
   FAQ — "UNDERSTANDING PEPTIDES" EXPLAINER
   ========================================================= */
.bwp-explainer { margin-bottom: 8px; }
.bwp-faq-block { margin: 0 0 44px; }
.bwp-faq-subhead {
  font-size: 1.35rem !important;
  color: var(--bwp-blue-deeper) !important;
  margin: 0 0 16px !important;
  padding-bottom: 10px;
  border-bottom: 2px solid var(--bwp-blue-light);
}

/* Intro hero: text + image */
.bwp-faq-hero {
  display: grid;
  grid-template-columns: 1.15fr 0.85fr;
  gap: 34px;
  align-items: center;
}
.bwp-faq-hero__text h2 { margin-top: 0 !important; }
.bwp-faq-hero__img { margin: 0; }
.bwp-faq-hero__img img {
  width: 100%;
  border-radius: var(--bwp-radius-lg);
  box-shadow: var(--bwp-shadow);
  display: block;
}
.bwp-faq-hero--reverse .bwp-faq-hero__text { order: 2; }
.bwp-faq-hero--reverse .bwp-faq-hero__img { order: 1; }

/* Peptides vs proteins */
.bwp-faq-compare {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 20px;
}
.bwp-faq-compare__col {
  background: var(--bwp-off-white);
  border: 1px solid var(--bwp-border);
  border-radius: var(--bwp-radius-lg);
  padding: 22px 24px;
}
.bwp-faq-compare__col h4 {
  margin: 0 0 12px;
  font-size: 1.1rem;
  color: var(--bwp-blue-deeper);
  text-transform: uppercase;
  letter-spacing: 0.05em;
}
.bwp-faq-compare__col--primary {
  background: linear-gradient(180deg, #3f74c0 0%, #2a5da8 100%);
  border-color: #2a5da8;
}
.bwp-explainer .bwp-faq-compare__col--primary h4 { color: #fff; }
.bwp-faq-compare__col ul { margin: 0 !important; list-style: none !important; }
.bwp-faq-compare__col li {
  position: relative;
  padding: 7px 0 7px 24px;
  color: var(--bwp-text-mid);
  border-bottom: 1px solid rgba(0,0,0,0.06);
}
.bwp-faq-compare__col li:last-child { border-bottom: 0; }
.bwp-faq-compare__col li::before {
  content: '';
  position: absolute; left: 2px; top: 14px;
  width: 8px; height: 8px; border-radius: 50%;
  background: var(--bwp-blue);
}
/* .bwp-explainer prefix raises specificity above the generic
   .bwp-page-content ul li colour so the white text isn't overridden */
.bwp-explainer .bwp-faq-compare__col--primary li {
  color: #ffffff;
  border-bottom-color: rgba(255,255,255,0.28);
}
.bwp-faq-compare__col--primary li::before { background: #dce8fb; }
.bwp-faq-compare__col--primary li::before { background: #8fb4e8; }

/* Benefit chips */
.bwp-faq-chips { display: flex; flex-wrap: wrap; gap: 10px; margin-top: 14px; }
.bwp-faq-chip {
  background: var(--bwp-blue-pale);
  color: var(--bwp-blue-deeper);
  border: 1px solid var(--bwp-blue-light);
  border-radius: 30px;
  padding: 8px 18px;
  font-weight: 600;
  font-size: 0.9rem;
}

/* Step flows */
.bwp-faq-steps {
  display: grid;
  grid-template-columns: repeat(4, 1fr);
  gap: 16px;
  margin-top: 10px;
}
.bwp-faq-steps--five { grid-template-columns: repeat(5, 1fr); }
.bwp-faq-step {
  background: var(--bwp-white);
  border: 1px solid var(--bwp-border);
  border-radius: var(--bwp-radius-lg);
  padding: 20px 16px;
  text-align: center;
}
.bwp-faq-step__n {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  width: 38px; height: 38px;
  border-radius: 50%;
  background: linear-gradient(135deg, var(--bwp-blue), var(--bwp-blue-deeper));
  color: #fff;
  font-family: var(--bwp-font-heading);
  font-weight: 800;
  font-size: 1.05rem;
  margin-bottom: 10px;
}
.bwp-faq-step p { margin: 0 !important; font-size: 0.9rem; color: var(--bwp-text-mid); line-height: 1.5 !important; }
.bwp-faq-step--labeled strong {
  display: block;
  color: var(--bwp-blue-deeper);
  font-family: var(--bwp-font-heading);
  font-size: 0.92rem;
  margin-bottom: 6px;
  text-transform: uppercase;
  letter-spacing: 0.03em;
}

/* Amino acids */
.bwp-faq-amino__img { margin: 18px 0; }
.bwp-faq-amino__img img { width: 100%; border-radius: var(--bwp-radius-lg); display: block; }
.bwp-faq-amino__tag {
  text-align: center;
  font-family: var(--bwp-font-heading) !important;
  font-size: 1.15rem !important;
  font-weight: 700;
  color: var(--bwp-blue) !important;
  margin: 0 !important;
}

.bwp-faq-rule { border: 0; border-top: 2px solid var(--bwp-border); margin: 44px 0; }

/* Cards (RUO supports + quality) */
.bwp-faq-cards {
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  gap: 18px;
  margin-top: 10px;
}
.bwp-faq-cards--two { grid-template-columns: repeat(2, 1fr); }
.bwp-faq-card {
  background: var(--bwp-white);
  border: 1px solid var(--bwp-border);
  border-top: 3px solid var(--bwp-blue);
  border-radius: var(--bwp-radius-lg);
  padding: 20px 22px;
  box-shadow: var(--bwp-shadow);
}
.bwp-faq-card h4 {
  margin: 0 0 8px;
  font-size: 1.02rem;
  color: var(--bwp-blue-deeper);
}
.bwp-faq-card p { margin: 0 !important; font-size: 0.9rem; color: var(--bwp-text-mid); line-height: 1.6 !important; }
/* Quality & Integrity cards. Brand blue, matching every other FAQ card —
   the success green is reserved for success states (discounts, VIP, add-to-cart
   confirmation) and read as unrelated here. */
.bwp-faq-card--accent { border-top-color: var(--bwp-blue); }

.bwp-faq-disclaimer {
  background: var(--bwp-blue-pale);
  border-radius: var(--bwp-radius);
  padding: 14px 18px;
  font-size: 0.85rem !important;
  color: var(--bwp-text-mid) !important;
  text-align: center;
}

/* Responsive */
@media (max-width: 860px) {
  .bwp-faq-hero { grid-template-columns: 1fr; gap: 20px; }
  .bwp-faq-hero--reverse .bwp-faq-hero__text { order: 2; }
  .bwp-faq-hero--reverse .bwp-faq-hero__img { order: 1; }
  .bwp-faq-hero__img { max-width: 420px; }
  .bwp-faq-steps, .bwp-faq-steps--five { grid-template-columns: 1fr 1fr; }
  .bwp-faq-cards, .bwp-faq-cards--two { grid-template-columns: 1fr 1fr; }
}
@media (max-width: 520px) {
  .bwp-faq-compare { grid-template-columns: 1fr; }
  .bwp-faq-steps, .bwp-faq-steps--five { grid-template-columns: 1fr; }
  .bwp-faq-cards, .bwp-faq-cards--two { grid-template-columns: 1fr; }
}

/* FAQ shipping-speed map */
.bwp-faq-shipmap { margin: 8px 0 0; text-align: center; }
.bwp-faq-shipmap img {
  width: 100%;
  max-width: 760px;
  height: auto;
  border-radius: var(--bwp-radius-lg);
  border: 1px solid var(--bwp-border);
  box-shadow: var(--bwp-shadow);
  display: block;
  margin: 0 auto;
}
.bwp-faq-shipmap figcaption {
  margin-top: 12px;
  font-size: 0.85rem;
  color: var(--bwp-text-light);
  font-style: italic;
}

/* =========================================================
   SEARCH — mobile drawer box + results page
   ========================================================= */
.bwp-mobile-search {
  display: flex;
  align-items: stretch;
  margin: 0 0 20px;
  border: 1px solid var(--bwp-border);
  border-radius: var(--bwp-radius);
  overflow: hidden;
}
.bwp-mobile-search input[type="search"] {
  flex: 1 1 auto;
  min-width: 0;
  border: 0;
  padding: 12px 14px;
  font-size: 0.95rem;
  font-family: var(--bwp-font);
  color: var(--bwp-text-dark);
  outline: none;
  background: var(--bwp-off-white);
}
.bwp-mobile-search button {
  flex: 0 0 auto;
  border: 0;
  background: var(--bwp-blue);
  color: #fff;
  padding: 0 16px;
  display: flex;
  align-items: center;
  cursor: pointer;
}
.bwp-mobile-search button:hover { background: var(--bwp-blue-dark); }

/* Search results page */
.bwp-search-count {
  font-size: 0.9rem;
  color: var(--bwp-text-light);
  margin: 0 0 22px;
}
.bwp-search-empty {
  text-align: center;
  padding: 40px 0 20px;
  max-width: 560px;
  margin: 0 auto;
}
.bwp-search-empty h2 { font-size: 1.4rem; color: var(--bwp-blue-deeper); margin-bottom: 10px; }
.bwp-search-empty p { color: var(--bwp-text-mid); line-height: 1.7; }
.bwp-search-empty__form {
  display: flex;
  gap: 8px;
  max-width: 420px;
  margin: 22px auto 0;
}
.bwp-search-empty__form input[type="search"] {
  flex: 1 1 auto;
  min-width: 0;
  border: 1px solid var(--bwp-border);
  border-radius: var(--bwp-radius);
  padding: 11px 14px;
  font-size: 0.95rem;
  font-family: var(--bwp-font);
}
.bwp-search-empty__form button { flex: 0 0 auto; white-space: nowrap; }

/* =========================================================
   MY ACCOUNT — Register (left) beside Login (right)
   Clean two-column layout; stacks on phones with Register on top.
   ========================================================= */
#customer_login {
  display: flex !important;
  flex-wrap: wrap;
  gap: 30px;
  align-items: flex-start;
  width: 100%;
}
#customer_login::before,
#customer_login::after { display: none !important; content: none !important; }
#customer_login > div {
  float: none !important;
  margin: 0 !important;
  width: 100% !important;
  box-sizing: border-box;
}
/* Register column (u-column2 / col-2) first (left); Login (col-1) second (right) */
#customer_login > .col-2,
#customer_login > .u-column2 { order: 1; }
#customer_login > .col-1,
#customer_login > .u-column1 { order: 2; }
@media (min-width: 720px) {
  #customer_login > div { width: calc(50% - 15px) !important; }
}

/* =========================================================
   PAGE HERO — keep title/breadcrumb above the backdrop glow
   ========================================================= */
.bwp-shop-header,
.bwp-page-hero { overflow: hidden; }
.bwp-shop-header > .bwp-container,
.bwp-page-hero > .bwp-container { position: relative; z-index: 2; }

/* =========================================================
   WOOCOMMERCE BLOCK CHECKOUT — FIELD FIXES
   The block checkout sometimes fails to "float" the Country/Region
   and State combobox labels, so the label prints on top of the
   selected value. Pin those labels to the small top position and
   pad the value clear of them. Also tidy the billing checkbox so
   the box lines up with its label and the checkmark stays centered.
   ========================================================= */
.wc-block-components-select .wc-block-components-select__label,
.wc-block-components-combobox label,
.wc-block-components-combobox-control label,
.wc-block-components-country-input label,
.wc-block-components-state-input label,
.wc-block-components-address-form__country label,
.wc-block-components-address-form__state label {
  position: absolute !important;
  top: 0.5em !important;
  bottom: auto !important;
  left: 0.9em !important;
  transform: none !important;
  font-size: 0.72em !important;
  font-weight: 400 !important;
  line-height: 1.1 !important;
  color: var(--bwp-text-light, #7488a3) !important;
  background: transparent !important;
  margin: 0 !important;
  padding: 0 !important;
  pointer-events: none;
  z-index: 2;
}
.wc-block-components-select .wc-block-components-select__select,
.wc-block-components-combobox .wc-block-components-combobox-control input,
.wc-block-components-combobox select,
.wc-block-components-country-input select,
.wc-block-components-country-input input,
.wc-block-components-state-input select,
.wc-block-components-state-input input {
  padding-top: 1.15em !important;
  padding-bottom: 0.25em !important;
}

/* Checkout checkboxes ("Use same address for billing", terms, etc.) */
.wc-block-components-checkbox {
  display: flex !important;
  align-items: center;
  gap: 0.9em;
}
.wc-block-components-checkbox .wc-block-components-checkbox__input,
.wc-block-components-checkbox input[type="checkbox"] {
  width: 18px;
  height: 18px;
  min-width: 18px;
  margin: 0;
  flex: 0 0 auto;
}
.wc-block-components-checkbox .wc-block-components-checkbox__mark {
  top: 0; left: 0; width: 100%; height: 100%;
}
.wc-block-components-checkbox .wc-block-components-checkbox__label {
  margin: 0;
  line-height: 1.35;
}

/* ══════════════════════════════════════════════════════════════════════════
   CHECKOUT ADD-ON REMINDER ("Do you need reconstitution solution?")
   Modal shown on the cart (on Proceed to checkout) and/or the checkout page.
   ══════════════════════════════════════════════════════════════════════════ */

.bwp-upsell {
  position: fixed;
  inset: 0;
  z-index: 99990;
  display: flex;
  align-items: center;
  justify-content: center;
  padding: 20px;
}

.bwp-upsell[hidden] { display: none; }

.bwp-upsell__backdrop {
  position: absolute;
  inset: 0;
  background: rgba(0, 12, 30, 0.72);
  backdrop-filter: blur(3px);
  -webkit-backdrop-filter: blur(3px);
  opacity: 0;
  transition: opacity 0.26s ease;
}

.bwp-upsell__card {
  position: relative;
  width: 100%;
  max-width: 560px;
  max-height: calc(100vh - 40px);
  max-height: calc(100dvh - 40px); /* accounts for mobile browser chrome */
  overflow-y: auto;
  -webkit-overflow-scrolling: touch;
  background: var(--bwp-white);
  border-radius: var(--bwp-radius-lg);
  box-shadow: var(--bwp-shadow-lg);
  /* No border-image chrome bar here: border-image ignores border-radius,
     which squares off the top corners and reads as a stray hairline. */
  opacity: 0;
  transform: translateY(18px) scale(0.98);
  transition: opacity 0.26s ease, transform 0.26s ease;
}

.bwp-upsell--open .bwp-upsell__backdrop { opacity: 1; }
.bwp-upsell--open .bwp-upsell__card {
  opacity: 1;
  transform: translateY(0) scale(1);
}

/* ── Header ─────────────────────────────────────────────────────────────── */
.bwp-upsell__head {
  padding: 28px 30px 20px;
  text-align: center;
  background: linear-gradient(180deg, var(--bwp-blue-pale) 0%, var(--bwp-white) 100%);
  border-radius: var(--bwp-radius-lg) var(--bwp-radius-lg) 0 0;
}

.bwp-upsell__icon {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  width: 52px;
  height: 52px;
  margin-bottom: 12px;
  border-radius: 50%;
  background: var(--bwp-blue-deeper);
  color: var(--bwp-blue-light);
}

.bwp-upsell__title {
  margin: 0 0 8px;
  font-family: var(--bwp-font-heading);
  font-size: 1.42rem;
  font-weight: 600;
  line-height: 1.25;
  letter-spacing: 0.01em;
  color: var(--bwp-text-dark);
}

.bwp-upsell__msg {
  margin: 0;
  font-size: 0.92rem;
  line-height: 1.55;
  color: var(--bwp-text-mid);
}

.bwp-upsell__close {
  position: absolute;
  top: 10px;
  right: 12px;
  z-index: 2;
  width: 34px;
  height: 34px;
  padding: 0;
  border: 0;
  border-radius: 50%;
  background: transparent;
  font-size: 1.7rem;
  line-height: 1;
  color: var(--bwp-text-light);
  cursor: pointer;
  transition: var(--bwp-transition);
}
.bwp-upsell__close:hover {
  background: rgba(10, 43, 82, 0.08);
  color: var(--bwp-text-dark);
}

/* ── Product rows ───────────────────────────────────────────────────────── */
.bwp-upsell__items {
  margin: 0;
  padding: 4px 22px 0;
  list-style: none;
}

.bwp-upsell__item {
  display: flex;
  align-items: center;
  gap: 14px;
  padding: 14px 8px;
  border-bottom: 1px solid var(--bwp-border);
}
.bwp-upsell__item:last-child { border-bottom: 0; }

.bwp-upsell__thumb {
  flex: 0 0 62px;
  width: 62px;
  height: 62px;
  border-radius: var(--bwp-radius);
  overflow: hidden;
  background: var(--bwp-off-white);
  border: 1px solid var(--bwp-border);
}
.bwp-upsell__thumb img {
  display: block;
  width: 100%;
  height: 100%;
  object-fit: cover;
}

.bwp-upsell__info {
  flex: 1 1 auto;
  display: flex;
  flex-direction: column;
  gap: 2px;
  min-width: 0;
}

.bwp-upsell__name {
  font-weight: 600;
  font-size: 0.95rem;
  line-height: 1.3;
  color: var(--bwp-text-dark);
  text-decoration: none;
}
.bwp-upsell__name:hover { color: var(--bwp-blue); }

.bwp-upsell__excerpt {
  font-size: 0.78rem;
  line-height: 1.4;
  color: var(--bwp-text-light);
}

.bwp-upsell__price {
  font-size: 0.9rem;
  font-weight: 700;
  color: var(--bwp-blue);
}
.bwp-upsell__price del { font-weight: 400; opacity: 0.6; }

.bwp-upsell__controls {
  flex: 0 0 auto;
  display: flex;
  align-items: center;
  gap: 8px;
}

.bwp-upsell__qty {
  width: 58px;
  padding: 8px 6px;
  border: 1px solid var(--bwp-border);
  border-radius: var(--bwp-radius);
  background: var(--bwp-white);
  font-size: 0.88rem;
  color: var(--bwp-text-dark);
}

.bwp-upsell__add {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  min-width: 78px;
  padding: 9px 16px;
  border-radius: var(--bwp-radius);
  background: var(--bwp-blue);
  color: var(--bwp-white) !important;
  font-size: 0.85rem;
  font-weight: 600;
  letter-spacing: 0.02em;
  text-decoration: none;
  white-space: nowrap;
  cursor: pointer;
  transition: var(--bwp-transition);
}
.bwp-upsell__add:hover { background: var(--bwp-blue-dark); }
.bwp-upsell__add.is-busy { opacity: 0.65; cursor: default; }
.bwp-upsell__add.is-added { background: var(--bwp-success); }

/* ── Footer ─────────────────────────────────────────────────────────────── */
.bwp-upsell__error {
  margin: 6px 30px 0;
  padding: 9px 12px;
  border-radius: var(--bwp-radius);
  background: #fdecec;
  color: #a12525;
  font-size: 0.82rem;
  line-height: 1.45;
}
.bwp-upsell__error[hidden] { display: none; }

.bwp-upsell__actions {
  padding: 16px 30px 4px;
  text-align: center;
}

.bwp-upsell__continue {
  display: inline-block;
  padding: 11px 26px;
  border: 1px solid var(--bwp-border);
  border-radius: var(--bwp-radius);
  background: var(--bwp-white);
  font-family: var(--bwp-font);
  font-size: 0.88rem;
  font-weight: 600;
  color: var(--bwp-text-mid);
  cursor: pointer;
  transition: var(--bwp-transition);
}
.bwp-upsell__continue:hover {
  background: var(--bwp-off-white);
  border-color: var(--bwp-silver-dark);
  color: var(--bwp-text-dark);
}

.bwp-upsell__legal {
  margin: 14px 0 0;
  padding: 12px 30px 20px;
  font-size: 0.72rem;
  line-height: 1.5;
  text-align: center;
  color: var(--bwp-text-light);
}

/* ── Mobile ─────────────────────────────────────────────────────────────── */
@media (max-width: 560px) {
  .bwp-upsell { padding: 12px; }

  .bwp-upsell__card {
    max-height: calc(100vh - 24px);
    max-height: calc(100dvh - 24px);
  }

  .bwp-upsell__head { padding: 24px 20px 16px; }
  .bwp-upsell__title { font-size: 1.22rem; }
  .bwp-upsell__msg { font-size: 0.86rem; }

  .bwp-upsell__items { padding: 4px 14px 0; }

  .bwp-upsell__item {
    flex-wrap: wrap;
    gap: 10px 12px;
    padding: 14px 4px;
  }

  .bwp-upsell__thumb { flex-basis: 52px; width: 52px; height: 52px; }

  .bwp-upsell__info { flex: 1 1 140px; }

  .bwp-upsell__controls {
    flex: 1 1 100%;
    justify-content: flex-end;
  }
  .bwp-upsell__add { flex: 1 1 auto; }

  .bwp-upsell__error   { margin-inline: 20px; }
  .bwp-upsell__actions { padding-inline: 20px; }
  .bwp-upsell__legal   { padding-inline: 20px; }
}

@media (prefers-reduced-motion: reduce) {
  .bwp-upsell__backdrop,
  .bwp-upsell__card { transition: none; }
}

/* =========================================================
   CHECKOUT — coupon field always visible
   WooCommerce hides the form behind a "Click here" toggle and
   checkout.js additionally calls .hide() on it, so these rules
   need !important to beat the inline style it sets.
   ========================================================= */
.woocommerce-form-coupon-toggle {
  display: none !important;
}
.bwp-coupon-heading {
  font-size: 1.05rem;
  font-weight: 700;
  color: var(--bwp-blue-deeper);
  margin: 0 0 10px;
}
form.checkout_coupon.woocommerce-form-coupon {
  display: block !important;
  border: 1px solid var(--bwp-border);
  border-radius: var(--bwp-radius);
  padding: 18px 20px;
  margin: 0 0 30px;
  background: #fff;
}
form.checkout_coupon.woocommerce-form-coupon p:first-of-type {
  margin-top: 0;
  color: var(--bwp-text-mid);
  font-size: 0.92rem;
}
form.checkout_coupon.woocommerce-form-coupon .form-row {
  padding: 0;
  margin: 0 0 10px;
}
@media (min-width: 600px) {
  form.checkout_coupon.woocommerce-form-coupon .form-row-first,
  form.checkout_coupon.woocommerce-form-coupon .form-row-last {
    width: auto;
    float: none;
    display: inline-block;
    vertical-align: top;
    margin-right: 10px;
  }
  form.checkout_coupon.woocommerce-form-coupon .form-row-first { min-width: 280px; }
}
form.checkout_coupon.woocommerce-form-coupon .input-text {
  width: 100%;
  padding: 12px 14px;
}
