/* ===========================================================================
   PRO RESEARCH — design system from client-approved landing page.
   Scoped under .prp-page (wraps the whole site).
   =========================================================================== */
.prp-page{
  --prp-bg:#05080f;
  --prp-bg-hero:#070d1c;
  --prp-panel:#0e1424;
  --prp-panel-2:#101a30;
  --prp-border:#1b2740;
  --prp-red:#e11d2a;
  --prp-red-d:#b9141f;
  --prp-blue:#2f6bd6;
  --prp-text:#e8edf7;
  --prp-muted:#94a1bb;
  --prp-muted-2:#6b7894;
  --prp-font-display:"Oswald","Bebas Neue","Arial Narrow",system-ui,sans-serif;
  --prp-font-body:"Inter",system-ui,-apple-system,"Segoe UI",Roboto,sans-serif;
  --prp-maxw:1200px;

  background:var(--prp-bg);
  color:var(--prp-text);
  font-family:var(--prp-font-body);
  font-size:16px;line-height:1.5;
  -webkit-font-smoothing:antialiased;
  overflow-x:hidden;
}
.prp-page *{box-sizing:border-box;}
.prp-page a{color:inherit;text-decoration:none;}
.prp-page img{max-width:100%;display:block;}
.prp-container{max-width:var(--prp-maxw);margin:0 auto;padding:0 28px;}
.prp-visually-hidden{position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0 0 0 0);white-space:nowrap;}

/* ---------- buttons ---------- */
.prp-btn{
  display:inline-flex;align-items:center;justify-content:center;
  font-family:var(--prp-font-body);font-weight:600;font-size:14px;
  padding:13px 26px;border-radius:6px;cursor:pointer;border:1px solid transparent;
  transition:transform .15s ease,background .15s ease,border-color .15s ease;letter-spacing:.2px;
}
.prp-btn:hover{transform:translateY(-1px);}
.prp-btn--primary,.prp-btn--shop{background:var(--prp-red);color:#fff;}
.prp-btn--primary:hover,.prp-btn--shop:hover{background:var(--prp-red-d);}
.prp-btn--shop{padding:11px 22px;font-size:13.5px;}
.prp-btn--ghost{background:transparent;color:#fff;border-color:#39455f;}
.prp-btn--ghost:hover{border-color:#fff;}

/* ---------- header ---------- */
.prp-header{background:#04060c;border-bottom:1px solid #0e1626;position:sticky;top:0;z-index:200;}
.prp-header__inner{display:flex;align-items:center;gap:24px;height:76px;}
.prp-logo{display:flex;align-items:center;gap:11px;flex:none;}
.prp-logo__img{height:48px;width:auto;display:block;}
/* hard cap so WooCommerce/archive contexts can never blow up the header logo */
.prp-header .prp-logo__img{height:48px!important;max-height:48px!important;width:auto!important;max-width:200px;}
.prp-logo__text{display:flex;flex-direction:column;line-height:1;font-family:var(--prp-font-display);}
.prp-logo__text strong{font-size:20px;letter-spacing:1.5px;font-weight:600;}
.prp-logo__text em{font-style:normal;font-size:9.5px;letter-spacing:4px;color:var(--prp-muted);margin-top:3px;}
.prp-nav{display:flex;gap:30px;margin-left:18px;flex:1;list-style:none;margin-top:0;margin-bottom:0;padding:0;}
.prp-nav li{position:relative;list-style:none;}
.prp-nav__item,.prp-nav a{font-size:14.5px;color:#d4dbe9;font-weight:500;display:inline-flex;align-items:center;gap:5px;padding:6px 0;}
.prp-nav__item:hover,.prp-nav a:hover{color:#fff;}
.prp-nav .menu-item-has-children>a::after{content:"▾";font-size:9px;color:var(--prp-muted);margin-left:4px;}
.prp-caret{font-size:9px;color:var(--prp-muted);}
.prp-nav .sub-menu{position:absolute;top:100%;left:0;min-width:210px;background:#0b1322;border:1px solid var(--prp-border);
  border-radius:10px;padding:8px;list-style:none;margin:8px 0 0;opacity:0;visibility:hidden;transform:translateY(8px);
  transition:.18s ease;box-shadow:0 18px 50px -18px rgba(0,0,0,.8);z-index:50;}
.prp-nav li:hover>.sub-menu{opacity:1;visibility:visible;transform:translateY(0);}
.prp-nav .sub-menu li{display:block;}
.prp-nav .sub-menu a{display:block;padding:9px 12px;border-radius:7px;font-size:13.5px;color:#b9c2d6;}
.prp-nav .sub-menu a:hover{background:rgba(255,255,255,.05);color:#fff;}
.prp-header__actions{display:flex;align-items:center;gap:18px;}
.prp-iconbtn{background:none;border:none;color:#cfd7e6;cursor:pointer;display:inline-flex;position:relative;padding:0;}
.prp-iconbtn:hover{color:#fff;}
.prp-cart-badge{position:absolute;top:-8px;right:-9px;background:var(--prp-red);color:#fff;font-size:10px;font-weight:700;min-width:16px;height:16px;border-radius:9px;display:flex;align-items:center;justify-content:center;padding:0 4px;}
.prp-navtoggle{display:none;background:none;border:none;color:#fff;cursor:pointer;padding:0;}

/* ---------- hero ---------- */
.prp-hero{
  position:relative;padding-top:0;
  background:
    radial-gradient(1100px 620px at 70% 12%, rgba(45,80,150,.40), transparent 62%),
    radial-gradient(800px 520px at 82% 42%, rgba(20,45,95,.45), transparent 58%),
    linear-gradient(180deg,#070d1c 0%, #05080f 100%);
  overflow:hidden;
}
.prp-hero::before{
  content:"";position:absolute;inset:0;
  background-image:radial-gradient(rgba(120,150,200,.07) 1px,transparent 1px);
  background-size:28px 28px;opacity:.6;pointer-events:none;
}
.prp-hero__glow{position:absolute;top:-120px;right:-60px;width:680px;height:680px;border-radius:50%;
  background:radial-gradient(circle, rgba(40,80,160,.30), transparent 60%);pointer-events:none;}
.prp-hero__inner{position:relative;z-index:2;display:grid;grid-template-columns:1fr 1.05fr;gap:30px;align-items:center;min-height:560px;padding-top:50px;}
.prp-eyebrow{color:var(--prp-red);font-size:12px;font-weight:700;letter-spacing:2.5px;margin:0 0 18px;text-transform:uppercase;}
.prp-hero__title{font-family:var(--prp-font-display);font-weight:600;font-size:clamp(46px,5.6vw,80px);line-height:.95;letter-spacing:.5px;margin:0 0 22px;text-transform:uppercase;}
.prp-accent{color:var(--prp-red);}
.prp-hero__lead{color:#aeb9cf;font-size:16px;line-height:1.6;margin:0 0 30px;max-width:440px;}
.prp-hero__trust{display:flex;align-items:center;gap:20px;margin-bottom:32px;flex-wrap:wrap;}
.prp-trust{display:flex;align-items:center;gap:11px;}
.prp-trust__ico{width:46px;height:46px;border-radius:50%;border:1px solid #2a3550;display:flex;align-items:center;justify-content:center;background:rgba(255,255,255,.02);}
.prp-trust__txt{font-size:10px;letter-spacing:.6px;color:var(--prp-muted);line-height:1.35;}
.prp-trust__txt strong{color:#fff;font-size:11px;letter-spacing:.8px;}
.prp-trust__div{width:1px;height:34px;background:#1d2740;}
.prp-hero__cta{display:flex;gap:14px;flex-wrap:wrap;}

/* hero art (SVG vial cluster standin / IMG SLOT 1) */
.prp-hero__art{--prp-hero-img:none;position:relative;min-height:560px;display:flex;align-items:flex-end;justify-content:center;
  background:var(--prp-hero-img) center/contain no-repeat;}
/* client hero image shown AS-IS — their own composed DNA/molecule/platform scene, no filters/cutout */
.prp-hero__photo{align-self:center;max-width:600px;width:100%;height:auto;}
.prp-hero__platform{position:absolute;bottom:54px;left:50%;transform:translateX(-50%);width:78%;height:46px;border-radius:50%;
  background:radial-gradient(ellipse at center, rgba(70,110,190,.45), rgba(20,40,80,.12) 60%, transparent 72%);filter:blur(2px);}
.prp-hero__vials{position:relative;display:flex;align-items:flex-end;justify-content:center;gap:6px;padding-bottom:70px;width:100%;}
.prp-vial{filter:drop-shadow(0 18px 30px rgba(0,0,0,.55));}
.prp-vial--s{width:78px;}
.prp-vial--m{width:96px;}
.prp-vial--xl{width:128px;position:relative;z-index:3;}
.prp-vial--bl,.prp-vial--br{opacity:.78;z-index:1;margin-bottom:8px;}
.prp-vial--l,.prp-vial--r{z-index:2;}
.prp-hero__vial-img{width:clamp(58px,9vw,118px);object-fit:contain;filter:drop-shadow(0 18px 30px rgba(0,0,0,.55));}
.prp-hero__vial-img--xl{width:clamp(82px,13vw,160px);z-index:3;}
.prp-hero__vial-img--s{width:clamp(50px,7.5vw,96px);opacity:.85;margin-bottom:10px;}

/* feature bar */
.prp-featurebar{position:relative;z-index:2;margin:18px 0 60px;background:rgba(10,16,30,.66);border:1px solid var(--prp-border);border-radius:12px;
  display:grid;grid-template-columns:1fr auto 1fr auto 1fr auto 1fr;align-items:center;padding:20px 8px;backdrop-filter:blur(4px);}
.prp-feature{display:flex;align-items:center;gap:13px;padding:0 22px;}
.prp-feature__ico{flex:0 0 auto;opacity:.92;}
.prp-feature__txt{font-size:11px;letter-spacing:.5px;color:var(--prp-muted);line-height:1.45;}
.prp-feature__txt strong{display:block;color:#fff;font-size:12.5px;letter-spacing:.6px;margin-bottom:2px;}
.prp-feature__div{width:1px;height:34px;background:#1b2740;}

/* ---------- sections ---------- */
.prp-section{padding:64px 0;}
.prp-section--tight{padding:24px 0 64px;}
.prp-section__head{display:flex;align-items:flex-end;justify-content:space-between;margin:6px 0 30px;gap:20px;flex-wrap:wrap;}
.prp-h2{font-family:var(--prp-font-body);font-weight:700;font-size:clamp(26px,3vw,34px);margin:0;letter-spacing:-.5px;}
.prp-viewall{color:#cdd6e8;font-size:13.5px;font-weight:600;display:inline-flex;align-items:center;gap:7px;}
.prp-viewall span{color:var(--prp-red);font-size:18px;line-height:1;}
.prp-viewall:hover{color:#fff;}
.prp-section__head-right{display:flex;align-items:center;gap:18px;}
.prp-carousel-btns{display:flex;gap:8px;}
.prp-cbtn{width:38px;height:38px;border-radius:8px;border:1px solid var(--prp-border);background:var(--prp-panel);color:#cdd6e8;font-size:18px;cursor:pointer;line-height:1;}
.prp-cbtn:hover{border-color:var(--prp-red);color:#fff;}
.prp-cbtn:disabled{opacity:.4;cursor:default;}

/* ---------- categories ---------- */
.prp-cats{display:grid;grid-template-columns:repeat(5,1fr);gap:16px;}
.prp-cat{position:relative;border-radius:12px;overflow:hidden;min-height:300px;border:1px solid var(--prp-border);
  display:flex;align-items:flex-end;background:#0b1322;transition:transform .2s ease,border-color .2s ease;}
.prp-cat:hover{transform:translateY(-4px);border-color:#2c3a5a;}
.prp-cat__thumb{position:absolute;inset:0;background-size:cover;background-position:center;opacity:.9;}
.prp-cat__thumb::after{content:"";position:absolute;inset:0;background:linear-gradient(180deg,rgba(5,8,15,.15) 25%,rgba(5,8,15,.94) 100%);}
.prp-cat__body{position:relative;z-index:2;padding:22px 20px;display:flex;flex-direction:column;}
.prp-cat__title{font-family:var(--prp-font-body);font-weight:700;font-size:19px;line-height:1.15;margin:0 0 8px;color:#fff;}
/* Category cards always sit over a dark image gradient → keep the heading white in light mode too. */
[data-theme="light"] .prp-cat__title{color:#fff;}
.prp-cat__desc{color:#aab4ca;font-size:12.5px;line-height:1.45;margin:0 0 14px;max-width:200px;}
.prp-cat__link{color:#fff;font-size:13px;font-weight:600;}
.prp-cat:hover .prp-cat__link{color:var(--prp-red);}
.prp-cat__thumb--regen{background-image:linear-gradient(160deg,#12283f,#0a1322);}
.prp-cat__thumb--metabolic{background-image:radial-gradient(circle at 70% 35%,rgba(60,120,200,.5),transparent 55%),linear-gradient(160deg,#0f2a44,#0a1322);}
.prp-cat__thumb--performance{background-image:radial-gradient(circle at 60% 40%,rgba(190,60,60,.45),transparent 55%),linear-gradient(160deg,#3a1416,#0a1322);}
.prp-cat__thumb--cosmetic{background-image:radial-gradient(circle at 65% 45%,rgba(200,50,90,.5),transparent 55%),linear-gradient(160deg,#3a121c,#0a1322);}
.prp-cat__thumb--cognitive{background-image:radial-gradient(circle at 70% 40%,rgba(60,120,210,.5),transparent 55%),linear-gradient(160deg,#10294a,#0a1322);}

/* ---------- products (vial left, text right) ---------- */
.prp-products{display:flex;gap:16px;overflow-x:auto;overflow-y:hidden;scroll-snap-type:x mandatory;scroll-behavior:smooth;
  padding:4px 2px 14px;margin:0 -2px;-ms-overflow-style:none;scrollbar-width:none;}
.prp-products::-webkit-scrollbar{display:none;}
.prp-prod{flex:0 0 230px;scroll-snap-align:start;background:linear-gradient(180deg,#0e1626,#0a111f);border:1px solid var(--prp-border);
  border-radius:12px;overflow:hidden;display:flex;flex-direction:column;transition:transform .2s ease,border-color .2s ease;}
.prp-prod:hover{transform:translateY(-4px);border-color:#2c3a5a;}
.prp-prod__media{flex:0 0 auto;height:210px;display:flex;align-items:center;justify-content:center;padding:24px 18px 14px;
  background:radial-gradient(circle at 50% 42%,rgba(70,100,165,.20),transparent 62%);}
.prp-prod__media img{max-width:100%;max-height:170px;width:auto;height:auto;object-fit:contain;filter:drop-shadow(0 10px 18px rgba(0,0,0,.55));}
.prp-vial--card{max-height:150px;filter:drop-shadow(0 10px 18px rgba(0,0,0,.55));}
.prp-prod__body{padding:6px 18px 18px;display:flex;flex-direction:column;flex:1;min-width:0;}
.prp-prod__name{font-family:var(--prp-font-body);font-weight:700;font-size:15.5px;margin:0 0 8px;}
.prp-prod__name a{color:inherit;}
.prp-tag{display:inline-block;align-self:flex-start;font-size:10px;font-weight:700;letter-spacing:.8px;color:#fff;padding:3px 9px;border-radius:4px;margin-bottom:12px;}
.prp-tag--red{background:var(--prp-red);}
.prp-tag--blue{background:var(--prp-blue);}
.prp-prod__desc{color:#9aa6bf;font-size:12px;line-height:1.4;margin:0 0 14px;flex:1;}
.prp-prod__foot{display:flex;align-items:center;justify-content:space-between;gap:8px;}
.prp-price{font-weight:700;font-size:16px;color:#fff;}
.prp-price .amount{color:#fff;}
.prp-price del{color:var(--prp-muted-2);font-weight:500;font-size:12px;margin-right:5px;}
.prp-price ins{text-decoration:none;}
.prp-addbtn{width:34px;height:34px;flex:0 0 auto;border-radius:8px;border:1px solid var(--prp-border);background:transparent;color:#cdd6e8;cursor:pointer;display:flex;align-items:center;justify-content:center;transition:.15s;}
.prp-addbtn:hover{border-color:var(--prp-red);color:var(--prp-red);}

/* ---------- quality banner ---------- */
.prp-quality{--prp-quality-img:none;position:relative;border-radius:16px;overflow:hidden;border:1px solid var(--prp-border);
  background:var(--prp-quality-img) right center/cover no-repeat,
    radial-gradient(700px 400px at 80% 50%, rgba(45,80,150,.5), transparent 60%),
    linear-gradient(120deg,#0b1322 28%,#0d1830 100%);
  padding:54px 48px;display:flex;align-items:center;justify-content:space-between;gap:30px;flex-wrap:wrap;}
.prp-quality__dna{position:absolute;right:0;top:0;bottom:0;width:55%;pointer-events:none;
  background:radial-gradient(circle at 70% 50%, rgba(225,29,42,.22), transparent 45%),radial-gradient(circle at 85% 40%, rgba(70,110,200,.3), transparent 50%);
  -webkit-mask:linear-gradient(90deg,transparent,#000 40%);mask:linear-gradient(90deg,transparent,#000 40%);}
.prp-quality__copy,.prp-quality__badges{position:relative;z-index:2;}
.prp-quality__title{font-family:var(--prp-font-body);font-weight:700;font-size:clamp(26px,3vw,34px);margin:0 0 6px;}
.prp-quality__sub{color:#9aa6bf;font-size:15px;margin:0 0 22px;}
.prp-quality__badges{display:flex;gap:34px;flex-wrap:wrap;}
.prp-qbadge{display:flex;align-items:center;gap:12px;font-size:12px;color:var(--prp-muted);line-height:1.4;}
.prp-qbadge strong{color:#fff;font-size:13px;}
.prp-qbadge__ico{opacity:.9;}

/* ---------- footer ---------- */
.prp-footer{background:radial-gradient(900px 500px at 85% 0%, rgba(40,70,130,.22), transparent 60%),linear-gradient(180deg,#070d1c 0%,#04060c 100%);border-top:1px solid #0e1626;}
.prp-footer__top{display:grid;grid-template-columns:1.6fr 1fr 1fr 1fr 1.5fr;gap:40px 32px;padding:62px 28px 46px;}
.prp-footcol--brand{max-width:320px;}
.prp-footer .prp-logo{margin-bottom:18px;}
.prp-footer__about{color:var(--prp-muted);font-size:13.5px;line-height:1.65;margin:0 0 20px;}
.prp-social{display:flex;gap:10px;}
.prp-social a{width:38px;height:38px;border-radius:8px;border:1px solid var(--prp-border);display:flex;align-items:center;justify-content:center;color:#cdd6e8;transition:border-color .15s ease,color .15s ease,transform .15s ease;}
.prp-social a:hover{border-color:var(--prp-red);color:var(--prp-red);transform:translateY(-2px);}
.prp-footcol__title{font-family:var(--prp-font-body);font-weight:700;font-size:14px;letter-spacing:.4px;color:#fff;margin:2px 0 18px;}
.prp-footlinks{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:11px;}
.prp-footlinks a{color:var(--prp-muted);font-size:13.5px;transition:color .15s ease,padding .15s ease;}
.prp-footlinks a:hover{color:#fff;padding-left:4px;}
.prp-footcol--news{max-width:330px;}
.prp-news__copy{color:var(--prp-muted);font-size:13.5px;line-height:1.6;margin:0 0 16px;}
.prp-news__form{display:flex;gap:8px;margin-bottom:12px;flex-wrap:wrap;}
.prp-news__input{flex:1;min-width:0;background:var(--prp-panel);border:1px solid var(--prp-border);border-radius:6px;color:#fff;font-size:13.5px;padding:12px 14px;font-family:var(--prp-font-body);transition:border-color .15s ease;}
.prp-news__input::placeholder{color:#5f6c87;}
.prp-news__input:focus{outline:none;border-color:var(--prp-red);}
.prp-news__btn{flex:0 0 auto;padding:12px 22px;font-size:13.5px;}
.prp-news__fineprint{color:#5f6c87;font-size:11px;line-height:1.5;margin:0;}
.prp-news__hp{position:absolute!important;left:-9999px!important;width:1px;height:1px;opacity:0;pointer-events:none;}
.prp-news__msg{font-size:12.5px;line-height:1.5;margin:0 0 12px;}
.prp-news__msg.is-ok{color:#4ade80;}
.prp-news__msg.is-err{color:#f87171;}
/* Footer contact block (address / phone / email) */
.prp-footer__contact{list-style:none;margin:20px 0 0;padding:0;display:flex;flex-direction:column;gap:12px;}
.prp-contact__item{display:flex;align-items:flex-start;gap:10px;}
.prp-contact__ico{flex:0 0 auto;color:var(--prp-red);margin-top:1px;display:inline-flex;}
.prp-contact__txt{color:var(--prp-muted);font-size:13.5px;line-height:1.5;font-style:normal;transition:color .15s ease;}
a.prp-contact__txt:hover{color:#fff;}
[data-theme="light"] .prp-news__msg.is-ok{color:#15803d;}
[data-theme="light"] .prp-news__msg.is-err{color:#b91c1c;}
[data-theme="light"] a.prp-contact__txt:hover{color:var(--prp-text);}
.prp-foot-disclaimer{display:flex;align-items:flex-start;gap:14px;background:rgba(225,29,42,.05);border:1px solid rgba(225,29,42,.22);border-radius:10px;padding:18px 22px;margin:0 28px;}
.prp-foot-disclaimer__ico{flex:0 0 auto;margin-top:1px;}
.prp-foot-disclaimer p{margin:0;color:#aeb9cf;font-size:12.5px;line-height:1.65;}
.prp-foot-disclaimer strong{color:#fff;}
.prp-footer__bar{border-top:1px solid #0e1626;margin-top:40px;}
.prp-footer__bar-inner{display:flex;align-items:center;justify-content:space-between;gap:16px;flex-wrap:wrap;padding:22px 28px;}
.prp-foot-legal{color:var(--prp-muted-2);font-size:12.5px;margin:0;}
.prp-foot-legal-links{display:flex;gap:24px;flex-wrap:wrap;}
.prp-foot-legal-links a{color:var(--prp-muted);font-size:12.5px;transition:color .15s ease;}
.prp-foot-legal-links a:hover{color:#fff;}

/* inner page content sits inside .prp-page — give it breathing room */
.prp-page main{display:block;}

/* ---------- responsive ---------- */
@media (max-width:1024px){
  .prp-cats{grid-template-columns:repeat(3,1fr);}
  .prp-prod{flex:0 0 210px;}
  .prp-featurebar{grid-template-columns:1fr 1fr;gap:18px 0;}
  .prp-featurebar .prp-feature__div{display:none;}
  .prp-nav{display:none;}
  .prp-navtoggle{display:inline-flex;}
  .prp-footer__top{grid-template-columns:1fr 1fr 1fr;gap:36px 28px;}
  .prp-footcol--brand,.prp-footcol--news{grid-column:1 / -1;max-width:none;}
  .prp-news__form{max-width:460px;}
}
@media (max-width:860px){
  .prp-hero__inner{grid-template-columns:1fr;}
  .prp-hero__art{min-height:380px;order:-1;}
  .prp-hero__title{font-size:50px;}
}
@media (max-width:680px){
  .prp-cats{grid-template-columns:1fr 1fr;}
  .prp-prod{flex:0 0 78%;}
  .prp-featurebar{grid-template-columns:1fr;}
  .prp-header__actions .prp-btn--shop{display:none;}
  .prp-section{padding:44px 0;}
  .prp-quality{padding:36px 26px;}
  .prp-footer__top{grid-template-columns:1fr 1fr;padding:46px 28px 36px;}
  .prp-footer__bar-inner{flex-direction:column;align-items:flex-start;gap:12px;}
}
@media (max-width:460px){
  .prp-cats{grid-template-columns:1fr;}
  .prp-hero__trust{gap:14px;}
  .prp-trust__div{display:none;}
  .prp-footer__top{grid-template-columns:1fr;}
  .prp-news__btn{width:100%;}
}
@media (prefers-reduced-motion:reduce){.prp-page *{transition:none!important;}}

/* mobile nav drop */
@media (max-width:1024px){
  .prp-nav.is-open{display:flex;position:absolute;top:76px;left:0;right:0;flex-direction:column;gap:0;
    background:#04060c;border-bottom:1px solid #0e1626;padding:10px 28px 18px;z-index:120;}
  .prp-nav.is-open li{width:100%;}
  .prp-nav.is-open .sub-menu{position:static;opacity:1;visibility:visible;transform:none;box-shadow:none;border:none;background:transparent;padding-left:12px;margin:0;}
}

/* =====================================================================
   INNER-PAGE ALIGNMENT — make shop/about/product/cart/checkout match
   the .prp-page design system (everything is wrapped in .prp-page).
   ===================================================================== */
.prp-page .container{max-width:1200px;padding-inline:28px;}
.prp-page .btn{border-radius:6px;font-family:var(--prp-font-body);font-weight:600;}
.prp-page .btn-primary{box-shadow:none;}
.prp-page .eyebrow{color:var(--prp-red);font-weight:700;letter-spacing:2.5px;}

/* page hero (about / lab / faq / contact / policies / shop) */
.prp-page .page-hero{border-bottom:1px solid var(--prp-border);}
.prp-page .page-hero h1{font-family:var(--prp-font-display);font-weight:600;letter-spacing:.5px;}
.prp-page .section-head h2{font-family:var(--prp-font-body);font-weight:700;}
.prp-page .prose h2,.prp-page .prose h3{font-family:var(--prp-font-body);}

/* WooCommerce buttons -> prp red, 6px */
.prp-page .woocommerce a.button,.prp-page .woocommerce button.button,
.prp-page .woocommerce input.button,.prp-page .woocommerce #respond input#submit,
.prp-page .single_add_to_cart_button,
.prp-page ul.products li.product .button,.prp-page ul.products li.product .added_to_cart,
.prp-page .woocommerce div.product form.cart .button,
.prp-page .woocommerce-cart .wc-proceed-to-checkout .checkout-button,
.prp-page .woocommerce #place_order{
  background:var(--prp-red)!important;color:#fff!important;border-radius:6px!important;
  font-family:var(--prp-font-body)!important;font-weight:600!important;border:none!important;}
.prp-page .woocommerce a.button:hover,.prp-page .woocommerce button.button:hover,
.prp-page .single_add_to_cart_button:hover,.prp-page .woocommerce #place_order:hover,
.prp-page .woocommerce-cart .wc-proceed-to-checkout .checkout-button:hover{background:var(--prp-red-d)!important;}

/* shop / archive product grid */
.prp-woo{padding-top:40px;padding-bottom:64px;}
.prp-page .woocommerce-result-count{float:left;margin:0 0 18px;color:var(--prp-muted);}
.prp-page .woocommerce-ordering{float:right;margin:0 0 18px;}
.prp-page ul.products{clear:both;display:grid !important;grid-template-columns:repeat(4,1fr);gap:20px;margin:0 0 44px !important;padding:0 !important;list-style:none !important;}
.prp-page ul.products::before,.prp-page ul.products::after{content:none !important;display:none !important;}
.prp-page ul.products li.product{position:relative;width:auto !important;margin:0 !important;float:none !important;clear:none !important;
  display:flex;flex-direction:column;padding:0;text-align:left;overflow:hidden;
  background:rgba(18,27,47,.42);backdrop-filter:blur(12px) saturate(120%);-webkit-backdrop-filter:blur(12px) saturate(120%);
  border:1px solid rgba(255,255,255,.08);border-radius:16px;
  transition:transform .35s cubic-bezier(.2,.7,.2,1),border-color .35s ease,box-shadow .35s ease,background .35s ease;}
.prp-page ul.products li.product>*{position:relative;z-index:1;}
.prp-page ul.products li.product::after{content:"";position:absolute;inset:0;border-radius:16px;pointer-events:none;z-index:0;
  background:radial-gradient(120% 80% at 50% -8%,rgba(70,120,210,.12),transparent 58%);opacity:0;transition:opacity .35s ease;}
.prp-page ul.products li.product:hover{transform:translateY(-8px);border-color:rgba(225,29,42,.45);
  background:rgba(26,38,66,.55);box-shadow:0 26px 52px -20px rgba(0,0,0,.78),0 0 26px -6px rgba(225,29,42,.28);}
.prp-page ul.products li.product:hover::after{opacity:1;}
.prp-page ul.products li.product a.woocommerce-LoopProduct-link{display:flex;flex-direction:column;color:inherit;}
.prp-page ul.products li.product img{width:auto !important;max-width:100% !important;height:auto !important;max-height:160px;margin:0 auto !important;
  object-fit:contain;background:radial-gradient(circle at 50% 42%,rgba(70,100,165,.18),transparent 62%);padding:24px 18px 8px;
  transition:transform .5s cubic-bezier(.2,.7,.2,1);}
.prp-page ul.products li.product:hover img{transform:scale(1.08) translateY(-2px);}
.prp-page ul.products li.product .button{transition:transform .25s ease,background .2s ease!important;}
.prp-page ul.products li.product:hover .button{transform:translateY(-1px);}
.prp-page ul.products li.product .woocommerce-loop-product__title{font-family:var(--prp-font-body);font-size:15.5px;font-weight:700;color:#fff;margin:0;padding:8px 16px 0;}
.prp-page ul.products li.product .ptype{color:var(--prp-muted);font-size:12px;padding:4px 16px 0;}
.prp-page ul.products li.product .price-row{padding:8px 16px 0;margin-top:auto;}
.prp-page ul.products li.product .price{color:#fff !important;font-weight:700;font-size:15.5px;}
.prp-page ul.products li.product .price del{color:var(--prp-muted-2);font-weight:500;font-size:12px;margin-right:5px;}
.prp-page ul.products li.product .price ins{text-decoration:none;}
.prp-page ul.products li.product .button,.prp-page ul.products li.product .added_to_cart{display:block;margin:14px 16px 18px !important;text-align:center;}
.prp-page ul.products li.product .badge{position:absolute;top:10px;left:10px;z-index:2;background:var(--prp-blue);color:#fff;font-size:10px;font-weight:700;letter-spacing:.6px;padding:3px 8px;border-radius:4px;}
.prp-page ul.products li.product .onsale{position:absolute;top:10px;right:10px;left:auto;margin:0;z-index:2;background:var(--prp-red);color:#fff;border-radius:4px;min-height:0;line-height:1.5;padding:2px 9px;font-size:10px;font-weight:700;}
.prp-page .pcard h3{font-family:var(--prp-font-body);}
.prp-page .pcard{border-radius:12px;}
@media(max-width:1024px){.prp-page ul.products{grid-template-columns:repeat(3,1fr);}}
@media(max-width:680px){.prp-page ul.products{grid-template-columns:1fr 1fr;gap:14px;}
  .prp-page ul.products li.product .woocommerce-loop-product__title{font-size:14px;}}

/* single product */
.prp-page .woocommerce div.product .product_title{font-family:var(--prp-font-body);font-weight:700;}
.prp-page .woocommerce div.product p.price,.prp-page .woocommerce div.product span.price,
.prp-page .woocommerce div.product .price .amount{color:#fff;}
.prp-page .woocommerce div.product .woocommerce-product-gallery img{background:linear-gradient(180deg,#0e1626,#0a111f);border-radius:12px;}
.prp-page .woocommerce div.product .woocommerce-tabs ul.tabs li{border-radius:8px;background:var(--prp-panel);border:1px solid var(--prp-border);}
.prp-page .woocommerce div.product .woocommerce-tabs ul.tabs li.active{border-color:var(--prp-red);}
.prp-page .quantity input.qty{background:var(--prp-panel);border:1px solid var(--prp-border);border-radius:8px;color:#fff;}

/* cart + checkout tables/forms */
.prp-page .woocommerce table.shop_table,.prp-page .woocommerce .cart_totals table,
.prp-page .woocommerce-checkout #payment,.prp-page .woocommerce form.checkout_coupon{
  background:var(--prp-panel);border:1px solid var(--prp-border);border-radius:12px;}
.prp-page .woocommerce table.shop_table th,.prp-page .woocommerce table.shop_table td{border-top:1px solid var(--prp-border);color:var(--prp-text);}
.prp-page .woocommerce-checkout #payment{background:var(--prp-panel-2);}
.prp-page .woocommerce form .form-row input.input-text,
.prp-page .woocommerce form .form-row textarea,
.prp-page .select2-container--default .select2-selection--single,
.prp-page .woocommerce-page table.cart input{
  background:var(--prp-bg)!important;border:1px solid var(--prp-border)!important;color:#fff!important;border-radius:6px!important;}
.prp-page .woocommerce .woocommerce-message,.prp-page .woocommerce .woocommerce-info,
.prp-page .woocommerce .woocommerce-error,.prp-page .woocommerce .cart_totals h2,
.prp-page .woocommerce-checkout h3{color:var(--prp-text);}
.prp-page .woocommerce .woocommerce-message,.prp-page .woocommerce .woocommerce-info{
  background:var(--prp-panel);border-top:3px solid var(--prp-red);border-radius:8px;}

/* breadcrumb + result count + ordering */
.prp-page .woocommerce-breadcrumb,.prp-page .woocommerce-result-count{color:var(--prp-muted);}
.prp-page .woocommerce .woocommerce-ordering select,
.prp-page .orderby{background:var(--prp-panel);border:1px solid var(--prp-border);color:#fff;border-radius:8px;padding:8px 10px;}

/* ===========================================================================
   v1.3.4 — woo page width, single product redesign, cart/checkout, side cart
   =========================================================================== */

/* --- Cart / Checkout / Account: full container width (was capped by .prose) --- */
.prp-page .prp-woo-page{max-width:none;width:100%;}
.prp-page .wp-block-woocommerce-cart.alignwide,
.prp-page .wp-block-woocommerce-checkout.alignwide{max-width:none;margin-left:0;margin-right:0;}
.prp-page .wc-block-components-sidebar-layout{max-width:none;}
.prp-page .wc-block-components-text-input input,
.prp-page .wc-block-components-select select,
.prp-page .wc-block-components-totals-coupon__input input,
.prp-page .wc-block-components-quantity-selector{
  background:var(--prp-panel)!important;border:1px solid var(--prp-border)!important;color:var(--prp-text)!important;border-radius:8px!important;}
.prp-page .wc-block-cart-items,.prp-page .wc-block-components-product-metadata,
.prp-page .wc-block-components-totals-item,.prp-page .wc-block-components-order-summary{color:var(--prp-text);}
.prp-page .wc-block-cart-items__row,.prp-page .wc-block-components-totals-wrapper{border-color:var(--prp-border)!important;}
.prp-page .wc-block-components-product-name{color:var(--prp-text)!important;font-weight:600;}
.prp-page .wc-block-cart__sidebar .wc-block-components-totals-wrapper,
.prp-page .wp-block-woocommerce-checkout-order-summary-block{
  background:var(--prp-panel);border:1px solid var(--prp-border);border-radius:14px;padding:6px 20px;}
.prp-page .wc-block-components-button:not(.is-link),
.prp-page .wc-block-cart__submit-button,
.prp-page .wc-block-components-checkout-place-order-button{
  background:var(--prp-red)!important;color:#fff!important;border-radius:8px!important;}

/* --- Single product: professional two-column layout --- */
.prp-page .woocommerce div.product{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1.05fr);gap:48px;align-items:start;}
/* grid items default to min-width:auto (min-content) and won't shrink — the product
   image / COA panel then overflow the column on narrow screens. Let them shrink. */
.woocommerce div.product>*{min-width:0;max-width:100%;}
.prp-page .woocommerce div.product .woocommerce-product-gallery{float:none!important;width:auto!important;margin:0;position:sticky;top:96px;}
.prp-page .woocommerce div.product .woocommerce-product-gallery__wrapper{margin:0;}
.prp-page .woocommerce div.product .woocommerce-product-gallery img{
  background:radial-gradient(circle at 50% 40%,rgba(70,100,165,.18),transparent 62%),linear-gradient(180deg,#0e1626,#0a111f);
  border:1px solid var(--prp-border);border-radius:18px;padding:38px;}
.prp-page .woocommerce div.product .summary{float:none!important;width:auto!important;margin:0;}
.prp-page .woocommerce div.product .product_title{font-size:clamp(26px,3vw,36px);letter-spacing:-.01em;margin:0 0 10px;}
.prp-page .woocommerce div.product .summary>.price{font-size:26px;font-weight:800;margin:0 0 18px;display:block;}
.prp-page .woocommerce div.product .woocommerce-product-details__short-description{
  color:var(--prp-muted);font-size:15px;line-height:1.7;border-top:1px solid var(--prp-border);border-bottom:1px solid var(--prp-border);padding:18px 0;margin:0 0 22px;}
.prp-page .woocommerce div.product form.cart{display:flex;gap:12px;align-items:center;flex-wrap:wrap;margin:0 0 6px;}
.prp-page .woocommerce div.product form.cart .quantity input.qty{height:52px;width:84px;text-align:center;font-size:16px;}
.prp-page .woocommerce div.product form.cart .single_add_to_cart_button{height:52px;padding:0 34px;font-size:15px;flex:1;min-width:200px;}
.prp-page .woocommerce div.product form.cart.variations_form{display:block;}
.woocommerce div.product .prp-trustrow{display:flex;gap:20px;flex-wrap:wrap;margin:18px 0 2px;}
.woocommerce div.product .prp-trustrow span{display:flex;align-items:center;gap:8px;color:var(--prp-muted);font-size:12.5px;font-weight:600;}
.woocommerce div.product .prp-trustrow svg{color:var(--prp-red);flex:none;}
.prp-page .woocommerce div.product .product_meta{color:var(--prp-muted);font-size:13px;margin-top:18px;border-top:1px solid var(--prp-border);padding-top:16px;}
.prp-page .woocommerce div.product .product_meta a{color:var(--prp-text);}
.prp-page .woocommerce div.product .woocommerce-tabs{grid-column:1 / -1;width:auto;margin-top:14px;}
.prp-page .woocommerce div.product .woocommerce-tabs ul.tabs{padding:0;margin:0 0 18px;border:0;display:flex;gap:8px;flex-wrap:wrap;}
.prp-page .woocommerce div.product .woocommerce-tabs ul.tabs::before{display:none;}
.prp-page .woocommerce div.product .woocommerce-tabs ul.tabs li{padding:10px 18px;margin:0;}
.prp-page .woocommerce div.product .woocommerce-tabs ul.tabs li::before,
.prp-page .woocommerce div.product .woocommerce-tabs ul.tabs li::after{display:none;}
.prp-page .woocommerce div.product .woocommerce-tabs ul.tabs li a{color:var(--prp-text);font-weight:600;}
.prp-page .woocommerce div.product .woocommerce-tabs .panel{
  background:var(--prp-panel);border:1px solid var(--prp-border);border-radius:14px;padding:26px 28px;color:var(--prp-muted);margin:0;}
.prp-page .woocommerce .related.products{grid-column:1 / -1;width:auto;margin-top:34px;border-top:1px solid var(--prp-border);padding-top:30px;}
.prp-page .woocommerce .related.products>h2{font-family:var(--prp-font-body);font-size:22px;margin-bottom:22px;}
@media(max-width:860px){.prp-page .woocommerce div.product{grid-template-columns:minmax(0,1fr);gap:26px;}
  .prp-page .woocommerce div.product .woocommerce-product-gallery{position:static;}}

/* --- Side cart: pro polish (overrides style.css base) --- */
.side-cart{width:420px!important;max-width:92vw;box-shadow:-30px 0 70px -24px rgba(0,0,0,.75);}
.side-cart-head{background:linear-gradient(180deg,rgba(255,255,255,.05),transparent);}
/* (mini-cart item styling consolidated into the single block lower in this file — v1.6.4) */
.side-cart-foot{box-shadow:0 -12px 32px -18px rgba(0,0,0,.65)}

/* ===========================================================================
   v1.4.0 — LIGHT THEME (header toggle). Overrides --prp-* tokens + dark surfaces.
   Colorful logo (pro_logo_dark) shows in light mode; white logo in dark mode.
   =========================================================================== */
/* logo swap + toggle icons (work in both themes) — .prp-page raises specificity over `.prp-page img` */
.prp-page .prp-logo__img--light{display:none;}
[data-theme="light"] .prp-page .prp-logo__img--dark{display:none;}
[data-theme="light"] .prp-page .prp-logo__img--light{display:block;}
.prp-theme-toggle .prp-ico-moon{display:none;}
[data-theme="light"] .prp-theme-toggle .prp-ico-sun{display:none;}
[data-theme="light"] .prp-theme-toggle .prp-ico-moon{display:inline-flex;}

/* Theme-aware product images: dark-backdrop photos on dark theme, white-bg
   client photos on the (default) light theme. Element-qualified + !important so
   they win over the many `... li.product img{...!important}` sizing rules AND
   the generic img{display:block} — independent of any .prp-page ancestor.
   The hidden img is display:none + loading=lazy so browsers never fetch it. */
img.prp-pimg--light{display:none!important;}
[data-theme="light"] img.prp-pimg--dark{display:none!important;}
[data-theme="light"] img.prp-pimg--light{display:block!important;}

[data-theme="light"] .prp-page{
  --prp-bg:#f5f7fb;--prp-bg-hero:#e9eff8;--prp-panel:#ffffff;--prp-panel-2:#eef3fa;
  --prp-border:#dde4f0;--prp-text:#0d1426;--prp-muted:#566179;--prp-muted-2:#8590a8;
  background:var(--prp-bg);color:var(--prp-text);
}
/* header / nav */
[data-theme="light"] .prp-header{background:rgba(255,255,255,.85)!important;border-bottom-color:var(--prp-border)!important;}
[data-theme="light"] .prp-nav a,[data-theme="light"] .prp-nav__item{color:var(--prp-muted);}
[data-theme="light"] .prp-nav__item:hover,[data-theme="light"] .prp-nav a:hover,
[data-theme="light"] .prp-iconbtn,[data-theme="light"] .prp-iconbtn:hover,
[data-theme="light"] .prp-navtoggle{color:var(--prp-text);}
[data-theme="light"] .prp-nav .sub-menu{background:#fff!important;box-shadow:0 18px 50px -24px rgba(20,33,61,.28);}
[data-theme="light"] .prp-nav .sub-menu a:hover{background:rgba(13,22,40,.05);color:var(--prp-text);}
/* hero */
[data-theme="light"] .prp-hero{background:
  radial-gradient(1100px 620px at 70% 12%,rgba(120,160,230,.28),transparent 62%),
  radial-gradient(800px 520px at 82% 42%,rgba(150,180,235,.22),transparent 58%),
  linear-gradient(180deg,#eef3fb 0%,#f5f7fb 100%);}
[data-theme="light"] .prp-hero__lead{color:var(--prp-muted);}
[data-theme="light"] .prp-trust__txt strong{color:var(--prp-text);}
[data-theme="light"] .prp-trust__ico{border-color:var(--prp-border);background:rgba(13,22,40,.03);}
[data-theme="light"] .prp-featurebar{background:rgba(255,255,255,.72);}
[data-theme="light"] .prp-feature__txt strong{color:var(--prp-text);}
[data-theme="light"] .prp-viewall:hover{color:var(--prp-text);}
/* featured product cards */
[data-theme="light"] .prp-prod{background:#fff;border-color:var(--prp-border);box-shadow:0 12px 32px -22px rgba(20,33,61,.30);}
[data-theme="light"] .prp-prod__desc{color:var(--prp-muted);}
[data-theme="light"] .prp-price,[data-theme="light"] .prp-price .amount{color:var(--prp-text);}
/* footer */
[data-theme="light"] .prp-footer{background:
  radial-gradient(900px 500px at 85% 0%,rgba(150,180,235,.22),transparent 60%),
  linear-gradient(180deg,#eef3fb,#e6edf8)!important;border-top-color:var(--prp-border);}
[data-theme="light"] .prp-footcol__title,[data-theme="light"] .prp-foot-disclaimer strong{color:var(--prp-text);}
[data-theme="light"] .prp-footlinks a:hover,[data-theme="light"] .prp-foot-legal-links a:hover{color:var(--prp-text);}
[data-theme="light"] .prp-news__input{background:#fff;color:var(--prp-text);}
/* mobile nav panel */
[data-theme="light"] .prp-nav.is-open{background:#fff!important;}
/* shop / archive / single product (light) */
[data-theme="light"] .prp-page ul.products li.product{background:rgba(255,255,255,.78);border-color:var(--prp-border);}
[data-theme="light"] .prp-page ul.products li.product .woocommerce-loop-product__title,
[data-theme="light"] .prp-page ul.products li.product .price,
[data-theme="light"] .prp-page .woocommerce div.product .price .amount{color:var(--prp-text)!important;}
[data-theme="light"] .prp-page ul.products li.product img,
[data-theme="light"] .prp-page .woocommerce div.product .woocommerce-product-gallery img{
  background:radial-gradient(circle at 50% 42%,rgba(120,160,230,.16),transparent 62%),#fff;}
[data-theme="light"] .prp-page ul.products li.product::after{background:radial-gradient(120% 80% at 50% -8%,rgba(120,160,230,.14),transparent 58%);}
[data-theme="light"] .prp-page .quantity input.qty,
[data-theme="light"] .prp-page .orderby,
[data-theme="light"] .prp-page .woocommerce form .form-row input.input-text,
[data-theme="light"] .prp-page .woocommerce form .form-row textarea,
[data-theme="light"] .prp-page .woocommerce-page table.cart input,
[data-theme="light"] .prp-page .wc-block-components-text-input input{
  background:#fff!important;color:var(--prp-text)!important;}

/* ===========================================================================
   v1.5.0 — LIGHT is now the default theme. Fix remaining dark/unreadable
   sections in light, restyle side cart, upgrade single/cart/checkout.
   =========================================================================== */

/* ---- Light-mode: sections that were hardcoded dark ---- */
/* Quality banner */
[data-theme="light"] .prp-quality{
  background:
    radial-gradient(700px 400px at 80% 50%,rgba(120,160,230,.20),transparent 60%),
    linear-gradient(120deg,#eef3fb 26%,#e6eef9 100%);
  border-color:var(--prp-border);}
[data-theme="light"] .prp-quality__title,[data-theme="light"] .prp-qbadge strong{color:var(--prp-text);}
[data-theme="light"] .prp-quality__sub,[data-theme="light"] .prp-qbadge{color:var(--prp-muted);}
[data-theme="light"] .prp-quality__dna{
  background:radial-gradient(circle at 70% 50%,rgba(225,29,42,.10),transparent 45%),
             radial-gradient(circle at 85% 40%,rgba(120,160,230,.18),transparent 50%);}
/* Footer disclaimer + legal/fineprint */
[data-theme="light"] .prp-foot-disclaimer{background:rgba(225,29,42,.04);border-color:rgba(225,29,42,.18);}
[data-theme="light"] .prp-foot-disclaimer p{color:var(--prp-muted);}
[data-theme="light"] .prp-foot-disclaimer strong{color:var(--prp-text);}
[data-theme="light"] .prp-foot-legal,[data-theme="light"] .prp-news__fineprint{color:var(--prp-muted-2);}
[data-theme="light"] .prp-news__input::placeholder{color:#97a1b6;}
/* Carousel arrows + dividers (light-grey on white was invisible) */
[data-theme="light"] .prp-cbtn{background:#fff;color:var(--prp-muted);border-color:var(--prp-border);}
[data-theme="light"] .prp-cbtn:hover{color:var(--prp-red);border-color:var(--prp-red);}
[data-theme="light"] .prp-feature__div,[data-theme="light"] .prp-trust__div{background:var(--prp-border);}
/* Featured-card media glow + tab panel text */
[data-theme="light"] .prp-prod__media{background:radial-gradient(circle at 50% 42%,rgba(120,160,230,.12),transparent 62%);}
[data-theme="light"] .prp-page .woocommerce div.product .woocommerce-tabs .panel{color:var(--prp-muted);}
[data-theme="light"] .prp-page .woocommerce div.product .woocommerce-product-details__short-description{color:var(--prp-muted);}
/* Block cart/checkout text legibility (light) */
[data-theme="light"] .prp-page .wc-block-components-product-metadata,
[data-theme="light"] .prp-page .wc-block-components-totals-item,
[data-theme="light"] .prp-page .wc-block-components-order-summary,
[data-theme="light"] .prp-page .wc-block-components-product-name{color:var(--prp-text)!important;}

/* ---- SIDE CART: restyle (both themes) ---- */
.side-cart{width:430px!important;max-width:94vw;}
.side-cart-head{padding:20px 22px;background:linear-gradient(180deg,rgba(127,150,200,.10),transparent);}
.side-cart-head h3{font-family:var(--ff-display);text-transform:uppercase;letter-spacing:.6px;font-size:1.05rem;font-weight:600;}
.side-cart-body{padding:14px 18px;}
/* (mini-cart item styling consolidated into the single block lower in this file — v1.6.4) */
.side-cart-foot{padding:18px 22px;}
.side-cart-foot .woocommerce-mini-cart__total,.side-cart-foot .subtotal{font-size:1.05rem;padding-bottom:4px;border-bottom:1px dashed var(--border);margin-bottom:12px;}
.woocommerce-mini-cart__buttons .button{padding:14px 18px!important;font-weight:700!important;border-radius:12px!important;}
.woocommerce-mini-cart__buttons .button.wc-forward:not(.checkout){
  background:transparent!important;color:var(--text)!important;border:1px solid var(--border-2)!important;}
.woocommerce-mini-cart__buttons .button.wc-forward:not(.checkout):hover{border-color:var(--red)!important;color:var(--red)!important;}
.woocommerce-mini-cart__buttons .checkout{box-shadow:var(--shadow-red)!important;}
.single_add_to_cart_button.loading{opacity:.75;pointer-events:none;}
/* side cart — light */
[data-theme="light"] .side-cart{background:#fff;}
[data-theme="light"] .woocommerce-mini-cart-item{background:#f4f6fb;}
[data-theme="light"] .woocommerce-mini-cart-item:hover{background:#eef3fa;}
[data-theme="light"] .side-cart-close{background:rgba(13,22,40,.05);color:var(--text);}
[data-theme="light"] .side-cart-close:hover{background:rgba(13,22,40,.10);}
[data-theme="light"] .side-cart-foot{background:#eef3fa;}
[data-theme="light"] .woocommerce-mini-cart-item a.remove{background:rgba(13,22,40,.06)!important;color:var(--text-2)!important;}
[data-theme="light"] .woocommerce-mini-cart-item a.remove:hover{background:var(--red)!important;color:#fff!important;}

/* ---- SINGLE PRODUCT: variation selects + price polish ---- */
.prp-page table.variations{width:100%;margin:4px 0 18px;border:0;border-collapse:collapse;}
.prp-page table.variations tr{display:flex;align-items:center;gap:14px;padding:6px 0;border:0;}
.prp-page table.variations th.label{text-align:left;padding:0;font-weight:700;color:var(--prp-text);width:120px;flex:none;}
.prp-page table.variations td.value{padding:0;flex:1;display:flex;align-items:center;gap:10px;flex-wrap:wrap;}
.prp-page table.variations select{
  background:var(--prp-panel);border:1px solid var(--prp-border);color:var(--prp-text);
  border-radius:10px;padding:12px 38px 12px 14px;font-family:var(--prp-font-body);font-size:14.5px;min-width:170px;
  -webkit-appearance:none;appearance:none;cursor:pointer;
  background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='12' height='12' viewBox='0 0 24 24' fill='none' stroke='%23889' stroke-width='2.4'%3E%3Cpath d='M6 9l6 6 6-6'/%3E%3C/svg%3E");
  background-repeat:no-repeat;background-position:right 14px center;}
[data-theme="light"] .prp-page table.variations select{background-color:#fff;}
.prp-page .reset_variations{color:var(--prp-muted);font-size:12.5px;margin-left:6px;}
/* v1.12.5 — the Size/Quantity variations table had a rigid min width (select min-width:170px
   + fixed 120px label) that exceeded the summary column on phones and pushed content off the
   right edge. On narrow screens: put the label above, let the select fill and shrink. */
@media(max-width:600px){
  .prp-page table.variations tr{flex-wrap:wrap;gap:4px 12px;}
  .prp-page table.variations th.label{width:auto;flex:0 0 100%;}
  .prp-page table.variations td.value{flex:1 1 100%;min-width:0;}
  .prp-page table.variations select{min-width:0;width:100%;max-width:100%;box-sizing:border-box;}
}
.prp-page .single_variation_wrap .woocommerce-variation-price{margin:0 0 14px;}
.prp-page .single_variation_wrap .woocommerce-variation-price .price{font-size:26px;font-weight:800;}
.prp-page .woocommerce-variation-availability{color:var(--prp-muted);font-size:13px;margin-bottom:8px;}

/* ---- CART / CHECKOUT: spacing & summary polish (block + classic) ---- */
.prp-page .wp-block-woocommerce-checkout,.prp-page .wp-block-woocommerce-cart{margin-top:30px;}
.prp-page .wc-block-components-totals-item__value,
.prp-page .wc-block-components-order-summary-item__total-price{font-weight:700;}
.prp-page .wc-block-cart__submit-button,
.prp-page .wc-block-components-checkout-place-order-button{box-shadow:var(--shadow-red)!important;font-weight:700!important;padding:16px!important;}
.prp-page .woocommerce-cart table.cart td.actions .button,
.prp-page .woocommerce .cart_totals .checkout-button{font-weight:700!important;}
.prp-page .woocommerce-checkout #payment{border-radius:14px;padding:8px 22px 22px;}

/* ===========================================================================
   v1.5.1 — product grid images show FULL (uncropped), consistent media box
   =========================================================================== */
.prp-page ul.products li.product a.woocommerce-LoopProduct-link{padding-top:6px;}
.prp-page ul.products li.product a.woocommerce-LoopProduct-link img,
.prp-page ul.products li.product img{
  width:100%!important;height:228px!important;max-height:228px!important;
  object-fit:contain!important;object-position:center!important;
  padding:20px 20px 8px!important;margin:0 auto!important;}
@media(max-width:680px){
  .prp-page ul.products li.product img{height:186px!important;padding:16px 14px 6px!important;}}
/* home featured carousel media */
.prp-prod__media{height:230px;padding:22px 18px 12px;}
.prp-prod__media img{max-height:188px;width:auto;}

/* ===========================================================================
   v1.5.2 — single-product hero band + stock + COA; side cart freeship + steppers
   =========================================================================== */
/* ---- Single product: ROI-style full-bleed hero band ---- */
.prp-product-hero{width:100vw;margin-left:calc(50% - 50vw);margin-bottom:34px;padding:28px 0 26px;
  border-bottom:1px solid var(--prp-border);
  background:radial-gradient(900px 400px at 75% -30%,rgba(45,108,255,.30),transparent 60%),linear-gradient(120deg,#0b1322,#0d1830);}
.prp-product-hero__inner{max-width:var(--prp-maxw);margin:0 auto;padding:0 28px;}
.prp-product-hero__crumb,.prp-product-hero__crumb a{color:#aeb9cf;font-size:12.5px;}
.prp-product-hero__crumb a:hover{color:#fff;}
.prp-product-hero__title{font-family:var(--prp-font-body);font-weight:700;color:#fff;margin:10px 0 0;
  font-size:clamp(22px,2.6vw,32px);line-height:1.2;letter-spacing:-.01em;}
[data-theme="light"] .prp-product-hero{background:radial-gradient(900px 400px at 75% -30%,rgba(120,160,230,.22),transparent 60%),linear-gradient(120deg,#eef3fb,#e6eef9);}
[data-theme="light"] .prp-product-hero__title{color:var(--prp-text);}
[data-theme="light"] .prp-product-hero__crumb,[data-theme="light"] .prp-product-hero__crumb a{color:var(--prp-muted);}
[data-theme="light"] .prp-product-hero__crumb a:hover{color:var(--prp-text);}
/* stock pill + add-to-cart pill */
.prp-page .woocommerce div.product .prp-stock{display:inline-flex;align-items:center;gap:7px;font-size:13px;font-weight:700;
  padding:6px 13px;border-radius:999px;margin:0 0 16px;}
.prp-stock--in{color:#1f9d63;background:rgba(39,192,138,.12);}
.prp-stock--out{color:var(--prp-red);background:rgba(225,29,42,.10);}
.prp-stock svg{flex:none;}
.prp-page .woocommerce div.product form.cart .single_add_to_cart_button{border-radius:999px!important;}
/* COA tab */
.prp-coa-tab h2{font-size:18px;margin:0 0 14px;}
.prp-coa-tab img{max-width:580px;width:100%;height:auto;border:1px solid var(--prp-border);border-radius:10px;background:#fff;}

/* ---- Side cart: free-shipping progress bar ---- */
.prp-freeship{padding:14px 2px 16px;margin-bottom:8px;border-bottom:1px solid var(--border);}
.prp-freeship__msg{margin:0 0 9px;font-size:12.5px;color:var(--text-2);text-align:center;}
.prp-freeship__msg strong{color:var(--text);}
.prp-freeship.is-unlocked .prp-freeship__msg{color:var(--green);}
.prp-freeship__bar{display:block;height:7px;border-radius:999px;background:var(--surface-2);overflow:hidden;}
.prp-freeship__bar>span{display:block;height:100%;border-radius:999px;background:linear-gradient(90deg,var(--red),#ff5a4d);transition:width .45s ease;}
.prp-freeship.is-unlocked .prp-freeship__bar>span{background:linear-gradient(90deg,var(--green),#39d99a);}
[data-theme="light"] .prp-freeship__bar{background:#e3e9f3;}

/* ---- Side cart: item card (single consolidated definition — v1.6.4) ---- */
.woocommerce-mini-cart-item{
  position:relative;display:grid!important;grid-template-columns:56px 1fr;gap:14px;align-items:center;
  padding:12px!important;margin-bottom:10px;border:1px solid var(--border)!important;border-radius:14px;
  background:var(--surface-2);transition:border-color .2s,background .2s,box-shadow .2s;}
.woocommerce-mini-cart-item:hover{border-color:var(--border-2)!important;box-shadow:var(--shadow);}
.prp-mini-thumb{display:block;}
.prp-mini-thumb img{width:56px!important;height:56px!important;border-radius:10px;background:#fff!important;border:1px solid var(--border);padding:5px;margin:0!important;}
.mini-meta{min-width:0;display:flex;flex-direction:column;gap:7px;padding-right:20px;}
.prp-mini-name{font-weight:600;font-size:.9rem;line-height:1.25;color:var(--text);display:block;margin:0;}
/* compact variation / qty meta lines (variable products: Size, Quantity, …) */
.woocommerce-mini-cart-item .variation,
.woocommerce-mini-cart-item .quantity{margin:0;font-size:.78rem;color:var(--muted);line-height:1.35;}
.woocommerce-mini-cart-item .variation dt,
.woocommerce-mini-cart-item .variation dd{display:inline;margin:0;font-weight:400;}
.woocommerce-mini-cart-item .variation dd{margin-right:8px;}
.prp-mini-row{display:flex;align-items:center;justify-content:space-between;gap:10px;margin:1px 0 0;}
.prp-mini-qty{display:inline-flex;align-items:center;border:1px solid var(--border-2);border-radius:9px;overflow:hidden;}
.prp-mini-qty.is-busy{opacity:.5;pointer-events:none;}
.prp-qtybtn{width:28px;height:28px;border:none;background:transparent;color:var(--text);font-size:15px;line-height:1;display:grid;place-items:center;transition:.15s;}
.prp-qtybtn:hover{background:var(--red);color:#fff;}
.prp-qtynum{min-width:30px;text-align:center;font-weight:700;font-size:.85rem;}
.prp-mini-price{font-weight:800;font-size:.92rem;color:var(--text);white-space:nowrap;}
.woocommerce-mini-cart-item a.remove{position:absolute!important;top:8px;right:8px;transform:none!important;width:22px;height:22px;line-height:20px;text-align:center;border-radius:6px;font-size:15px;}

/* v1.5.2b — product gallery must never sit invisible/dark (flexslider opacity guard) */
.prp-page .woocommerce div.product .woocommerce-product-gallery{opacity:1!important;}
.prp-page .woocommerce div.product .woocommerce-product-gallery__image>a{display:block;}
[data-theme="light"] .prp-page .woocommerce div.product .woocommerce-product-gallery,
[data-theme="light"] .prp-page .woocommerce div.product figure.woocommerce-product-gallery__wrapper,
[data-theme="light"] .prp-page .woocommerce div.product .flex-viewport{background:transparent!important;}

/* v1.5.3 — simple, reliable single-product gallery (replaces flexslider) */
.prp-page .woocommerce div.product .prp-gallery{position:sticky;top:96px;margin:0;}
/* v1.10.9 — featured image fills the column edge-to-edge (no padding frame); product photos
   have their own dark studio backdrop so they look full-bleed inside the rounded card. */
.prp-gallery__main{display:flex;align-items:center;justify-content:center;border:1px solid var(--prp-border);border-radius:18px;padding:0;overflow:hidden;
  background:radial-gradient(circle at 50% 40%,rgba(70,100,165,.16),transparent 62%),linear-gradient(180deg,#0e1626,#0a111f);}
.prp-gallery__main img{display:block;width:100%;height:auto;max-height:none;object-fit:cover;filter:none;}
.prp-gallery__thumbs{display:flex;gap:10px;margin-top:14px;flex-wrap:wrap;}
.prp-gallery__thumb{width:74px;height:74px;border:1px solid var(--prp-border);border-radius:10px;background:#fff;padding:5px;cursor:pointer;}
.prp-gallery__thumb.is-active{border-color:var(--prp-red);}
.prp-gallery__thumb img{width:100%;height:100%;object-fit:contain;}
[data-theme="light"] .prp-gallery__main{background:radial-gradient(circle at 50% 40%,rgba(120,160,230,.14),transparent 62%),#fff;}
[data-theme="light"] .prp-gallery__main img{filter:none;}
@media(max-width:860px){.prp-page .woocommerce div.product .prp-gallery{position:static;}}

/* ===========================================================================
   v1.5.4 — light-mode overrides for style.css components that were hardcoded
   dark (the .quality CTA band on inner pages, side-cart thumb, hover fills).
   =========================================================================== */
[data-theme="light"] .quality{
  background:radial-gradient(700px 400px at 80% 50%,rgba(120,160,230,.16),transparent 60%),
    linear-gradient(110deg,#eef3fb 0%,#e9eff8 55%,#f1eef6 100%);
  border-color:var(--border);}
[data-theme="light"] .quality h2,[data-theme="light"] .quality .every{color:var(--text);}
[data-theme="light"] .quality p,[data-theme="light"] .quality-badges div{color:var(--text-2);}
[data-theme="light"] .quality::after{background:radial-gradient(circle,rgba(225,29,42,.10),transparent 62%);}
[data-theme="light"] .announcement{background:linear-gradient(90deg,#eef3fb,#e6edf8,#eef3fb);border-bottom-color:var(--border);color:var(--text-2);}
[data-theme="light"] .announcement strong{color:var(--text);}
[data-theme="light"] .woocommerce-mini-cart-item img,
[data-theme="light"] .pcard .thumb{background:#fff!important;}
[data-theme="light"] .btn-light{background:rgba(13,22,40,.05);}
[data-theme="light"] .btn-light:hover{background:rgba(13,22,40,.10);}
[data-theme="light"] .btn-ghost:hover{color:var(--text);background:rgba(225,29,42,.06);}
[data-theme="light"] .main-nav a:hover,[data-theme="light"] .main-nav .current-menu-item>a,
[data-theme="light"] .icon-btn:hover{background:rgba(13,22,40,.05);}
[data-theme="light"] .cat-card .go{color:var(--text);}

/* ===========================================================================
   v1.5.5 — light-mode icon recolor, ghost-button text, product-media glow,
   mobile header alignment.
   =========================================================================== */
/* Inline hero/feature/quality icons had hardcoded #fff strokes/fills -> invisible
   on white. Recolor the white parts to ink in light mode (red parts stay red). */
[data-theme="light"] .prp-feature__ico [stroke="#fff"],
[data-theme="light"] .prp-trust__ico [stroke="#fff"],
[data-theme="light"] .prp-qbadge__ico [stroke="#fff"],
[data-theme="light"] .prp-qbadge [stroke="#fff"]{stroke:#0d1426;}
[data-theme="light"] .prp-feature__ico [fill="#fff"],
[data-theme="light"] .prp-trust__ico [fill="#fff"],
[data-theme="light"] .prp-qbadge__ico [fill="#fff"],
[data-theme="light"] .prp-qbadge [fill="#fff"]{fill:#0d1426;}
/* Ghost / secondary buttons readable in light (were white text on light bg) */
[data-theme="light"] .prp-btn--ghost{color:var(--prp-text);border-color:var(--prp-border);}
[data-theme="light"] .prp-btn--ghost:hover{border-color:var(--prp-text);background:rgba(13,22,40,.04);}
[data-theme="light"] .btn-ghost{color:var(--prp-text);}
[data-theme="light"] .btn-ghost:hover{color:var(--prp-text);background:rgba(225,29,42,.06);}
/* Product card media: clean white (drop the blue glow) in light so vials sit cleanly */
[data-theme="light"] .prp-prod__media{background:#fff;}
[data-theme="light"] .prp-page ul.products li.product img{background:#fff;}
/* Mobile header: logo left, hamburger + action icons aligned right */
@media(max-width:1024px){
  .prp-header__inner{gap:14px;}
  .prp-header__inner .prp-logo{margin-right:auto;}
  .prp-header__actions{gap:16px;}
}

/* ===========================================================================
   v1.5.6 — remove boxy drop-shadow on product images. Product photos with a
   white background are opaque rectangles, so drop-shadow looked like a white
   bordered box with a shadow. Drop it everywhere for a clean, flat image.
   =========================================================================== */
.prp-prod__media img,.prp-vial--card,
.prp-gallery__main img,
.prp-page ul.products li.product img,
.prp-hero__vial-img,.prp-vial,.hero-vials img{filter:none!important;}

/* ===========================================================================
   v1.5.7 — kill mobile horizontal scroll. The featured "Top Research Peptides"
   flex scroller wasn't being width-contained, expanding the page sideways.
   =========================================================================== */
html,body{overflow-x:hidden;overflow-x:clip;max-width:100%;} /* clip (not hidden) so checkout #order_review position:sticky isn't broken by the scroll-container; hidden kept as old-browser fallback */
.prp-page{overflow-x:clip;width:100%;max-width:100%;}
.prp-products{max-width:100%;min-width:0;}
.prp-section,.prp-section__head,.prp-cats{min-width:0;}

/* v1.11.2 — mobile featured products = SAME horizontal swipeable carousel as
   desktop (was a 2-col grid). The page-level `overflow-x:clip` on html/body/.prp-page
   above is what actually stops any sideways PAGE scroll, so the scroller is safe;
   base `.prp-products`(flex+overflow-x:auto+snap) + `.prp-prod{flex:0 0 78%}`(≤680)
   give a swipeable row that peeks the next card. */
@media(max-width:680px){
  .prp-products{display:flex !important;overflow-x:auto !important;overflow-y:hidden;
    scroll-snap-type:x mandatory;-webkit-overflow-scrolling:touch;gap:14px;max-width:100%;}
  .prp-prod{flex:0 0 78% !important;width:auto !important;scroll-snap-align:start;}
  .prp-section__head .prp-carousel-btns{display:none;}
}

/* ===========================================================================
   v1.5.8 — desktop sections stay contained (removed the bad full-width
   override in v1.5.7); ALL red/primary buttons keep WHITE text everywhere.
   =========================================================================== */
.btn-primary,.prp-btn--primary,.prp-btn--shop,
.single_add_to_cart_button,
.prp-page .woocommerce a.button,.prp-page .woocommerce button.button,
.prp-page .woocommerce input.button,.prp-page .woocommerce #respond input#submit,
.prp-page ul.products li.product .button,.prp-page ul.products li.product .added_to_cart,
.prp-page .woocommerce div.product form.cart .button,
.prp-page .woocommerce-cart .wc-proceed-to-checkout .checkout-button,
.prp-page .woocommerce #place_order,
.prp-page .wc-block-components-button:not(.is-link),
.prp-page .wc-block-cart__submit-button,
.prp-page .wc-block-components-checkout-place-order-button,
.prp-news__btn,.add-mini,.btn-primary.btn-block,
.woocommerce-mini-cart__buttons .checkout,
.btn-primary:hover,.prp-btn--primary:hover,.prp-btn--shop:hover{color:#fff !important;}

/* ===========================================================================
   v1.5.9 — featured card "Add to Cart" + arrow; side-cart coupon + actions.
   =========================================================================== */
/* featured product card actions */
.prp-prod__actions{display:flex;gap:8px;align-items:stretch;margin-top:12px;}
.prp-prod__add{flex:1;display:inline-flex;align-items:center;justify-content:center;
  background:var(--prp-red);color:#fff !important;border-radius:8px;font-weight:600;font-size:13px;
  padding:11px 12px;transition:background .15s ease;letter-spacing:.2px;}
.prp-prod__add:hover{background:var(--prp-red-d);color:#fff !important;}
.prp-prod__actions .prp-addbtn{flex:0 0 44px;width:44px;height:auto;}

/* side cart coupon */
.prp-coupon{display:flex;gap:8px;margin-bottom:10px;}
.prp-coupon__input{flex:1;min-width:0;background:var(--surface-2);border:1px solid var(--border);border-radius:9px;
  padding:11px 12px;color:var(--text);font-size:.85rem;font-family:inherit;}
.prp-coupon__input:focus{outline:none;border-color:var(--red);}
.prp-coupon__btn{flex:0 0 auto;background:transparent;border:1px solid var(--border-2);color:var(--text);
  border-radius:9px;padding:0 16px;font-weight:700;font-size:.82rem;transition:.15s;}
.prp-coupon__btn:hover{border-color:var(--red);color:var(--red);}
.prp-coupon__msg{font-size:.78rem;margin:0 0 10px;}
.prp-coupon__msg.is-ok{color:var(--green);}
.prp-coupon__msg.is-err{color:var(--red);}
.prp-applied-coupons{list-style:none;margin:0 0 12px;padding:0;display:flex;flex-wrap:wrap;gap:6px;}
.prp-applied-coupons li{display:inline-flex;align-items:center;gap:6px;background:rgba(39,192,138,.12);color:#1f9d63;
  border-radius:8px;padding:4px 6px 4px 10px;font-size:.74rem;font-weight:800;letter-spacing:.03em;}
.prp-coupon__remove{border:none;background:none;color:inherit;font-size:15px;line-height:1;cursor:pointer;padding:0;}
.prp-cart-discount{display:flex;justify-content:space-between;color:#1f9d63;font-weight:700;font-size:.92rem;margin:0 0 4px;}
.prp-cart-links{display:flex;align-items:center;justify-content:center;gap:20px;margin-top:12px;}
.prp-cart-link{background:none;border:none;color:var(--text-2);font-weight:600;font-size:.86rem;cursor:pointer;
  text-decoration:underline;text-underline-offset:3px;font-family:inherit;}
.prp-cart-link:hover{color:var(--red);}
[data-theme="light"] .prp-coupon__input{background:#fff;}

/* ===========================================================================
   v1.6.0 — pin the side-cart foot (coupon + subtotal + buttons) to the bottom.
   The fragment wrapper [data-sidecart-inner] wasn't a flex column, so the body
   flex:1 never expanded and the foot floated under the items.
   =========================================================================== */
.side-cart [data-sidecart-inner]{flex:1 1 auto;display:flex;flex-direction:column;min-height:0;}
.side-cart .side-cart-body{flex:1 1 auto;min-height:0;}
.side-cart .side-cart-foot{margin-top:auto;}

/* ===========================================================================
   v1.6.1 — shop + ALL archive cards: add-to-cart button + view arrow, matched
   to the home featured cards (clean solid card, same image style).
   =========================================================================== */
.prp-page ul.products li.product .prp-card-actions{display:flex;gap:8px;align-items:stretch;margin:14px 16px 18px;}
.prp-page ul.products li.product .prp-card-actions .button{
  flex:1;margin:0 !important;display:inline-flex;align-items:center;justify-content:center;
  padding:12px !important;border-radius:8px !important;font-size:13px !important;font-weight:600 !important;
  color:#fff !important;background:var(--prp-red) !important;}
.prp-page ul.products li.product .prp-card-actions .button:hover{background:var(--prp-red-d) !important;}
.prp-page ul.products li.product .prp-card-actions .prp-addbtn{flex:0 0 46px;width:46px;height:auto;margin:0;
  border:1px solid var(--prp-border);border-radius:8px;color:var(--prp-muted);background:transparent;
  display:flex;align-items:center;justify-content:center;transition:.15s;}
.prp-page ul.products li.product .prp-card-actions .prp-addbtn:hover{border-color:var(--prp-red);color:var(--prp-red);}
/* the inline "View cart" link is redundant (side cart opens) — hide on cards */
.prp-page ul.products li.product .added_to_cart{display:none !important;}
/* solid card like the home featured cards */
.prp-page ul.products li.product{background:var(--prp-panel);}
[data-theme="light"] .prp-page ul.products li.product{background:#fff;border-color:var(--prp-border);
  box-shadow:0 12px 32px -22px rgba(20,33,61,.30);}
[data-theme="light"] .prp-page ul.products li.product:hover{background:#fff;border-color:rgba(225,29,42,.45);}

/* ============================================================
   SEARCH — header overlay + results page (v1.6.5)
   ============================================================ */
.prp-search-overlay{position:fixed;inset:0;z-index:300;display:flex;align-items:flex-start;justify-content:center;}
.prp-search-overlay[hidden]{display:none;}
.prp-search-overlay__backdrop{position:absolute;inset:0;background:rgba(5,8,15,.6);-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px);}
.prp-search-overlay__panel{position:relative;width:min(720px,92vw);margin-top:13vh;background:var(--surface);border:1px solid var(--border);border-radius:16px;box-shadow:var(--shadow);padding:22px;}
.prp-search-form{display:flex;align-items:center;gap:10px;}
.prp-search-form__ico{color:var(--muted);flex:none;display:grid;place-items:center;}
.prp-search-form__input{flex:1;min-width:0;background:var(--surface-2);border:1px solid var(--border);border-radius:11px;padding:14px 16px;color:var(--text);font-size:1rem;}
.prp-search-form__input:focus{outline:none;border-color:var(--red);}
.prp-search-form__submit{flex:none;}
.prp-search-overlay__close{flex:none;width:42px;height:42px;border:none;background:transparent;color:var(--muted);font-size:26px;line-height:1;border-radius:10px;cursor:pointer;}
.prp-search-overlay__close:hover{background:var(--surface-2);color:var(--text);}
.prp-search-form__hint{margin:12px 4px 0;font-size:.8rem;color:var(--muted);}

.search-hero__form{display:flex;gap:10px;max-width:520px;margin-top:22px;}
.search-hero__form input{flex:1;min-width:0;background:var(--surface);border:1px solid var(--border);border-radius:11px;padding:13px 16px;color:var(--text);font-size:1rem;}
.search-hero__form input:focus{outline:none;border-color:var(--red);}
.search-block{margin-bottom:46px;}
.search-results{list-style:none;margin:0;padding:0;display:grid;gap:14px;}
.search-result a{display:block;background:var(--surface);border:1px solid var(--border);border-radius:14px;padding:20px 22px;transition:border-color .2s,transform .15s,box-shadow .2s;}
.search-result a:hover{border-color:var(--red);transform:translateY(-2px);box-shadow:var(--shadow);}
.search-result__type{display:inline-block;font-size:.7rem;font-weight:800;letter-spacing:.14em;text-transform:uppercase;color:var(--red);margin-bottom:8px;}
.search-result__title{font-size:1.12rem;margin:0 0 6px;color:var(--text);}
.search-result__excerpt{color:var(--text-2);font-size:.92rem;margin:0 0 10px;}
.search-result__more{font-size:.85rem;font-weight:700;color:var(--red);}
.search-empty{text-align:center;padding:60px 20px;color:var(--text-2);}
.search-empty svg{color:var(--muted);margin-bottom:14px}
.search-empty h2{margin:0 0 8px}
.search-empty .btn{margin-top:18px}
@media(max-width:560px){.prp-search-form{flex-wrap:wrap}.prp-search-form__submit{order:3}.search-hero__form{flex-wrap:wrap}}

/* ============================================================
   SINGLE PRODUCT FIXES (v1.6.6)
   NOTE: the `.woocommerce` class sits on <body> (above .prp-page), so the older
   `.prp-page .woocommerce div.product …` single-product rules never matched.
   Scope via `.woocommerce div.product` (matches through body.woocommerce) instead.
   ============================================================ */
/* 1) Tabs (Description/…) and Related products each span the full grid width
      so they stack on their own full-width rows instead of sharing one row. */
.woocommerce div.product .woocommerce-tabs,
.woocommerce div.product .related.products,
.woocommerce div.product section.related{
  grid-column:1 / -1 !important;
  width:auto !important;
  float:none !important;
}
/* 2) Remove the content wrapper's top padding on single product so the full-bleed
      hero band sits flush under the header (the hero carries its own padding). */
body.single-product .prp-container.prp-woo{padding-top:0;}

/* v1.6.7 — breathing room between the product tab buttons and the tab content */
.woocommerce div.product .woocommerce-tabs ul.tabs{margin-bottom:26px !important;}
.woocommerce div.product .woocommerce-tabs .panel{margin-top:0;}
.woocommerce div.product .woocommerce-tabs .panel>h2:first-child,
.woocommerce div.product .woocommerce-tabs .panel>h2:first-of-type{margin-top:0;}

/* ===========================================================================
   v1.6.9 — product grid: edge-to-edge image, zero container padding (client 2026-06-23)
   =========================================================================== */
.prp-page ul.products li.product a.woocommerce-LoopProduct-link{padding-top:0!important;}
.prp-page ul.products li.product a.woocommerce-LoopProduct-link img,
.prp-page ul.products li.product img{
  width:100%!important;height:250px!important;max-height:250px!important;
  object-fit:cover!important;object-position:center!important;
  padding:0!important;margin:0!important;background:none!important;border-radius:0!important;}
@media(max-width:680px){
  .prp-page ul.products li.product a.woocommerce-LoopProduct-link img,
  .prp-page ul.products li.product img{height:210px!important;padding:0!important;}}

/* ===========================================================================
   CAROUSEL CARD — CLEAN REBUILD (v1.12.0). Supersedes all the old v1.7.0 /
   1.7.1 / 1.11.x media+body patches with ONE coherent definition (desktop +
   mobile identical). The media box is a portrait 3:4 frame that matches the
   dark vial photos (1086x1448 = 0.75), so object-fit:cover fills it edge-to-
   edge with the WHOLE vial — no top/bottom crop, no side gaps. The light
   photos are square (1254²) with blank space above the vial, so on light theme
   a podium-anchored zoom clips that top margin → light fills exactly like dark.
   =========================================================================== */
.prp-prod__media{
  aspect-ratio:3 / 4 !important; height:auto !important; width:100% !important;
  overflow:hidden !important; display:block !important;
  padding:0 !important; margin:0 !important; border-radius:0 !important; background:none !important;
}
.prp-prod__media img{
  width:100% !important; height:100% !important; max-width:none !important; max-height:none !important;
  object-fit:cover !important; object-position:center !important; display:block !important;
  filter:none !important; transform:none;
}
[data-theme="light"] .prp-prod__media{background:#fff !important;}
/* Light photos are square (1254²) with a measured ~11% blank margin ABOVE the cap (the dark
   photos fill the frame with 0 margin). Zoom just enough (1.10) to hide that margin WITHOUT
   clipping the cap — over-zooming (was 1.16) ate into the caps. Any residual sliver is the
   photo's near-white bg blending into the white card, so it's invisible. */
[data-theme="light"] .prp-prod__media img{transform:scale(1.10) !important; transform-origin:center bottom !important;}

/* Body: tight, even spacing directly under the image (kills the old 44px gap) */
.prp-prod__body{padding:14px 16px 16px !important; display:flex; flex-direction:column; flex:1; min-width:0;}
.prp-prod__name{font-size:15.5px; font-weight:700; margin:0 0 7px; line-height:1.25;}
.prp-prod__name,.prp-prod__name a{color:var(--prp-text) !important;}

/* v1.7.6 — shop/archive grid: more breathing room above the product title */
.prp-page ul.products li.product .woocommerce-loop-product__title{padding-top:22px!important;}

/* v1.8.0 — theme-aware hero photo (client light + dark banner images) */
.prp-page .prp-hero__photo--light{display:block;}
.prp-page .prp-hero__photo--dark{display:none;}
[data-theme="dark"] .prp-page .prp-hero__photo--light{display:none;}
[data-theme="dark"] .prp-page .prp-hero__photo--dark{display:block;}
.prp-hero__photo{border-radius:16px;overflow:hidden;}

/* v1.10.6 — hero photo is now the clean 5-vial cutout (att 331): transparent bg, no baked
   platform/shadow, so the old light-only bottom-fade mask (v1.9.2) is dropped — it was
   cropping the vial bases on light. Light keeps a soft grounding shadow; dark untouched. */
.prp-page .prp-hero__photo{
  -webkit-mask-image:none;mask-image:none;
  filter:drop-shadow(0 26px 22px rgba(30,50,90,.20));
}
[data-theme="dark"] .prp-page .prp-hero__photo{
  filter:none;
}

/* v1.9.3 — CLASSIC checkout ([woocommerce_checkout]) styled to the redesign.
   Live uses the classic shortcode (its checkout-field-editor injects the compliance
   fields here), so the theme must style classic — NOT just the block checkout.
   🛑 Scope via body.woocommerce-checkout; `.prp-page .woocommerce` is DEAD (.woocommerce
   is on <body>). Uses theme tokens → adapts to light + dark automatically. */
.woocommerce-checkout form.checkout{display:grid;grid-template-columns:minmax(0,1fr) 390px;grid-template-rows:auto 1fr;gap:0 34px;align-items:start;}
.woocommerce-checkout #customer_details{grid-column:1;grid-row:1 / 3;min-width:0;}
.woocommerce-checkout h3#order_review_heading{grid-column:2;grid-row:1;margin:0 0 14px;}
.woocommerce-checkout #order_review{grid-column:2;grid-row:2;align-self:start;position:sticky;top:100px;}
@media(max-width:900px){
  /* 🛑 drop the grid entirely so the row-spans (customer_details grid-row:1/3,
     order_review grid-row:2) can't overlap — children now flow in source order */
  .woocommerce-checkout form.checkout{display:block;}
  .woocommerce-checkout #customer_details,
  .woocommerce-checkout h3#order_review_heading,
  .woocommerce-checkout #order_review{grid-column:auto;grid-row:auto;}
  .woocommerce-checkout h3#order_review_heading{margin-top:28px;}
  .woocommerce-checkout #order_review{position:static;}
}
@media(max-width:560px){
  /* small phones: stack paired name fields + tighten card padding */
  .woocommerce-checkout .woocommerce-billing-fields__field-wrapper,
  .woocommerce-checkout .woocommerce-additional-fields__field-wrapper{grid-template-columns:1fr;}
  .woocommerce-checkout .woocommerce-billing-fields__field-wrapper .form-row-first,
  .woocommerce-checkout .woocommerce-billing-fields__field-wrapper .form-row-last,
  .woocommerce-checkout .woocommerce-additional-fields__field-wrapper .form-row-first,
  .woocommerce-checkout .woocommerce-additional-fields__field-wrapper .form-row-last{grid-column:1;}
  .woocommerce-checkout .woocommerce-billing-fields,
  .woocommerce-checkout .woocommerce-additional-fields,
  .woocommerce-checkout #order_review{padding:20px 18px;}
}
/* billing + notes stack full-width in the left column, each its own card */
.woocommerce-checkout #customer_details .col2-set{display:block;}
.woocommerce-checkout #customer_details .col-1,
.woocommerce-checkout #customer_details .col-2{width:100%;float:none;padding:0;max-width:none;}
.woocommerce-checkout .woocommerce-billing-fields,
.woocommerce-checkout .woocommerce-additional-fields,
.woocommerce-checkout #order_review{background:var(--prp-panel);border:1px solid var(--prp-border);border-radius:16px;padding:26px 28px;}
.woocommerce-checkout .woocommerce-additional-fields{margin-top:24px;}
/* section headings */
.woocommerce-checkout .woocommerce-billing-fields > h3,
.woocommerce-checkout .woocommerce-additional-fields > h3,
.woocommerce-checkout h3#order_review_heading{font-family:var(--prp-font-display);font-weight:600;font-size:20px;letter-spacing:.02em;text-transform:uppercase;color:var(--prp-text);margin:0 0 20px;}
/* compliance sub-heading injected among the billing fields */
.prp-checkout-section{grid-column:1 / -1;font-family:var(--prp-font-display);font-weight:600;font-size:13px;letter-spacing:.05em;text-transform:uppercase;color:var(--prp-red);margin:10px 0 2px;padding-top:18px;border-top:1px dashed var(--prp-border);}
/* field grid */
.woocommerce-checkout .woocommerce-billing-fields__field-wrapper,
.woocommerce-checkout .woocommerce-additional-fields__field-wrapper{display:grid;grid-template-columns:1fr 1fr;column-gap:16px;}
.woocommerce-checkout .form-row{margin:0 0 15px;padding:0;float:none;width:auto;}
.woocommerce-checkout .form-row-wide,
.woocommerce-checkout .form-row.notes,
.woocommerce-checkout .prp-checkout-section{grid-column:1 / -1;}
/* WC's woocommerce-layout.css forces .form-row-first/last to width:47%+float
   (specificity .woocommerce form .form-row-first = 0,2,1) which collapses them
   inside our grid. Override with the field-wrapper ancestor (0,3,0) → fill cell. */
.woocommerce-checkout .woocommerce-billing-fields__field-wrapper .form-row-first,
.woocommerce-checkout .woocommerce-additional-fields__field-wrapper .form-row-first{grid-column:1;width:auto;float:none;}
.woocommerce-checkout .woocommerce-billing-fields__field-wrapper .form-row-last,
.woocommerce-checkout .woocommerce-additional-fields__field-wrapper .form-row-last{grid-column:2;width:auto;float:none;}
.woocommerce-checkout .form-row label{display:block;font-size:13.5px;font-weight:600;color:var(--prp-text);margin-bottom:7px;}
.woocommerce-checkout .form-row label .required{color:var(--prp-red);border:0;text-decoration:none;}
.woocommerce-checkout .form-row label .optional{color:var(--prp-muted);font-weight:400;}
/* inputs */
/* WC wraps each field's control in an inline <span.woocommerce-input-wrapper>;
   left inline it collapses width:100% inputs to their intrinsic size (the tiny
   first/last name fields). Force it to fill the form-row / grid cell. */
.woocommerce-checkout .form-row .woocommerce-input-wrapper{display:block;width:100%;}
.woocommerce-checkout .input-text,
.woocommerce-checkout textarea,
.woocommerce-checkout select,
.woocommerce-checkout .select2-container--default .select2-selection--single{width:100%;border:1px solid var(--prp-border);border-radius:10px;padding:12px 14px;font-size:15px;font-family:var(--prp-font-body);background:var(--prp-bg);color:var(--prp-text);box-sizing:border-box;min-height:48px;line-height:1.3;transition:border-color .15s,box-shadow .15s;}
.woocommerce-checkout textarea{min-height:90px;}
.woocommerce-checkout .select2-container--default .select2-selection--single{display:flex;align-items:center;}
.woocommerce-checkout .select2-container--default .select2-selection--single .select2-selection__arrow{top:50%;transform:translateY(-50%);right:10px;}
.woocommerce-checkout .input-text:focus,
.woocommerce-checkout textarea:focus,
.woocommerce-checkout select:focus{border-color:var(--prp-red);outline:none;box-shadow:0 0 0 3px rgba(225,29,42,.12);}
.woocommerce-checkout .input-text::placeholder,
.woocommerce-checkout textarea::placeholder{color:var(--prp-muted);}
/* order review table */
.woocommerce-checkout #order_review .shop_table{width:100%;border:0;border-collapse:collapse;margin:0;background:transparent;}
.woocommerce-checkout #order_review .shop_table th,
.woocommerce-checkout #order_review .shop_table td{padding:11px 0;border:0;border-bottom:1px solid var(--prp-border);font-size:14.5px;color:var(--prp-text);text-align:left;}
.woocommerce-checkout #order_review .shop_table td.product-total,
.woocommerce-checkout #order_review .shop_table th.product-total{text-align:right;}
.woocommerce-checkout #order_review .order-total .amount{color:var(--prp-red);font-size:19px;font-weight:700;}
.woocommerce-checkout #order_review .product-quantity{color:var(--prp-muted);}
/* payment + place order */
.woocommerce-checkout #payment{background:transparent;margin-top:8px;}
.woocommerce-checkout #payment ul.payment_methods{border:0;padding:0;margin:0 0 12px;}
.woocommerce-checkout #payment div.payment_box{background:var(--prp-bg);border-radius:10px;color:var(--prp-muted);}
.woocommerce-checkout #payment div.payment_box::before{border-bottom-color:var(--prp-bg);}
.woocommerce-checkout #place_order{width:100%;background:var(--prp-red);color:#fff;border:0;border-radius:12px;padding:15px 20px;font-family:var(--prp-font-display);font-weight:600;font-size:16px;letter-spacing:.03em;text-transform:uppercase;cursor:pointer;transition:background .15s;}
.woocommerce-checkout #place_order:hover{background:var(--prp-red-d);}
/* coupon toggle + notices */
.woocommerce-checkout .woocommerce-info,
.woocommerce-checkout .woocommerce-message,
.woocommerce-checkout .woocommerce-error{background:var(--prp-panel);border:1px solid var(--prp-border);border-left:3px solid var(--prp-red);border-radius:10px;padding:15px 18px 15px 50px;color:var(--prp-text);box-shadow:none;position:relative;list-style:none;}
.woocommerce-checkout .woocommerce-info::before,
.woocommerce-checkout .woocommerce-message::before,
.woocommerce-checkout .woocommerce-error::before{color:var(--prp-red);left:20px;top:50%;transform:translateY(-50%);margin:0;}
.woocommerce-checkout .woocommerce-message .button,
.woocommerce-checkout .button.wc-forward{background:var(--prp-red);color:#fff;border-radius:8px;border:0;}
.woocommerce-checkout form.checkout_coupon{border:1px solid var(--prp-border);border-radius:12px;padding:20px;background:var(--prp-panel);}
.woocommerce-checkout .woocommerce-privacy-policy-text{color:var(--prp-muted);font-size:13px;margin-top:14px;}
/* v1.12.8 — checkout payment: drop the skyish panel background + tighten padding so gateway
   options don't sit in a big padded box / wrap to two lines (client request). */
.prp-page .woocommerce-checkout #payment{background:transparent;border:none;border-radius:0;padding:0;margin-top:6px;}
.prp-page .woocommerce-checkout #payment ul.payment_methods{margin:0;}
.prp-page .woocommerce-checkout #payment ul.payment_methods>li.wc_payment_method{padding:9px 2px;border-bottom:1px solid var(--prp-border);}
.prp-page .woocommerce-checkout #payment ul.payment_methods>li.wc_payment_method:last-of-type{border-bottom:none;}
.prp-page .woocommerce-checkout #payment ul.payment_methods>li label{font-size:13px;line-height:1.3;font-weight:600;}
.prp-page .woocommerce-checkout #payment div.payment_box{padding:12px 14px;margin:10px 0 2px;font-size:13px;}
/* v1.12.8/1.12.10 — side-cart coupon: lock heights + prevent wrap so it renders
   consistently across side-cart fragment re-renders (no intermittent "breaking"). */
.prp-coupon{display:flex;align-items:stretch;flex-wrap:nowrap;gap:8px;}
.prp-coupon__input{flex:1 1 auto;min-width:0;height:42px;padding:0 12px;box-sizing:border-box;line-height:normal;}
.prp-coupon__btn{flex:0 0 auto;width:auto;height:42px;padding:0 16px;box-sizing:border-box;white-space:nowrap;line-height:normal;}
/* v1.12.12 — footer "Website by Zask" credit */
.prp-foot-credit{margin-left:8px;opacity:.85;}
.prp-foot-credit a{color:inherit;font-weight:600;text-decoration:none;border-bottom:1px solid transparent;}
.prp-foot-credit a:hover{color:var(--prp-red);border-bottom-color:currentColor;}
/* v1.12.9 — payment method: radio + title + gateway icons all on ONE row (client). */
.prp-page .woocommerce-checkout #payment ul.payment_methods>li.wc_payment_method{display:flex;flex-wrap:wrap;align-items:center;column-gap:8px;row-gap:0;}
.prp-page .woocommerce-checkout #payment ul.payment_methods>li.wc_payment_method>input.input-radio{margin:0;flex:0 0 auto;}
.prp-page .woocommerce-checkout #payment ul.payment_methods>li.wc_payment_method>label{display:inline-flex;align-items:center;gap:7px;flex:1 1 auto;min-width:0;margin:0;white-space:nowrap;font-size:12px;}
.prp-page .woocommerce-checkout #payment ul.payment_methods>li.wc_payment_method>label img{max-height:20px;width:auto;display:inline-block;vertical-align:middle;margin:0;flex:0 0 auto;}
.prp-page .woocommerce-checkout #payment ul.payment_methods>li.wc_payment_method>.payment_box{flex:0 0 100%;}

/* v1.8.2 — side-cart item: pin grid columns (were swapping → name crammed, thumb floated right) */
.woocommerce-mini-cart-item{grid-template-columns:56px 1fr!important;direction:ltr!important;}
.woocommerce-mini-cart-item .prp-mini-thumb{grid-column:1 / 2!important;order:0!important;align-self:start!important;}
.woocommerce-mini-cart-item .mini-meta{grid-column:2 / 3!important;order:1!important;}
.woocommerce-mini-cart-item .prp-mini-thumb img,
.woocommerce ul.cart_list li .prp-mini-thumb img{float:none!important;width:56px!important;height:56px!important;}

/* v1.8.3 — side-cart item: clean compact layout (thumb centered | name / qty+price stacked) */
.woocommerce-mini-cart-item{
  grid-template-columns:54px 1fr!important;
  grid-template-areas:"thumb meta"!important;
  align-items:center!important;
  gap:12px!important;padding:12px 14px!important;}
.woocommerce-mini-cart-item .prp-mini-thumb{grid-area:thumb!important;align-self:center!important;}
.woocommerce-mini-cart-item .prp-mini-thumb img{width:54px!important;height:54px!important;}
.woocommerce-mini-cart-item .mini-meta{
  grid-area:meta!important;display:flex!important;flex-direction:column!important;
  justify-content:center!important;gap:8px!important;padding-right:18px!important;margin:0!important;}
.woocommerce-mini-cart-item .prp-mini-name{font-size:.92rem!important;line-height:1.25!important;margin:0!important;}
.woocommerce-mini-cart-item .variation{margin:0!important;}
.woocommerce-mini-cart-item .prp-mini-row{margin:0!important;}

/* ---- Certificate of Analysis (under product image) ---- */
.prp-coa{margin-top:20px;border:1px solid rgba(120,150,200,.22);border-radius:14px;background:rgba(255,255,255,.025);overflow:hidden;max-width:560px}
.prp-coa__head{display:flex;align-items:center;gap:8px;padding:12px 16px;font-weight:700;font-size:12.5px;letter-spacing:.5px;text-transform:uppercase;color:#fff;border-bottom:1px solid rgba(120,150,200,.18)}
.prp-coa__head svg{color:var(--prp-red,#e11d2a)}
.prp-coa__doc{display:flex;align-items:center;gap:16px;padding:14px 16px;text-decoration:none}
.prp-coa__doc img{width:72px;height:94px;object-fit:cover;object-position:top;border-radius:6px;background:#fff;flex:0 0 auto;box-shadow:0 6px 16px -8px rgba(0,0,0,.5)}
.prp-coa__view{display:inline-flex;align-items:center;gap:8px;font-weight:600;font-size:14px;color:var(--prp-red,#e11d2a)}
.prp-coa__doc:hover .prp-coa__view{text-decoration:underline}
[data-theme="light"] .prp-coa{background:rgba(13,22,40,.02);border-color:var(--prp-border)}
[data-theme="light"] .prp-coa__head{color:var(--prp-text);border-bottom-color:var(--prp-border)}

/* ===========================================================================
   v1.8.6 — ANIMATED HERO BACKGROUND (molecules / peptide rings / DNA / particles)
   Client 2026-06-27: keep their hero photo as-is, add a living science backdrop.
   GPU-cheap: only transform + opacity animate. Honors prefers-reduced-motion.
   =========================================================================== */
/* ambient backdrop biased to the LEFT (behind the headline) so it never competes
   with the client's hero image on the right, which already carries DNA + molecules */
.prp-hero__bg{position:absolute;inset:0;z-index:1;pointer-events:none;overflow:hidden;
  --net:#7ea6e6;--atom:#9cc2ff;opacity:.5;
  -webkit-mask:radial-gradient(125% 130% at 20% 42%,#000 24%,rgba(0,0,0,.4) 58%,transparent 84%);
          mask:radial-gradient(125% 130% at 20% 42%,#000 24%,rgba(0,0,0,.4) 58%,transparent 84%);}
[data-theme="light"] .prp-hero__bg{--net:#3164c4;--atom:#2f6bd6;opacity:.38;}
.prp-hero__bgsvg{position:absolute;inset:0;width:100%;height:100%;display:block;}

.prp-bond{stroke:var(--net);stroke-width:1.4;opacity:.5;}
.prp-atom{fill:var(--atom);opacity:.85;}
.prp-ring{stroke:var(--net);stroke-width:1.6;fill:none;opacity:.55;}
.prp-ring--in{opacity:.32;}
.prp-strand{stroke:var(--net);stroke-width:1.6;fill:none;opacity:.5;}
.prp-strand--b{opacity:.30;}
.prp-rung{stroke:var(--atom);stroke-width:1.2;opacity:.28;}
.prp-pt{fill:var(--atom);opacity:.45;}

.prp-mol{transform-box:fill-box;transform-origin:center;will-change:transform,opacity;
  animation:prpMolDrift var(--d,22s) ease-in-out var(--dl,0s) infinite alternate,
            prpMolPulse var(--pd,7s) ease-in-out var(--dl,0s) infinite;}
@keyframes prpMolDrift{from{transform:translate(0,0) rotate(0)}
  to{transform:translate(var(--dx,18px),var(--dy,-14px)) rotate(var(--rot,5deg))}}
@keyframes prpMolPulse{0%,100%{opacity:.55}50%{opacity:1}}

.prp-hex{transform-box:fill-box;transform-origin:center;will-change:transform;
  animation:prpHexSpin var(--hd,46s) linear infinite;}
@keyframes prpHexSpin{from{transform:rotate(0)}to{transform:rotate(calc(var(--dir,1)*360deg))}}

.prp-dna{transform-box:fill-box;transform-origin:center;will-change:transform;
  animation:prpDnaFloat var(--dd,22s) ease-in-out var(--dl,0s) infinite alternate;}
@keyframes prpDnaFloat{from{transform:translateY(-16px)}to{transform:translateY(16px)}}

.prp-pt{transform-box:fill-box;will-change:transform,opacity;
  animation:prpPtRise var(--d,18s) linear var(--dl,0s) infinite;}
@keyframes prpPtRise{0%{transform:translateY(22px);opacity:0}
  16%{opacity:.5}84%{opacity:.5}100%{transform:translateY(-130px);opacity:0}}

@media(prefers-reduced-motion:reduce){
  .prp-mol,.prp-hex,.prp-dna,.prp-pt{animation:none!important;}}
@media(max-width:680px){
  .prp-hero__bg{opacity:.42;}
  [data-theme="light"] .prp-hero__bg{opacity:.24;}}

/* -------------------------------------------------------------------------
 * Product reviews (native WooCommerce) — v1.10.2
 * Scope via body.woocommerce (NOT .prp-page .woocommerce = dead selector).
 * ---------------------------------------------------------------------- */
.woocommerce #reviews #comments > h2{font-family:var(--prp-font-display);font-weight:600;font-size:22px;letter-spacing:.01em;color:var(--prp-text);margin:0 0 22px;}
.woocommerce #reviews ol.commentlist{margin:0;padding:0;list-style:none;display:flex;flex-direction:column;gap:16px;}
.woocommerce #reviews ol.commentlist li.review{margin:0;padding:0;background:none;border:0;}
.woocommerce #reviews ol.commentlist li .comment_container{display:flex;gap:14px;align-items:flex-start;background:var(--prp-panel);border:1px solid var(--prp-border);border-radius:14px;padding:18px 20px;overflow:hidden;}
.woocommerce #reviews #comments ol.commentlist li img.avatar{position:static !important;width:44px;height:44px;border-radius:50%;border:1px solid var(--prp-border);margin:0 !important;padding:0;float:none !important;background:var(--prp-bg);}
.woocommerce #reviews #comments ol.commentlist li .comment-text{flex:1;min-width:0;margin:0 !important;padding:0 !important;border:0 !important;}
.woocommerce #reviews ol.commentlist li .comment-text .meta{color:var(--prp-muted);font-size:13px;margin:0 0 8px;line-height:1.5;}
.woocommerce #reviews ol.commentlist li .comment-text .woocommerce-review__author{color:var(--prp-text);font-size:14.5px;font-weight:700;}
.woocommerce #reviews ol.commentlist li .comment-text .woocommerce-review__verified{color:#2e9e5b;font-style:normal;font-weight:600;font-size:12px;margin-left:4px;}
.woocommerce #reviews ol.commentlist li .comment-text .description p{color:var(--prp-text);font-size:14.5px;line-height:1.65;margin:0;}
.woocommerce #reviews ol.commentlist li .comment-text .star-rating{float:right;margin:2px 0 0;}
/* Brand-gold stars everywhere (list + summary + add-review picker) */
.woocommerce .star-rating span::before,.woocommerce p.stars a::before,.woocommerce p.stars a:hover::before,.woocommerce p.stars.selected a.active::before,.woocommerce p.stars.selected a::before{color:#f5a623;}
.woocommerce .star-rating::before{color:#c9d1e0;}
[data-theme="dark"] .woocommerce .star-rating::before{color:#33415c;}
/* Add-a-review form */
.woocommerce #review_form #reply-title{font-family:var(--prp-font-display);font-weight:600;font-size:19px;color:var(--prp-text);display:block;margin:0 0 4px;}
.woocommerce #review_form #respond .comment-form-rating label{color:var(--prp-text);font-weight:600;}
.woocommerce #review_form #respond p.comment-form-comment label,.woocommerce #review_form #respond p.comment-form-author label,.woocommerce #review_form #respond p.comment-form-email label{color:var(--prp-text);}
.woocommerce #review_form #respond textarea,.woocommerce #review_form #respond input[type="text"],.woocommerce #review_form #respond input[type="email"]{background:var(--prp-panel);border:1px solid var(--prp-border);border-radius:8px;color:var(--prp-text);padding:11px 13px;font-family:var(--prp-font-body);}
.woocommerce #review_form #respond .form-submit input#submit{background:var(--prp-red);color:#fff;border:0;border-radius:10px;padding:12px 26px;font-family:var(--prp-font-display);font-weight:600;letter-spacing:.03em;text-transform:uppercase;cursor:pointer;transition:background .15s;}
.woocommerce #review_form #respond .form-submit input#submit:hover{background:var(--prp-red-d);}

/* ===== INTERIM 2026-07-09: hero image removed until client supplies a good one =====
   Collapses the hero art column to a clean text-only hero. To restore: delete this
   block and set the pro_hero_image / pro_hero_image_dark theme mods again. */
.prp-hero__art{display:none;}
.prp-hero__inner{grid-template-columns:1fr;min-height:auto;padding-top:34px;padding-bottom:20px;}
.prp-hero__copy{max-width:720px;}
@media(max-width:820px){.prp-hero__inner{min-height:auto;}}
/* ===== END INTERIM hero-remove ===== */

/* v1.11.6 — HOME pinch-zoom fix. The header.php zoom guard (touch-action on <html> +
   multi-touch touchmove) is defeated on HOME by the "Top Research Peptides" carousel:
   .prp-products is an overflow-x:auto SCROLL CONTAINER, and scroll containers re-permit
   pinch-zoom on themselves, escaping the ancestor guard (inner pages have no such element,
   so they were already locked). Pin touch-action so pinch is blocked while horizontal swipe
   (pan-x) + vertical page scroll (pan-y) keep working. */
.prp-page{touch-action:pan-x pan-y;}
.prp-products{touch-action:pan-x pan-y!important;} /* pan-x = carousel swipe, pan-y = let the PAGE scroll vertically over the carousel; both still exclude pinch-zoom */

/* v1.11.7 — HOME horizontal-scroll/pan hard clamp (mobile). Standard fix: overflow-x:hidden
   creates a scroll container that prevents any sideways scroll. Scoped to the home document
   only (body.home / its <html>) so the checkout #order_review position:sticky on inner pages
   — which needs overflow-x:clip, not hidden — stays working. */
@media(max-width:680px){
  html:has(body.home), body.home{overflow-x:hidden!important;max-width:100%!important;}
}

/* v1.11.8 — CONTAIN the "Top Research Peptides" carousel so it can't widen the page.
   Client diagnosis (correct): the carousel's ~4000px of horizontally-scrolling cards were
   inflating documentElement.scrollWidth → the whole HOME page could be panned sideways on
   mobile. Clip the carousel's own container + pin the scroller to exactly 100% width so its
   overflow stays INTERNAL (its own overflow-x:auto still scrolls the cards). */
.prp-container:has(> .prp-products){overflow-x:hidden;}
.prp-products{width:100%!important;max-width:100%!important;}


/* v1.11.8b — carousel content must not inflate document width: CSS containment */
.prp-products{contain:content!important;}
