/**
 * Single product page (woocommerce/single-product.php).
 * Loaded only on product pages, on top of common.css + home.css (for .pcard).
 *
 * @package SwissChems
 */

.pd-wrap{padding-bottom:10px;}
.pd{max-width:1180px;margin:0 auto;padding:0 22px;font-family:var(--font-jost);}
.pd .pb-crumb{padding:18px 0 6px;margin:0;}

/* ---- top: gallery + info ---- */
/* Product Usage disclaimer (full width, above pd-top) */
.pd-usage{margin:12px 0 2px;padding:13px 24px;border:1px solid #f1d3d3;border-radius:13px;background:linear-gradient(180deg,#fdf6f6 0%,#fbf8f8 100%);text-align:center;}
.pd-usage-head{margin:0 0 5px;color:var(--ink);font-weight:700;font-size:14.5px;line-height:1.4;}
.pd-usage-head strong{color:var(--red);font-weight:800;}
.pd-usage-text{margin:0 auto;color:var(--muted);font-size:12.5px;line-height:1.55;max-width:1120px;}

.pd-top{display:grid;grid-template-columns:1fr 1fr;gap:46px;align-items:stretch;padding:14px 0 8px;}

/* gallery */
.pd-gallery-col{display:flex;flex-direction:column;}
.pd-gallery{display:flex;gap:14px;margin-bottom:20px;}
.pd-thumbs{display:flex;flex-direction:column;gap:12px;flex-shrink:0;}
.pd-thumb{width:64px;height:64px;border-radius:12px;border:1.5px solid var(--line);background:#fff;padding:6px;cursor:pointer;overflow:hidden;}
.pd-thumb img{width:100%;height:100%;object-fit:contain;display:block;}
.pd-thumb.is-active{border-color:var(--green);box-shadow:0 0 0 3px rgba(29,160,116,.12);}
.pd-main{flex:1;border-radius:18px;background:linear-gradient(160deg,#f0f8f4 0%,#e8f5ef 100%);min-height:440px;display:flex;align-items:center;justify-content:center;padding:24px;overflow:hidden;cursor:zoom-in;}
.pd-main img{max-height:420px;width:auto;max-width:100%;object-fit:contain;display:block;transition:transform .15s ease;}
.pd-assure{display:grid;grid-template-columns:repeat(3,1fr);gap:12px;margin-top:auto;}
.pd-assure div{display:flex;flex-direction:column;align-items:center;text-align:center;gap:8px;color:var(--ink);font-size:11.5px;font-weight:700;line-height:1.3;background:#f7faf8;border:1px solid var(--line);border-radius:12px;padding:15px 8px;}
.pd-assure svg{width:24px;height:24px;color:var(--green);}

/* info */
.pd-info{display:flex;flex-direction:column;}
.pd-badge{display:inline-block;align-self:flex-start;background:var(--mint);color:var(--green);font-family:var(--font-jost);font-weight:800;font-size:11px;letter-spacing:.1em;text-transform:uppercase;padding:6px 13px;border-radius:8px;margin-bottom:14px;}
.pd-titlerow{display:flex;align-items:center;gap:14px;flex-wrap:wrap;}
.pd-title{font-family:var(--font-jost);font-size:28px;font-weight:800;letter-spacing:-.02em;color:var(--ink);margin:0;line-height:1.15;}
.pd-purity{background:var(--mint);color:var(--green);font-weight:700;font-size:12.5px;padding:5px 12px;border-radius:20px;font-family:var(--font-jost);}
.pd-aka{margin:12px 0 0;color:var(--ink);font-size:14px;}
.pd-aka a{color:var(--green);font-weight:700;text-decoration:underline;}
.pd-desc{color:var(--muted);font-size:14.5px;line-height:1.6;margin:16px 0 18px;}
.pd-desc p{margin:0 0 10px;}
.pd-desc p:last-child{margin-bottom:0;}
/* Read more / less: JS clamps to 3 lines and toggles .is-collapsed (max-height set inline). */
.pd-desc.pd-clamp{position:relative;overflow:hidden;margin-bottom:0;transition:max-height .3s ease;}
.pd-desc.pd-clamp.is-collapsed::after{content:"";position:absolute;left:0;right:0;bottom:0;height:1.7em;background:linear-gradient(rgba(255,255,255,0),#fff);pointer-events:none;}
.pd-readmore{align-self:flex-start;margin:8px 0 18px;background:none;border:0;padding:0;color:var(--green);font-family:var(--font-jost);font-weight:700;font-size:13.5px;cursor:pointer;display:inline-flex;align-items:center;gap:5px;}
.pd-readmore:hover{color:var(--green-d);}
.pd-readmore svg{width:14px;height:14px;transition:transform .2s;}
.pd-readmore.is-open svg{transform:rotate(180deg);}
.pd-feats{display:flex;gap:24px;padding:16px 0;border-top:1px solid var(--line);border-bottom:1px solid var(--line);flex-wrap:wrap;}
.pd-feat{display:flex;align-items:center;gap:8px;color:var(--ink);font-size:13px;font-weight:600;}
.pd-feat svg{width:20px;height:20px;color:var(--green);}

/* add-to-cart form */
.pd-cartform{margin:0 0 18px;}
.pd-qtylabel{font-family:var(--font-jost);font-weight:800;font-size:13px;color:var(--ink);margin:22px 0 10px;}
.pd-qtyrow{display:flex;align-items:center;gap:16px;}
.pd-stepper{display:inline-flex;align-items:center;background:#eef1f0;border:1px solid var(--line);border-radius:10px;overflow:hidden;}
.pd-stepper button{width:42px;height:44px;border:none;background:transparent;font-size:18px;color:var(--ink);cursor:pointer;line-height:1;}
.pd-stepper button:hover{color:var(--green);}
.pd-stepper input{width:46px;height:44px;border:none;background:transparent;text-align:center;font-size:15px;font-weight:700;font-family:var(--font-jost);color:var(--ink);-moz-appearance:textfield;}
.pd-stepper input::-webkit-outer-spin-button,.pd-stepper input::-webkit-inner-spin-button{-webkit-appearance:none;margin:0;}
/* Keep the qty number visible even when WC/plugin CSS targets .qty / .input-text */
.pd-stepper input.pd-qty,.pd-stepper input.qty,.pd-stepper input[name="quantity"]{width:46px !important;min-width:46px !important;max-width:46px !important;height:44px !important;padding:0 !important;margin:0 !important;border:0 !important;background:transparent !important;text-align:center !important;font-size:15px !important;font-weight:700 !important;color:var(--ink) !important;opacity:1 !important;display:block !important;visibility:visible !important;-moz-appearance:textfield;}
.pd-qtynote{color:var(--muted);font-size:13.5px;}
.pd-price{font-family:var(--font-jost);font-weight:900;font-size:30px;color:var(--ink);margin:22px 0 18px;}
.pd-price del,.pd-price s{color:#aab4ad;font-weight:400;font-size:17px;text-decoration:line-through;margin-right:8px;}
.pd-price ins{text-decoration:none;}
.pd-cta{display:grid;grid-template-columns:1fr 1fr;gap:14px;}
.pd-info .woocommerce-variation-add-to-cart .pd-cta{margin-top:18px;}
.pd-cta .btn{height:56px;border-radius:12px;font-family:var(--font-jost);font-weight:800;font-size:15px;display:inline-flex;align-items:center;justify-content:center;gap:8px;cursor:pointer;text-decoration:none;}
.pd-add{background:var(--green);color:#fff;border:none;transition:background .2s;}
.pd-add:hover{background:var(--green-d);}
.pd-add svg{width:18px;height:18px;}
/* loading state: spinner until the side cart responds */
.pd-add.is-loading{pointer-events:none;}
.pd-add.is-loading svg{display:none;}
.pd-add.is-loading::before{content:"";width:16px;height:16px;flex:0 0 auto;border:2.5px solid rgba(255,255,255,.5);border-top-color:#fff;border-radius:50%;animation:pdspin .7s linear infinite;}
@keyframes pdspin{to{transform:rotate(360deg);}}
/* hide WooCommerce / side-cart "View cart" link on the product page */
.pd-info .added_to_cart,.pd-cartform .added_to_cart{display:none !important;}
.pd-buy,.pd-lab{background:#fff;color:var(--green);border:1.5px solid var(--green);transition:background .2s;}
.pd-buy:hover,.pd-lab:hover{background:var(--mint);color:var(--green);}
.pd-lab svg{width:18px;height:18px;}
/* Packaging-transition notice (admin toggle), sits just above the payment box */
.pd-notice{margin-top:auto;border-left:2px solid #1DA074;background:#EAF3EE;border-radius:8px;padding:14px 16px;}
.pd-notice b{font-family:var(--font-jost);font-size:14px;color:var(--ink);display:block;margin-bottom:5px;}
.pd-notice p{margin:0;font-size:12.5px;color:var(--ink);line-height:1.55;opacity:.85;}
.pd-notice + .pd-secure{margin-top:12px;}
.pd-secure{display:flex;flex-direction:column;align-items:stretch;gap:12px;background:var(--mint);border-radius:12px;padding:14px 16px;margin-top:auto;}
.pd-secure-row{display:flex;align-items:center;gap:12px;}
.pd-pay-icons{display:block;width:100%;max-width:320px;height:auto;}
.pd-secure svg{width:22px;height:22px;color:var(--green);flex-shrink:0;}
.pd-secure b{font-family:var(--font-jost);font-size:13.5px;color:var(--ink);display:block;}
.pd-secure span{font-size:12.5px;color:var(--muted);}
/* accepted payment methods */
.pd-pay{display:flex;align-items:center;flex-wrap:wrap;gap:8px;margin-top:14px;}
.pd-pay .pd-pay-lbl{font-size:12px;color:var(--muted);font-weight:600;margin-right:4px;}
.pd-pay svg{display:block;height:26px;width:auto;}

/* fallback for non-simple products (variable/grouped): style WC's own form */
.pd-info form.cart{margin:18px 0;}
.pd-info form.cart .quantity{margin-right:12px;}
.pd-info form.cart .single_add_to_cart_button{background:var(--green);color:#fff;border:none;border-radius:12px;padding:0 26px;height:56px;font-family:var(--font-jost);font-weight:800;font-size:15px;cursor:pointer;}
.pd-info form.cart .single_add_to_cart_button:hover{background:var(--green-d);}

/* ---- variable products: attribute options shown as tabs (swatches) ---- */
.pd-info .variations{width:100%;border:none;border-collapse:collapse;margin:18px 0 4px;}
.pd-info .variations tbody,.pd-info .variations tr,.pd-info .variations td,.pd-info .variations th{display:block;width:auto;padding:0;border:none;background:none;}
.pd-info .variations tr{margin-bottom:16px;}
.pd-info .variations th.label{font-family:var(--font-jost);font-weight:800;font-size:13px;color:var(--ink);margin-bottom:9px;}
.pd-info .variations th.label label{margin:0;font-weight:800;}
.pd-swatches{display:flex;flex-wrap:wrap;gap:10px;}
.pd-swatch{font-family:var(--font-jost);font-weight:700;font-size:13.5px;color:var(--ink);background:#fff;border:1.5px solid var(--line);border-radius:10px;padding:10px 18px;cursor:pointer;line-height:1.1;transition:border-color .15s,background .15s,color .15s,box-shadow .15s;}
.pd-swatch:hover{border-color:var(--green);color:var(--green);}
.pd-swatch.is-active{border-color:var(--green);background:var(--mint);color:var(--green);box-shadow:0 0 0 3px rgba(29,160,116,.12);}
.pd-swatch.is-disabled{opacity:.4;cursor:not-allowed;text-decoration:line-through;}
.pd-swatch.is-disabled:hover{border-color:var(--line);color:var(--ink);}
.pd-select-hidden{position:absolute !important;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0 0 0 0);white-space:nowrap;border:0;}
.pd-info .variations td.value .reset_variations{display:inline-block;margin-top:8px;font-size:12px;color:var(--muted);text-decoration:underline;}
.pd-info .single_variation{margin:22px 0 18px;}
.pd-info .single_variation .price{font-family:var(--font-jost);font-weight:900;font-size:28px;color:var(--ink);}
.pd-info .single_variation .price del,.pd-info .single_variation .price s{color:#aab4ad;font-weight:400;font-size:17px;margin-right:8px;}
.pd-info .single_variation .stock{font-size:13px;color:var(--green);font-weight:700;margin-top:4px;}
.pd-info .woocommerce-variation-add-to-cart{display:block;}
/* hide the attribute label only when there is a single attribute (it's usually redundant) */
.pd-info .variations tbody tr:only-child th.label{display:none;}
/* disabled add-to-cart (until a variation is chosen) */
.pd-add:disabled,.pd-add[disabled],.pd-add.disabled,.pd-add.wc-variation-selection-needed{opacity:.45;cursor:not-allowed;box-shadow:none;}
.pd-add:disabled:hover,.pd-add[disabled]:hover,.pd-add.disabled:hover{background:var(--green);}

/* A variation is always pre-selected, so hide WooCommerce's "Clear" link. */
.pd-info .variations td.value .reset_variations,.pd-info .reset_variations{display:none !important;}

/* Bundle (woosb): bundled-items collapsible toggle + panel. */
.pd-bundle-toggle{display:flex;align-items:center;justify-content:space-between;gap:10px;width:100%;margin:18px 0 0;padding:14px 16px;background:#f6f9f7;border:1px solid var(--line);border-radius:12px;font-family:var(--font-jost);font-weight:800;font-size:14px;color:var(--ink);cursor:pointer;transition:background .15s,border-color .15s;}
.pd-bundle-toggle:hover{background:var(--mint);border-color:var(--green);}
.pd-bundle-toggle .pd-bundle-chev{width:18px;height:18px;flex-shrink:0;color:var(--green);transition:transform .2s ease;}
.pd-bundle-toggle.is-open .pd-bundle-chev{transform:rotate(180deg);}
.pd-bundle-items{margin:10px 0 0;padding:6px 0;border:1px solid var(--line);border-radius:12px;overflow:hidden;}
.pd-bundle-items .woosb-products,.pd-bundle-items .woosb-wrap{margin:0;max-width:100%;}
/* Variable products inside a bundle: keep the (pre-selected) swatch but compact
   it, drop the redundant attribute label — the item name already names the
   product — tighten margins, and make sure the WPC flex row can shrink so the
   variation form never forces a horizontal page scroll. */
.pd-bundle-items .woosb-product{flex-wrap:wrap;}
.pd-bundle-items .woosb-title{min-width:0;}
.pd-bundle-items .variations_form{max-width:100%;}
.pd-bundle-items .variations{width:100%;max-width:100%;margin:8px 0 0;}
.pd-bundle-items .variations .variation{margin:0;}
.pd-bundle-items .variations .label{display:none !important;}
.pd-bundle-items .pd-swatches{gap:6px;}
.pd-bundle-items .pd-swatch{padding:5px 12px;font-size:12px;border-radius:8px;}
.pd-bundle-items .pd-swatch.is-active{box-shadow:none;}
.pd-bundle-items .reset,.pd-bundle-items .reset_variations{display:none !important;}
.pd-bundle-items .woosb-availability{margin-top:6px;font-size:12px;color:var(--muted);}
.pd-bundle-items .woosb-availability p{margin:0;}
/* Real fix for the horizontal page scroll: the .pd-top grid columns default to
   min-width:auto and won't shrink below the WPC variation content, pushing the
   whole page wider. Allow the columns to shrink and clip any residual overflow
   (overflow-x:clip leaves vertical scrolling and fixed elements untouched). */
.pd-info{min-width:0;}
.pd-gallery-col{min-width:0;}
.pd-wrap{overflow-x:clip;}
.pd-top{overflow-x:clip;}
/* Override WPC Product Bundles borders we don't want. */
.pd-bundle-items .woosb-products .woosb-product{border:0 !important;}
.pd-bundle-items .woosb-products .woosb-product .variations_form .variations .variation{border:0 !important;}
.pd-bundle-items .woosb-price{padding:25px;}

/* ---- feature strip ---- */
.pd-strip{display:grid;grid-template-columns:repeat(4,1fr);border:1.5px solid var(--line);border-radius:16px;margin:40px 0;overflow:hidden;}
.pd-strip > div{padding:24px 22px;border-left:1px solid var(--line);}
.pd-strip > div:first-child{border-left:none;}
.pd-strip > div:nth-child(even){background:#f5f9f7;}
.pd-strip-head{display:flex;align-items:center;gap:12px;margin-bottom:10px;}
.pd-strip .ic{width:42px;height:42px;flex-shrink:0;border-radius:11px;background:var(--mint);display:flex;align-items:center;justify-content:center;color:var(--green);}
.pd-strip .ic svg{width:22px;height:22px;}
.pd-strip b{font-family:var(--font-jost);font-size:15px;color:var(--ink);display:block;}
.pd-strip p{color:var(--muted);font-size:12.5px;line-height:1.5;margin:0 0 10px;}
.pd-strip a{color:var(--green);font-weight:700;font-size:12.5px;}

/* ---- tabs ---- */
.pd-tabs{border:1.5px solid var(--line);border-radius:16px;padding:22px 24px 30px;}
.pd-tabnav{display:flex;gap:6px;background:#f4f7f5;border:1px solid var(--line);border-radius:13px;padding:5px;}
.pd-tabnav button{flex:1 1 0;min-width:0;display:flex;align-items:center;justify-content:center;gap:8px;padding:12px 6px;font-family:var(--font-jost);font-weight:700;font-size:13.5px;color:var(--muted);background:none;border:none;border-radius:9px;cursor:pointer;line-height:1.15;transition:background .15s,color .15s,box-shadow .15s;}
.pd-tabnav button svg{width:17px;height:17px;flex-shrink:0;}
.pd-tabnav button:hover{color:var(--ink);}
.pd-tabnav button.is-active{background:#fff;color:var(--green);box-shadow:0 2px 6px rgba(22,25,31,.08);}
.pd-acc-head{display:none;}
.pd-acc-body{display:block;}
.pd-tabpanel{display:none;padding-top:28px;}
.pd-tabpanel.is-active{display:block;}
@media(min-width:561px){.pd-tabpanel.pd-overview.is-active .pd-acc-body{display:grid;grid-template-columns:1fr 1fr;gap:40px;}}
@media(min-width:561px) and (max-width:980px){.pd-tabpanel.pd-overview.is-active .pd-acc-body{grid-template-columns:1fr;gap:24px;}}
.pd-tabpanel p{color:var(--muted);font-size:14px;line-height:1.7;margin:0 0 18px;}
/* FAQ accordion */
.pd-faq{display:flex;flex-direction:column;gap:10px;}
.pd-faq-item{border:1px solid var(--line);border-radius:12px;overflow:hidden;background:#fff;}
.pd-faq-item summary{display:flex;align-items:center;justify-content:space-between;gap:14px;padding:16px 18px;cursor:pointer;font-family:var(--font-jost);font-weight:700;font-size:14.5px;color:var(--ink);list-style:none;}
.pd-faq-item summary::-webkit-details-marker{display:none;}
.pd-faq-item summary:hover{background:#f7faf8;}
.pd-faq-item summary .pd-faq-ic{width:20px;height:20px;flex-shrink:0;color:var(--green);transition:transform .2s;}
.pd-faq-item[open] summary{color:var(--green);}
.pd-faq-item[open] summary .pd-faq-ic{transform:rotate(180deg);}
.pd-faq-a{padding:0 18px 16px;color:var(--muted);font-size:13.5px;line-height:1.7;}
.pd-faq-a p{margin:0;font-size:13.5px;}
.pd-checks{list-style:none;margin:0;padding:0;}
.pd-checks li{display:flex;align-items:center;gap:10px;margin-bottom:13px;font-size:14px;color:var(--ink);font-weight:600;}
.pd-checks b{font-weight:800;}
.pd-checks svg{width:18px;height:18px;color:var(--green);flex-shrink:0;}
.pd-spec{background:var(--mint);border-radius:12px;overflow:hidden;align-self:start;}
.pd-spec .r{display:grid;grid-template-columns:1fr 1fr;padding:13px 18px;border-bottom:1px solid rgba(255,255,255,.7);font-size:13.5px;}
.pd-spec .r:last-child{border-bottom:none;}
.pd-spec .k{color:var(--ink);font-weight:700;}
.pd-spec .v{color:var(--muted);}

/* ---- related ---- */
.pd-related{margin:46px 0 64px;}
.pd-related-head{display:flex;align-items:center;justify-content:space-between;margin-bottom:22px;gap:16px;}
.pd-related-head h2{font-family:var(--font-jost);font-size:26px;font-weight:800;margin:0;color:var(--ink);}
.pd-related-head a{color:var(--green);font-weight:700;font-size:14px;white-space:nowrap;}
.pd-related .pgrid{grid-template-columns:repeat(4,1fr);gap:16px;}

@media(max-width:980px){
  .pd-top{grid-template-columns:1fr;gap:30px;}
  .pd-strip{grid-template-columns:1fr 1fr;}
  .pd-strip > div:nth-child(3){border-left:none;}
  .pd-related .pgrid{grid-template-columns:repeat(2,1fr);}
}
@media(max-width:560px){
  .pd-title{font-size:23px;}
  .pd-cta{grid-template-columns:1fr;}
  .pd-main{min-height:320px;}
  .pd-related .pgrid{grid-template-columns:repeat(2,1fr);}
  /* Tabs become an accordion on mobile */
  .pd-tabs{border:none;padding:0;}
  .pd-tabnav{display:none;}
  .pd-tabpanel{display:block !important;padding:0;border:1px solid var(--line);border-radius:13px;margin-bottom:10px;overflow:hidden;background:#fff;}
  .pd-tabpanel.is-open{border-color:#bfe3d3;box-shadow:0 4px 16px rgba(29,160,116,.08);}
  .pd-acc-head{display:flex;align-items:center;gap:11px;width:100%;padding:14px 15px;background:none;border:none;cursor:pointer;font-family:var(--font-jost);font-weight:700;font-size:15px;color:var(--ink);text-align:left;}
  .pd-tabpanel.is-open .pd-acc-head{color:var(--green);}
  .pd-acc-ic{width:34px;height:34px;border-radius:9px;background:var(--mint);display:flex;align-items:center;justify-content:center;flex-shrink:0;}
  .pd-acc-ic svg{width:18px;height:18px;color:var(--green);}
  .pd-tabpanel.is-open .pd-acc-ic{background:var(--green);}
  .pd-tabpanel.is-open .pd-acc-ic svg{color:#fff;}
  .pd-acc-label{flex:1;}
  .pd-acc-chev{width:18px;height:18px;color:var(--muted);transition:transform .2s;flex-shrink:0;}
  .pd-tabpanel.is-open .pd-acc-chev{transform:rotate(180deg);color:var(--green);}
  .pd-acc-body{display:none;padding:0 16px 18px;}
  .pd-tabpanel.is-open .pd-acc-body{display:block;}
}

/* Hide WooCommerce stock/availability on the product detail page (esp. variations) */
.pd .woocommerce-variation-availability,
.pd-info .stock,
.pd-info p.availability{display:none !important;}

/* Image lightbox */
#pd-lightbox{position:fixed;inset:0;z-index:99999;display:none;align-items:center;justify-content:center;padding:30px;background:rgba(0,0,0,.85);cursor:zoom-out;}
#pd-lightbox.is-open{display:flex;}
#pd-lightbox .pd-lb-img{max-width:92vw;max-height:90vh;border-radius:8px;box-shadow:0 10px 50px rgba(0,0,0,.5);background:#fff;}
#pd-lightbox .pd-lb-close{position:absolute;top:18px;right:24px;width:44px;height:44px;border:none;background:rgba(255,255,255,.16);color:#fff;font-size:28px;line-height:1;border-radius:50%;cursor:pointer;display:flex;align-items:center;justify-content:center;}
#pd-lightbox .pd-lb-close:hover{background:rgba(255,255,255,.3);}

/* ===== Lab Results rows ===== */
.pd-labs{display:flex;flex-direction:column;gap:12px;}
.pd-lab-row{display:flex;align-items:center;gap:16px;padding:14px 16px;border:1px solid var(--line);border-radius:14px;background:#fff;}
.pd-lab-thumb{width:56px;height:56px;flex-shrink:0;border-radius:10px;overflow:hidden;background:var(--mint);display:flex;align-items:center;justify-content:center;}
.pd-lab-thumb img{width:100%;height:100%;object-fit:cover;display:block;}
.pd-lab-noimg{font-size:12px;font-weight:700;color:var(--green);}
.pd-lab-info{flex:1;min-width:0;}
.pd-lab-title{font-weight:700;color:var(--ink);font-size:15px;}
.pd-lab-date{font-size:13px;color:var(--muted);margin-top:2px;}
.pd-lab-view{display:inline-flex;align-items:center;gap:7px;flex-shrink:0;background:var(--green);color:#fff;border:none;border-radius:9px;padding:9px 16px;font-weight:700;font-size:14px;cursor:pointer;transition:background .15s;}
.pd-lab-view:hover{background:var(--green-d);}
.pd-lab-view svg{width:16px;height:16px;}

/* ===== PDF modal (View Report) ===== */
#pd-pdf-modal{position:fixed;inset:0;z-index:99999;display:none;align-items:center;justify-content:center;padding:24px;background:rgba(0,0,0,.7);}
#pd-pdf-modal.is-open{display:flex;}
#pd-pdf-modal .pd-pdf-box{width:min(900px,96vw);height:90vh;background:#fff;border-radius:14px;overflow:hidden;display:flex;flex-direction:column;box-shadow:0 20px 60px rgba(0,0,0,.4);}
#pd-pdf-modal .pd-pdf-head{display:flex;align-items:center;gap:14px;padding:12px 16px;border-bottom:1px solid var(--line);background:#fff;}
#pd-pdf-modal .pd-pdf-title{font-weight:700;color:var(--ink);font-size:15px;flex:1;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;}
#pd-pdf-modal .pd-pdf-open{font-size:13px;font-weight:600;color:var(--green);text-decoration:none;white-space:nowrap;}
#pd-pdf-modal .pd-pdf-open:hover{text-decoration:underline;}
#pd-pdf-modal .pd-pdf-close{width:34px;height:34px;border:none;background:var(--mint);color:var(--ink);font-size:22px;line-height:1;border-radius:8px;cursor:pointer;display:flex;align-items:center;justify-content:center;flex-shrink:0;}
#pd-pdf-modal .pd-pdf-close:hover{background:#d7e8df;}
#pd-pdf-modal .pd-pdf-frame{flex:1;width:100%;border:none;background:#525659;}

@media (max-width:560px){
	.pd-lab-row{flex-wrap:wrap;}
	.pd-lab-view{width:100%;justify-content:center;}
	#pd-pdf-modal{padding:0;}
	#pd-pdf-modal .pd-pdf-box{width:100vw;height:100vh;border-radius:0;}
}

@media (max-width:560px){
	.pd-usage{padding:12px 16px;}
	.pd-usage-head{font-size:13.5px;}
	.pd-usage-text{font-size:12px;line-height:1.55;}
}

/* ===== Overview right column: Product Quality box ===== */
.pd-ov-right{display:flex;flex-direction:column;gap:18px;}
.pd-quality{background:var(--mint);border:1px solid #d7e8df;border-radius:14px;padding:20px 22px;}
.pd-quality > :first-child{margin-top:0;}
.pd-quality > :last-child{margin-bottom:0;}
.pd-quality h2,.pd-quality h3,.pd-quality h4{color:var(--ink);font-family:var(--font-jost);font-weight:800;margin:0 0 10px;font-size:17px;}
.pd-quality p{color:var(--ink);font-size:14px;line-height:1.7;margin:0 0 10px;}
.pd-quality ul,.pd-quality ol{margin:0;padding-left:18px;}
.pd-quality li{color:var(--ink);font-size:14px;line-height:1.7;margin-bottom:6px;}
.pd-quality strong,.pd-quality b{color:var(--ink);}

/* ===== Properties tab: key / value table ===== */
.pd-props-table{width:100%;border-collapse:collapse;border:1px solid var(--line);border-radius:12px;overflow:hidden;}
.pd-props-table tr{border-bottom:1px solid var(--line);}
.pd-props-table tr:last-child{border-bottom:none;}
.pd-props-table th,.pd-props-table td{text-align:left;padding:13px 18px;font-size:14px;vertical-align:top;}
.pd-props-table th{width:38%;font-weight:700;color:var(--ink);font-family:var(--font-jost);background:var(--mint);border-right:1px solid var(--line);}
.pd-props-table td{color:#374151;line-height:1.6;}

@media(max-width:560px){
	.pd-props-table th,.pd-props-table td{padding:11px 13px;font-size:13px;}
	.pd-props-table th{width:42%;}
}

/* ===== 3D molecule viewer ===== */
.pd-mol3d{margin:0;border:1px solid var(--line);border-radius:16px;background:#fff;overflow:hidden;}
.pd-mol3d-head{display:flex;align-items:center;justify-content:space-between;gap:12px;padding:15px 20px;border-bottom:1px solid var(--line);flex-wrap:wrap;}
.pd-mol3d-head h3{font-family:var(--font-jost);font-size:16px;font-weight:800;color:var(--ink);margin:0;}
.pd-mol3d-head h3 .pd-mol3d-of{font-weight:500;color:var(--muted);}
.pd-mol3d-head h3 .pd-mol3d-formula{font-weight:700;color:var(--green);white-space:nowrap;}
.pd-mol3d-head h3 .pd-mol3d-formula sub{font-size:.7em;font-weight:600;}
.pd-mol3d-hint{font-size:12px;color:var(--muted);}
.pd-mol3d-stage{position:relative;width:100%;height:380px;background:radial-gradient(circle at 50% 38%,#fbfdfc 0%,#edf4f0 100%);cursor:grab;}
.pd-mol3d-stage:active{cursor:grabbing;}
.pd-mol3d-canvas{position:relative;width:100%;height:100%;}
.pd-mol3d-canvas canvas{display:block;}
.pd-mol3d-overlay{position:absolute;inset:0;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:12px;color:var(--muted);font-size:13px;pointer-events:none;transition:opacity .35s;}
.pd-mol3d.is-ready .pd-mol3d-overlay{opacity:0;}
.pd-mol3d-spinner{width:30px;height:30px;border:3px solid var(--line);border-top-color:var(--green);border-radius:50%;animation:pd-mol-spin .8s linear infinite;}
.pd-mol3d.is-error .pd-mol3d-spinner{display:none;}
/* Play / pause rotation toggle (injected by mol3d.js once the structure is ready) */
/* Footer bar (injected by mol3d.js once ready): colour legend left, play/pause toggle right */
.pd-mol3d-foot{display:flex;align-items:center;justify-content:space-between;gap:14px;padding:11px 18px;border-top:1px solid var(--line);background:#fff;flex-wrap:wrap;}
.pd-mol3d-legend{display:flex;align-items:center;gap:18px;flex-wrap:wrap;}
.pd-mol3d-legend-item{display:inline-flex;align-items:center;gap:7px;font-size:13px;color:var(--ink);}
.pd-mol3d-dot{width:14px;height:14px;border-radius:50%;border:1px solid rgba(0,0,0,.14);flex-shrink:0;box-shadow:inset 0 0 0 1px rgba(255,255,255,.25);}
.pd-mol3d-toggle{flex-shrink:0;width:38px;height:38px;border-radius:50%;border:1px solid var(--line);background:#fff;color:var(--green);display:flex;align-items:center;justify-content:center;cursor:pointer;transition:background .2s,transform .15s,box-shadow .2s;}
.pd-mol3d-toggle:hover{background:var(--mint);transform:translateY(-1px);box-shadow:0 4px 12px rgba(20,40,30,.14);}
.pd-mol3d-toggle svg{width:18px;height:18px;fill:currentColor;display:block;}
.pd-mol3d-toggle .ic-play{display:none;margin-left:2px;}
.pd-mol3d-toggle.is-paused .ic-pause{display:none;}
.pd-mol3d-toggle.is-paused .ic-play{display:block;}
@keyframes pd-mol-spin{to{transform:rotate(360deg);}}
@media(max-width:560px){.pd-mol3d-stage{height:300px;}}

/* Out-of-stock: Omnisend back-in-stock form (replaces qty + Add to Cart) */
.pd-oos-form{margin:14px 0 4px;padding:16px 18px;border:1px solid var(--line,#e4e8ea);border-radius:14px;background:#f7faf8;}
.pd-oos-head{font-family:var(--font-jost,'Jost',sans-serif);font-weight:700;font-size:15px;color:var(--ink,#0f1b16);margin-bottom:10px;}
.pd-oos-note{margin:12px 0;font-weight:600;color:var(--red,#d62a28);}
