/*
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.47.1
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
   ========================================================= */
.bwp-hero {
  background: linear-gradient(135deg, var(--bwp-blue-deeper) 0%, var(--bwp-blue) 55%, #245699 100%);
  position: relative;
  overflow: hidden;
  min-height: 580px;
  display: flex;
  align-items: center;
}

.bwp-hero::before {
  content: '';
  position: absolute;
  inset: 0;
  background:
    radial-gradient(ellipse 60% 80% at 85% 50%, rgba(255,255,255,0.07) 0%, transparent 60%),
    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.04'%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__inner {
  position: relative;
  z-index: 2;
  display: grid;
  /* minmax(0,…) rather than plain 1fr: a wider vial image would otherwise
     inflate its own column and push the headline from 3 lines to 5. */
  grid-template-columns: minmax(0, 1fr) minmax(0, 1fr);
  gap: 60px;
  align-items: center;
  padding: 80px 0;
}

.bwp-hero__content { color: var(--bwp-white); }

.bwp-hero__eyebrow {
  display: inline-flex;
  align-items: flex-start;
  gap: 9px;
  background: rgba(255,255,255,0.12);
  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.38);
  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, 4vw, 3.2rem);
  font-weight: 900;
  color: var(--bwp-white);
  line-height: 1.1;
  margin-bottom: 20px;
  letter-spacing: -0.02em;
}

.bwp-hero__headline em {
  font-style: normal;
  color: #8fb4e8;
}

.bwp-hero__subtext {
  font-size: 1.05rem;
  color: rgba(255,255,255,0.82);
  margin-bottom: 36px;
  line-height: 1.75;
  max-width: 480px;
}

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

.bwp-hero__trust {
  display: flex;
  gap: 20px;
  margin-top: 40px;
  flex-wrap: wrap;
}

.bwp-hero__trust-item {
  display: flex;
  align-items: center;
  gap: 8px;
  font-size: 0.82rem;
  color: rgba(255,255,255,0.80);
  font-weight: 500;
}

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

/* ── Hero visual: vial lineup that slides in from the right ── */
.bwp-hero__visual {
  display: flex;
  justify-content: flex-end;
  align-items: flex-end;
  align-self: stretch;
}

/* The lineup and its reflection travel together, so the animation lives on the
   wrapper rather than the image itself. */
.bwp-hero__vialwrap {
  /* Sized against the two things that actually bound it: the headline's widest
     line on the left and the page edge on the right. flex-shrink is disabled
     because the flex default was clamping it back to the column width. */
  width: min(630px, 50vw);
  flex-shrink: 0;
  transform: translateX(130%);
  opacity: 0;
  animation: bwpSlideInRight 1.15s cubic-bezier(0.22, 0.61, 0.36, 1) 0.5s forwards;
}

.bwp-hero__vials {
  width: 100%;
  height: auto;
  display: block;
}

/* Floor reflection: mirrored, dimmed, and faded out downward so it dissolves
   instead of ending on a hard line. */
.bwp-hero__reflect {
  width: 100%;
  height: auto;
  display: block;
  transform: scaleY(-1);
  opacity: 0.22;
  margin-top: -1px;
  /* Only the first sliver survives, so you read a contact reflection rather
     than a legible upside-down copy of the labels. Painted before the flip,
     hence "to bottom". */
  -webkit-mask-image: linear-gradient(to bottom, transparent 0%, transparent 74%, rgba(0,0,0,0.45) 92%, rgba(0,0,0,0.9) 100%);
          mask-image: linear-gradient(to bottom, transparent 0%, transparent 74%, rgba(0,0,0,0.45) 92%, rgba(0,0,0,0.9) 100%);
  /* The masked-away portion still occupies layout space; percentage margins
     resolve against width, and the artwork is 615/1096 = 0.561 as tall as it
     is wide, so 0.74 x 0.561 = 41% reclaims exactly the invisible part. */
  margin-bottom: -41%;
  pointer-events: none;
}

@media (min-width: 1200px) {
  .bwp-hero__vialwrap { margin-right: -20px; }
}

@keyframes bwpSlideInRight {
  0%   { transform: translateX(130%); opacity: 0; }
  55%  { opacity: 1; }
  100% { transform: translateX(0);    opacity: 1; }
}

@media (prefers-reduced-motion: reduce) {
  .bwp-hero__vialwrap { animation: none; opacity: 1; transform: none; }
}

/* =========================================================
   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-hero__inner { grid-template-columns: 1fr; gap: 24px; text-align: center; }
  .bwp-hero__content { 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; }
  .bwp-hero__visual { justify-content: center; }
  .bwp-hero__vialwrap { width: min(460px, 88%); }
  .bwp-shop-wrap { grid-template-columns: 1fr; }
  .bwp-shop-sidebar { position: static; }
}

@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); }

/* Richer deep-navy hero gradient with a subtle royal sweep */
.bwp-hero {
  background: linear-gradient(135deg, #001428 0%, #001e3f 38%, #0a2f5e 70%, #1e4e92 100%);
}

/* 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;
}
