/*
Theme Name: Bluesky Peptides
Theme URI: https://www.blueskypeptide.com/
Author: Blue Sky Peptides Dev Team
Author URI: https://www.blueskypeptide.com/
Description: Custom WooCommerce theme recreating the Blue Sky Peptides storefront. Brand palette is driven by CSS variables and key content (promo bar, footer, colors) is editable in the WordPress Customizer.
Version: 1.1.0
Requires at least: 6.0
Tested up to: 6.5
Requires PHP: 7.4
License: GNU General Public License v2 or later
License URI: http://www.gnu.org/licenses/gpl-2.0.html
Text Domain: bluesky-peptides
WC requires at least: 7.0
WC tested up to: 8.7
*/

/* ==========================================================================
   1. DESIGN TOKENS
   ========================================================================== */
:root {
  --bsp-blue-light: #5aaff0;
  --bsp-blue:       #3589c9;
  --bsp-blue-mid:   #2f80c8;
  --bsp-blue-dark:  #1f6fb2;
  --bsp-navy:       #16314f;
  --bsp-navy-deep:  #0a263c;
  --bsp-orange:     #ef8e01;
  --bsp-orange-dk:  #d97f00;
  --bsp-gold:       #f3c927;
  --bsp-promo-bg:   #ff5f1f;
  --bsp-grad-blue:      linear-gradient(180deg, #5aaff0 0%, #3589c9 100%);
  --bsp-grad-cta:       linear-gradient(180deg, #fe5507 0%, #fe3300 100%);
  --bsp-grad-cta-hover: linear-gradient(180deg, #fe3300 0%, #e02b00 100%);

  --bsp-ink:        #514842;   /* brownish body text used in info copy */
  --bsp-ink-2:      #424242;
  --bsp-muted:      #7d7d7d;
  --bsp-line:       #d7dde3;
  --bsp-bg:         #ffffff;
  --bsp-bg-soft:    #f5f6f8;
  --bsp-bg-tint:    #e9f4fb;   /* sidebar widget body */
  --bsp-bg-lav:     #f4f6fb;   /* info section box */
  --bsp-header-grad-a: #eaf6fd;
  --bsp-header-grad-b: #c9e7fa;

  --bsp-primary:        var(--bsp-blue-mid);
  --bsp-primary-hover:  var(--bsp-blue-dark);
  --bsp-accent:         var(--bsp-orange);
  --bsp-footer-bg:      #2f6fb0;

  --bsp-font: "Open Sans", "Segoe UI", "Helvetica Neue", Helvetica, Arial, sans-serif;
  --bsp-radius: 4px;
  --bsp-shadow: 0 2px 10px rgba(10, 38, 60, .08);
  --bsp-shadow-lg: 0 8px 28px rgba(10, 38, 60, .14);
  --bsp-container: 1200px;
}

/* ==========================================================================
   2. BASE
   ========================================================================== */
*, *::before, *::after { box-sizing: border-box; }
body { margin: 0; font-family: var(--bsp-font); font-size: 15px; line-height: 1.6; color: var(--bsp-ink-2); background: #fff; }
img { max-width: 100%; height: auto; }
a { color: var(--bsp-primary); text-decoration: none; transition: color .15s ease; }
a:hover { color: var(--bsp-primary-hover); }
h1, h2, h3, h4 { line-height: 1.25; margin: 0 0 .5em; font-weight: 600; }
ul { margin: 0; padding: 0; list-style: none; }
button { font-family: inherit; cursor: pointer; }

.bsp-container { width: 100%; max-width: var(--bsp-container); margin-inline: auto; padding-inline: 20px; }
.screen-reader-text { position: absolute !important; width: 1px; height: 1px; overflow: hidden; clip: rect(1px,1px,1px,1px); white-space: nowrap; }

.bsp-btn { display: inline-block; background: var(--bsp-orange); color: #fff; font-weight: 600; padding: 10px 22px; border: none; border-radius: var(--bsp-radius); text-align: center; transition: background .15s ease; }
.bsp-btn:hover { background: var(--bsp-orange-dk); color: #fff; }
.bsp-btn--blue { background: var(--bsp-blue-mid); }
.bsp-btn--blue:hover { background: var(--bsp-blue-dark); }

/* ==========================================================================
   3. HEADER (light sky-blue)
   ========================================================================== */
.bsp-header { background: linear-gradient(180deg, var(--bsp-header-grad-a) 0%, var(--bsp-header-grad-b) 100%); padding-bottom: 14px; }
.bsp-header__top { display: flex; align-items: center; justify-content: space-between; gap: 20px; padding-block: 16px; }
.bsp-logo img { max-height: 86px; width: auto; }
.bsp-logo__text { font-size: 30px; font-weight: 800; }
.bsp-logo__text .blue { color: #1c4e9c; }
.bsp-logo__text .sky { color: #36a9e1; }
.bsp-logo__text .pep { color: #1b1b1b; font-weight: 700; }

.bsp-header__right { display: flex; flex-direction: column; align-items: flex-end; gap: 12px; }
.bsp-account-links { display: flex; align-items: center; gap: 10px; font-size: 15px; }
.bsp-account-links a { color: #173a63; font-weight: 600; }
.bsp-account-links a:hover { color: var(--bsp-blue-mid); }
.bsp-account-links .sep { color: #9bb6cf; }

.bsp-cart { display: inline-flex; align-items: center; }
.bsp-cart__icon { width: 46px; height: 46px; border-radius: 50%; background: var(--bsp-orange); color: #fff; display: grid; place-items: center; box-shadow: var(--bsp-shadow); position: relative; z-index: 2; }
.bsp-cart__icon svg { width: 24px; height: 24px; fill: #fff; }
.bsp-cart__pill { background: var(--bsp-navy); color: #fff; font-size: 14px; font-weight: 600; padding: 10px 18px 10px 28px; border-radius: 24px; margin-left: -16px; white-space: nowrap; }
.bsp-cart__pill .amt { color: var(--bsp-blue-light); }
.bsp-cart__icon { position: relative; }

/* Mobile-only header elements — hidden on desktop, revealed in the mobile media query */
.bsp-burger, .bsp-account-icon, .bsp-cart__badge, .bsp-search__btn { display: none; }

/* Primary nav row */
.bsp-nav { background: transparent; padding-bottom: 0; }
.bsp-nav__inner { display: flex; align-items: stretch; gap: 0; }
.bsp-menu { display: flex; align-items: stretch; background: var(--bsp-grad-blue); border-radius: 6px 0 0 0; overflow: visible; flex: 0 0 auto; }
.bsp-menu > li { position: relative; }
.bsp-menu > li + li { border-left: 1px solid rgba(255,255,255,.18); }
.bsp-menu > li > a { display: flex; align-items: center; gap: 6px; color: #fff; font-weight: 600; font-size: 15px; padding: 15px 22px; }
.bsp-menu > li.menu-item-has-children > a::after { content: "\25BE"; font-size: 11px; opacity: .9; }
.bsp-menu > li:hover > a, .bsp-menu > li.current-menu-item > a { background: rgba(255,255,255,.14); }
.bsp-menu .sub-menu { position: absolute; top: 100%; left: 0; min-width: 220px; background: #fff; box-shadow: var(--bsp-shadow-lg); border-top: 3px solid var(--bsp-orange); opacity: 0; visibility: hidden; transform: translateY(6px); transition: all .15s ease; z-index: 60; }
.bsp-menu > li:hover .sub-menu { opacity: 1; visibility: visible; transform: translateY(0); }
.bsp-menu .sub-menu a { display: block; color: var(--bsp-ink-2); padding: 11px 18px; font-size: 14px; }
.bsp-menu .sub-menu a:hover { background: var(--bsp-bg-tint); color: var(--bsp-blue-dark); }

.bsp-search { flex: 1; display: flex; align-items: center; background: var(--bsp-blue-dark); border-radius: 0 6px 0 0; margin-left: 0; padding: 0 16px; }
.bsp-search svg { width: 20px; height: 20px; fill: #fff; flex: 0 0 auto; }
.bsp-search input { flex: 1; border: 0; background: transparent; color: #fff; font-size: 15px; padding: 14px 12px; outline: none; }
.bsp-search input::placeholder { color: #cfe6f7; }

.bsp-nav__toggle { display: none; background: var(--bsp-blue-mid); border: 0; color: #fff; font-size: 15px; font-weight: 600; padding: 13px 18px; gap: 8px; align-items: center; border-radius: 6px 6px 0 0; }
.bsp-nav__toggle svg { width: 22px; height: 22px; fill: currentColor; }

/* ==========================================================================
   4. PROMO BAR (orange, below nav)
   ========================================================================== */
/* Promo bar is contained to the content width (not full-bleed); orange sits on the light-blue header. */
.bsp-promo { margin-top: 8px; }
.bsp-promo__inner { background: var(--bsp-promo-bg); color: #fff; display: flex; align-items: center; justify-content: space-between; gap: 20px; padding: 12px 22px; border-radius: 4px; }
.bsp-promo__left { font-size: 13px; line-height: 1.3; }
.bsp-promo__left b { font-size: 14px; }
.bsp-promo__left a { color: #fff; text-decoration: underline; font-size: 12px; }
.bsp-promo__center { text-align: center; flex: 1; }
.bsp-promo__center .big { font-size: 26px; font-weight: 800; line-height: 1.1; }
.bsp-promo__center .sub { font-size: 14px; font-weight: 600; }
.bsp-promo__btn { background: var(--bsp-blue-mid); color: #fff; font-weight: 700; padding: 9px 18px; border-radius: var(--bsp-radius); white-space: nowrap; display: inline-flex; align-items: center; gap: 8px; }
.bsp-promo__btn:hover { background: var(--bsp-blue-dark); color: #fff; }

/* ==========================================================================
   5. HERO CAROUSEL
   ========================================================================== */
.bsp-hero-carousel { position: relative; background: var(--bsp-navy-deep); overflow: hidden; margin-top: 22px; }
.bsp-slide { display: none; }
.bsp-slide.is-active { display: block; animation: bspFade .5s ease; }
.bsp-slide img { width: 100%; height: auto; display: block; }
@keyframes bspFade { from { opacity: .4; } to { opacity: 1; } }
.bsp-slides__nav { position: absolute; top: 50%; transform: translateY(-50%); width: 48px; height: 60px; background: rgba(120,130,140,.45); color: #fff; border: 0; font-size: 30px; line-height: 1; z-index: 5; transition: background .15s ease; }
.bsp-slides__nav:hover { background: rgba(80,90,100,.7); }
.bsp-slides__nav--prev { left: 0; }
.bsp-slides__nav--next { right: 0; }
/* Mobile hero uses the source's 2:1 mobile banners at full width (no crop). */
@media (max-width: 768px) {
  .bsp-hero-carousel { margin-top: 12px; }
  .bsp-slide img { height: auto; width: 100%; object-fit: fill; display: block; }
  .bsp-slides__nav { width: 34px; height: 44px; font-size: 22px; }
}

/* ==========================================================================
   6. HOME TWO-COLUMN LAYOUT
   ========================================================================== */
.bsp-home { padding-block: 26px 40px; }
.bsp-home__grid { display: grid; grid-template-columns: 1fr 320px; gap: 26px; align-items: start; }

/* Section bar (blue header strip) */
.bsp-bar { background: var(--bsp-grad-blue); color: #fff; font-weight: 700; font-size: 18px; padding: 13px 18px; border-radius: 6px 6px 0 0; display: flex; align-items: center; gap: 9px; }
.bsp-bar::before { content: ""; display: inline-block; width: 0; height: 0; border-left: 8px solid currentColor; border-top: 5px solid transparent; border-bottom: 5px solid transparent; vertical-align: middle; margin-right: 4px; }

/* Product grid — separated cards with gutters, like the original */
.bsp-products { display: grid; grid-template-columns: repeat(3, 1fr); gap: 18px; margin-top: 18px; }
.bsp-card { border: 1px solid var(--bsp-line); border-radius: 4px; padding: 18px 16px; display: flex; flex-direction: column; text-align: center; position: relative; background: #fff; transition: box-shadow .15s ease; }
.bsp-card:hover { box-shadow: var(--bsp-shadow); }
.bsp-card__badge { position: absolute; top: 10px; left: 10px; background: #1ba7e8; color: #fff; font-size: 11px; font-weight: 700; padding: 6px 13px; border-radius: 5px; letter-spacing: .3px; text-transform: uppercase; }
.bsp-card__title { font-size: 16px; font-weight: 700; color: var(--bsp-blue-mid); margin: 26px 0 12px; min-height: 44px; }
.bsp-card__title a { color: inherit; }
.bsp-card__title a:hover { color: var(--bsp-blue-dark); }
.bsp-card__media { padding: 6px 0 14px; }
.bsp-card__media img { width: 100%; height: 230px; object-fit: contain; margin: 0 auto; }
.bsp-card__price { font-size: 20px; font-weight: 800; color: #3a3a3a; padding: 14px 0; border-top: 1px solid var(--bsp-line); margin-top: auto; }
.bsp-card__price del { color: var(--bsp-muted); font-weight: 400; font-size: 15px; margin-right: 6px; }
.bsp-card__buy { display: flex; align-items: center; justify-content: center; gap: 10px; }
.bsp-card__buy label { font-size: 14px; color: #555; }
.bsp-card__qty { width: 48px; padding: 7px 6px; border: 1px solid var(--bsp-line); border-radius: var(--bsp-radius); text-align: center; }
.bsp-card__add { background: var(--bsp-grad-cta); color: #fff; border: 0; font-weight: 700; padding: 9px 16px; border-radius: 0; text-shadow: 0 1px 1px rgba(0,0,0,.18); }
.bsp-card__add:hover { background: var(--bsp-grad-cta-hover); }

/* ==========================================================================
   7. SIDEBAR WIDGETS
   ========================================================================== */
.bsp-widget { margin-bottom: 22px; border: 1px solid var(--bsp-line); border-top: 0; }
.bsp-widget__head { background: var(--bsp-grad-blue); color: #fff; font-weight: 700; font-size: 15px; padding: 11px 15px; display: flex; align-items: center; gap: 8px; }
.bsp-widget__head::before { content: ""; display: inline-block; width: 0; height: 0; border-left: 7px solid currentColor; border-top: 5px solid transparent; border-bottom: 5px solid transparent; vertical-align: middle; }
.bsp-widget__body { background: var(--bsp-bg-tint); padding: 16px 15px; }

.bsp-news input[type="email"] { width: 100%; border: 1px solid var(--bsp-line); border-radius: var(--bsp-radius); padding: 11px 12px; font-size: 14px; margin-bottom: 10px; }
.bsp-news .bsp-btn { width: auto; }
.bsp-news__reward { display: flex; gap: 8px; align-items: flex-start; margin-top: 14px; font-size: 13px; color: #2a4a63; }
.bsp-news__reward svg { width: 22px; height: 22px; fill: var(--bsp-orange); flex: 0 0 auto; }
.bsp-news__reward b { color: #1b1b1b; }

.bsp-cartw__line { font-size: 14px; color: #2a4a63; margin-bottom: 12px; }
.bsp-cartw__subtotal { background: #f6e7cf; color: #6b4e2a; text-align: center; font-weight: 600; padding: 10px; border-radius: var(--bsp-radius); margin-bottom: 14px; }
.bsp-cartw__actions { text-align: right; }

.bsp-points__body { font-size: 14px; color: #2a4a63; }

/* ==========================================================================
   8. INFO SECTION
   ========================================================================== */
.bsp-info { background: var(--bsp-bg-lav); border: 1px solid var(--bsp-line); padding: 30px 34px; margin-top: 30px; position: relative; }
.bsp-info h2 { color: var(--bsp-blue-mid); font-size: 24px; font-weight: 600; }
.bsp-info h3 { color: var(--bsp-blue-mid); font-size: 19px; font-weight: 600; margin-top: 1.4em; }
.bsp-info p { color: var(--bsp-ink); margin: 0 0 1em; max-width: 70ch; }
.bsp-info__media { float: right; width: 300px; margin: 10px 0 16px 28px; }
.bsp-info__media img { width: 100%; height: auto; }

/* ==========================================================================
   9. FOOTER (medium blue)
   ========================================================================== */
/* Footer is a contained, centered blue box (white page margins), aligned with the content above. */
.bsp-footer { background: #fff; color: #eaf2fb; font-size: 15px; margin-top: 30px; padding-bottom: 28px; }
.bsp-footer__box { background: var(--bsp-footer-bg); border-radius: 4px; padding: 40px 40px 34px; }
.bsp-footer a { color: #eaf2fb; }
.bsp-footer a:hover { color: #fff; }
.bsp-footer__grid { display: grid; grid-template-columns: repeat(3, 1fr) auto; gap: 36px; align-items: start; }
.bsp-footer h4 { color: #fff; font-size: 20px; font-weight: 600; margin-bottom: 18px; }
.bsp-footer ul li { margin-bottom: 12px; }
.bsp-footer ul li a { display: inline-flex; align-items: center; gap: 9px; }
.bsp-footer ul li a::before { content: none; }
.bsp-footer__badges { display: flex; gap: 12px; align-self: start; }
.bsp-badge-img { height: 56px; width: auto; display: block; }
.bsp-footer__copy { text-align: center; color: #8a97a3; font-size: 13px; margin-top: 18px; }

/* ==========================================================================
   10. WOOCOMMERCE SHOP / CATEGORY ARCHIVE
   ========================================================================== */
.woocommerce-page .bsp-shop-wrap { padding-block: 22px 50px; }

/* Breadcrumb */
.woocommerce .woocommerce-breadcrumb, .bsp-breadcrumb { font-size: 13px; color: var(--bsp-muted); margin-bottom: 16px; }
.woocommerce .woocommerce-breadcrumb a { color: var(--bsp-primary); }
.bsp-crumb-sep { color: #b9c4cf; }

/* Page title + category description */
.woocommerce-products-header { margin-bottom: 8px; }
.woocommerce-products-header__title, .woocommerce .page-title {
  text-transform: uppercase; color: var(--bsp-navy-deep); font-size: 26px; font-weight: 700; margin: 0 0 8px;
}
.term-description p { color: var(--bsp-ink); margin: 0 0 14px; max-width: 95ch; }

/* Toolbar: result count + ordering */
.woocommerce .woocommerce-result-count { color: var(--bsp-muted); font-size: 14px; margin: 0; padding: 9px 0; float: left; }
.woocommerce .woocommerce-ordering { float: right; margin: 0 0 14px; }
.woocommerce .woocommerce-ordering select { padding: 9px 12px; border: 1px solid var(--bsp-line); border-radius: 4px; background: #fff; }

/* Product grid */
.woocommerce ul.products { display: grid !important; grid-template-columns: repeat(3, 1fr); gap: 18px; margin: 10px 0 0; padding: 0; clear: both; }
.woocommerce ul.products::before, .woocommerce ul.products::after { display: none !important; content: none !important; }
.woocommerce ul.products li.product {
  width: auto !important; margin: 0 !important; float: none !important; clear: none !important;
  border: 1px solid var(--bsp-line); border-radius: 4px; padding: 18px 16px; text-align: center;
  position: relative; background: #fff; transition: box-shadow .15s ease;
}
.woocommerce ul.products li.product:hover { box-shadow: var(--bsp-shadow); }
.woocommerce ul.products li.product a img { display: block; width: 100%; height: 230px; object-fit: contain; margin: 6px auto 14px; }
.woocommerce ul.products li.product .woocommerce-loop-product__title {
  color: var(--bsp-blue-mid); font-size: 16px; font-weight: 700; padding: 0 0 8px; min-height: 42px;
}
.woocommerce ul.products li.product .price { color: #3a3a3a; font-size: 20px; font-weight: 800; display: block; padding: 12px 0; border-top: 1px solid var(--bsp-line); }
.woocommerce ul.products li.product .price del { color: var(--bsp-muted); font-weight: 400; font-size: 15px; margin-right: 6px; }
.woocommerce ul.products li.product .bsp-card__badge { top: 10px; left: 10px; }
.woocommerce ul.products li.product .added_to_cart { display: none; }

/* Loop add-to-cart (Qty + button) */
.bsp-loop-cart { display: flex; align-items: center; justify-content: center; gap: 8px; flex-wrap: nowrap; }
.bsp-loop-cart__label { font-size: 14px; color: #555; flex: 0 0 auto; }
.bsp-loop-cart .quantity { margin: 0; flex: 0 0 auto; display: flex; }
.bsp-loop-cart .quantity input.qty { width: 52px; height: 36px; padding: 0 6px; border: 1px solid #cfd6dd; border-radius: 3px; text-align: center; font-size: 15px; box-sizing: border-box; -moz-appearance: textfield; }
.bsp-loop-cart input.qty::-webkit-outer-spin-button,
.bsp-loop-cart input.qty::-webkit-inner-spin-button { -webkit-appearance: none; margin: 0; }
.bsp-loop-cart .bsp-card__add { height: 36px; padding: 0 18px; border-radius: 3px; font-size: 15px; white-space: nowrap; flex: 0 0 auto; display: inline-flex; align-items: center; }

.woocommerce ul.products li.product .button, .woocommerce a.button, .woocommerce button.button,
.woocommerce #respond input#submit { background: var(--bsp-grad-cta); color: #fff; border-radius: 4px; font-weight: 700; padding: 9px 16px; text-shadow: 0 1px 1px rgba(0,0,0,.18); }
.woocommerce ul.products li.product .button:hover, .woocommerce a.button:hover, .woocommerce button.button:hover { background: var(--bsp-grad-cta-hover); }
.woocommerce span.onsale { background: var(--bsp-orange); border-radius: 4px; }
.woocommerce .price { color: #3a3a3a; }

/* Pagination */
.woocommerce nav.woocommerce-pagination { margin: 30px 0 0; text-align: center; }
.woocommerce nav.woocommerce-pagination ul { border: 0; display: inline-flex; gap: 6px; }
.woocommerce nav.woocommerce-pagination ul li { border: 0; margin: 0; }
.woocommerce nav.woocommerce-pagination ul li a, .woocommerce nav.woocommerce-pagination ul li span {
  border: 1px solid var(--bsp-line); border-radius: 4px; padding: 8px 14px; color: var(--bsp-primary); background: #fff;
}
.woocommerce nav.woocommerce-pagination ul li span.current { background: var(--bsp-blue-mid); color: #fff; border-color: var(--bsp-blue-mid); }

@media (max-width: 1024px) { .woocommerce ul.products { grid-template-columns: repeat(2, 1fr); } }
@media (max-width: 560px) { .woocommerce ul.products { grid-template-columns: 1fr; } }

/* ==========================================================================
   10b. SINGLE PRODUCT
   ========================================================================== */
.bsp-single-grid { display: grid; grid-template-columns: 1fr 250px; gap: 24px; align-items: start; }
.bsp-single-main { min-width: 0; }

/* gallery + summary side by side; tabs/related span full width below.
   Flex + !important is used deliberately to override WooCommerce's default
   float:left / width:48% on the gallery, which otherwise stretches the image. */
.woocommerce.single-product div.product { display: block; margin: 0; float: none; }
/* Bordered product card wrapping image + summary (source .product_detail). */
.bsp-product-card { display: flex; flex-wrap: wrap; gap: 34px; align-items: flex-start; position: relative; border: 1px solid #c4c6c8; background: #fff; padding: 25px; margin: 0 0 22px; }
.woocommerce.single-product div.product .woocommerce-product-gallery {
  float: none !important; width: 240px !important; max-width: 240px !important; margin: 0 !important;
  flex: 0 0 240px; position: static;
}
.woocommerce.single-product div.product .summary {
  float: none !important; width: auto !important; margin: 0 !important; flex: 1 1 320px; min-width: 0;
}
.woocommerce.single-product div.product .woocommerce-tabs,
.woocommerce.single-product div.product .related,
.woocommerce.single-product div.product .upsells { width: 100%; }
.single-product .woocommerce-product-gallery__wrapper { margin: 0; }
.single-product .woocommerce-product-gallery__image img { width: 100% !important; height: auto !important; border: 0 !important; border-radius: 0; }
.single-product .woocommerce-product-gallery .flex-control-thumbs { margin-top: 10px; padding: 0; }
/* Source product image has no frame and no zoom trigger. */
.single-product .woocommerce-product-gallery__trigger { display: none !important; }

/* Summary — exact source values */
.bsp-summary-badge { position: absolute; top: 8px; left: 8px; z-index: 3; margin: 0; font-size: 13px; }
.single-product .product_title { font-size: 18px; color: #4296d8; font-weight: 700; margin: 0 0 10px; }
.bsp-availability { font-size: 11px; color: #000; margin: 0 0 10px; text-transform: none; }
.bsp-availability .in { color: #000; font-weight: 700; }
.bsp-availability .out { color: #e02b27; font-weight: 700; }
.single-product .summary .price,
.single-product .summary .price .amount,
.single-product .summary .price bdi { color: #333 !important; font-size: 19px; font-weight: 700; margin: 6px 0 14px; }
.single-product .summary .price del { color: var(--bsp-muted); font-weight: 400; font-size: 18px; margin-right: 8px; }
.single-product form.cart { display: flex; align-items: center; gap: 10px; margin: 0 0 6px; }
.single-product form.cart .quantity input.qty { width: 60px; padding: 10px 6px; border: 1px solid var(--bsp-line); border-radius: 4px; text-align: center; }
.single-product .single_add_to_cart_button { background: var(--bsp-grad-cta) !important; color: #fff !important; border-radius: 0; font-weight: 700; padding: 11px 24px !important; text-shadow: 0 1px 1px rgba(0,0,0,.18); }
.single-product .single_add_to_cart_button:hover { background: var(--bsp-grad-cta-hover) !important; }
.bsp-wishlist-row { font-size: 14px; margin: 4px 0 16px; color: var(--bsp-muted); }
.bsp-wishlist-link { color: var(--bsp-primary); font-weight: 600; }
.bsp-ship-badge { display: flex; align-items: center; gap: 12px; background: transparent; border: 0; padding: 6px 0; margin-top: 6px; }
.bsp-ship-badge__usps { width: 52px; height: auto; flex: 0 0 auto; }
.bsp-ship-badge strong { display: block; color: var(--bsp-navy-deep); font-size: 14px; font-weight: 700; letter-spacing: .2px; }
.bsp-ship-badge span { font-size: 12px; color: var(--bsp-muted); }
.bsp-trust-badges { display: flex; align-items: center; gap: 18px; margin-top: 16px; }
.bsp-trust-badges img { width: 76px; height: auto; }
.single-product .summary .product_meta { display: none; }

/* Tabs */
.woocommerce-tabs { margin-top: 34px; }
.woocommerce-tabs ul.tabs { padding: 0; margin: 0 0 -1px; border-bottom: 1px solid var(--bsp-line); display: flex; gap: 4px; }
.woocommerce-tabs ul.tabs::before { display: none; }
.woocommerce-tabs ul.tabs li { background: var(--bsp-bg-soft); border: 1px solid var(--bsp-line); border-radius: 0; margin: 0; padding: 0; }
.woocommerce-tabs ul.tabs li::before, .woocommerce-tabs ul.tabs li::after { display: none; }
.woocommerce-tabs ul.tabs li a { display: block; padding: 11px 20px; color: var(--bsp-ink-2); font-weight: 600; }
.woocommerce-tabs ul.tabs li.active { background: #499edf; border-color: #499edf; }
.woocommerce-tabs ul.tabs li.active a { color: #fff; }
.woocommerce-tabs .panel { padding: 22px 4px; }
.woocommerce-tabs .panel h2 { display: none; }

/* Specs / attributes table */
.woocommerce table.shop_attributes { border: 1px solid var(--bsp-line); }
.woocommerce table.shop_attributes th { background: var(--bsp-bg-soft); color: var(--bsp-navy-deep); font-weight: 700; width: 34%; padding: 11px 14px; border-bottom: 1px solid var(--bsp-line); }
.woocommerce table.shop_attributes td { padding: 11px 14px; border-bottom: 1px solid var(--bsp-line); font-style: normal; }

/* TI WooCommerce Wishlist — "Add to Wish List" button (single product) */
.single-product .tinv-wishlist { margin: 8px 0 16px; }
.single-product .tinv-wishlist .tinvwl_add_to_wishlist_button {
  display: inline-flex; align-items: center; gap: 7px; background: transparent !important; border: 0 !important;
  color: var(--bsp-primary) !important; font-weight: 600 !important; font-size: 14px; padding: 0 !important; box-shadow: none !important;
}
.single-product .tinv-wishlist .tinvwl_add_to_wishlist_button:hover { color: var(--bsp-primary-hover) !important; text-decoration: underline; }
.single-product .tinv-wishlist .tinvwl_add_to_wishlist_button:before { color: var(--bsp-orange); }
/* Wishlist button on product cards (catalog) */
.woocommerce ul.products li.product .tinv-wishlist { margin-top: 8px; text-align: center; }
.woocommerce ul.products li.product .tinvwl_add_to_wishlist_button { background: transparent !important; color: var(--bsp-muted) !important; font-size: 12px !important; padding: 0 !important; border: 0 !important; }

/* Wholesale sidebar banner block */
.bsp-wholesale { margin-bottom: 18px; }
.bsp-wholesale a { display: block; }
.bsp-wholesale a + a { margin-top: 10px; }
.bsp-wholesale img { width: 100%; height: auto; display: block; border-radius: 6px; border: 1px solid var(--bsp-line); }

/* Wholesale CTA banner (fallback when no real image is set) */
.bsp-wholesale-cta {
  display: block; margin-bottom: 18px; padding: 20px 18px; border-radius: 6px; text-align: center;
  background: linear-gradient(160deg, #284c94 0%, #1979c3 100%);
  box-shadow: var(--bsp-shadow); position: relative; overflow: hidden;
}
.bsp-wholesale-cta::after {
  content: ""; position: absolute; right: -30px; top: -30px; width: 110px; height: 110px;
  background: radial-gradient(circle, rgba(243,201,39,.35) 0%, rgba(243,201,39,0) 70%);
}
.bsp-wholesale-cta__eyebrow { display: block; color: var(--bsp-gold); font-size: 12px; font-weight: 800; letter-spacing: 2px; }
.bsp-wholesale-cta__title { display: block; color: #fff; font-size: 18px; font-weight: 800; margin: 4px 0 10px; line-height: 1.2; }
.bsp-wholesale-cta__link { display: inline-block; color: #fff; font-size: 13px; font-weight: 600; background: rgba(255,255,255,.16); padding: 7px 14px; border-radius: 4px; }
.bsp-wholesale-cta:hover .bsp-wholesale-cta__link { background: var(--bsp-gold); color: var(--bsp-navy-deep); }

/* Generic content tables (page content: Privacy cookie table, etc.) */
.bsp-prose table, .entry-content table { width: 100%; border-collapse: collapse; margin: 0 0 22px; border: 1px solid var(--bsp-line); font-size: 14px; }
.bsp-prose caption, .entry-content caption { text-align: left; font-weight: 700; color: var(--bsp-navy-deep); padding: 8px 0; }
.bsp-prose th, .bsp-prose td, .entry-content th, .entry-content td { border: 1px solid var(--bsp-line); padding: 11px 14px; text-align: left; vertical-align: top; }
.bsp-prose thead th, .bsp-prose tbody th, .entry-content thead th { background: var(--bsp-bg-soft); color: var(--bsp-navy-deep); font-weight: 700; }
.bsp-prose tbody tr:nth-child(even) td, .entry-content tbody tr:nth-child(even) td { background: #f7fafc; }

/* ==========================================================================
   Content pages (About / Privacy / Rewards / Shipping / Terms / FAQ / Contact)
   ========================================================================== */
.bsp-section { padding: 0 0 20px; }
.bsp-section__head { background: var(--bsp-grad-blue); color: #fff; padding: 14px 16px 14px 34px; position: relative; margin: 22px 0 24px; }
.bsp-section__head::before { content: ""; position: absolute; left: 16px; top: 50%; transform: translateY(-50%); width: 0; height: 0; border-left: 7px solid #fff; border-top: 5px solid transparent; border-bottom: 5px solid transparent; }
.bsp-section__head h1 { margin: 0; font-size: 18px; font-weight: 700; color: #fff; }
.woocommerce-cart .bsp-section__head::before, .woocommerce-checkout .bsp-section__head::before, .woocommerce-account .bsp-section__head::before { display: none; }
.bsp-prose { color: #444; font-size: 15px; line-height: 1.75; }
.bsp-prose h2 { color: var(--bsp-blue); font-size: 22px; font-weight: 700; margin: 26px 0 10px; }
.bsp-prose h3 { color: var(--bsp-navy-deep); font-size: 18px; font-weight: 700; margin: 22px 0 8px; }
.bsp-prose p { margin: 0 0 14px; }
.bsp-prose a { color: var(--bsp-blue); }
.bsp-prose ul, .bsp-prose ol { margin: 0 0 16px; padding-left: 22px; }
.bsp-prose li { margin: 0 0 6px; }

/* FAQ accordion */
.bsp-faq-cat { color: var(--bsp-blue); font-size: 20px; font-weight: 700; margin: 26px 0 12px; padding-bottom: 6px; border-bottom: 2px solid var(--bsp-line); }
.bsp-faq-item { border: 1px solid #e2e6ea; border-radius: 6px; margin: 0 0 10px; overflow: hidden; background: #fff; }
.bsp-faq-item > summary { list-style: none; cursor: pointer; padding: 15px 44px 15px 18px; font-weight: 600; color: var(--bsp-navy-deep); position: relative; background: #f7f9fb; }
.bsp-faq-item > summary::-webkit-details-marker { display: none; }
.bsp-faq-chev { position: absolute; right: 18px; top: 50%; transform: translateY(-50%); width: 0; height: 0; border-top: 7px solid var(--bsp-blue); border-left: 5px solid transparent; border-right: 5px solid transparent; transition: transform .2s ease; }
.bsp-faq-item[open] .bsp-faq-chev { transform: translateY(-50%) rotate(180deg); }
.bsp-faq-answer { padding: 16px 18px; color: #444; line-height: 1.7; }

/* Contact form */
.bsp-contact-form { max-width: 620px; margin: 18px 0 0; }
.bsp-cf-row { margin: 0 0 16px; }
.bsp-cf-row label { display: block; font-weight: 600; color: var(--bsp-navy-deep); margin-bottom: 6px; }
.bsp-cf-row label span { color: #e02b27; }
.bsp-cf-row input, .bsp-cf-row textarea { width: 100%; padding: 11px 12px; border: 1px solid #cfd6dd; border-radius: 4px; font-size: 15px; box-sizing: border-box; font-family: inherit; }
.bsp-contact-form .bsp-btn { padding: 12px 30px; }

/* Related / customers also bought */
.single-product .related, .single-product .upsells { margin-top: 40px; }
.single-product .related > h2, .single-product .upsells > h2 {
  background: var(--bsp-grad-blue); color: #fff; font-size: 17px; font-weight: 700;
  padding: 12px 18px; border-radius: 6px 6px 0 0; display: flex; align-items: center; gap: 9px; margin: 0 0 18px;
}
.single-product .related > h2::before, .single-product .upsells > h2::before { content: ""; display: inline-block; width: 0; height: 0; border-left: 7px solid currentColor; border-top: 5px solid transparent; border-bottom: 5px solid transparent; vertical-align: middle; margin-right: 4px; }

/* Single-product responsive */
@media (max-width: 1024px) {
  .bsp-single-grid { grid-template-columns: 1fr; }
}
@media (max-width: 768px) {
  /* Stack the product card; image is small + centered like the source mobile (~130px). */
  .bsp-product-card { flex-direction: column; align-items: center; padding: 16px; gap: 14px; }
  .woocommerce.single-product div.product .woocommerce-product-gallery {
    width: 130px !important; max-width: 130px !important; flex: 0 0 auto; margin: 0 auto !important;
  }
  .woocommerce.single-product div.product .summary { flex: 0 0 auto; width: 100% !important; }
  .bsp-summary-badge { top: 6px; left: 6px; }
  .bsp-whobought__grid { grid-template-columns: 1fr 1fr; }
}

/* ==========================================================================
   10c. CART / CHECKOUT / MY ACCOUNT (classic shortcodes)
   ========================================================================== */
.woocommerce-cart .bsp-section__head, .woocommerce-checkout .bsp-section__head, .woocommerce-account .bsp-section__head { text-align: left; margin-bottom: 22px; }
.woocommerce-cart .bsp-section__head::after, .woocommerce-checkout .bsp-section__head::after, .woocommerce-account .bsp-section__head::after { display: none; }

/* Cart + order tables */
.woocommerce table.shop_table { border: 1px solid var(--bsp-line); border-radius: 6px; }
.woocommerce table.shop_table thead th { background: var(--bsp-grad-blue); color: #fff; font-weight: 700; padding: 12px 14px; border: 0; }
.woocommerce table.shop_table th, .woocommerce table.shop_table td { padding: 12px 14px; }
.woocommerce table.cart img { width: 64px; height: auto; border: 1px solid var(--bsp-line); border-radius: 4px; }
.woocommerce a.remove { color: var(--bsp-error) !important; border: 1px solid var(--bsp-line); }
.woocommerce a.remove:hover { background: var(--bsp-error) !important; color: #fff !important; }
.woocommerce .quantity .qty { border: 1px solid var(--bsp-line); border-radius: 4px; padding: 8px 6px; }

/* Coupon row */
.woocommerce .cart .actions .coupon input.input-text { padding: 11px 12px; border: 1px solid var(--bsp-line); border-radius: 4px; min-width: 180px; }

/* Cart totals + cross-sells headings */
.cart_totals h2, .cross-sells > h2, #order_review_heading {
  background: var(--bsp-grad-blue); color: #fff; font-size: 16px; font-weight: 700;
  padding: 11px 15px; border-radius: 6px 6px 0 0; margin: 0 0 0;
}
.cart_totals table { border: 1px solid var(--bsp-line); }
.cart_totals .wc-proceed-to-checkout { padding-top: 16px; }

/* Primary action buttons -> gold->orange CTA */
.woocommerce .button.alt, .woocommerce #place_order, .woocommerce .checkout-button,
.woocommerce-cart .wc-proceed-to-checkout a.checkout-button {
  background: var(--bsp-grad-cta) !important; color: #fff !important; font-weight: 700 !important;
  text-shadow: 0 1px 1px rgba(0,0,0,.18); border-radius: 4px;
}
.woocommerce .button.alt:hover, .woocommerce #place_order:hover, .woocommerce .checkout-button:hover { background: var(--bsp-grad-cta-hover) !important; }

/* Checkout layout */
.woocommerce-checkout #customer_details { margin-bottom: 26px; }
.woocommerce-checkout #customer_details, .woocommerce-checkout #order_review, .woocommerce-checkout #order_review_heading { float: none !important; width: 100% !important; }
.woocommerce-checkout .col2-set, .woocommerce-checkout .col2-set .col-1, .woocommerce-checkout .col2-set .col-2 { display: block !important; float: none !important; width: 100% !important; }
.woocommerce-checkout .col2-set .col-2 { margin-top: 16px; }
.woocommerce-checkout h3 { background: var(--bsp-grad-blue); color: #fff; font-size: 16px; font-weight: 700; padding: 11px 15px; border-radius: 6px 6px 0 0; margin: 0 0 16px; }
.woocommerce form .form-row label { font-weight: 600; color: var(--bsp-navy-deep); }
.woocommerce form .form-row input.input-text, .woocommerce form .form-row textarea,
.woocommerce form .form-row select, .woocommerce .select2-container .select2-selection,
.woocommerce-account form .input-text { border: 1px solid var(--bsp-line); border-radius: 4px; padding: 11px 12px; }
.woocommerce #order_review { border: 1px solid var(--bsp-line); border-radius: 0 0 6px 6px; padding: 18px; background: var(--bsp-bg-soft); }
.woocommerce #payment { background: transparent; }
.woocommerce #payment ul.payment_methods { border-bottom: 1px solid var(--bsp-line); }

/* My Account */
.woocommerce-account .woocommerce-MyAccount-navigation ul { border: 1px solid var(--bsp-line); border-radius: 6px; overflow: hidden; }
.woocommerce-account .woocommerce-MyAccount-navigation li { border-bottom: 1px solid var(--bsp-line); }
.woocommerce-account .woocommerce-MyAccount-navigation li:last-child { border-bottom: 0; }
.woocommerce-account .woocommerce-MyAccount-navigation li a { display: block; padding: 11px 15px; color: var(--bsp-ink-2); font-weight: 600; }
.woocommerce-account .woocommerce-MyAccount-navigation li.is-active a, .woocommerce-account .woocommerce-MyAccount-navigation li a:hover { background: var(--bsp-bg-tint); color: var(--bsp-blue-dark); }
.woocommerce-account .woocommerce-MyAccount-content { padding-left: 24px; }
.woocommerce-account .col2-set { display: grid; grid-template-columns: 1fr 1fr; gap: 26px; }
.woocommerce form.login, .woocommerce form.register { border: 1px solid var(--bsp-line); border-radius: 6px; padding: 22px; }
.woocommerce-account h2, .woocommerce-cart h2, .woocommerce-checkout h2 { color: var(--bsp-navy-deep); }

@media (max-width: 768px) {
  .woocommerce-account .col2-set { grid-template-columns: 1fr; }
  .woocommerce-account .woocommerce-MyAccount-content { padding-left: 0; }
}

/* ==========================================================================
   11. RESPONSIVE
   ========================================================================== */
@media (max-width: 1024px) {
  .bsp-home__grid { grid-template-columns: 1fr; }
  .bsp-nav__inner { flex-wrap: wrap; }
  .bsp-search { flex-basis: 100%; margin-left: 0; margin-top: 8px; border-radius: 6px; }
  .bsp-promo__inner { flex-wrap: wrap; justify-content: center; text-align: center; }
}
@media (max-width: 768px) {
  /* Prevent any stray element from forcing horizontal scroll on mobile */
  html, body { overflow-x: hidden; max-width: 100%; }
  .bsp-header, .bsp-nav, .bsp-nav__inner, .bsp-header__top, .bsp-promo { max-width: 100%; }
  .bsp-nav__inner { box-sizing: border-box; }

  /* ---- Mobile header is light grey (source), not the blue gradient ---- */
  .bsp-header { display: flex; flex-direction: column; padding-bottom: 0; background: #f4f4f4; border-bottom: 1px solid #e2e2e2; }
  .bsp-burger, .bsp-account-icon { color: #6b6b6b !important; }
  .bsp-promo { order: -1; margin-top: 0; padding-inline: 0; max-width: 100%; }
  .bsp-promo__inner { border-radius: 0; padding: 11px 16px; gap: 12px; }
  .bsp-promo__btn { display: none; }
  .bsp-promo__center { order: -1; }
  .bsp-promo__center .big { font-size: 19px; }
  .bsp-promo__left { font-size: 12px; text-align: right; }

  /* ---- Compact header row: burger | logo | account icon | cart icon ---- */
  .bsp-header__top { flex-direction: row; align-items: center; justify-content: space-between; gap: 8px; padding-block: 10px; }
  .bsp-burger { display: inline-flex; align-items: center; justify-content: center; background: transparent; border: 0; color: var(--bsp-blue-dark); padding: 4px; cursor: pointer; }
  .bsp-burger svg { width: 30px; height: 30px; fill: currentColor; }
  .bsp-logo { flex: 1; text-align: center; }
  .bsp-logo img { max-height: 46px; }
  .bsp-header__right { flex-direction: row; align-items: center; gap: 12px; }
  .bsp-account-links { display: none; }
  .bsp-account-icon { display: inline-flex; color: var(--bsp-blue-dark); }
  .bsp-account-icon svg { width: 28px; height: 28px; fill: currentColor; }
  .bsp-cart__pill { display: none; }
  .bsp-cart__icon { width: 42px; height: 42px; }
  .bsp-cart__icon svg { width: 22px; height: 22px; }
  .bsp-cart__badge { display: grid; place-items: center; position: absolute; top: -5px; right: -5px; min-width: 20px; height: 20px; padding: 0 5px; border-radius: 999px; background: var(--bsp-navy); color: #fff; font-size: 11px; font-weight: 700; line-height: 1; }

  /* ---- Search: full-width blue bar, white input + orange button ---- */
  .bsp-nav { background: var(--bsp-blue-mid); padding: 10px 0; margin-top: 0; }
  .bsp-nav__inner { flex-wrap: wrap; padding-inline: 14px; }
  .bsp-nav__toggle { display: none; }
  .bsp-search { order: -1; flex-basis: 100%; min-width: 0; margin: 0; background: #fff; border-radius: 5px; padding: 0; overflow: hidden; }
  .bsp-search svg { display: none; }
  .bsp-search input { color: #333; padding: 13px 14px; min-width: 0; }
  .bsp-search input::placeholder { color: #8a8a8a; }
  .bsp-search__btn { display: inline-flex; align-items: center; justify-content: center; background: var(--bsp-orange); border: 0; width: 50px; align-self: stretch; cursor: pointer; }
  .bsp-search__btn svg { display: block; width: 22px; height: 22px; fill: #fff; }

  /* ---- Hamburger opens a white overlay drawer with dark text (source) ---- */
  .bsp-nav { position: relative; }
  .bsp-menu { display: none; flex-direction: column; width: 100%; border-radius: 0; margin: 0; background: #f5f5f5; }
  .bsp-nav.is-open .bsp-menu { display: flex; position: absolute; top: 100%; left: 0; right: 0; z-index: 200; box-shadow: 0 12px 26px rgba(0,0,0,.20); border-top: 1px solid #e0e0e0; }
  .bsp-menu > li { border-bottom: 1px solid #e4e4e4; }
  .bsp-menu > li + li { border-left: 0; border-top: 0; }
  .bsp-menu > li > a { color: #333; font-weight: 400; font-size: 16px; padding: 16px 20px; }
  .bsp-menu > li:hover > a, .bsp-menu > li.current-menu-item > a { background: #ececec; }
  .bsp-menu > li.menu-item-has-children > a::after { color: var(--bsp-blue-dark); opacity: 1; }
  .bsp-menu .sub-menu { position: static; opacity: 1; visibility: visible; transform: none; box-shadow: none; border-top: 0; min-width: 0; background: #ececec; }
  .bsp-menu .sub-menu a { color: #444; padding: 14px 20px 14px 36px; font-size: 15px; }
  .bsp-menu .sub-menu a:hover { background: #e2e2e2; }

  .bsp-products { grid-template-columns: repeat(2, 1fr); }
  .bsp-info__media { float: none; width: 240px; margin: 0 auto 20px; }

  /* ---- Footer columns become collapsible accordions (source mobile) ---- */
  .bsp-footer__grid { grid-template-columns: 1fr; gap: 0; }
  .bsp-footer__col { border-bottom: 1px solid rgba(255,255,255,.18); }
  .bsp-footer__col h4 { margin: 0; padding: 16px 4px; cursor: pointer; position: relative; display: flex; align-items: center; justify-content: space-between; }
  .bsp-footer__col h4::after { content: ""; width: 0; height: 0; border-top: 6px solid currentColor; border-left: 5px solid transparent; border-right: 5px solid transparent; transition: transform .2s ease; opacity: .85; }
  .bsp-footer__col.is-open h4::after { transform: rotate(180deg); }
  .bsp-footer__col ul { display: none; padding: 0 4px 14px; }
  .bsp-footer__col.is-open ul { display: block; }
  .bsp-footer__badges { justify-content: center; padding-top: 18px; }
}
@media (max-width: 560px) {
  .bsp-products { grid-template-columns: 1fr; }
  .bsp-promo__center .big { font-size: 20px; }
  .bsp-footer__grid { grid-template-columns: 1fr; }
}

/* Homepage category navigation cards (source design) */
.bsp-cat-cards { display: flex; flex-direction: column; gap: 14px; margin: 22px 0 8px; }
.bsp-cat-card { display: flex; align-items: center; gap: 16px; background: #fff; border: 1px solid #e2e6ea; border-radius: 8px; padding: 16px 20px; transition: box-shadow .15s ease, border-color .15s ease; }
.bsp-cat-card:hover { border-color: var(--bsp-blue); box-shadow: 0 2px 12px rgba(0,0,0,.07); }
.bsp-cat-card__icon { flex: 0 0 auto; width: 46px; height: 46px; border-radius: 50%; background: #eaf3fb; display: grid; place-items: center; color: var(--bsp-blue); }
.bsp-cat-card__icon svg { width: 24px; height: 24px; }
.bsp-cat-card__name { flex: 1; color: var(--bsp-blue); font-weight: 700; font-size: 17px; }
.bsp-cat-card__chev { color: var(--bsp-blue); font-size: 26px; line-height: 1; }

/* Shop / category card — title on top, full (uncropped) vial, price, qty+cart (source) */
.woocommerce ul.products li.product { position: relative; border: 1px solid #e3e7eb; background: #fff; padding: 30px 14px 16px; text-align: center; box-sizing: border-box; }
.woocommerce ul.products li.product .bsp-card__badge { top: 10px; left: 10px; }
.woocommerce-loop-product__title { color: var(--bsp-blue) !important; font-size: 15px; font-weight: 700; line-height: 1.35; margin: 4px 0 12px; padding: 0 6px; min-height: 40px; }
.woocommerce-loop-product__title a { color: var(--bsp-blue); }
.bsp-loop-img { display: block; margin: 0 auto 10px; }
.bsp-loop-img img { max-width: 150px; width: 100%; height: auto; margin: 0 auto; display: block; }
.woocommerce ul.products li.product .price { color: #222 !important; font-weight: 800; font-size: 18px; border-top: 1px solid var(--bsp-line); padding: 14px 0; margin: 6px 0 12px; display: block; }

/* Shop / category archive: blue header bar + toolbar + right sidebar */
.bsp-archive-head { background: var(--bsp-grad-blue); color: #fff; font-weight: 700; font-size: 15px; padding: 14px 16px 14px 34px; position: relative; margin: 0 0 0; }
.bsp-archive-head::before { content: ""; position: absolute; left: 16px; top: 50%; transform: translateY(-50%); width: 0; height: 0; border-left: 7px solid currentColor; border-top: 5px solid transparent; border-bottom: 5px solid transparent; }
.bsp-single-main .woocommerce-result-count,
.bsp-single-main .woocommerce-ordering { background: #f5f6f8; border: 1px solid #e3e7eb; border-top: 0; padding: 11px 14px; margin: 0; box-sizing: border-box; font-size: 13px; color: #555; }
.bsp-single-main .woocommerce-result-count { float: left; }
.bsp-single-main .woocommerce-ordering { float: right; border-left: 0; }
.bsp-single-main .woocommerce-ordering select { border: 1px solid #cfd6dd; border-radius: 3px; padding: 3px 6px; font-size: 13px; }
.bsp-single-main ul.products { clear: both; padding-top: 18px; }
/* Archive grid: 3 product columns in the main area */
.woocommerce .bsp-single-main ul.products { display: grid; grid-template-columns: repeat(3, 1fr); gap: 16px; margin: 0; }
.woocommerce .bsp-single-main ul.products::before, .woocommerce .bsp-single-main ul.products::after { display: none; }
.woocommerce .bsp-single-main ul.products li.product { width: auto !important; margin: 0 !important; float: none; }
@media (max-width: 900px) { .woocommerce .bsp-single-main ul.products { grid-template-columns: repeat(2, 1fr); } }
@media (max-width: 600px) { .woocommerce .bsp-single-main ul.products { grid-template-columns: 1fr; } }

/* ==========================================================================
   Imported Blue Sky product description (specs table + research + disclaimer).
   Matches the source: blue-striped spec rows, dark labels, blue links.
   ========================================================================== */
.woocommerce-Tabs-panel .blueBox { margin: 0; color: #333; }
.blueBox h2, .blueBox .bsp-product-title { color: var(--bsp-blue); font-size: 18px; font-weight: 700; margin: 0 0 14px; }
.blueBox .no-more-tables table { width: 100%; border-collapse: collapse; margin: 0 0 20px; }
.blueBox .no-more-tables td { padding: 10px 14px; font-size: 14px; line-height: 1.5; color: #333; border: 1px solid #dbe3ec; vertical-align: top; background: #fff; }
.blueBox .no-more-tables td:first-child { width: 40%; color: #555; }
.blueBox .no-more-tables tr.bg_color td { background: #e9f1fb; }
.blueBox a, .bsp-research-body a { color: var(--bsp-blue); }
.blueBox sub, .blueBox sup { color: inherit; }
.sleek-disclaimer { background: #f3f5f7; border: 1px solid #e2e8f0; border-radius: 6px; padding: 15px 18px; font-size: 13px; line-height: 1.6; color: #666; margin: 18px 0; }
.bsp-research-details { border: 1px solid #e2e8f0; border-radius: 6px; margin: 14px 0; overflow: hidden; }
.bsp-research-details > summary, .bsp-research-details .bsp-research-toggle { list-style: none; padding: 14px 18px; font-weight: 700; color: var(--bsp-navy-deep); cursor: pointer; background: #f7f9fb; }
.bsp-research-details > summary::-webkit-details-marker { display: none; }
.bsp-research-body { padding: 4px 18px 16px; color: #444; line-height: 1.7; font-size: 14px; }
.bsp-research-body h3, .bsp-research-body h4 { color: var(--bsp-blue); margin: 16px 0 6px; font-size: 15px; }

/* Single-product sidebar: Related Products mini-card (matches source) */
.bsp-related-widget .bsp-related-item { text-align: center; }
.bsp-related-item__img img { max-width: 120px; height: auto; margin: 0 auto 8px; display: inline-block; }
.bsp-related-item__title { display: block; color: var(--bsp-blue); font-size: 13px; font-weight: 600; margin-bottom: 6px; line-height: 1.35; }
.bsp-related-item__price { font-weight: 800; color: #1a1a1a; margin-bottom: 10px; }
.bsp-related-item .bsp-loop-cart { display: flex; align-items: center; justify-content: center; gap: 6px; }
.bsp-related-item .bsp-card__qty { width: 46px; padding: 6px; border: 1px solid var(--bsp-line); border-radius: 4px; text-align: center; }
.bsp-related-item .bsp-card__add { background: var(--bsp-grad-cta); color: #fff; border: 0; border-radius: 4px; padding: 8px 12px; font-weight: 700; cursor: pointer; }

/* "Customers who bought" panel — light-blue with compact horizontal cards (source) */
.bsp-whobought { background: #d3e9f8; margin-top: 26px; }
.bsp-whobought__head { background: var(--bsp-grad-blue); color: #fff; font-weight: 700; font-size: 14px; padding: 13px 16px 13px 34px; position: relative; }
.bsp-whobought__head::before { content: ""; position: absolute; left: 16px; top: 50%; transform: translateY(-50%); width: 0; height: 0; border-left: 7px solid currentColor; border-top: 5px solid transparent; border-bottom: 5px solid transparent; }
.bsp-whobought__grid { display: grid; grid-template-columns: repeat(3, 1fr); gap: 16px 14px; padding: 18px; }
.bsp-wb-item { display: flex; gap: 12px; }
.bsp-wb-item__img { flex: 0 0 62px; }
.bsp-wb-item__img img { width: 62px; height: auto; display: block; }
.bsp-wb-item__info { display: flex; flex-direction: column; gap: 2px; min-width: 0; }
.bsp-wb-item__title { color: #4296d8; font-size: 13px; line-height: 1.3; font-weight: 400; }
.bsp-wb-item__title:hover { text-decoration: underline; }
.bsp-wb-item__price { color: #222; font-weight: 700; font-size: 14px; margin: 3px 0; }
.bsp-wb-item__price .amount, .bsp-wb-item__price bdi { color: #222 !important; }
.bsp-wb-wish, .bsp-wb-cart { color: #ef7d00; font-size: 13px; line-height: 1.4; }
.bsp-wb-wish:hover, .bsp-wb-cart:hover { text-decoration: underline; color: #ef7d00; }
.bsp-wb-oos { color: #e02b27; font-size: 13px; font-weight: 700; }
@media (max-width: 700px) { .bsp-whobought__grid { grid-template-columns: 1fr 1fr; } }

/* ==========================================================================
   Crypto checkout: coin selector, thank-you instructions, wallet
   ========================================================================== */
.bsp-coins { display: grid; grid-template-columns: repeat(2, 1fr); gap: 8px; margin: 12px 0; }
.bsp-coin { display: flex; align-items: center; gap: 8px; padding: 10px 12px; border: 1px solid #d7dde3; border-radius: 6px; cursor: pointer; font-size: 14px; transition: border-color .15s ease; }
.bsp-coin:hover { border-color: var(--bsp-blue); }
.bsp-coin input { accent-color: var(--bsp-blue); }
.bsp-coin-sym { margin-left: auto; font-family: monospace; font-size: 11px; color: #7d7d7d; }
.bsp-pay-instructions { background: #eef4fb; border: 1px solid #cfe0f2; padding: 20px 24px; border-radius: 10px; margin-top: 18px; }
.bsp-pay-instructions h3 { color: var(--bsp-blue); font-size: 20px; font-weight: 700; margin: 0 0 10px; }
.bsp-wallet { margin-top: 12px; padding: 12px; background: #fff; border: 1px solid #cfe0f2; border-radius: 8px; }
.bsp-wallet-label { display: block; font-size: 11px; text-transform: uppercase; letter-spacing: .05em; color: #7d7d7d; margin-bottom: 4px; }
.bsp-wallet code { word-break: break-all; font-size: 13px; color: var(--bsp-blue-dark); font-weight: 700; }

/* Cart / checkout / account: brand buttons + clean tables */
.woocommerce #payment .payment_methods li img { display: inline; }
.woocommerce a.button, .woocommerce button.button, .woocommerce input.button, .woocommerce #place_order,
.woocommerce-cart .wc-proceed-to-checkout a.checkout-button { background: var(--bsp-grad-cta) !important; color: #fff !important; border-radius: 3px !important; font-weight: 700; text-shadow: 0 1px 1px rgba(0,0,0,.18); }
.woocommerce a.button:hover, .woocommerce button.button:hover, .woocommerce #place_order:hover { background: var(--bsp-grad-cta-hover) !important; }
.woocommerce table.shop_table { border: 1px solid var(--bsp-line); border-radius: 8px; }
.woocommerce table.shop_table th { background: var(--bsp-bg-soft); }
.woocommerce-cart table.cart img { width: 60px; height: auto; }
.woocommerce .cart-collaterals .cart_totals, .woocommerce-checkout #order_review { border: 1px solid var(--bsp-line); border-radius: 8px; }
.woocommerce form .form-row input.input-text, .woocommerce form .form-row textarea, .woocommerce-checkout select { border: 1px solid #cfd6dd; border-radius: 4px; padding: 10px 12px; }
.select2-container--default .select2-selection--single { border: 1px solid #cfd6dd; height: 42px; }
.woocommerce-account .woocommerce-MyAccount-navigation ul { border: 1px solid var(--bsp-line); border-radius: 8px; overflow: hidden; }
.woocommerce-account .woocommerce-MyAccount-navigation li { border-bottom: 1px solid var(--bsp-line); }
.woocommerce-account .woocommerce-MyAccount-navigation li.is-active a { background: var(--bsp-blue); color: #fff; }
.woocommerce-account .woocommerce-MyAccount-navigation a { display: block; padding: 12px 16px; color: var(--bsp-navy-deep); }

/* ==========================================================================
   12. COMMERCE FLOW v2 — cart / checkout / account / add-to-cart popup / coins
   (bespoke templates: .bsp-cart-*, .bsp-co-*, .bsp-summary-*, .bsp-atc-*)
   ========================================================================== */

/* Buttons */
.bsp-btn-cta { display: inline-flex; align-items: center; justify-content: center; gap: 6px; background: #f26522; color: #fff !important; font-weight: 700; font-size: 14px; padding: 12px 22px; border: 0; border-radius: 3px; cursor: pointer; text-align: center; line-height: 1.1; transition: background .15s ease; }
.bsp-btn-cta:hover { background: #dd561a; color: #fff !important; }
.bsp-btn-outline { display: inline-flex; align-items: center; justify-content: center; gap: 7px; background: #fff; color: var(--bsp-navy-deep) !important; font-weight: 600; font-size: 14px; padding: 11px 20px; border: 1px solid #cfd6dd; border-radius: 3px; cursor: pointer; transition: border-color .15s ease, box-shadow .15s ease; }
.bsp-btn-outline:hover { border-color: var(--bsp-blue); box-shadow: 0 1px 4px rgba(0,0,0,.06); }
.bsp-btn-blue { display: inline-flex; align-items: center; justify-content: center; background: var(--bsp-blue); color: #fff !important; font-weight: 600; font-size: 14px; padding: 11px 20px; border: 0; border-radius: 3px; cursor: pointer; transition: background .15s ease; }
.bsp-btn-blue:hover { background: var(--bsp-blue-dark); }
.bsp-chev-l { width: 0; height: 0; border-right: 6px solid currentColor; border-top: 4px solid transparent; border-bottom: 4px solid transparent; }

/* Hide the generic page head on cart/checkout — templates render their own bars. */
.woocommerce-cart .bsp-section > article > .bsp-section__head,
.woocommerce-checkout .bsp-section > article > .bsp-section__head { display: none; }
.woocommerce-cart .bsp-section, .woocommerce-checkout .bsp-section { padding-top: 8px; }

/* Blue flow header bar (Shopping Cart / Complete your order / Create an Account) */
.bsp-flow-head { background: var(--bsp-grad-blue); color: #fff; padding: 13px 16px 13px 34px; position: relative; display: flex; align-items: center; justify-content: space-between; border-radius: 3px; margin: 4px 0 20px; }
.bsp-flow-head::before { content: ""; position: absolute; left: 15px; top: 50%; transform: translateY(-50%); width: 0; height: 0; border-left: 7px solid #fff; border-top: 5px solid transparent; border-bottom: 5px solid transparent; }
.bsp-flow-head__title { font-size: 17px; font-weight: 700; }
.bsp-flow-head__login { color: #fff !important; font-size: 13px; font-weight: 400; text-decoration: none; }
.bsp-flow-head__login:hover { text-decoration: underline; }
.bsp-flow-head--sm { margin-bottom: 14px; }

/* ------------------------------------------------------------------ CART */
.bsp-cart-topbar { display: flex; justify-content: flex-end; gap: 12px; margin: 0 0 16px; }
.bsp-cart-layout { display: grid; grid-template-columns: 1fr 320px; gap: 26px; align-items: start; }
.bsp-cart-main { min-width: 0; }
.bsp-cart-table { width: 100%; border-collapse: collapse; border: 1px solid var(--bsp-line); background: #fff; }
.bsp-cart-table thead th { background: #eef2f6; color: var(--bsp-navy-deep); font-weight: 700; font-size: 13px; text-align: left; padding: 12px 14px; border-bottom: 1px solid var(--bsp-line); }
.bsp-cart-table th.bsp-col-price, .bsp-cart-table th.bsp-col-qty, .bsp-cart-table th.bsp-col-sub,
.bsp-cart-table td.bsp-col-price, .bsp-cart-table td.bsp-col-qty, .bsp-cart-table td.bsp-col-sub { text-align: center; width: 120px; }
.bsp-cart-table td { padding: 16px 14px; border-bottom: 1px solid var(--bsp-line); vertical-align: middle; }
.bsp-cart-row td { background: #eaf3fb; }
.bsp-ci { display: flex; gap: 16px; align-items: flex-start; }
.bsp-ci__thumb img { width: 82px; height: auto; display: block; border: 1px solid var(--bsp-line); background: #fff; border-radius: 3px; }
.bsp-ci__meta { display: flex; flex-direction: column; gap: 8px; }
.bsp-ci__name { color: var(--bsp-blue); font-weight: 600; font-size: 15px; line-height: 1.35; }
.bsp-ci__name:hover { text-decoration: underline; }
.bsp-ci__remove { display: inline-flex; align-items: center; gap: 6px; color: #666 !important; font-size: 13px; }
.bsp-ci__remove:hover { color: var(--bsp-error) !important; }
.bsp-trash { width: 12px; height: 14px; border: 1px solid currentColor; border-top: 0; border-radius: 0 0 2px 2px; position: relative; display: inline-block; }
.bsp-trash::before { content: ""; position: absolute; top: -4px; left: -3px; right: -3px; height: 2px; background: currentColor; }
.bsp-trash::after { content: ""; position: absolute; top: -7px; left: 3px; width: 6px; height: 3px; border: 1px solid currentColor; border-bottom: 0; border-radius: 2px 2px 0 0; }
.bsp-cart-table .bsp-col-price, .bsp-cart-table .bsp-col-sub { font-weight: 700; color: #222; }
.bsp-cart-table .quantity .qty { width: 62px; text-align: center; border: 1px solid var(--bsp-line); border-radius: 3px; padding: 8px 6px; }
.bsp-cart-actions-row td { background: #fff; }
.bsp-cart-actions { display: flex; flex-wrap: wrap; gap: 10px; align-items: center; }
.bsp-cart-coupon-inline { display: flex; gap: 8px; margin-right: auto; }
.bsp-cart-coupon-inline input { padding: 9px 11px; border: 1px solid var(--bsp-line); border-radius: 3px; min-width: 150px; }

/* Cart summary pane */
.bsp-cart-summary { background: #f6f8fa; border: 1px solid var(--bsp-line); border-radius: 4px; padding: 18px; }
.bsp-summary-title { font-size: 18px; font-weight: 700; color: var(--bsp-navy-deep); margin: 0 0 14px; }
.bsp-summary-box { background: #fff; border: 1px solid var(--bsp-line); border-radius: 3px; padding: 4px 14px; margin-bottom: 16px; }
.bsp-summary-row { display: flex; justify-content: space-between; align-items: baseline; gap: 12px; padding: 11px 0; border-bottom: 1px solid #edf1f4; font-size: 14px; color: #333; }
.bsp-summary-row:last-child { border-bottom: 0; }
.bsp-summary-val { font-weight: 700; color: #222; text-align: right; }
.bsp-summary-ship em { color: #888; font-weight: 400; font-style: italic; }
.bsp-summary-total { font-size: 15px; }
.bsp-summary-total .bsp-summary-val { color: var(--bsp-navy-deep); font-size: 16px; }
.bsp-summary-coupon { border-top: 1px solid var(--bsp-line); padding-top: 14px; margin-bottom: 14px; }
.bsp-summary-coupon__head { font-weight: 600; color: var(--bsp-navy-deep); margin-bottom: 8px; }
.bsp-summary-coupon__body p { font-size: 13px; color: #555; margin: 0 0 8px; }
.bsp-coupon-form { display: flex; flex-direction: column; gap: 8px; }
.bsp-coupon-form input { padding: 10px 11px; border: 1px solid var(--bsp-line); border-radius: 3px; }
.bsp-summary-checkout { width: 100%; }

/* --------------------------------------------------------------- CHECKOUT */
.bsp-checkout-disclaimer { border: 1px solid var(--bsp-line); background: #fbfbfb; color: #555; font-size: 12.5px; font-style: italic; line-height: 1.6; padding: 14px 18px; border-radius: 3px; margin: 0 0 20px; }
.bsp-co-grid { display: grid; grid-template-columns: 1.05fr 0.9fr 1.05fr; gap: 20px; align-items: start; }
.bsp-co-col { min-width: 0; }
.bsp-co-box, .bsp-co-address, .bsp-co-summary { border: 1px solid var(--bsp-line); border-radius: 3px; background: #fff; margin-bottom: 16px; }
.bsp-co-box__head { background: #f0f3f6; color: #2b3a48; font-weight: 700; font-size: 12px; letter-spacing: .04em; text-transform: uppercase; padding: 11px 15px; border-bottom: 1px solid var(--bsp-line); }
.bsp-co-box__body { padding: 16px 15px; }
.bsp-co-address .bsp-co-box__body { padding-top: 6px; }

/* checkout fields — single column, tight labels */
.bsp-checkout-form .form-row { padding: 0; margin: 0 0 12px; width: 100% !important; float: none !important; }
.bsp-checkout-form .form-row label { display: block; font-weight: 600; color: #333; font-size: 13px; margin-bottom: 5px; }
.bsp-checkout-form .form-row .required { color: #e02b27; }
.bsp-checkout-form .input-text, .bsp-checkout-form select, .bsp-checkout-form .select2-selection { width: 100% !important; border: 1px solid #cfd6dd !important; border-radius: 3px !important; padding: 10px 11px !important; box-sizing: border-box; font-size: 14px; min-height: 40px; }
.bsp-checkout-form #customer_details { width: 100% !important; float: none !important; }
.bsp-checkout-form .woocommerce-billing-fields h3, .bsp-checkout-form #ship-to-different-address { display: none; }
.bsp-checkout-form .woocommerce-billing-fields__field-wrapper { display: block; }

/* shipping-method selector (middle col) */
.bsp-ship-list { list-style: none; margin: 0; padding: 0; }
.bsp-ship-list li { margin: 0 0 4px; }
.bsp-ship-list label { display: flex; align-items: center; gap: 10px; cursor: pointer; font-size: 14px; padding: 6px 2px; }
.bsp-ship-list input { margin: 0; accent-color: var(--bsp-blue); }
.bsp-ship-cost { min-width: 56px; font-weight: 700; color: #222; }
.bsp-ship-cost b { color: #222; }
.bsp-ship-name { color: #333; }
.bsp-ship-none { font-size: 13px; color: #777; margin: 0; }
.bsp-co-trust { margin: 0 0 16px; text-align: center; }
.bsp-co-trust img { max-width: 100%; height: auto; }

/* payment / coin selector (source "Pay with Crypto" pill row) */
.bsp-co-pay .payment_methods { list-style: none; margin: 0; padding: 0; border: 0 !important; }
.bsp-co-pay .wc_payment_method label { font-weight: 700; color: #2b3a48; }
.bsp-co-pay .payment_box { background: transparent !important; margin: 8px 0 0 !important; padding: 4px 0 0 !important; }
.bsp-co-pay .payment_box::before { display: none !important; }
.bsp-co-pay .payment_box p:first-child { font-size: 13px; color: #444; margin-top: 0; }
.bsp-coins { display: flex; flex-wrap: wrap; gap: 10px; margin: 10px 0 4px; }
.bsp-coin { display: inline-flex; align-items: center; gap: 8px; padding: 9px 12px; border: 1px solid #cfd6dd; border-radius: 6px; cursor: pointer; font-size: 13px; background: #fff; transition: border-color .15s ease, box-shadow .15s ease; }
.bsp-coin:hover { border-color: var(--bsp-blue); }
.bsp-coin input { accent-color: var(--bsp-blue); margin: 0; }
.bsp-coin input:checked ~ .bsp-coin-mark { box-shadow: 0 0 0 2px rgba(53,137,201,.35); }
.bsp-coin-mark { display: inline-flex; align-items: center; justify-content: center; min-width: 40px; height: 22px; padding: 0 6px; border-radius: 4px; color: #fff; font-weight: 800; font-size: 11px; letter-spacing: .02em; }
.bsp-coin-mark--btc { background: #f7931a; }
.bsp-coin-mark--usdt { background: #26a17b; }
.bsp-coin-name { font-weight: 600; color: #333; }

/* order summary column */
.bsp-co-summary .bsp-co-box__head { background: #f0f3f6; }
.bsp-summary-items__head { font-size: 13px; font-weight: 700; color: #2b3a48; padding: 12px 15px 6px; }
.bsp-summary-item { display: flex; gap: 10px; align-items: flex-start; padding: 12px 15px; border-top: 1px solid #eef1f4; }
.bsp-summary-item__thumb img { width: 46px; height: auto; border: 1px solid var(--bsp-line); border-radius: 3px; display: block; }
.bsp-summary-item__info { flex: 1; min-width: 0; display: flex; flex-direction: column; gap: 3px; }
.bsp-summary-item__name { font-size: 13px; color: var(--bsp-blue); line-height: 1.35; }
.bsp-summary-item__price { font-size: 12px; color: #333; }
.bsp-summary-item__qty { font-size: 12px; color: #666; }
.bsp-summary-item__total { font-weight: 700; color: #222; font-size: 13px; white-space: nowrap; }
.bsp-summary-totals { padding: 6px 15px 14px; border-top: 1px solid var(--bsp-line); }
.bsp-co-summary .bsp-summary-row { padding: 9px 0; border-bottom: 1px solid #eef1f4; }
.bsp-co-summary .bsp-summary-total { border-bottom: 0; font-size: 15px; }

/* newsletter + certification checkboxes */
.bsp-co-agreements { padding: 14px 15px; border-top: 1px solid var(--bsp-line); display: flex; flex-direction: column; gap: 9px; }
.bsp-co-check { display: flex; gap: 8px; align-items: flex-start; font-size: 12px; color: #444; line-height: 1.5; cursor: pointer; }
.bsp-co-check input { margin: 2px 0 0; flex: 0 0 auto; accent-color: var(--bsp-blue); }
.bsp-co-news span { color: var(--bsp-blue); font-weight: 600; }
.bsp-co-check a { color: var(--bsp-blue); }
#bsp-summary-actions { padding: 6px 15px 16px; }
#bsp-summary-actions .woocommerce-terms-and-conditions-wrapper { margin-bottom: 12px; font-size: 12px; }
#bsp-summary-actions #place_order { width: 100%; float: none; background: #f26522 !important; border-radius: 3px !important; font-size: 15px; padding: 13px 20px; }
#bsp-summary-actions #place_order:hover { background: #dd561a !important; }
.bsp-checkout-form #payment .place-order { padding: 0; }

/* login form toggle (returning customer) */
.woocommerce-checkout .woocommerce-form-login-toggle { display: none; }
.bsp-checkout-page .woocommerce-form-login { margin-bottom: 20px; border: 1px solid var(--bsp-line); border-radius: 3px; padding: 18px; background: #fff; }

/* ------------------------------------------------------------- MY ACCOUNT */
.woocommerce-account .woocommerce { display: grid; grid-template-columns: 240px 1fr; gap: 26px; align-items: start; }
.woocommerce-account .woocommerce-MyAccount-navigation { width: auto; float: none; margin: 0; }
.woocommerce-account .woocommerce-MyAccount-navigation ul { list-style: none; margin: 0 0 18px; padding: 0; border: 1px solid var(--bsp-line); border-radius: 3px; overflow: hidden; background: #fff; }
.woocommerce-account .woocommerce-MyAccount-navigation li { border-bottom: 1px solid var(--bsp-line); }
.woocommerce-account .woocommerce-MyAccount-navigation li:last-child { border-bottom: 0; }
.woocommerce-account .woocommerce-MyAccount-navigation li a { display: block; padding: 12px 16px; color: #3a4552; font-weight: 600; font-size: 14px; }
.woocommerce-account .woocommerce-MyAccount-navigation li.is-active a { color: var(--bsp-blue); box-shadow: inset 3px 0 0 var(--bsp-blue); background: #f7fafd; }
.woocommerce-account .woocommerce-MyAccount-navigation li a:hover { background: #f4f8fc; }
.woocommerce-account .woocommerce-MyAccount-content { float: none; width: auto; padding: 0; }
.bsp-account-head { background: var(--bsp-grad-blue); color: #fff; font-weight: 700; font-size: 15px; padding: 11px 15px 11px 32px; position: relative; border-radius: 3px; margin: 0 0 16px; }
.bsp-account-head::before { content: ""; position: absolute; left: 14px; top: 50%; transform: translateY(-50%); width: 0; height: 0; border-left: 6px solid #fff; border-top: 4px solid transparent; border-bottom: 4px solid transparent; }
.bsp-dash-hello { font-weight: 700; color: #222; margin: 0 0 10px; }
.bsp-dash-intro { color: #555; font-size: 14px; line-height: 1.7; margin: 0 0 20px; }
.bsp-dash-card { border: 1px solid var(--bsp-line); border-radius: 3px; }
.bsp-dash-card__head { display: flex; align-items: center; gap: 8px; background: #f5f8fb; color: var(--bsp-blue); font-weight: 700; font-size: 13px; padding: 11px 15px; border-bottom: 1px solid var(--bsp-line); }
.bsp-dash-card__ico svg { width: 16px; height: 16px; fill: var(--bsp-blue); }
.bsp-dash-card__body { padding: 18px 15px; }
.bsp-dash-contact h4 { margin: 0 0 8px; font-size: 14px; color: var(--bsp-navy-deep); }
.bsp-dash-contact p { margin: 0 0 4px; color: #444; font-size: 14px; }
.bsp-dash-links { margin-top: 8px !important; display: flex; gap: 16px; }
.bsp-dash-links a { color: var(--bsp-blue); font-size: 13px; }

/* account: address book + orders (WC default markup) */
.woocommerce-account .woocommerce-Addresses { margin-top: 6px; }
.woocommerce-account .woocommerce-Address-title h3 { font-size: 15px; color: var(--bsp-navy-deep); }
.woocommerce-account .addresses .title .edit { color: var(--bsp-blue); }
.woocommerce-account .woocommerce-orders-table thead th { background: #eef2f6; color: var(--bsp-navy-deep); }

/* account edit form */
.bsp-edit-account .bsp-acc-fieldset { border: 1px solid var(--bsp-line); border-radius: 3px; padding: 16px 18px; margin: 0 0 18px; }
.bsp-edit-account legend { color: var(--bsp-blue); font-weight: 700; font-size: 13px; padding: 0 6px; }
.bsp-edit-account .bsp-acc-row { margin: 0 0 12px; }
.bsp-edit-account label { display: block; font-weight: 600; font-size: 13px; color: #333; margin-bottom: 5px; }
.bsp-edit-account .input-text { width: 100%; border: 1px solid #cfd6dd; border-radius: 3px; padding: 10px 11px; box-sizing: border-box; }
.bsp-acc-toggle { margin: 4px 0 12px; }
.bsp-acc-toggle label { display: inline-flex; align-items: center; gap: 7px; font-weight: 400; color: #444; cursor: pointer; }
.bsp-acc-actions { display: flex; align-items: center; gap: 20px; }
.bsp-acc-back { color: var(--bsp-blue); font-size: 13px; }

/* account left-rail widgets reuse .bsp-widget from home; just spacing */
.bsp-account-widgets { display: flex; flex-direction: column; gap: 14px; }

/* ---------------------------------------------------- ADD-TO-CART POPUP */
.bsp-atc-overlay { position: fixed; inset: 0; background: rgba(20,35,55,.55); display: flex; align-items: flex-start; justify-content: center; padding: 6vh 16px; z-index: 9999; opacity: 0; transition: opacity .2s ease; overflow-y: auto; }
.bsp-atc-overlay.is-open { opacity: 1; }
.bsp-atc-modal { background: #fff; border-radius: 6px; width: 100%; max-width: 540px; padding: 30px 34px 34px; position: relative; text-align: center; transform: translateY(-12px); transition: transform .2s ease; box-shadow: 0 20px 60px rgba(0,0,0,.3); }
.bsp-atc-overlay.is-open .bsp-atc-modal { transform: translateY(0); }
.bsp-atc-close { position: absolute; top: 12px; right: 14px; background: none; border: 0; font-size: 26px; line-height: 1; color: #9aa4ad; cursor: pointer; }
.bsp-atc-close:hover { color: #555; }
.bsp-atc-title { color: var(--bsp-blue); font-size: 22px; font-weight: 700; margin: 0 0 4px; }
.bsp-atc-sub { color: #333; font-size: 15px; margin: 0 0 18px; }
.bsp-atc-body { display: flex; align-items: center; justify-content: center; gap: 40px; margin: 0 0 18px; }
.bsp-atc-media img { width: 120px; height: auto; }
.bsp-atc-qtywrap { display: flex; align-items: center; gap: 12px; }
.bsp-atc-qtylabel { font-weight: 700; color: #333; }
.bsp-atc-qty { min-width: 54px; padding: 8px 14px; border: 1px solid var(--bsp-line); border-radius: 3px; font-weight: 600; }
.bsp-atc-count { color: #333; font-size: 15px; line-height: 1.7; margin: 0 0 18px; }
.bsp-atc-count b { color: var(--bsp-blue); }
.bsp-atc-actions { display: flex; gap: 14px; justify-content: center; margin: 0 0 14px; }
.bsp-atc-actions .bsp-btn-cta { flex: 1; max-width: 210px; padding: 13px 20px; }
.bsp-atc-checkout { display: inline-block; color: var(--bsp-blue); font-size: 15px; font-weight: 600; }
.bsp-atc-checkout:hover { text-decoration: underline; }

/* --------------------------------------------------------------- WHOLESALE */
.bsp-wholesale-grid { display: grid; grid-template-columns: 1fr 400px; gap: 34px; align-items: start; margin-top: 10px; }
.bsp-wholesale-content h1, .bsp-wholesale-content h2 { color: var(--bsp-blue); }
.bsp-ws-box { border: 1px solid #bcd8ef; border-radius: 3px; background: #f2f8fd; padding: 16px 18px; margin: 0 0 16px; }
.bsp-ws-legend { display: inline-block; color: var(--bsp-blue); font-weight: 600; font-size: 13px; border: 1px solid #bcd8ef; background: #fff; border-radius: 3px; padding: 3px 10px; margin: -26px 0 12px; }
.bsp-ws-row { margin: 0 0 14px; }
.bsp-ws-row:last-child { margin-bottom: 0; }
.bsp-ws-row label { display: block; font-weight: 600; font-size: 13px; color: #333; margin-bottom: 5px; }
.bsp-ws-row .required { color: #e02b27; }
.bsp-ws-row input { width: 100%; border: 1px solid #cfd6dd; border-radius: 3px; padding: 10px 11px; box-sizing: border-box; }
.bsp-ws-captcha { display: flex; align-items: center; gap: 10px; border: 1px solid #d3d3d3; border-radius: 3px; background: #f9f9f9; padding: 12px 14px; max-width: 300px; margin: 0 0 16px; }
.bsp-ws-captcha__box { width: 24px; height: 24px; border: 2px solid #c1c1c1; border-radius: 2px; background: #fff; }
.bsp-ws-captcha__label { font-size: 14px; color: #444; margin-right: auto; }
.bsp-ws-captcha__brand { font-size: 10px; color: #9aa4ad; }
.bsp-ws-actions { display: flex; align-items: center; gap: 20px; }
.bsp-ws-back { color: var(--bsp-navy-deep); font-size: 13px; }

/* ------------------------------------------------------------- RESPONSIVE */
@media (max-width: 1024px) {
  .bsp-co-grid { grid-template-columns: 1fr; }
  .bsp-cart-layout { grid-template-columns: 1fr; }
  .bsp-wholesale-grid { grid-template-columns: 1fr; }
  .woocommerce-account .woocommerce { grid-template-columns: 1fr; }
}
@media (max-width: 600px) {
  .bsp-cart-topbar { flex-direction: column; }
  .bsp-cart-topbar a { width: 100%; }
  .bsp-cart-table thead { display: none; }
  .bsp-cart-table, .bsp-cart-table tbody, .bsp-cart-table tr, .bsp-cart-table td { display: block; width: 100% !important; box-sizing: border-box; }
  .bsp-cart-table td { text-align: left !important; border-bottom: 0; padding: 8px 14px; }
  .bsp-cart-row td:first-child { padding-top: 14px; }
  .bsp-cart-row { border-bottom: 1px solid var(--bsp-line); }
  .bsp-cart-table .bsp-col-price::before { content: "Price: "; font-weight: 700; }
  .bsp-cart-table .bsp-col-sub::before { content: "Subtotal: "; font-weight: 700; }
  .bsp-atc-body { gap: 20px; }
  .bsp-atc-actions { flex-direction: column; }
  .bsp-atc-modal { padding: 26px 20px 28px; }
}

/* ==========================================================================
   12b. COMMERCE FLOW v2 — post-verification fixes
   ========================================================================== */

/* Account layout: nav (top-left) + widgets (below-left) + content (right, spanning). */
.woocommerce-account .woocommerce { display: grid; grid-template-columns: 240px minmax(0,1fr); column-gap: 26px; align-items: start; }
.woocommerce-account .woocommerce-MyAccount-navigation { grid-column: 1; grid-row: 1; width: auto; float: none; margin: 0; }
.woocommerce-account .bsp-account-widgets { grid-column: 1; grid-row: 2; margin-top: 16px; }
.woocommerce-account .woocommerce-MyAccount-content { grid-column: 2; grid-row: 1 / span 2; width: auto; float: none; padding: 0; }
@media (max-width: 1024px) {
  .woocommerce-account .woocommerce { grid-template-columns: 1fr; }
  .woocommerce-account .woocommerce-MyAccount-navigation { grid-column: 1; grid-row: 1; }
  .woocommerce-account .woocommerce-MyAccount-content { grid-column: 1; grid-row: 2; }
  .woocommerce-account .bsp-account-widgets { grid-column: 1; grid-row: 3; }
}

/* Shipping-method rows: force the cost/name to sit apart. */
.bsp-ship-list li label { display: flex !important; align-items: center; gap: 14px; }
.bsp-ship-cost { min-width: 58px; margin-right: 4px; }

/* Hide WooCommerce's default top coupon toggle on checkout (source has none;
   discounts live in the order summary). */
.woocommerce-checkout .checkout_coupon,
.woocommerce-checkout .woocommerce-form-coupon-toggle { display: none !important; }

/* Add-to-cart popup: clearer gap between Continue / View Cart. */
.bsp-atc-actions { gap: 16px; }
.bsp-atc-actions .bsp-btn-cta { flex: 0 1 190px; }

/* ==========================================================================
   12c. Account: scope dashboard grid to LOGGED-IN only; style login/register
   (the logged-out my-account page uses #customer_login, not the nav layout)
   ========================================================================== */

/* Reset: the 2-col dashboard grid must NOT apply to the logged-out login page. */
.woocommerce-account .woocommerce { display: block; }

body.logged-in.woocommerce-account .woocommerce {
  display: grid;
  grid-template-columns: 240px minmax(0,1fr);
  column-gap: 26px;
  align-items: start;
}

/* Logged-out: Login | Register side by side (source layout). */
.woocommerce-account:not(.logged-in) #customer_login.col2-set,
.woocommerce-account:not(.logged-in) #customer_login.u-columns {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 28px;
  max-width: 860px;
  margin: 6px 0 0;
}
.woocommerce-account #customer_login .u-column1,
.woocommerce-account #customer_login .u-column2 { width: auto; float: none; margin: 0; }
.woocommerce-account #customer_login h2 {
  color: var(--bsp-navy-deep); font-size: 20px; font-weight: 700; margin: 0 0 12px;
}
.woocommerce-account form.login,
.woocommerce-account form.register {
  border: 1px solid var(--bsp-line); border-radius: 3px; padding: 22px 22px 24px; margin: 0; background: #fff;
}
.woocommerce-account form.login .form-row,
.woocommerce-account form.register .form-row { margin: 0 0 14px; }
.woocommerce-account #customer_login label { display: block; font-weight: 600; font-size: 13px; color: #333; margin-bottom: 5px; }
.woocommerce-account #customer_login .woocommerce-form__label-for-checkbox { display: inline-flex; align-items: center; gap: 7px; font-weight: 400; }
.woocommerce-account #customer_login .input-text {
  width: 100%; border: 1px solid #cfd6dd; border-radius: 3px; padding: 10px 11px; box-sizing: border-box; min-height: 40px;
}
.woocommerce-account #customer_login .woocommerce-form-login__submit,
.woocommerce-account #customer_login .woocommerce-form-register__submit {
  background: #f26522 !important; color: #fff !important; border: 0; border-radius: 3px; font-weight: 700; padding: 11px 24px; cursor: pointer;
}
.woocommerce-account #customer_login .woocommerce-form-login__submit:hover,
.woocommerce-account #customer_login .woocommerce-form-register__submit:hover { background: #dd561a !important; }
.woocommerce-account #customer_login .lost_password { margin-top: 12px; }
.woocommerce-account #customer_login .lost_password a { color: var(--bsp-blue); font-size: 13px; }
.woocommerce-account #customer_login .woocommerce-privacy-policy-text p { font-size: 12px; color: #666; line-height: 1.6; }

@media (max-width: 780px) {
  .woocommerce-account:not(.logged-in) #customer_login.col2-set,
  .woocommerce-account:not(.logged-in) #customer_login.u-columns { grid-template-columns: 1fr; }
}

/* 12d. Force Login | Register side-by-side (override any grid placement). */
.woocommerce-account:not(.logged-in) #customer_login.col2-set,
.woocommerce-account:not(.logged-in) #customer_login.u-columns {
  display: flex !important;
  flex-wrap: wrap;
  gap: 28px;
  max-width: 900px;
  margin: 6px 0 0;
}
.woocommerce-account:not(.logged-in) #customer_login .u-column1,
.woocommerce-account:not(.logged-in) #customer_login .u-column2,
.woocommerce-account:not(.logged-in) #customer_login .col-1,
.woocommerce-account:not(.logged-in) #customer_login .col-2 {
  flex: 1 1 300px !important;
  width: auto !important;
  max-width: none !important;
  margin: 0 !important;
  float: none !important;
  grid-column: auto !important;
  grid-row: auto !important;
}
@media (max-width: 780px) {
  .woocommerce-account:not(.logged-in) #customer_login.col2-set,
  .woocommerce-account:not(.logged-in) #customer_login.u-columns { flex-direction: column; }
}

/* 12e. Editable homepage SEO zone: grey box grows with content, contains the
   floated vial image (clearfix) so added copy never overlaps. */
.bsp-info::after { content: ""; display: block; clear: both; }
.bsp-info__content { min-width: 0; }
.bsp-info__content > *:first-child { margin-top: 0; }
.bsp-info__content ul, .bsp-info__content ol { color: var(--bsp-ink); margin: 0 0 1em; padding-left: 22px; max-width: 70ch; }
.bsp-info__content li { margin: 0 0 6px; }
.bsp-info__content a { color: var(--bsp-blue); }
.bsp-info__content img { max-width: 100%; height: auto; }
