/* ============================================================
   Elite Core Bundle Page, v1.0.1 (mu-plugins/ec-bundle-page.php)
   Loaded after the theme's v6-core / v6-product styles on single
   bundle pages, and on catalog pages for bundle card composites.
   Palette: ink #0A0A0A, paper #FAFAF8, card #FFFFFF, border #E8E4DC,
   muted #6B6B6B, gold #C9A961, cream #F7F5F0 (theme tokens, with
   fallbacks). Inter body, Plus Jakarta Sans display.
   ============================================================ */

.ec-bp-hidden{display:none !important}

/* ------------------------------------------------------------
   1. BUY BOX (inside .v6-product-buy--native)
   ------------------------------------------------------------ */
.v6-product-buy--native form.cart.ec-bp-form{display:block;margin:0;width:100%}
.ec-bp-buy{display:flex;flex-direction:column;gap:18px;width:100%}

.ec-bp-label{
  display:flex;align-items:center;gap:10px;margin:0;
  font-size:11px;font-weight:700;letter-spacing:.14em;text-transform:uppercase;color:var(--ec-ink,#0A0A0A);
}
.ec-bp-label::before{content:"";flex:none;width:20px;height:2px;background:var(--ec-gold,#C9A961)}

.ec-bp-included{
  background:var(--ec-card,#FFFFFF);border:1px solid var(--ec-border,#E8E4DC);border-radius:20px;
  padding:18px 20px 16px;display:flex;flex-direction:column;gap:12px;
}
.ec-bp-items{list-style:none;margin:0;padding:0;display:flex;flex-direction:column}
.ec-bp-item{
  display:flex;align-items:center;gap:14px;margin:0;padding:12px 0;
  border-top:1px solid var(--ec-border,#E8E4DC);
}
.ec-bp-item:first-child{border-top:0;padding-top:2px}
.ec-bp-item:last-child{padding-bottom:4px}
.ec-bp-item__thumb{
  flex:none;width:64px;height:64px;border-radius:16px;overflow:hidden;
  background:var(--ec-cream,#F7F5F0);display:grid;place-items:center;text-decoration:none;
}
.ec-bp-item__thumb img{display:block;width:auto;height:58px;max-width:58px;object-fit:contain;margin:0}
.ec-bp-item__body{flex:1 1 auto;min-width:0;display:flex;flex-direction:column;gap:6px}
.ec-bp-item__name{
  font-size:15px;font-weight:600;line-height:1.3;color:var(--ec-ink,#0A0A0A);text-decoration:none;
  overflow-wrap:anywhere;
}
.ec-bp-item__name:hover,.ec-bp-item__name:focus-visible{color:var(--ec-muted,#6B6B6B)}
.ec-bp-item__variant{font-weight:500;color:var(--ec-muted,#6B6B6B)}
.ec-bp-item__meta{display:flex;flex-wrap:wrap;align-items:center;gap:8px}
.ec-bp-item__size{
  display:inline-flex;align-items:center;height:24px;padding:0 10px;
  border:1px solid var(--ec-border,#E8E4DC);border-radius:999px;background:var(--ec-card,#FFFFFF);
  font-size:12px;font-weight:600;line-height:1;color:var(--ec-ink,#0A0A0A);
}
.ec-bp-item__qty{font-size:12px;font-weight:500;color:var(--ec-muted,#6B6B6B)}
.ec-bp-item__price{flex:none;font-size:15px;font-weight:600;color:var(--ec-ink,#0A0A0A);white-space:nowrap}
.ec-bp-item__price .woocommerce-Price-amount{font-weight:600}
.ec-bp-item__tba{font-size:12px;font-weight:500;color:var(--ec-muted,#6B6B6B)}
.ec-bp-item--unavailable .ec-bp-item__thumb img{opacity:.6}

.ec-bp-totals{border-top:1px solid var(--ec-border,#E8E4DC);padding-top:12px;display:flex;flex-direction:column;gap:6px}
.ec-bp-totals__row{
  display:flex;justify-content:space-between;align-items:baseline;gap:12px;
  font-size:13px;line-height:1.4;color:var(--ec-muted,#6B6B6B);
}
.ec-bp-totals__row .woocommerce-Price-amount{font-weight:inherit}
.ec-bp-totals__row--sep .ec-bp-totals__v{text-decoration:line-through}
.ec-bp-totals__row--bundle{font-size:15px;font-weight:600;color:var(--ec-ink,#0A0A0A)}
.ec-bp-totals__row--save .ec-bp-totals__v{display:inline-flex;align-items:center;gap:8px;font-weight:700;color:var(--ec-ink,#0A0A0A)}
.ec-bp-totals__row--save .ec-bp-totals__v::before{content:"";flex:none;width:8px;height:8px;border-radius:50%;background:var(--ec-gold,#C9A961)}
.ec-bp-totals__pct{font-weight:500;color:var(--ec-muted,#6B6B6B)}

/* Quantity pill: the compound page stepper (48px pill, round buttons). */
.ec-bp-row{display:flex;flex-wrap:wrap;align-items:center;gap:12px;width:100%}
.v6-product-buy--native form.cart .ec-bp-qty,
.ec-bp-qty{
  flex:none;display:inline-flex;align-items:center;height:48px;margin:0;padding:0 2px;
  border:1px solid var(--ec-border,#E8E4DC);border-radius:999px;background:var(--ec-card,#FFFFFF);
}
.ec-bp-qty__btn{
  flex:none;width:44px;height:44px;border:0;border-radius:50%;padding:0;margin:0;
  background:transparent;color:var(--ec-ink,#0A0A0A);font-family:inherit;font-size:18px;font-weight:500;line-height:1;
  display:grid;place-items:center;cursor:pointer;transition:background .15s ease;
}
.ec-bp-qty__btn:hover{background:var(--ec-cream,#F7F5F0)}
.ec-bp-qty__btn:active{background:var(--ec-border,#E8E4DC)}
.ec-bp-qty__btn:focus-visible{outline:2px solid var(--ec-gold,#C9A961);outline-offset:2px}
.ec-bp-qty__btn[disabled]{opacity:.4;cursor:not-allowed}
.v6-product-buy--native form.cart .ec-bp-qty .qty,
.ec-bp-qty__input{
  flex:none;width:44px;min-width:0;height:44px;border:0;margin:0;padding:0;background:transparent;
  text-align:center;font-family:inherit;font-size:16px;font-weight:600;color:var(--ec-ink,#0A0A0A);
  -moz-appearance:textfield;appearance:textfield;
}
.ec-bp-qty__input::-webkit-outer-spin-button,
.ec-bp-qty__input::-webkit-inner-spin-button{-webkit-appearance:none;margin:0}
.ec-bp-qty__input:focus{outline:2px solid var(--ec-gold,#C9A961);outline-offset:-2px;border-radius:999px}

/* Add to cart: the theme's native rule gives the 56px ink pill and gold arrow; these cover the states. */
.v6-product-buy .ec-bp-add{
  flex:1 1 220px;min-width:0;height:56px;min-height:56px;padding:0 30px;border:0;border-radius:999px;
  background:var(--ec-ink,#0A0A0A);color:var(--ec-paper,#FAFAF8);
  font-family:inherit;font-size:16px;font-weight:600;letter-spacing:0;text-transform:none;line-height:1;
  display:inline-flex;align-items:center;justify-content:center;gap:10px;cursor:pointer;white-space:nowrap;
  box-shadow:none;transition:transform .2s ease,box-shadow .2s ease,opacity .2s ease;
}
.v6-product-buy .ec-bp-add::after{
  content:"";flex:none;width:16px;height:16px;
  background:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23C9A961' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M5 12h14M13 6l6 6-6 6'/%3E%3C/svg%3E") center/contain no-repeat;
}
.v6-product-buy .ec-bp-add.is-loading{opacity:.7;cursor:progress}
.v6-product-buy .ec-bp-add.is-added::after{
  background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23C9A961' stroke-width='3' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M5 12.5l4.5 4.5L19 7.5'/%3E%3C/svg%3E");
}
.v6-product-buy .ec-bp-add.disabled,
.v6-product-buy .ec-bp-add[disabled]{background:var(--ec-muted,#6B6B6B);color:var(--ec-paper,#FAFAF8);opacity:1;cursor:not-allowed;transform:none;box-shadow:none}
.v6-product-buy .ec-bp-add[disabled]::after{opacity:.5}

.ec-bp-stock .stock{display:flex;align-items:center;gap:8px;margin:-4px 0 0;font-size:13px;line-height:1.4;color:var(--ec-muted,#6B6B6B)}
.ec-bp-stock .stock::before{content:"";flex:none;width:8px;height:8px;border-radius:50%;background:var(--ec-gold,#C9A961)}
.ec-bp-stock .stock.out-of-stock::before{background:var(--ec-muted,#6B6B6B)}
.ec-bp-stock:empty{display:none}

/* ------------------------------------------------------------
   2. RESEARCH BLOCK ("Inside the bundle")
   Inside the theme's About card by default; .ec-bp-research--card
   is the standalone fallback with its own chrome.
   ------------------------------------------------------------ */
.ec-bp-research{display:flex;flex-direction:column;gap:16px;min-width:0}
.ec-bp-research-wrap{padding:0 32px 56px}
.ec-bp-research--card{
  background:var(--ec-card,#FFFFFF);border:1px solid var(--ec-border,#E8E4DC);border-radius:24px;
  padding:28px;max-width:880px;
}
.ec-bp-research__head{display:flex;flex-direction:column;gap:8px}
.ec-bp-research__eyebrow{
  display:flex;align-items:center;gap:10px;margin:0;
  font-size:11px;font-weight:700;letter-spacing:.2em;text-transform:uppercase;color:var(--ec-ink,#0A0A0A);
}
.ec-bp-research__eyebrow::before{content:"";flex:none;width:24px;height:2px;background:var(--ec-gold,#C9A961)}
.ec-bp-research__title{
  margin:0;font-family:var(--ec-font-display,'Plus Jakarta Sans',sans-serif);
  font-size:24px;font-weight:700;letter-spacing:-.01em;line-height:1.2;color:var(--ec-ink,#0A0A0A);
}
.ec-bp-research__intro,
.ec-bp-research__text{margin:0;font-size:15px;line-height:1.65;color:var(--ec-muted,#6B6B6B)}

.ec-bp-research__more{overflow:hidden;min-width:0}
html.ec-bp-js .ec-bp-research__more{
  max-height:0;visibility:hidden;
  transition:max-height .45s ease,visibility 0s linear .45s;
}
html.ec-bp-js .ec-bp-research__more.is-open{
  visibility:visible;
  transition:max-height .45s ease,visibility 0s linear 0s;
}
.ec-bp-research__inner{display:flex;flex-direction:column;gap:22px;padding:2px 0 4px}
.ec-bp-research__group{display:flex;flex-direction:column;gap:10px}
.ec-bp-research__sub{
  margin:0;font-family:var(--ec-font-body,'Inter',sans-serif);
  font-size:13px;font-weight:700;letter-spacing:.08em;text-transform:uppercase;color:var(--ec-ink,#0A0A0A);
}

.ec-bp-compounds{display:grid;grid-template-columns:1fr;gap:12px}
.ec-bp-compound{
  margin:0;background:var(--ec-cream,#F7F5F0);border:1px solid var(--ec-border,#E8E4DC);border-radius:16px;
  padding:16px;display:flex;flex-direction:column;gap:12px;min-width:0;
}
.ec-bp-compound__head{display:flex;align-items:center;gap:12px}
.ec-bp-compound__thumb{
  flex:none;width:56px;height:56px;border-radius:14px;overflow:hidden;
  background:var(--ec-card,#FFFFFF);border:1px solid var(--ec-border,#E8E4DC);display:grid;place-items:center;
}
.ec-bp-compound__thumb img{display:block;height:48px;width:auto;max-width:48px;object-fit:contain;margin:0}
.ec-bp-compound__id{display:flex;flex-wrap:wrap;align-items:center;gap:8px 10px;min-width:0}
.ec-bp-compound__name{
  margin:0;font-family:var(--ec-font-display,'Plus Jakarta Sans',sans-serif);
  font-size:17px;font-weight:700;line-height:1.2;color:var(--ec-ink,#0A0A0A);overflow-wrap:anywhere;
}
.ec-bp-compound__size{
  display:inline-flex;align-items:center;height:24px;padding:0 10px;
  border:1px solid var(--ec-border,#E8E4DC);border-radius:999px;background:var(--ec-card,#FFFFFF);
  font-size:12px;font-weight:600;line-height:1;color:var(--ec-ink,#0A0A0A);
}
.ec-bp-compound__summary{margin:0;font-size:14px;line-height:1.65;color:var(--ec-ink,#0A0A0A)}
.ec-bp-pills{list-style:none;margin:0;padding:0;display:flex;flex-wrap:wrap;gap:6px}
.ec-bp-pills li{
  display:inline-flex;align-items:center;min-height:28px;margin:0;padding:4px 12px;
  border:1px solid var(--ec-border,#E8E4DC);border-radius:999px;background:var(--ec-card,#FFFFFF);
  font-size:12px;font-weight:600;line-height:1.3;color:var(--ec-ink,#0A0A0A);
}
.ec-bp-compound__models{margin:0;font-size:13px;line-height:1.55;color:var(--ec-muted,#6B6B6B)}
.ec-bp-compound__models strong{font-weight:600;color:var(--ec-ink,#0A0A0A)}
.ec-bp-compound__link{
  display:inline-flex;align-items:center;gap:8px;align-self:flex-start;
  font-size:13px;font-weight:600;color:var(--ec-ink,#0A0A0A);text-decoration:none;
}
.ec-bp-compound__link svg{flex:none}
.ec-bp-compound__link:hover,.ec-bp-compound__link:focus-visible{color:var(--ec-muted,#6B6B6B)}

.ec-bp-handling{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:8px}
.ec-bp-handling li{position:relative;margin:0;padding-left:20px;font-size:14px;line-height:1.6;color:var(--ec-muted,#6B6B6B)}
.ec-bp-handling li::before{content:"";position:absolute;left:0;top:8px;width:8px;height:8px;border-radius:50%;background:var(--ec-gold,#C9A961)}

/* The theme's main.css styles the /bundles landing page with .ec-bp-faq{padding:80px 0;background:var(--surface)};
   the research block's question list shares that class name, so both are reset with a higher specificity. */
.ec-bp-research .ec-bp-faq{display:flex;flex-direction:column;margin:0;padding:0;background:transparent;border-top:1px solid var(--ec-border,#E8E4DC)}
.ec-bp-faq__item{margin:0;border-bottom:1px solid var(--ec-border,#E8E4DC)}
.ec-bp-faq__item > summary{
  list-style:none;cursor:pointer;display:flex;justify-content:space-between;align-items:center;gap:12px;
  padding:12px 0;font-size:14px;font-weight:600;line-height:1.4;color:var(--ec-ink,#0A0A0A);
}
.ec-bp-faq__item > summary::-webkit-details-marker{display:none}
.ec-bp-faq__item > summary::marker{content:""}
.ec-bp-faq__item > summary:focus-visible{outline:2px solid var(--ec-gold,#C9A961);outline-offset:4px;border-radius:6px}
.ec-bp-faq__chev{
  flex:none;width:28px;height:28px;border-radius:50%;
  border:1px solid var(--ec-border,#E8E4DC);background:var(--ec-card,#FFFFFF);display:grid;place-items:center;
  transition:background .2s ease,border-color .2s ease;
}
.ec-bp-faq__chev svg{display:block;stroke:var(--ec-ink,#0A0A0A);transition:transform .2s ease,stroke .2s ease}
.ec-bp-faq__item[open] > summary .ec-bp-faq__chev{background:var(--ec-ink,#0A0A0A);border-color:var(--ec-ink,#0A0A0A)}
.ec-bp-faq__item[open] > summary .ec-bp-faq__chev svg{stroke:var(--ec-gold,#C9A961);transform:rotate(180deg)}
.ec-bp-faq__a{padding:0 0 14px;font-size:14px;line-height:1.65;color:var(--ec-muted,#6B6B6B)}
.ec-bp-faq__a p{margin:0}

.ec-bp-research__ruo{
  margin:0;padding:14px 16px;border-radius:14px;background:var(--ec-cream,#F7F5F0);
  font-size:12px;line-height:1.6;color:var(--ec-muted,#6B6B6B);
}

/* View more: ink outline pill. */
.ec-bp-research__toggle,
.v6-btn.ec-bp-research__toggle{
  align-self:flex-start;display:inline-flex;align-items:center;justify-content:center;gap:8px;
  height:44px;padding:0 20px;border-radius:999px;border:1.5px solid var(--ec-ink,#0A0A0A);
  background:transparent;color:var(--ec-ink,#0A0A0A);
  font-family:var(--ec-font-body,'Inter',sans-serif);font-size:14px;font-weight:600;line-height:1;cursor:pointer;
  transition:background .2s ease,transform .2s ease;
}
.ec-bp-research__toggle:hover,
.v6-btn.ec-bp-research__toggle:hover,
.v6-btn.ec-bp-research__toggle:focus-visible{background:var(--ec-cream,#F7F5F0);color:var(--ec-ink,#0A0A0A)}
.ec-bp-research__toggle:focus-visible{outline:2px solid var(--ec-gold,#C9A961);outline-offset:3px}
.ec-bp-research__toggle svg{width:14px;height:14px;flex:none;stroke:var(--ec-ink,#0A0A0A);transition:transform .2s ease}
.ec-bp-research__toggle[aria-expanded="true"] svg{transform:rotate(180deg)}
html:not(.ec-bp-js) .ec-bp-research__toggle{display:none}

/* ------------------------------------------------------------
   3. VIAL COMPOSITES (hero without a featured image, cards)
   ------------------------------------------------------------ */
.ec-bp-composite{position:relative;display:flex;align-items:flex-end;justify-content:center;overflow:visible}
.ec-bp-composite__vial{
  position:relative;display:block;flex:0 1 auto;height:100%;max-width:48%;
  transform-origin:50% 100%;
}
.ec-bp-composite__vial img{display:block;height:100%;width:auto;max-width:100%;object-fit:contain;object-position:center bottom;margin:0}
.ec-bp-composite--n2 .ec-bp-composite__vial{max-width:52%}
.ec-bp-composite--n2 .ec-bp-composite__vial--1{z-index:2}
.ec-bp-composite--n2 .ec-bp-composite__vial--2{z-index:1;margin-left:-13%;transform:scale(.94)}
.ec-bp-composite--n3 .ec-bp-composite__vial--1{z-index:1;transform:scale(.9)}
.ec-bp-composite--n3 .ec-bp-composite__vial--2{z-index:2;margin-left:-16%}
.ec-bp-composite--n3 .ec-bp-composite__vial--3{z-index:1;margin-left:-16%;transform:scale(.9)}

/* Hero: the composite takes the stage image's slot (height from the theme's .v6-stage__img rules). */
.ec-bp-composite--hero{height:440px;width:100%;max-width:600px}
.v6-product-stage .ec-bp-composite--hero{width:100%;max-width:600px;object-fit:unset}

/* Cards: fills the image well. */
.ec-bp-composite--card{width:100%;height:100%;padding:6% 4% 0}
.ec-bp-composite--card .ec-bp-composite__vial{height:94%}

/* ------------------------------------------------------------
   4. RESPONSIVE
   ------------------------------------------------------------ */
/* Compound cards stay in one column inside the theme's About card (580px wide at 1280); the standalone card gets two. */
@media (min-width: 1100px){
  .ec-bp-research--card .ec-bp-compounds{grid-template-columns:repeat(2,minmax(0,1fr))}
}
@media (max-width: 768px){
  .ec-bp-research-wrap{padding:0 20px 48px}
  .ec-bp-research--card{padding:22px;border-radius:20px}
  .ec-bp-included{padding:16px 16px 14px;border-radius:18px}
}
@media (max-width: 480px){
  .ec-bp-research-wrap{padding:0 16px 40px}
  .ec-bp-research--card{padding:20px}
  .ec-bp-item{gap:12px}
  .ec-bp-item__thumb{width:56px;height:56px;border-radius:14px}
  .ec-bp-item__thumb img{height:50px;max-width:50px}
  .ec-bp-item__name{font-size:14px}
  .ec-bp-item__price{font-size:14px}
  .ec-bp-row{gap:10px}
  .v6-product-buy .ec-bp-add{flex:1 1 100%;width:100%}
  .ec-bp-compound{padding:14px}
  .ec-bp-research__toggle{width:100%}
}
@media (prefers-reduced-motion: reduce){
  html.ec-bp-js .ec-bp-research__more,
  html.ec-bp-js .ec-bp-research__more.is-open{transition:none}
  .ec-bp-research__toggle svg,.ec-bp-faq__chev svg,.v6-product-buy .ec-bp-add{transition:none}
}
