.bvpd{
  --bv-navy:#0E2740;
  --bv-navy-2:#173B5A;
  --bv-blue:#1568D3;
  --bv-cyan:#22B8D6;
  --bv-green:#17915F;
  --bv-text:#24384B;
  --bv-muted:#687A8C;
  --bv-border:#DCE5ED;
  --bv-border-soft:#E9EEF3;
  --bv-soft:#F7F9FB;
  --bv-card:#FFFFFF;
  --bvpd-gap:16px;
  width:100%;
  margin:0;
  padding:0;
  background:transparent;
  border:0;
  box-sizing:border-box;
  font-family:inherit;
}
.bvpd *,.bvpd *::before,.bvpd *::after{box-sizing:border-box;}

/* Header */
.bvpd-head{display:flex;align-items:flex-end;justify-content:space-between;gap:18px;margin:0 0 17px;}
.bvpd-head-copy{min-width:0;}
.bvpd-kicker{display:inline-flex;align-items:center;gap:7px;margin:0 0 6px;color:var(--bv-blue);font-size:10.5px;line-height:1.2;font-weight:750;letter-spacing:.14em;text-transform:uppercase;}
.bvpd-kicker::before{content:"";width:6px;height:6px;flex:0 0 6px;border-radius:50%;background:var(--bv-blue);}
.bvpd-title{margin:0 0 5px;color:var(--bv-navy);font-size:26px;line-height:1.13;font-weight:700;letter-spacing:-.03em;}
.bvpd-intro{max-width:760px;margin:0;color:#51677C;font-size:14.5px;line-height:1.5;font-weight:400;}

/* Controls */
.bvpd-controls{display:flex;align-items:center;gap:7px;flex:0 0 auto;padding-bottom:1px;}
.bvpd-count{display:inline-flex;align-items:center;height:32px;padding:0 11px;border:1px solid var(--bv-border);border-radius:999px;background:#fff;color:#708496;font-size:10.5px;line-height:1;font-weight:700;white-space:nowrap;box-shadow:0 2px 8px rgba(14,39,64,.025);}
.bvpd-nav{display:inline-flex;align-items:center;justify-content:center;width:34px;height:34px;padding:0;background:#fff;border:1px solid var(--bv-border);border-radius:999px;color:#708496;cursor:pointer;box-shadow:0 3px 10px rgba(14,39,64,.035);transition:background-color .16s ease,border-color .16s ease,color .16s ease,transform .16s ease,opacity .16s ease;}
.bvpd-nav svg{width:14px;height:14px;fill:none;stroke:currentColor;stroke-width:1.9;stroke-linecap:round;stroke-linejoin:round;}
.bvpd-nav[disabled]{opacity:.34;cursor:default;transform:none!important;}
.bvpd-nav:focus-visible{outline:2px solid rgba(21,104,211,.65);outline-offset:2px;}
@media (hover:hover) and (pointer:fine){.bvpd-nav:not([disabled]):hover{background:#F6F9FC;border-color:#BFCFDD;color:var(--bv-blue);transform:translateY(-1px);}}

/* Collection layouts */
.bvpd-viewport{position:relative;width:100%;overflow:hidden;}
.bvpd-track{margin:0;padding:0;list-style:none;}
.bvpd--carousel .bvpd-track{display:grid;grid-auto-flow:column;grid-auto-columns:calc((100% - (var(--bvpd-carousel-desktop) - 1)*var(--bvpd-gap))/var(--bvpd-carousel-desktop));gap:var(--bvpd-gap);overflow-x:auto;overflow-y:hidden;padding:2px 1px 10px;scroll-snap-type:x mandatory;scroll-behavior:smooth;scroll-padding-inline:1px;overscroll-behavior-inline:contain;-webkit-overflow-scrolling:touch;scrollbar-width:none;}
.bvpd--carousel .bvpd-track::-webkit-scrollbar{display:none;}
.bvpd--grid .bvpd-viewport{overflow:visible;}
.bvpd--grid .bvpd-track{display:grid;grid-template-columns:repeat(var(--bvpd-grid-desktop),minmax(0,1fr));gap:var(--bvpd-gap);}

/* Card */
.bvpd-card{position:relative;display:flex;flex-direction:column;min-width:0;min-height:100%;overflow:hidden;background:var(--bv-card);border:1px solid #DDE6ED;border-radius:16px;text-decoration:none!important;box-shadow:0 5px 15px rgba(14,39,64,.03);transition:transform .18s ease,box-shadow .18s ease,border-color .18s ease;}
.bvpd--carousel .bvpd-card{scroll-snap-align:start;scroll-snap-stop:always;}
.bvpd-card:focus-within{border-color:#BFD2E1;box-shadow:0 0 0 3px rgba(21,104,211,.08),0 8px 22px rgba(14,39,64,.06);}
@media (hover:hover) and (pointer:fine){
  .bvpd-card:hover{transform:translateY(-2px);border-color:#C8D8E4;box-shadow:0 11px 24px rgba(14,39,64,.075);}
  .bvpd-card:hover .bvpd-view{background:var(--bv-navy);border-color:var(--bv-navy);color:#fff!important;}
  .bvpd-card:hover .bvpd-view svg{transform:translateX(2px);}
}

/* Media: deliberately shorter than a square card to remove dead space. */
.bvpd-media{position:relative;display:flex;align-items:center;justify-content:center;width:100%;aspect-ratio:6 / 5;overflow:hidden;background:#F6F8FA;border-bottom:1px solid #EEF2F5;}
.bvpd-image-link{display:block;width:100%;height:100%;overflow:hidden;}
.bvpd-image{display:block;width:100%;height:100%;max-width:none!important;max-height:none!important;object-fit:cover;object-position:50% 61%;padding:0!important;margin:0!important;border:0!important;border-radius:0!important;transform:scale(1.005);transition:transform .28s ease;}
@media (hover:hover) and (pointer:fine){.bvpd-card:hover .bvpd-image{transform:scale(1.02);}}

.bvpd-stock{position:absolute;top:10px;right:10px;display:inline-flex;align-items:center;gap:5px;padding:6px 9px;background:rgba(248,251,249,.96);border:1px solid #D4ECDD;border-radius:999px;color:#557466;font-size:9.5px;line-height:1;font-weight:700;white-space:nowrap;z-index:6;backdrop-filter:blur(6px);box-shadow:0 2px 8px rgba(14,39,64,.025);}
.bvpd-stock::before{content:"";width:6px;height:6px;flex:0 0 6px;border-radius:50%;background:#5AA379;}
.bvpd-stock.is-low{background:#FFF9EE;border-color:#F0D9A8;color:#7A6330;}.bvpd-stock.is-low::before{background:#D49B20;box-shadow:0 0 0 3px rgba(212,155,32,.10);}
.bvpd-stock.is-out{background:#FCF8F8;border-color:#EBCFCE;color:#845555;}.bvpd-stock.is-out::before{background:#B45858;box-shadow:none;}

/* Release Lots COA badge integration — self-contained and resilient.
   Release Lots remains the data/action source of truth. Product Display owns
   the small card presentation so the badge cannot disappear when another
   plugin/theme stylesheet is absent, delayed, or renamed. JS normalizes the
   renderer's existing clickable element into .bvpd-coa-bubble without changing
   its href, onclick attributes, or Release Lots classes. */
.bvpd-coa-slot{
  position:absolute;
  right:7px;
  left:auto;
  bottom:12px;
  z-index:9;
  display:flex;
  align-items:center;
  justify-content:flex-end;
  width:max-content;
  max-width:calc(100% - 24px);
  transform:none;
  pointer-events:auto;
}

/* Hide only an empty renderer wrapper; a populated wrapper remains visible. */
.bvpd-coa-slot:empty{display:none;}

.bvpd-coa-slot .bvpd-coa-bubble{
  position:static!important;
  inset:auto!important;
  transform:none!important;
  display:inline-flex!important;
  flex-direction:row!important;
  align-items:center!important;
  justify-content:center!important;
  gap:6px!important;
  width:auto!important;
  max-width:100%!important;
  min-width:0!important;
  min-height:32px!important;
  margin:0!important;
  padding:4px 10px!important;
  border:2px solid #1475E6!important;
  border-radius:999px!important;
  background:#FFFFFF!important;
  color:#17324D!important;
  box-shadow:0 5px 14px rgba(14,39,64,.12)!important;
  text-decoration:none!important;
  white-space:nowrap!important;
  line-height:1!important;
  font-family:inherit!important;
  font-size:11px!important;
  font-weight:700!important;
  letter-spacing:0!important;
  opacity:1!important;
  visibility:visible!important;
  overflow:hidden!important;
  isolation:isolate;
  -webkit-backdrop-filter:none!important;
  backdrop-filter:none!important;
}

.bvpd-coa-slot .bvpd-coa-bubble:hover,
.bvpd-coa-slot .bvpd-coa-bubble:focus-visible{
  border-color:#0D64C9!important;
  background:#FFFFFF!important;
  color:#17324D!important;
  box-shadow:0 7px 18px rgba(14,39,64,.16)!important;
  text-decoration:none!important;
}

.bvpd-coa-slot .bvpd-coa-bubble:focus-visible{
  outline:3px solid rgba(20,117,230,.20)!important;
  outline-offset:2px!important;
}

.bvpd-coa-slot .bvpd-coa-bubble > *{
  position:static!important;
  inset:auto!important;
  transform:none!important;
  display:inline!important;
  width:auto!important;
  height:auto!important;
  max-width:none!important;
  margin:0!important;
  padding:0!important;
  border:0!important;
  background:transparent!important;
  box-shadow:none!important;
  color:inherit!important;
  font:inherit!important;
  line-height:1!important;
  text-decoration:none!important;
  opacity:1!important;
  visibility:visible!important;
}

.bvpd-coa-slot .bvpd-coa-check{
  color:#18A867!important;
  font-size:16px!important;
  font-weight:900!important;
  line-height:.9!important;
}
.bvpd-coa-slot .bvpd-coa-purity{
  color:#132F4C!important;
  font-size:11.5px!important;
  font-weight:800!important;
  letter-spacing:-.01em!important;
}
.bvpd-coa-slot .bvpd-coa-label{
  color:#3E566B!important;
  font-size:11px!important;
  font-weight:650!important;
  text-decoration:underline!important;
  text-decoration-thickness:1px!important;
  text-underline-offset:2px!important;
}
.bvpd-coa-slot .bvpd-coa-arrow{
  color:#5B748A!important;
  font-size:14px!important;
  font-weight:700!important;
  line-height:.8!important;
}

/* Before JS runs, still render whatever Release Lots produced as a visible pill.
   This also covers browsers with JS disabled. */
.bvpd-coa-slot > a,
.bvpd-coa-slot > button,
.bvpd-coa-slot > [role="button"],
.bvpd-coa-slot > div > a,
.bvpd-coa-slot > span > a{
  position:static!important;
  display:inline-flex!important;
  align-items:center!important;
  justify-content:center!important;
  gap:6px!important;
  min-height:32px!important;
  margin:0!important;
  padding:4px 10px!important;
  border:2px solid #1475E6!important;
  border-radius:999px!important;
  background:#FFFFFF!important;
  color:#17324D!important;
  box-shadow:0 5px 14px rgba(14,39,64,.12)!important;
  white-space:nowrap!important;
  text-decoration:none!important;
  font-family:inherit!important;
  font-size:11px!important;
  font-weight:700!important;
  line-height:1!important;
  opacity:1!important;
  visibility:visible!important;
}

/* Card body */
.bvpd-body{display:flex;flex-direction:column;flex:1;min-height:0;padding:10px 12px 10px;}
.bvpd-meta{display:flex;align-items:center;justify-content:space-between;gap:8px;min-height:14px;margin:0 0 5px;}
.bvpd-category{display:block;flex:1 1 auto;min-width:0;overflow:hidden;text-overflow:ellipsis;color:#6E8294;font-size:8.5px;line-height:1.1;font-weight:750;letter-spacing:.085em;text-transform:uppercase;white-space:nowrap;}
.bvpd-category::before{content:"";display:inline-block;width:5px;height:5px;margin:0 5px 1px 0;border-radius:50%;background:var(--bv-cyan);vertical-align:middle;}
.bvpd-catalog{flex:0 0 auto;min-width:max-content;max-width:48%;overflow:hidden;text-overflow:ellipsis;color:#8193A3;font-size:9px;line-height:1.1;font-weight:650;white-space:nowrap;}

/* Product title remains in the information panel; the vial artwork itself
   carries the visual product identity inside the media area. */
.bvpd-name{display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden;min-height:1.22em;margin:0 0 10px;color:var(--bv-navy);font-size:15px;line-height:1.22;font-weight:700;letter-spacing:-.012em;}
.bvpd-name a{color:inherit!important;text-decoration:none!important;}
.bvpd-name a:focus-visible{outline:2px solid rgba(21,104,211,.55);outline-offset:2px;border-radius:3px;}

/* Vial content */
.bvpd-strength-block{
  display:flex;
  align-items:center;
  gap:8px;
  min-height:24px;
  margin:0;
}
.bvpd-detail-label{
  display:flex;
  flex:0 0 auto;
  flex-direction:column;
  justify-content:center;
  gap:1px;
  margin:0;
  color:#8797A5;
  font-size:7.8px;
  line-height:.95;
  font-weight:750;
  letter-spacing:.075em;
  text-transform:uppercase;
}
.bvpd-detail-label span{display:block;}
.bvpd-chips{
  display:flex;
  flex:1 1 auto;
  flex-wrap:wrap;
  align-items:center;
  gap:4px;
  min-width:0;
  min-height:22px;
}
.bvpd-chip{display:inline-flex;align-items:center;min-height:22px;padding:0 7px;background:#F5F8FB;border:1px solid #E1E9EF;border-radius:999px;color:#536B7E;font-size:9.5px;line-height:1;font-weight:700;white-space:nowrap;}
.bvpd-chip--link{
  cursor:pointer;
  text-decoration:none!important;
  transition:background-color .15s ease,border-color .15s ease,color .15s ease,box-shadow .15s ease,transform .15s ease;
}
.bvpd-chip--link:visited{color:#536B7E;}
.bvpd-chip--link:focus-visible{
  outline:2px solid rgba(21,104,211,.58);
  outline-offset:2px;
}
@media (hover:hover) and (pointer:fine){
  .bvpd-chip--link:hover{
    border-color:#B9D1E3;
    background:#EDF5FC;
    color:var(--bv-blue)!important;
    box-shadow:0 2px 7px rgba(14,39,64,.055);
    transform:translateY(-1px);
  }
}
.bvpd-chip--muted{color:#758897;font-weight:650;}

/* Footer */
.bvpd-footer{display:grid;grid-template-columns:minmax(0,1fr) auto;align-items:center;gap:9px;margin-top:8px;padding-top:8px;border-top:1px solid #E9EEF2;}
.bvpd-price-wrap{min-width:0;}
.bvpd-price{display:flex;align-items:baseline;flex-wrap:wrap;gap:3px 5px;min-width:0;color:var(--bv-navy);font-size:16px;line-height:1.08;font-weight:750;letter-spacing:-.01em;}
.bvpd-price .amount,.bvpd-current-price{white-space:nowrap;}
.bvpd-price del{color:#94A3AF;font-size:10.5px;font-weight:600;opacity:1;}
.bvpd-price ins{background:transparent;text-decoration:none;}
.bvpd-price-prefix{color:#718497;font-size:8.5px;line-height:1;font-weight:750;text-transform:uppercase;letter-spacing:.06em;}
.bvpd-view{display:inline-flex;align-items:center;justify-content:center;gap:6px;min-width:112px;min-height:34px;padding:0 11px;background:#F5F8FB;border:1px solid #D8E4ED;border-radius:8px;color:var(--bv-blue)!important;font-size:10.5px;line-height:1;font-weight:750;text-decoration:none!important;white-space:nowrap;transition:background-color .18s ease,border-color .18s ease,color .18s ease;}
.bvpd-view-label--short{display:none;}

.bvpd-view svg{width:12px;height:12px;fill:none;stroke:currentColor;stroke-width:1.9;stroke-linecap:round;stroke-linejoin:round;transition:transform .18s ease;}
.bvpd-view:focus-visible{outline:2px solid rgba(21,104,211,.65);outline-offset:2px;}

/* Tablet */
@media (max-width:1180px) and (min-width:768px){
  .bvpd--carousel .bvpd-track{grid-auto-columns:calc((100% - (var(--bvpd-carousel-tablet) - 1)*14px)/var(--bvpd-carousel-tablet));gap:14px;}
  .bvpd--grid .bvpd-track{grid-template-columns:repeat(var(--bvpd-grid-tablet),minmax(0,1fr));gap:14px;}
  .bvpd-media{aspect-ratio:6 / 5;}
  .bvpd-image{transform:scale(1.00);object-position:50% 61%;}
  .bvpd-coa-slot{right:7px;left:auto;bottom:10px;max-width:calc(100% - 14px);}
  .bvpd-coa-slot .bvpd-coa-bubble{min-height:30px!important;padding:4px 8px!important;gap:5px!important;font-size:9.75px!important;}
  .bvpd-coa-slot .bvpd-coa-check{font-size:15px!important;}
  .bvpd-coa-slot .bvpd-coa-purity{font-size:10.5px!important;}
  .bvpd-coa-slot .bvpd-coa-label{font-size:10px!important;}
  .bvpd-coa-slot .bvpd-coa-arrow{font-size:13px!important;}
}
@media (max-width:900px){.bvpd-count{display:none;}}

/* Mobile */
@media (max-width:767px){
  .bvpd-head{display:grid;grid-template-columns:minmax(0,1fr) auto;align-items:center;gap:6px 10px;margin-bottom:14px;}
  .bvpd-head-copy{display:contents;}
  .bvpd-kicker{grid-column:1;grid-row:1;margin-bottom:0;font-size:10px;}
  .bvpd-controls{grid-column:2;grid-row:1;justify-self:end;gap:6px;padding-top:0;}
  .bvpd-title{grid-column:1/-1;grid-row:2;margin-top:2px;font-size:22px;}
  .bvpd-intro{grid-column:1/-1;grid-row:3;font-size:13.5px;line-height:1.45;}
  .bvpd-nav{width:34px;height:34px;}
  .bvpd--carousel .bvpd-track{grid-auto-columns:min(var(--bvpd-carousel-mobile-vw),330px);gap:12px;padding:2px 12vw 8px 1px;scroll-padding-left:1px;}
  .bvpd--grid .bvpd-track{grid-template-columns:repeat(var(--bvpd-grid-mobile),minmax(0,1fr));gap:12px;}
  .bvpd-card{border-radius:14px;}
  .bvpd-media{aspect-ratio:6 / 5;}
  .bvpd-image{transform:scale(1.00);object-position:50% 61%;}
  .bvpd-body{padding:10px 11px 10px;}
  .bvpd-stock{top:8px;right:8px;padding:5px 8px;font-size:9px;}
  .bvpd-coa-slot{right:8px;left:auto;bottom:10px;max-width:calc(100% - 16px);}
  .bvpd-coa-slot .bvpd-coa-bubble{min-height:30px!important;padding:4px 8px!important;gap:5px!important;font-size:9.75px!important;}
  .bvpd-coa-slot .bvpd-coa-check{font-size:15px!important;}
  .bvpd-coa-slot .bvpd-coa-purity{font-size:10.5px!important;}
  .bvpd-coa-slot .bvpd-coa-label{font-size:10px!important;}
  .bvpd-coa-slot .bvpd-coa-arrow{font-size:13px!important;} 
  .bvpd-category{font-size:8px;}
  .bvpd-catalog{font-size:8.5px;}
  .bvpd-name{margin-bottom:10px;font-size:15px;line-height:1.22;}
  .bvpd-meta{margin-bottom:4px;}
  .bvpd-strength-block{gap:7px;min-height:23px;margin:0;}
  .bvpd-detail-label{font-size:7.5px;line-height:.95;}
  .bvpd-chip{min-height:24px;padding:0 8px;font-size:9.25px;}
  .bvpd-footer{gap:8px;margin-top:7px;padding-top:8px;}
  .bvpd-price{font-size:15px;}
  .bvpd-view{min-width:112px;min-height:33px;padding:0 10px;font-size:10px;}
}

/* Preserve a usable 2-column catalog on small phones unless the admin selected 1. */
@media (max-width:390px){
  .bvpd--grid .bvpd-strength-block{align-items:flex-start;gap:6px;}
  .bvpd--grid .bvpd-detail-label{padding-top:4px;font-size:7px;}
  .bvpd--carousel .bvpd-track{grid-auto-columns:min(86vw,320px);padding-right:10vw;}
  .bvpd-title{font-size:21px;}
  .bvpd--grid .bvpd-card{border-radius:12px;}
  .bvpd--grid .bvpd-body{padding:9px;}
  .bvpd--grid .bvpd-meta{gap:4px;}
  .bvpd--grid .bvpd-name{font-size:14px;}
  .bvpd--grid .bvpd-footer{grid-template-columns:1fr;align-items:stretch;}
  .bvpd--grid .bvpd-view{width:100%;}
}

@media (prefers-reduced-motion:reduce){
  .bvpd-card,.bvpd-image,.bvpd-view,.bvpd-view svg,.bvpd-nav{transition:none!important;}
  .bvpd--carousel .bvpd-track{scroll-behavior:auto;}
}


/* ============================================================
   RESEARCH CATALOG
   ============================================================ */
.bvpd-research-catalog{--bvpd-catalog-gap:16px;}
.bvpd-catalog-hero{margin:0 0 18px;}
.bvpd-catalog-title{margin:0 0 7px;color:var(--bv-navy);font-size:36px;line-height:1.08;font-weight:750;letter-spacing:-.035em;}
.bvpd-catalog-intro{max-width:760px;margin:0;color:#536A7F;font-size:15px;line-height:1.55;}
.bvpd-catalog-tools{margin:0 0 18px;}
.bvpd-catalog-search{position:relative;display:grid;grid-template-columns:auto minmax(0,1fr) auto auto;align-items:center;min-height:52px;margin:0 0 10px;overflow:hidden;border:1px solid #D6E2EB;border-radius:14px;background:#fff;box-shadow:0 5px 16px rgba(14,39,64,.04);}
.bvpd-search-icon{display:flex;align-items:center;justify-content:center;width:48px;color:#71869A;}
.bvpd-search-icon svg,.bvpd-empty-icon svg{width:19px;height:19px;fill:none;stroke:currentColor;stroke-width:1.8;stroke-linecap:round;}
.bvpd-search-input{width:100%;min-width:0;height:50px;padding:0 8px 0 0;border:0!important;outline:0!important;background:transparent!important;box-shadow:none!important;color:var(--bv-navy)!important;font:inherit;font-size:14px!important;}
.bvpd-search-input::placeholder{color:#8798A7;}
.bvpd-search-input::-webkit-search-cancel-button{-webkit-appearance:none;appearance:none;display:none;}
.bvpd-search-clear{margin-right:4px;padding:7px 9px;border-radius:8px;color:#6A7E90!important;font-size:11px;font-weight:700;text-decoration:none!important;}
.bvpd-search-clear:hover{background:#F4F7FA;color:var(--bv-blue)!important;}
.bvpd-search-submit{align-self:stretch;min-width:92px;padding:0 18px;border:0;border-left:1px solid #DCE6EE;background:#0E3152;color:#fff;font:inherit;font-size:12px;font-weight:750;cursor:pointer;}
.bvpd-search-submit:hover{background:#12446F;}
.bvpd-search-submit:focus-visible,.bvpd-search-clear:focus-visible,.bvpd-category-filter:focus-visible,.bvpd-pagination a:focus-visible{outline:2px solid rgba(21,104,211,.62);outline-offset:2px;}
.bvpd-category-row{display:flex;flex-wrap:wrap;gap:7px;margin:0 0 10px;}
.bvpd-category-filter{display:inline-flex;align-items:center;justify-content:center;min-height:34px;padding:0 13px;border:1px solid #D8E4ED;border-radius:999px;background:#fff;color:#5E7488!important;font-size:10.5px;line-height:1;font-weight:750;text-decoration:none!important;transition:background-color .15s ease,border-color .15s ease,color .15s ease,transform .15s ease;}
.bvpd-category-filter:hover{border-color:#BDD0DF;color:var(--bv-blue)!important;transform:translateY(-1px);}
.bvpd-category-filter.is-active{border-color:#176DD3;background:#EAF3FF;color:#0C5FBE!important;box-shadow:inset 0 0 0 1px rgba(23,109,211,.08);}
.bvpd-catalog-status{display:flex;align-items:center;justify-content:space-between;gap:14px;min-height:38px;padding-top:9px;border-top:1px solid #E5ECF2;}
.bvpd-results-count{display:flex;align-items:baseline;gap:5px;color:#6B7F91;font-size:11px;font-weight:650;}
.bvpd-results-count strong{color:var(--bv-navy);font-size:15px;font-weight:800;}
.bvpd-results-count small{margin-left:5px;color:#8798A6;font-size:10px;font-weight:650;}
.bvpd-sort-form{display:flex;align-items:center;gap:8px;}
.bvpd-sort-form label{color:#74889A;font-size:10px;font-weight:750;letter-spacing:.06em;text-transform:uppercase;}
.bvpd-catalog-sort{min-height:34px;padding:0 31px 0 11px;border:1px solid #D8E4ED;border-radius:9px;background:#fff;color:#40586E;font:inherit;font-size:11px;font-weight:700;}
.bvpd-catalog-sort:focus{border-color:#99B9D4;outline:0;box-shadow:0 0 0 3px rgba(21,104,211,.08);}
.bvpd-catalog-viewport{overflow:visible;}
.bvpd-catalog-track{display:grid!important;grid-template-columns:repeat(var(--bvpd-grid-desktop),minmax(0,1fr))!important;grid-auto-flow:row!important;gap:var(--bvpd-catalog-gap)!important;overflow:visible!important;}
.bvpd-pagination{display:flex;align-items:center;justify-content:center;flex-wrap:wrap;gap:6px;margin:24px 0 0;}
.bvpd-pagination .page-numbers{display:inline-flex;align-items:center;justify-content:center;min-width:36px;height:36px;padding:0 10px;border:1px solid #D8E4ED;border-radius:9px;background:#fff;color:#60768A!important;font-size:11px;font-weight:750;text-decoration:none!important;}
.bvpd-pagination .page-numbers.current{border-color:#176DD3;background:#EAF3FF;color:#0C5FBE!important;}
.bvpd-pagination a.page-numbers:hover{border-color:#B9CDDC;color:var(--bv-blue)!important;}
.bvpd-empty-state{display:flex;flex-direction:column;align-items:center;justify-content:center;min-height:280px;padding:44px 24px;border:1px solid #DCE6ED;border-radius:16px;background:#FAFCFD;text-align:center;}
.bvpd-empty-icon{display:flex;align-items:center;justify-content:center;width:48px;height:48px;margin-bottom:14px;border:1px solid #D6E3EC;border-radius:50%;background:#fff;color:#648097;}
.bvpd-empty-state h3{margin:0 0 6px;color:var(--bv-navy);font-size:18px;font-weight:750;}
.bvpd-empty-state p{margin:0 0 15px;color:#6A8093;font-size:13px;}
.bvpd-empty-reset{display:inline-flex;align-items:center;min-height:36px;padding:0 14px;border:1px solid #D3E0EA;border-radius:9px;background:#fff;color:var(--bv-blue)!important;font-size:11px;font-weight:750;text-decoration:none!important;}

@media (max-width:1180px) and (min-width:768px){
  .bvpd-catalog-title{font-size:32px;}
  .bvpd-catalog-track{grid-template-columns:repeat(var(--bvpd-grid-tablet),minmax(0,1fr))!important;gap:14px!important;}
}

@media (max-width:767px){
  .bvpd-catalog-hero{margin-bottom:14px;}
  .bvpd-catalog-title{font-size:29px;}
  .bvpd-catalog-intro{font-size:13.5px;line-height:1.5;}
  .bvpd-catalog-tools{margin-bottom:14px;}
  .bvpd-catalog-search{grid-template-columns:40px minmax(0,1fr) auto auto;min-height:48px;margin-bottom:9px;border-radius:12px;}
  .bvpd-search-icon{width:40px;}
  .bvpd-search-input{height:46px;font-size:13px!important;}
  .bvpd-search-submit{grid-column:auto;align-self:stretch;min-width:82px;min-height:46px;padding:0 13px;border-top:0;border-left:1px solid #DCE6EE;font-size:10.5px;}
  .bvpd-search-clear{margin-right:2px;padding-left:6px;padding-right:6px;}
  .bvpd-category-row{flex-wrap:nowrap;gap:6px;margin-right:-14px;margin-bottom:9px;padding-right:14px;overflow-x:auto;scrollbar-width:none;-webkit-overflow-scrolling:touch;}
  .bvpd-category-row::-webkit-scrollbar{display:none;}
  .bvpd-category-filter{flex:0 0 auto;min-height:32px;padding:0 12px;font-size:10px;}
  .bvpd-catalog-status{align-items:flex-end;padding-top:8px;}
  .bvpd-results-count{flex-wrap:wrap;gap:3px 5px;}
  .bvpd-results-count small{flex-basis:100%;margin-left:0;}
  .bvpd-sort-form{gap:6px;}
  .bvpd-sort-form label{display:none;}
  .bvpd-catalog-sort{max-width:152px;min-height:32px;font-size:10px;}
  .bvpd-catalog-track{grid-template-columns:repeat(var(--bvpd-grid-mobile),minmax(0,1fr))!important;gap:12px!important;}
  .bvpd-pagination{margin-top:18px;}
}

@media (max-width:390px){
  .bvpd-research-catalog .bvpd-catalog-search{grid-template-columns:36px minmax(0,1fr) auto;}
  .bvpd-research-catalog .bvpd-search-icon{width:36px;}
  .bvpd-research-catalog .bvpd-search-clear{display:none;}
  .bvpd-research-catalog .bvpd-search-submit{min-width:72px;padding:0 10px;font-size:10px;}
  .bvpd-research-catalog .bvpd-search-input{font-size:12px!important;}
}


/* ============================================================
   v2.1.5 — Mobile card proportion fixes
   ============================================================ */
@media (max-width:767px){
  /* Smaller COA pill so it supports the vial instead of dominating it. */
  .bvpd-coa-slot{
    right:7px;
    bottom:9px;
    max-width:calc(100% - 14px);
  }
  .bvpd-coa-slot .bvpd-coa-bubble{
    position:relative!important;
    min-height:27px!important;
    padding:3px 6px!important;
    gap:4px!important;
    font-size:9px!important;
  }
  .bvpd-coa-slot .bvpd-coa-bubble::after{
    content:"";
    position:absolute;
    inset:-7px -5px;
    border-radius:999px;
  }
  .bvpd-coa-slot .bvpd-coa-check{font-size:13px!important;}
  .bvpd-coa-slot .bvpd-coa-purity{font-size:9.5px!important;}
  .bvpd-coa-slot .bvpd-coa-label{font-size:9.25px!important;}
  .bvpd-coa-slot .bvpd-coa-arrow{font-size:11px!important;}

  /*
   * Keep price + CTA on one row without collision.
   * The product context is already visible, so "View" is sufficient here.
   */
  .bvpd-footer{
    grid-template-columns:minmax(0,1fr) auto;
    gap:6px;
  }
  .bvpd-price{
    font-size:14px;
  }
  .bvpd-view{
    min-width:82px;
    min-height:32px;
    padding:0 8px;
    gap:4px;
    font-size:9.5px;
  }
  .bvpd-view-label--full{display:none;}
  .bvpd-view-label--short{display:inline;}
  .bvpd-view svg{
    width:10px;
    height:10px;
  }
}

/* Extra-narrow cards still stack gracefully instead of colliding. */
@media (max-width:390px){
  .bvpd--grid .bvpd-footer{
    grid-template-columns:1fr;
    align-items:stretch;
  }
  .bvpd--grid .bvpd-view{
    width:100%;
  }
}


/* ============================================================
   v2.2.0 — WooCommerce category archives + product search
   ============================================================ */
.bvpd-archive-grid.products{
  display:grid!important;
  grid-template-columns:repeat(var(--bvpd-grid-desktop),minmax(0,1fr))!important;
  gap:16px!important;
  width:100%!important;
  margin:0!important;
  padding:0!important;
  clear:both!important;
  list-style:none!important;
}
.bvpd-archive-grid.products::before,
.bvpd-archive-grid.products::after{
  display:none!important;
  content:none!important;
}
.bvpd-archive-grid.products > .bvpd-card.product{
  float:none!important;
  clear:none!important;
  display:flex!important;
  flex-direction:column!important;
  width:auto!important;
  max-width:none!important;
  min-width:0!important;
  margin:0!important;
  padding:0!important;
}
.bvpd-archive-active .bvpd-archive-grid .bvpd-card{
  box-sizing:border-box;
}

/* Preserve WooCommerce archive controls while giving the new grid breathing room. */
.bvpd-archive-active .woocommerce-notices-wrapper:empty{
  display:none;
}
.bvpd-archive-active .woocommerce-result-count,
.bvpd-archive-active .woocommerce-ordering{
  margin-bottom:18px;
}

/* The canonical card owns product-image/card presentation; suppress common
   theme transforms that are meant for legacy Woo product tiles. */
.bvpd-archive-active .bvpd-archive-grid .bvpd-card.product:hover{
  transform:none;
}
.bvpd-archive-active .bvpd-archive-grid .bvpd-card.product .price{
  margin:0;
}

@media (max-width:1180px) and (min-width:768px){
  .bvpd-archive-grid.products{
    grid-template-columns:repeat(var(--bvpd-grid-tablet),minmax(0,1fr))!important;
    gap:14px!important;
  }
}

@media (max-width:767px){
  .bvpd-archive-grid.products{
    grid-template-columns:repeat(var(--bvpd-grid-mobile),minmax(0,1fr))!important;
    gap:12px!important;
  }
  .bvpd-archive-active .woocommerce-result-count,
  .bvpd-archive-active .woocommerce-ordering{
    margin-bottom:14px;
  }
}


/* ============================================================
   v2.2.1 — Live Research Catalog search
   ============================================================ */
.bvpd-research-catalog [data-bvpd-results-region]{
  transition:opacity .16s ease;
}
.bvpd-research-catalog.is-bvpd-loading [data-bvpd-results-region]{
  opacity:.48;
  pointer-events:none;
}
.bvpd-research-catalog.is-bvpd-loading .bvpd-catalog-search{
  box-shadow:0 0 0 3px rgba(21,104,211,.055),0 5px 16px rgba(14,39,64,.04);
}
.bvpd-research-catalog.is-bvpd-loading .bvpd-search-icon svg{
  animation:bvpd-search-pulse .75s ease-in-out infinite alternate;
}
@keyframes bvpd-search-pulse{
  from{opacity:.42;transform:scale(.94);}
  to{opacity:1;transform:scale(1.04);}
}
@media (prefers-reduced-motion:reduce){
  .bvpd-research-catalog [data-bvpd-results-region]{transition:none;}
  .bvpd-research-catalog.is-bvpd-loading .bvpd-search-icon svg{animation:none;}
}


/* ============================================================
   v2.3.0 — Homepage Product Sections
   ============================================================ */
.bvpd-head-actions{
  display:flex;
  align-items:center;
  justify-content:flex-end;
  gap:10px;
  flex:0 0 auto;
  padding-bottom:1px;
}
.bvpd-head-link{
  display:inline-flex;
  align-items:center;
  justify-content:center;
  gap:5px;
  min-height:34px;
  padding:0 11px;
  border:1px solid var(--bv-border);
  border-radius:999px;
  background:#fff;
  color:var(--bv-blue)!important;
  font-size:10.5px;
  line-height:1;
  font-weight:750;
  text-decoration:none!important;
  white-space:nowrap;
  box-shadow:0 2px 8px rgba(14,39,64,.025);
  transition:background-color .16s ease,border-color .16s ease,color .16s ease,transform .16s ease;
}
.bvpd-head-link svg{
  width:11px;
  height:11px;
  fill:none;
  stroke:currentColor;
  stroke-width:1.9;
  stroke-linecap:round;
  stroke-linejoin:round;
  transition:transform .16s ease;
}
.bvpd-head-link:focus-visible{
  outline:2px solid rgba(21,104,211,.65);
  outline-offset:2px;
}
@media (hover:hover) and (pointer:fine){
  .bvpd-head-link:hover{
    background:#F6F9FC;
    border-color:#BFCFDD;
    color:var(--bv-navy)!important;
    transform:translateY(-1px);
  }
  .bvpd-head-link:hover svg{transform:translateX(2px);}
}
.bvpd-home-section{
  margin-block:0;
}
.bvpd-home-section + .bvpd-home-section{
  margin-top:34px;
}

@media (max-width:767px){
  .bvpd-home-section .bvpd-head{
    align-items:flex-start;
  }
  .bvpd-home-section .bvpd-head-actions{
    gap:6px;
  }
  .bvpd-home-section .bvpd-head-link{
    min-height:32px;
    padding:0 9px;
    font-size:9.75px;
  }
  .bvpd-home-section .bvpd-head-link span{
    max-width:92px;
    overflow:hidden;
    text-overflow:ellipsis;
  }
}


/* ============================================================
   v2.3.1 — Homepage mobile 2-up carousel + header polish
   ============================================================ */
@media (max-width:767px){
  /*
   * Homepage only: show two complete product cards per viewport.
   * Related Research Materials and other carousels retain their existing
   * mobile behavior.
   */
  .bvpd-home-section.bvpd--carousel .bvpd-track{
    grid-auto-columns:calc((100% - 12px)/2)!important;
    gap:12px!important;
    padding:2px 1px 8px!important;
    scroll-padding-left:1px;
  }

  /*
   * Give the homepage section a natural reading order:
   * kicker -> title -> intro -> controls.
   * This prevents the catalog link/arrows from competing with the heading.
   */
  .bvpd-home-section .bvpd-head{
    grid-template-columns:1fr!important;
    gap:5px!important;
    align-items:start!important;
  }
  .bvpd-home-section .bvpd-kicker{
    grid-column:1!important;
    grid-row:1!important;
  }
  .bvpd-home-section .bvpd-title{
    grid-column:1!important;
    grid-row:2!important;
    margin-top:2px;
  }
  .bvpd-home-section .bvpd-intro{
    grid-column:1!important;
    grid-row:3!important;
  }
  .bvpd-home-section .bvpd-head-actions{
    grid-column:1!important;
    grid-row:4!important;
    width:100%;
    justify-self:stretch;
    justify-content:space-between;
    margin-top:5px;
    padding-bottom:0;
  }
  .bvpd-home-section .bvpd-head-link span{
    max-width:none;
    overflow:visible;
    text-overflow:clip;
  }
  .bvpd-home-section .bvpd-controls{
    grid-column:auto;
    grid-row:auto;
    justify-self:auto;
  }
}

/* The global <=390px carousel rule uses an 86vw single-card treatment.
   Explicitly preserve the homepage 2-up behavior on small phones. */
@media (max-width:390px){
  .bvpd-home-section.bvpd--carousel .bvpd-track{
    grid-auto-columns:calc((100% - 10px)/2)!important;
    gap:10px!important;
    padding:2px 1px 8px!important;
  }
}


/* ============================================================
   v2.4.0 — Remaining Product Discovery Surfaces
   ============================================================ */
.bvpd-discovery-section{
  width:100%;
}
.bvpd-recently-viewed{
  margin-block:0;
}

/* Keep discovery sections visually calm inside cart/secondary surfaces. */
.bvpd-discovery-section .bvpd-head{
  margin-bottom:13px;
}
.bvpd-discovery-section .bvpd-intro{
  max-width:720px;
}

@media (max-width:767px){
  /*
   * Match the successful homepage discovery density: two cards at a glance.
   * Product-page Related Research Materials keeps its independently frozen
   * mobile behavior.
   */
  .bvpd-discovery-section.bvpd--carousel .bvpd-track{
    grid-auto-columns:calc((100% - 12px)/2)!important;
    gap:12px!important;
    padding:2px 1px 8px!important;
    scroll-padding-left:1px;
  }

  .bvpd-discovery-section .bvpd-head{
    grid-template-columns:1fr!important;
    gap:4px!important;
    align-items:start!important;
  }
  .bvpd-discovery-section .bvpd-head-copy{
    min-width:0;
  }
  .bvpd-discovery-section .bvpd-head-actions{
    width:100%;
    justify-content:flex-end;
    margin-top:3px;
  }
}

@media (max-width:390px){
  .bvpd-discovery-section.bvpd--carousel .bvpd-track{
    grid-auto-columns:calc((100% - 10px)/2)!important;
    gap:10px!important;
  }
}




/* ============================================================
   v2.4.3 — Cache-proof canonical Recently Viewed
   ============================================================ */
.bvpd-recent-host:empty{
  display:none;
}
.bvpd-recently-viewed--ajax{
  width:100%;
  animation:bvpd-recent-in .16s ease-out both;
}
@keyframes bvpd-recent-in{
  from{opacity:.35;transform:translateY(3px);}
  to{opacity:1;transform:none;}
}

@media (max-width:767px){
  .bvpd-recently-viewed.bvpd--carousel .bvpd-track{
    grid-auto-columns:calc((100% - 12px)/2)!important;
    gap:12px!important;
    padding:2px 1px 8px!important;
    scroll-padding-left:1px;
  }
}
@media (max-width:390px){
  .bvpd-recently-viewed.bvpd--carousel .bvpd-track{
    grid-auto-columns:calc((100% - 10px)/2)!important;
    gap:10px!important;
  }
}
@media (prefers-reduced-motion:reduce){
  .bvpd-recently-viewed--ajax{animation:none;}
}
