/* ==========================================================================
   CleanPeptides — Design System
   Single source of truth for the WordPress block theme AND the static preview.
   Ported faithfully from the approved front-end prototype + brand board v1.0.
   Compliance: claim-free. Purity / documentation / lot traceability language only.
   ========================================================================== */

/* ---- Design tokens (also mirrored in theme.json for the WP editor) ---- */
:root{
  --ink:#1C2326; --teal:#0B3B45; --signal:#16B8A6; --paper:#F5F7F7; --white:#FFFFFF;
  --line:rgba(28,35,38,0.10); --line-strong:rgba(28,35,38,0.18);
  --muted:#5C6A6E; --signal-deep:#0E8A7E;
  --r:10px; --rs:6px;
  --display:'Space Grotesk',sans-serif; --body:'Inter',sans-serif; --mono:'JetBrains Mono',monospace;
}

/* ---- Base ---- */
*{margin:0;padding:0;box-sizing:border-box}
html{scroll-behavior:smooth}
body{font-family:var(--body);background:var(--paper);color:var(--ink);line-height:1.6;-webkit-font-smoothing:antialiased}
a{color:inherit;text-decoration:none}
img{max-width:100%;height:auto}
h1,h2,h3{font-family:var(--display);font-weight:500;letter-spacing:-0.02em;line-height:1.1}
.wrap{max-width:1180px;margin:0 auto;padding:0 24px}
.mono{font-family:var(--mono);font-size:11px;letter-spacing:0.04em;text-transform:uppercase}
.visually-hidden{position:absolute!important;width:1px;height:1px;overflow:hidden;clip:rect(0 0 0 0);white-space:nowrap}

/* ---- Utility bar ---- */
.util{background:var(--teal);color:#cfe9e4;font-size:12px}
.util .wrap{display:flex;justify-content:space-between;align-items:center;min-height:34px;gap:16px;flex-wrap:wrap;padding-top:5px;padding-bottom:5px}
.util strong{color:#fff;font-weight:500}
.util .dot{width:5px;height:5px;border-radius:50%;background:var(--signal);display:inline-block;margin:0 9px;vertical-align:middle;position:relative;top:-1px}

/* ---- Header ---- */
/* The header sits in a template-part wrapper div; display:contents lets the
   sticky header use the page root as its containing block so it stays pinned
   for the whole scroll (otherwise it un-sticks past the short wrapper). */
.cp-header-part{display:contents}
.site-header{position:sticky;top:0;z-index:40;background:rgba(245,247,247,0.9);backdrop-filter:blur(10px);-webkit-backdrop-filter:blur(10px);border-bottom:1px solid var(--line);transition:box-shadow .2s ease,background .2s ease}
/* Once scrolled, solid background + subtle shadow keeps it legible over content. */
.site-header.is-stuck{background:var(--paper);box-shadow:0 8px 28px -18px rgba(11,59,69,.55)}
.site-header .wrap{display:flex;align-items:center;min-height:68px;gap:28px}
.logo{display:flex;align-items:center;gap:10px;font-family:var(--display);font-weight:500;font-size:21px;letter-spacing:-0.03em;color:var(--teal)}
.logo .node{width:14px;height:14px;background:var(--signal);border-radius:4px;transform:rotate(45deg);position:relative;flex:none}
.logo .node::after{content:"";position:absolute;inset:4px;background:var(--paper);border-radius:1px}
/* Image logo (header, mobile menu, footer). flex:none + max-width:none keep it
   from collapsing inside the flex .logo container (vs the global img reset). */
.logo img{height:34px;width:auto;max-width:none;flex:none;display:block}
/* footer logo is a white + teal-dot asset (footer-logo-white.png) — no filter needed */
nav.main{display:flex;gap:22px;margin-left:8px;flex:1}
nav.main a{font-size:14px;color:var(--ink);padding:6px 0;border-bottom:2px solid transparent;transition:.18s;white-space:nowrap}
nav.main a:hover,nav.main a:focus-visible{color:var(--signal-deep);border-color:var(--signal)}
.hbtns{display:flex;align-items:center;gap:14px;margin-left:auto}
.icbtn{width:38px;height:38px;border:1px solid var(--line-strong);border-radius:var(--rs);display:grid;place-items:center;background:var(--white);cursor:pointer;transition:.18s;color:var(--ink)}
.icbtn:hover,.icbtn:focus-visible{border-color:var(--signal);color:var(--signal-deep)}
.cart-btn{position:relative;overflow:visible}
.cartcount{position:absolute;top:-6px;right:-6px;background:var(--signal);color:var(--teal);font-family:var(--mono);font-size:10px;font-weight:500;line-height:16px;height:16px;min-width:16px;border-radius:20px;padding:0 4px;text-align:center;box-shadow:0 0 0 2px var(--paper)}

/* ---- Hero ---- */
.hero{position:relative;overflow:hidden;border-bottom:1px solid var(--line)}
.hero .wrap{display:grid;grid-template-columns:1.1fr 0.9fr;gap:40px;align-items:center;padding:74px 24px 84px}
.hero h1{font-size:54px;color:var(--teal)}
.hero h1 em{font-style:normal;color:var(--signal-deep)}
.hero p.lead{font-size:18px;color:var(--muted);margin:22px 0 30px;max-width:480px}
.cta-row{display:flex;gap:14px;flex-wrap:wrap}
.hero-props{display:flex;gap:24px;margin-top:34px;flex-wrap:wrap}
.hero-props div{display:flex;align-items:center;gap:8px;font-size:13px;color:var(--ink)}
.hero-props svg{color:var(--signal-deep);flex:none}
.hero-art{position:relative;height:420px}
.hero-art svg{width:100%;height:100%}
.hero-art img{width:100%;height:100%;object-fit:cover;border-radius:var(--rl);border:1px solid var(--line);display:block}

/* ---- Buttons ---- */
.btn{font-family:var(--display);font-weight:500;font-size:15px;padding:13px 24px;border-radius:var(--rs);cursor:pointer;border:1px solid transparent;transition:.18s;display:inline-flex;align-items:center;gap:9px;text-align:center}
.btn-primary{background:var(--teal);color:#fff}
.btn-primary:hover,.btn-primary:focus-visible{background:#0a2e36}
.btn-ghost{background:transparent;color:var(--teal);border-color:var(--line-strong)}
.btn-ghost:hover,.btn-ghost:focus-visible{border-color:var(--signal);color:var(--signal-deep)}
.btn-signal{background:var(--signal);color:var(--teal)}
.btn-signal:hover,.btn-signal:focus-visible{background:var(--signal-deep);color:#fff}

/* ---- Trust strip ---- */
.trust{background:var(--white);border-bottom:1px solid var(--line)}
.trust .wrap{display:grid;grid-template-columns:repeat(4,1fr);gap:0}
.trust .item{padding:24px 22px;border-left:1px solid var(--line);display:flex;gap:13px;align-items:flex-start}
.trust .item:first-child{border-left:none;padding-left:0}
.trust .item svg{color:var(--signal-deep);flex:none;margin-top:2px}
.trust .item h3{font-size:14px;font-family:var(--display);margin-bottom:2px}
.trust .item p{font-size:12.5px;color:var(--muted);line-height:1.45}

/* ---- Sections ---- */
section.block{padding:72px 0}
.sec-head{display:flex;justify-content:space-between;align-items:flex-end;margin-bottom:34px;gap:20px;flex-wrap:wrap}
.sec-head .mono{color:var(--signal-deep);margin-bottom:10px;display:block}
.sec-head h2{font-size:32px;color:var(--teal)}
.sec-head p{color:var(--muted);font-size:15px;max-width:420px;margin-top:8px}
.link-arrow{font-family:var(--display);font-weight:500;font-size:14px;color:var(--signal-deep);display:inline-flex;gap:6px;align-items:center}

/* ---- Category grid ---- */
.cats{display:grid;grid-template-columns:repeat(4,1fr);gap:14px}
.cat{background:var(--white);border:1px solid var(--line);border-radius:var(--r);padding:20px;transition:.2s;cursor:pointer;position:relative;overflow:hidden;display:block}
.cat:hover{border-color:var(--signal);transform:translateY(-3px)}
.cat .mono{color:var(--muted)}
.cat h3{font-size:17px;margin:10px 0 4px;font-family:var(--display)}
.cat span{font-size:12.5px;color:var(--muted)}
.cat .chev{position:absolute;right:16px;top:18px;color:var(--line-strong);transition:.2s}
.cat:hover .chev{color:var(--signal);transform:translateX(3px)}

/* ---- Product cards ---- */
.prods{display:grid;grid-template-columns:repeat(4,1fr);gap:16px}
.card{background:var(--white);border:1px solid var(--line);border-radius:var(--r);overflow:hidden;transition:.2s;display:flex;flex-direction:column}
.card:hover{border-color:var(--line-strong);transform:translateY(-3px);box-shadow:0 10px 30px -18px rgba(11,59,69,0.5)}
.card .ph{background:linear-gradient(160deg,#eef3f3,#e3ecec);aspect-ratio:16/9;display:grid;place-items:center;position:relative;border-bottom:1px solid var(--line)}
.card .ruo{position:absolute;top:10px;left:10px;background:rgba(11,59,69,0.06);color:var(--teal);font-family:var(--mono);font-size:9px;letter-spacing:0.05em;padding:4px 7px;border-radius:4px;text-transform:uppercase}
.card .coa{position:absolute;top:10px;right:10px;background:var(--signal);color:var(--teal);font-family:var(--mono);font-size:9px;letter-spacing:0.05em;padding:4px 7px;border-radius:4px;display:flex;align-items:center;gap:4px}
.card .body{padding:15px 16px 17px;display:flex;flex-direction:column;flex:1}
.card .body .mono{color:var(--muted)}
.card h3{font-size:16px;font-family:var(--display);margin:7px 0 3px}
.card .sizes{display:flex;gap:5px;margin:9px 0 13px;flex-wrap:wrap}
.card .sizes span{font-family:var(--mono);font-size:10px;border:1px solid var(--line-strong);border-radius:4px;padding:3px 7px;color:var(--muted)}
.card .foot{display:flex;justify-content:space-between;align-items:center;margin-top:auto}
.card .price{font-family:var(--display);font-weight:500;font-size:19px;color:var(--teal)}
.card .price .from{font-size:11px;color:var(--muted);font-family:var(--body)}
.card .add{width:36px;height:36px;border-radius:var(--rs);background:var(--teal);color:#fff;border:none;display:grid;place-items:center;cursor:pointer;transition:.18s}
.card .add:hover,.card .add:focus-visible{background:var(--signal-deep)}

/* ---- Quality / COA band ---- */
.quality{background:var(--teal);color:#dbeeea}
.quality .wrap{display:grid;grid-template-columns:1fr 1fr;gap:48px;align-items:center}
.quality h2{color:#fff;font-size:30px;margin-bottom:16px}
.quality p{font-size:15px;color:#a9ccc6;margin-bottom:24px;max-width:440px}
.qa-stats{display:flex;gap:36px;flex-wrap:wrap}
.qa-stats .n{font-family:var(--display);font-weight:500;font-size:34px;color:var(--signal)}
.qa-stats .l{font-size:12.5px;color:#a9ccc6;margin-top:2px}
.coa-card{background:rgba(255,255,255,0.05);border:1px solid rgba(255,255,255,0.14);border-radius:var(--r);padding:22px}
.coa-card .row{display:flex;justify-content:space-between;padding:11px 0;border-bottom:1px solid rgba(255,255,255,0.1);font-size:13.5px}
.coa-card .row:last-child{border:none}
.coa-card .row span:first-child{color:#a9ccc6}
.coa-card .row .v{font-family:var(--mono);color:#fff}
.coa-card .pass{color:var(--signal)}

/* ---- FAQ ---- */
.faq-list{max-width:760px;margin:0 auto}
#faq .sec-head{display:block;text-align:center}
.faq{background:var(--white);border:1px solid var(--line);border-radius:var(--r);margin-bottom:10px;overflow:hidden}
.faq summary{padding:18px 20px;font-family:var(--display);font-weight:500;font-size:16px;cursor:pointer;list-style:none;display:flex;justify-content:space-between;align-items:center;color:var(--teal)}
.faq summary::-webkit-details-marker{display:none}
.faq summary .plus{color:var(--signal-deep);transition:.2s;font-size:20px;line-height:1}
.faq[open] summary .plus{transform:rotate(45deg)}
.faq .ans{padding:0 20px 18px;color:var(--muted);font-size:14.5px}

/* ---- Newsletter ---- */
.news{background:var(--white);border-top:1px solid var(--line);border-bottom:1px solid var(--line)}
.news .wrap{padding:56px 24px;text-align:center}
.news h2{font-size:26px;color:var(--teal);margin-bottom:8px}
.news p{color:var(--muted);margin-bottom:22px}
.news form{display:flex;gap:10px;max-width:440px;margin:0 auto}
.news input{flex:1;padding:13px 16px;border:1px solid var(--line-strong);border-radius:var(--rs);font-family:var(--body);font-size:14px;background:var(--paper)}
.news input:focus{outline:none;border-color:var(--signal)}

/* ---- Footer ---- */
.site-footer{background:var(--teal);color:#a9ccc6;padding:56px 0 26px}
.site-footer .cols{display:grid;grid-template-columns:1.4fr 1fr 1fr 1fr;gap:32px;padding-bottom:36px;border-bottom:1px solid rgba(255,255,255,0.12)}
.site-footer .logo{color:#fff;margin-bottom:14px}
.site-footer .blurb{font-size:13px;line-height:1.6;max-width:280px}
.site-footer h4{color:#fff;font-family:var(--display);font-weight:500;font-size:13px;letter-spacing:0.04em;text-transform:uppercase;margin-bottom:14px}
.site-footer ul{list-style:none}
.site-footer ul li{margin-bottom:9px}
.site-footer ul a{font-size:13.5px;transition:.15s}
.site-footer ul a:hover,.site-footer ul a:focus-visible{color:var(--signal)}
.footer-legal{padding-top:24px;display:flex;flex-direction:column;gap:14px;font-size:12px;color:#7fa9a3}
.footer-legal .ruo{max-width:820px;line-height:1.6}
.footer-cards{display:flex;gap:8px;flex-wrap:wrap}
.footer-cards .pay{border:1px solid rgba(255,255,255,0.18);border-radius:4px;display:block}
.footer-copy{color:#6f968f;margin-top:2px}

/* ---- Age gate ---- */
.gate{position:fixed;inset:0;z-index:90;background:rgba(11,59,69,0.55);backdrop-filter:blur(6px);-webkit-backdrop-filter:blur(6px);display:grid;place-items:center;padding:20px}
.gate[hidden]{display:none}
.gate-box{background:var(--white);border-radius:14px;max-width:420px;padding:34px;text-align:center}
.gate-box .node{width:18px;height:18px;background:var(--signal);border-radius:5px;transform:rotate(45deg);margin:0 auto 18px}
.gate-box h2{font-size:22px;color:var(--teal);margin-bottom:10px}
.gate-box p{font-size:14px;color:var(--muted);margin-bottom:22px}
.gate-box .btn{width:100%;justify-content:center;margin-bottom:10px}
.gate-box small{font-size:11.5px;color:var(--muted)}

/* ---- Reveal-on-scroll ---- */
.reveal{opacity:0;transform:translateY(16px);transition:.6s cubic-bezier(.2,.7,.2,1)}
.reveal.in{opacity:1;transform:none}
@media (prefers-reduced-motion: reduce){
  .reveal{opacity:1;transform:none;transition:none}
  html{scroll-behavior:auto}
}
/* Site Editor: the reveal-on-scroll animation needs front-end JS that the editor
   doesn't run, which would leave sections invisible on the canvas. Force them
   visible inside the editor only — the live site keeps the animation. */
.editor-styles-wrapper .reveal{opacity:1 !important;transform:none !important}

/* ==========================================================================
   Native-block (Site Editor) compatibility
   Lets each homepage section be built from core WP blocks (click-to-edit)
   while keeping the exact prototype look. Core blocks add wrapper classes
   like .wp-block-group / .wp-block-buttons — we neutralize and re-skin them.
   ========================================================================== */

/* Core group/columns wrappers should be transparent layout boxes — our own
   section classes (.hero/.trust/.wrap/etc.) do all the work. */
.wp-block-group{min-width:0}
.wp-block-columns{margin-bottom:0}
.hero .wp-block-group,
.trust .wp-block-group,
.cats .wp-block-group,
.quality .wp-block-group{background:transparent}

/* Headings rendered by the block editor carry .wp-block-heading. */
.hero h1.wp-block-heading{font-size:54px;color:var(--teal);margin:0}
.hero .mono{color:var(--signal-deep);display:block}

/* Eyebrow / mono paragraphs shouldn't inherit body paragraph spacing. */
section.block p,.hero p,.quality p{margin-top:0}

/* Buttons: core renders .wp-block-button > a.wp-block-button__link. Re-skin to
   match .btn. Use helper classes cp-primary / cp-ghost / cp-signal on the button. */
.hero .wp-block-button__link,
.quality .wp-block-button__link{
  font-family:var(--display);font-weight:500;font-size:15px;line-height:1.2;
  padding:13px 24px;border-radius:var(--rs);border:1px solid transparent;transition:.18s;
}
.wp-block-button.cp-primary>.wp-block-button__link{background:var(--teal);color:#fff}
.wp-block-button.cp-primary>.wp-block-button__link:hover{background:#0a2e36}
.wp-block-button.cp-ghost>.wp-block-button__link{background:transparent;color:var(--teal);border:1px solid var(--line-strong)}
.wp-block-button.cp-ghost>.wp-block-button__link:hover{border-color:var(--signal);color:var(--signal-deep)}
.wp-block-button.cp-signal>.wp-block-button__link{background:var(--signal);color:var(--teal)}
.wp-block-button.cp-signal>.wp-block-button__link:hover{background:var(--signal-deep);color:#fff}
.wp-block-button.cp-arrow>.wp-block-button__link::after{content:"→";margin-left:9px}
/* Our flex row controls the gap, not core's default. */
.cta-row.wp-block-buttons{display:flex;gap:14px;flex-wrap:wrap}

/* Trust items: svg (html) + editable heading/paragraph group sit in a flex row. */
.trust .item>.wp-block-group{display:block}
.trust .item :is(h3,p){margin:0}
.trust .item h3{margin-bottom:2px}

/* Quality band native copy. */
.quality .mono{color:var(--signal)}
.quality h2.wp-block-heading{color:#fff;font-size:30px;margin:12px 0 16px}
.quality .reveal>p{color:#a9ccc6;margin-bottom:24px}

/* Category cards as native groups (editable text). */
.cat h3.wp-block-heading{font-size:17px;margin:10px 0 4px}
.cat p.cat-count{margin:0}
.cat p.cat-desc{font-size:12.5px;color:var(--muted);margin:0}

/* FAQ via the core Details block: <details class="wp-block-details faq">. */
.faq.wp-block-details{background:var(--white);border:1px solid var(--line);border-radius:var(--r);margin-bottom:10px;padding:0;overflow:hidden}
.faq.wp-block-details summary{padding:18px 20px;font-family:var(--display);font-weight:500;font-size:16px;cursor:pointer;display:flex;justify-content:space-between;align-items:center;color:var(--teal);list-style:none}
.faq.wp-block-details summary::-webkit-details-marker{display:none}
.faq.wp-block-details summary::marker{content:""}
.faq.wp-block-details summary::after{content:"+";color:var(--signal-deep);font-size:20px;line-height:1;margin-left:16px;transition:.2s}
.faq.wp-block-details[open] summary::after{transform:rotate(45deg)}
.faq.wp-block-details>:not(summary){padding:0 20px 18px;color:var(--muted);font-size:14.5px;margin:0}

/* Newsletter native heading/paragraph keep their centered styling. */
.news .wp-block-group{background:transparent}

/* ==========================================================================
   Single product (PDP) + WooCommerce loop cards
   ========================================================================== */
.pdp{padding:12px 0 84px}
.pdp .wrap{max-width:1180px}
.pdp-crumb{display:flex;align-items:center;gap:8px;color:var(--muted);margin-bottom:24px;flex-wrap:wrap}
.pdp-crumb a{color:var(--signal-deep)}
.pdp-crumb a:hover{color:var(--teal)}

.pdp-grid{display:grid;grid-template-columns:1fr 1fr;gap:48px;align-items:start}
.pdp-media{position:relative;background:linear-gradient(160deg,#eef3f3,#e3ecec);border:1px solid var(--line);border-radius:var(--r);aspect-ratio:16/9;display:grid;place-items:center;overflow:hidden}
.pdp-media .ruo{position:absolute;top:14px;left:14px;background:rgba(11,59,69,0.06);color:var(--teal);font-family:var(--mono);font-size:10px;letter-spacing:0.05em;padding:5px 9px;border-radius:5px;text-transform:uppercase}
.pdp-media .coa{position:absolute;top:14px;right:14px;background:var(--signal);color:var(--teal);font-family:var(--mono);font-size:10px;letter-spacing:0.05em;padding:5px 9px;border-radius:5px}
.pdp-media .pdp-vial{transform:scale(2.6)}
.pdp-media .pdp-img{width:100%;height:100%;object-fit:cover;display:block}

.pdp-cat{color:var(--signal-deep)}
.pdp-title{font-size:34px;color:var(--teal);margin:8px 0 12px;font-family:var(--display);line-height:1.08}
.pdp-spec-inline{display:flex;gap:18px;flex-wrap:wrap;color:var(--muted);margin-bottom:18px}
.pdp-spec-inline b{color:var(--ink)}
.pdp-price{font-family:var(--display);font-weight:500;font-size:26px;color:var(--teal);margin-bottom:18px}
.pdp-price .price{font-size:26px;color:var(--teal)}
.pdp-price del{color:var(--muted);font-weight:400;font-size:19px;margin-right:8px}
.pdp-price ins{text-decoration:none}

/* WooCommerce add-to-cart + variations, re-skinned */
.pdp-cart{margin-bottom:24px}
.pdp .variations{width:100%;border-collapse:collapse;margin:0 0 16px}
.pdp .variations th.label{text-align:left;font-family:var(--mono);font-size:11px;text-transform:uppercase;letter-spacing:.04em;color:var(--muted);padding:6px 14px 6px 0;vertical-align:middle;white-space:nowrap}
.pdp .variations td.value{padding:6px 0}
.pdp .variations select{padding:11px 14px;border:1px solid var(--line-strong);border-radius:var(--rs);font-family:var(--body);font-size:14px;background:var(--white);min-width:170px;color:var(--ink)}
.pdp .reset_variations{font-size:12px;margin-left:12px;color:var(--muted)}
.pdp .single_variation .price{display:block;font-family:var(--display);font-weight:500;font-size:22px;color:var(--teal);margin-bottom:12px}
.pdp form.cart:not(.variations_form),.pdp .woocommerce-variation-add-to-cart{display:flex;gap:12px;align-items:center;flex-wrap:wrap;margin:0}
.pdp .single_variation_wrap,.pdp .single_variation{width:100%}
/* Quantity stepper — − [number] + (buttons rendered server-side via hooks) */
.pdp .quantity{display:inline-flex !important;align-items:center;width:auto !important;border:1px solid var(--line-strong);border-radius:var(--rs);overflow:hidden;height:50px;background:var(--white);vertical-align:middle}
.cp-qty-btn{width:42px;height:50px;flex:none;padding:0;border:none;background:transparent;color:var(--teal);font-size:20px;line-height:1;cursor:pointer;display:grid;place-items:center;transition:.15s;font-family:var(--body)}
.cp-qty-btn:hover{background:var(--paper);color:var(--signal-deep)}
.pdp .quantity .qty{width:50px;height:48px;flex:none;padding:0;border:none;border-left:1px solid var(--line);border-right:1px solid var(--line);border-radius:0;text-align:center;font-family:var(--body);font-size:15px;color:var(--ink);background:transparent;box-shadow:none;appearance:textfield;-moz-appearance:textfield}
.pdp .quantity .qty::-webkit-outer-spin-button,.pdp .quantity .qty::-webkit-inner-spin-button{-webkit-appearance:none;margin:0}
.pdp .single_add_to_cart_button{font-family:var(--display);font-weight:500;font-size:15px;height:50px;padding:0 28px;display:inline-flex;align-items:center;border-radius:var(--rs);background:var(--teal);color:#fff;border:1px solid transparent;cursor:pointer;transition:.18s}
.pdp .single_add_to_cart_button:hover{background:#0a2e36}
.pdp .single_add_to_cart_button.disabled{opacity:.5;cursor:not-allowed}
.pdp .single_add_to_cart_button.loading{opacity:.75;pointer-events:none}
.pdp .single_add_to_cart_button.added{background:var(--signal-deep)}
/* Mobile: keep the stepper fixed, let Add to cart fill the rest of the content column */
@media(max-width:768px){
  .pdp form.cart,.pdp .woocommerce-variation-add-to-cart{width:100%;flex-wrap:nowrap}
  .pdp .quantity{flex:0 0 auto}
  .pdp .single_add_to_cart_button{flex:1 1 auto;width:auto;padding:0 16px;justify-content:center}
}

.pdp-coa{margin:6px 0 0;background:linear-gradient(157deg,#0d4554,#0a313b 70%);border:1px solid rgba(255,255,255,.14);box-shadow:0 24px 50px -30px rgba(11,59,69,.5)}
.pdp-coa-link{display:inline-flex;align-items:center;gap:6px;margin:14px 0 18px;font-family:var(--display);font-weight:500;font-size:13px;color:var(--signal-deep)}
.pdp-coa-link:hover{color:var(--teal)}
.pdp-coa-link svg{width:14px;height:14px}

/* WooCommerce breadcrumb — align to the content grid, more space above, tight below */
.woocommerce-breadcrumb{max-width:1180px;margin:0 auto !important;padding:38px 24px 0 !important;font-family:var(--mono);font-size:11px;letter-spacing:.03em;text-transform:uppercase;color:var(--muted)}
.woocommerce-breadcrumb a{color:var(--signal-deep)}
.woocommerce-breadcrumb a:hover{color:var(--teal)}
.coa-card-head{display:flex;justify-content:space-between;align-items:center;margin-bottom:8px}
.pdp-coa-btn{width:100%;justify-content:center;margin-top:14px}
.pdp-ruo{font-size:11.5px;line-height:1.6;color:var(--muted);border-top:1px solid var(--line);padding-top:16px;margin-top:4px}

.pdp-detail{display:grid;grid-template-columns:1fr 1fr;gap:48px;margin-top:52px;padding-top:40px;border-top:1px solid var(--line)}
.pdp-detail .mono{display:block;margin-bottom:14px}
.spec-table{width:100%;border-collapse:collapse;font-size:14px}
.spec-table th{text-align:left;font-weight:500;color:var(--muted);font-family:var(--mono);font-size:11px;text-transform:uppercase;letter-spacing:.04em;padding:12px 0;border-bottom:1px solid var(--line);width:42%;vertical-align:top}
.spec-table td{padding:12px 0;border-bottom:1px solid var(--line);color:var(--ink);vertical-align:top}
.pdp-desc{font-size:14.5px;color:var(--ink);line-height:1.7}
.pdp-desc p{margin-bottom:12px}
.draft{background:rgba(22,184,166,.06);border-left:3px solid var(--signal);border-radius:6px;padding:14px 16px;font-size:14px;color:var(--muted)}
.draft-tag{font-family:var(--mono);font-size:10px;letter-spacing:.06em;color:var(--signal-deep);font-weight:600;margin-right:8px;text-transform:uppercase}

/* Related products + any product loop */
.related.products,.products.related{padding:52px 0 8px;margin-top:48px;border-top:1px solid var(--line)}
.related.products > h2{font-family:var(--display);font-weight:500;font-size:24px;color:var(--teal);margin-bottom:24px;letter-spacing:-0.02em}
ul.products{display:grid !important;grid-template-columns:repeat(4,1fr);gap:16px;list-style:none;margin:0;padding:0}
ul.products::before,ul.products::after,.woocommerce ul.products::before,.woocommerce ul.products::after{content:none !important;display:none !important}
ul.products li.product,ul.products li.card{margin:0 !important;padding:0;width:auto !important;max-width:none !important;min-width:0;float:none !important;clear:none !important}
.card-media.ph{display:grid}
.card-media .card-img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover}
.card-titlelink{display:block}
.card-titlelink h3{color:var(--teal)}
.card .foot .button,.card .foot .added_to_cart{width:36px;height:36px;min-width:36px;padding:0;margin:0;border-radius:var(--rs);background:var(--teal);border:none;position:relative;font-size:0;line-height:36px;display:inline-flex !important;align-items:center;justify-content:center;cursor:pointer;transition:.18s;color:transparent;overflow:hidden}
.card .foot .button::after{content:"+";display:flex;align-items:center;justify-content:center;color:#fff;font-size:20px;line-height:1;font-family:var(--body)}
.card .foot .button:hover{background:var(--signal-deep)}
.card .foot .added_to_cart::after{content:"\2713";color:#fff;font-size:14px}

/* WooCommerce notices, lightly branded */
.woocommerce-message,.woocommerce-info,.woocommerce-error{list-style:none;font-size:14px;padding:12px 16px;border-radius:var(--rs);margin:0 0 16px;border:1px solid var(--line)}
.woocommerce-message{background:rgba(22,184,166,.08);border-color:rgba(22,184,166,.35);color:var(--teal)}
.woocommerce-info{background:var(--white)}
.woocommerce-error{background:#fdeceb;border-color:#f3c2bd;color:#8a2b22}

/* ---- Shop / catalog archive ---- */
.woocommerce-products-header{margin:0;padding:0}
.shop-head-wrap{padding-top:18px;padding-bottom:0}
.shop-wrap{padding:6px 24px 84px}
.shop-empty-wrap{padding:0 24px}
.shop-head{margin-bottom:22px}
.shop-head .mono{color:var(--signal-deep);display:block;margin-bottom:8px}
.shop-title{font-family:var(--display);font-weight:500;font-size:32px;color:var(--teal);letter-spacing:-.02em}
.shop-desc{color:var(--muted);font-size:15px;margin-top:10px;max-width:640px}
.shop-filter{display:flex;gap:8px;flex-wrap:wrap;margin-bottom:24px;padding-bottom:24px;border-bottom:1px solid var(--line)}
.shop-filter .chip{font-family:var(--display);font-weight:500;font-size:13px;padding:8px 15px;border:1px solid var(--line-strong);border-radius:30px;color:var(--ink);transition:.15s;white-space:nowrap}
.shop-filter .chip:hover{border-color:var(--signal);color:var(--signal-deep)}
.shop-filter .chip.active{background:var(--teal);color:#fff;border-color:var(--teal)}
.woocommerce-result-count{float:left;color:var(--muted);font-size:12px;margin:7px 0 18px;font-family:var(--mono);letter-spacing:.03em;text-transform:uppercase}
.woocommerce-ordering{float:right;margin:0 0 18px}
.woocommerce-ordering select{padding:10px 14px;border:1px solid var(--line-strong);border-radius:var(--rs);font-family:var(--body);font-size:13px;background:var(--white);color:var(--ink)}
ul.products{clear:both}
.woocommerce-pagination{margin-top:36px;clear:both}
.woocommerce-pagination ul{display:flex;gap:6px;list-style:none;padding:0;margin:0;justify-content:center}
.woocommerce-pagination ul li{margin:0}
.woocommerce-pagination a,.woocommerce-pagination span{display:grid;place-items:center;min-width:40px;height:40px;border:1px solid var(--line-strong);border-radius:var(--rs);color:var(--ink);font-family:var(--body);font-size:14px;background:var(--white)}
.woocommerce-pagination a:hover{border-color:var(--signal);color:var(--signal-deep)}
.woocommerce-pagination .current{background:var(--teal);color:#fff;border-color:var(--teal)}
.woocommerce-info.woocommerce-no-products-found,.woocommerce-no-products-found{clear:both;padding:32px 0;color:var(--muted)}
.shop-empty{clear:both;text-align:center;padding:90px 20px}
.shop-empty p{margin:0 auto;max-width:480px;font-size:16px;color:var(--muted)}
@media(max-width:600px){
  .shop-empty{padding:22px 16px 56px}
}

/* ---- Generic page ---- */
.page-main{padding:48px 0 84px}
.page-title{font-family:var(--display);font-weight:500;font-size:clamp(28px,4vw,38px);color:var(--teal);letter-spacing:-.02em;margin-bottom:24px}
.page-main :where(p,ul,ol){margin-bottom:14px;color:var(--ink)}
.page-main ul,.page-main ol{padding-left:20px}
.page-main h2{font-family:var(--display);font-weight:500;color:var(--teal);font-size:24px;margin:30px 0 12px}
.page-main h3{font-family:var(--display);font-weight:500;color:var(--teal);font-size:18px;margin:22px 0 8px}
.page-main a{color:var(--signal-deep)}
.page-main a:hover{color:var(--teal)}

/* ---- RUO reminder (cart/checkout) ---- */
.ruo-reminder{background:rgba(11,59,69,.05);border:1px solid var(--line);border-left:3px solid var(--signal);border-radius:var(--rs);padding:14px 16px;font-size:13.5px;color:var(--muted);margin-bottom:24px}
.ruo-reminder strong{color:var(--teal)}

/* ---- Buttons (cart/checkout/account) ---- */
.woocommerce a.button,.woocommerce button.button,.woocommerce input.button,.woocommerce #place_order,button.checkout-button{font-family:var(--display);font-weight:500;font-size:15px;padding:14px 26px;border-radius:var(--rs);background:var(--teal);color:#fff;border:1px solid transparent;cursor:pointer;transition:.18s;line-height:1.2;display:inline-block;text-align:center}
.woocommerce a.button:hover,.woocommerce button.button:hover,.woocommerce input.button:hover,.woocommerce #place_order:hover{background:#0a2e36;color:#fff}
.checkout-button,#place_order{width:100%}

/* ---- Cart ---- */
.woocommerce-cart-form table.cart{width:100%;border-collapse:collapse;margin-bottom:24px}
table.cart th{font-family:var(--mono);font-size:11px;text-transform:uppercase;letter-spacing:.04em;color:var(--muted);text-align:left;padding:12px 10px;border-bottom:1px solid var(--line)}
table.cart td{padding:16px 10px;border-bottom:1px solid var(--line);vertical-align:middle}
table.cart .product-thumbnail img{width:60px;height:60px;object-fit:cover;border-radius:var(--rs);border:1px solid var(--line)}
table.cart .product-name a{color:var(--teal);font-family:var(--display);font-weight:500}
table.cart .product-remove a{color:var(--muted);font-size:18px;text-decoration:none}
.cart_totals{max-width:420px;margin-left:auto}
.cart_totals h2{font-family:var(--display);font-weight:500;color:var(--teal);font-size:20px;margin-bottom:12px}
.cart_totals table{width:100%;border-collapse:collapse}
.cart_totals th,.cart_totals td{padding:12px 0;border-bottom:1px solid var(--line);text-align:left}
.cart_totals .order-total .amount{font-family:var(--display);font-weight:500;font-size:18px;color:var(--teal)}
.wc-proceed-to-checkout{margin-top:18px}

/* ---- Checkout ---- */
.woocommerce form .form-row{margin-bottom:14px}
.woocommerce form .form-row label{display:block;font-size:13px;color:var(--muted);margin-bottom:6px}
.woocommerce form .form-row input.input-text,.woocommerce form .form-row textarea,.woocommerce form .form-row select,.woocommerce-checkout .input-text,.select2-container .select2-selection{width:100%;padding:12px 14px;border:1px solid var(--line-strong);border-radius:var(--rs);font-family:var(--body);font-size:14px;background:var(--white);color:var(--ink)}
.woocommerce-checkout h3,.woocommerce-checkout #order_review_heading{font-family:var(--display);font-weight:500;color:var(--teal);font-size:20px;margin:0 0 14px}
#order_review{border:1px solid var(--line);border-radius:var(--r);padding:22px;background:var(--white)}
.woocommerce-checkout-review-order-table{width:100%;border-collapse:collapse;font-size:14px}
.woocommerce-checkout-review-order-table th,.woocommerce-checkout-review-order-table td{padding:12px 0;border-bottom:1px solid var(--line);text-align:left}
.woocommerce-checkout-review-order-table .order-total .amount{font-family:var(--display);font-weight:500;font-size:18px;color:var(--teal)}
.wc_payment_methods{list-style:none;margin:0 0 16px;padding:0}
.wc_payment_method label{display:inline;font-size:14px;color:var(--ink)}
.woocommerce-terms-and-conditions-wrapper{margin:16px 0;padding:14px;background:var(--paper);border:1px solid var(--line);border-radius:var(--rs)}
.woocommerce-terms-and-conditions-wrapper label{font-size:13.5px;color:var(--muted)}
.woocommerce-form__label-for-checkbox input{margin-right:8px}
@media(min-width:861px){
  .woocommerce-checkout .cp-checkout-grid{display:grid;grid-template-columns:1.1fr .9fr;gap:40px;align-items:start}
  .woocommerce-checkout #customer_details{margin-bottom:0}
  .woocommerce-checkout .cp-order-col #order_review_heading{margin-top:0}
}
/* No separate shipping address — stack billing, then order notes below it. */
.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}
.woocommerce-checkout #customer_details .col-2{margin-top:8px}
/* Content gutter so the checkout form doesn't run to the screen edges. */
.woocommerce-checkout .page-main{padding-left:24px;padding-right:24px}
@media(max-width:560px){
  .woocommerce-checkout .page-main{padding-left:15px;padding-right:15px}
}

/* ---- COA library + lot lookup (/coa) ---- */
.coa-page{max-width:900px}
/* The content (.coa-page) is centered at 900px by the constrained layout, so
   center the post-title to the same column (it otherwise spans the full width
   and starts left of the sections). Plus the site gutter (24px / 15px mobile)
   so nothing runs edge-to-edge — consistent with the other pages. */
.cp-coa-page .page-title{max-width:900px;margin-left:auto;margin-right:auto}
.cp-coa-page .page-main{padding-left:24px;padding-right:24px}
@media(max-width:560px){
  .cp-coa-page .page-main{padding-left:15px;padding-right:15px}
}
.coa-intro{font-size:16px;color:var(--muted);max-width:660px;margin-bottom:26px;line-height:1.6}
.coa-form{display:flex;gap:10px;margin-bottom:20px;flex-wrap:wrap}
.coa-form input{flex:1;min-width:240px;padding:14px 16px;border:1px solid var(--line-strong);border-radius:var(--rs);font-family:var(--mono);font-size:14px;background:var(--white);color:var(--ink);text-transform:uppercase;letter-spacing:.04em}
.coa-form input:focus{outline:none;border-color:var(--signal)}
.coa-form .btn{flex:none}
.coa-result{max-width:460px;margin-top:6px;background:linear-gradient(157deg,#0d4554,#0a313b 70%);border:1px solid rgba(255,255,255,.14);box-shadow:0 24px 50px -30px rgba(11,59,69,.5)}
.coa-empty{color:var(--muted);background:var(--paper);border:1px solid var(--line);border-radius:var(--rs);padding:16px 18px;font-size:14px;max-width:460px}
.coa-methods,.coa-library{margin-top:48px;padding-top:36px;border-top:1px solid var(--line)}
.coa-methods h2,.coa-library h2{font-family:var(--display);font-weight:500;color:var(--teal);font-size:24px;margin-bottom:20px;letter-spacing:-.02em}
.coa-methods-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:16px}
.coa-method{background:var(--white);border:1px solid var(--line);border-radius:var(--r);padding:20px}
.coa-method .mono{color:var(--signal-deep);display:block;margin-bottom:10px;font-size:12px}
.coa-method h3{font-family:var(--display);font-weight:500;color:var(--teal);font-size:15px;margin-bottom:8px;line-height:1.25}
.coa-method p{font-size:13.5px;color:var(--muted);line-height:1.55;margin:0}
.coa-table{width:100%;border-collapse:collapse;font-size:14px}
.coa-table th{font-family:var(--mono);font-size:11px;text-transform:uppercase;letter-spacing:.04em;color:var(--muted);text-align:left;padding:12px 10px;border-bottom:1px solid var(--line)}
.coa-table td{padding:14px 10px;border-bottom:1px solid var(--line)}
.coa-table td a{color:var(--signal-deep);font-family:var(--mono)}
.coa-table .coa-status{color:var(--signal-deep)}
.coa-note{margin-top:14px;font-size:13px;color:var(--muted)}
@media(max-width:700px){.coa-methods-grid{grid-template-columns:1fr}}

/* ---- Cart drawer (off-canvas) ---- */
.cp-cart-drawer{position:fixed;inset:0;z-index:95;visibility:hidden;opacity:0;transition:opacity .2s ease}
.cp-cart-drawer.open{visibility:visible;opacity:1}
.cp-cart-overlay{position:absolute;inset:0;border:none;padding:0;margin:0;background:rgba(11,59,69,.5);backdrop-filter:blur(2px);-webkit-backdrop-filter:blur(2px);cursor:pointer}
.cp-cart-panel{position:absolute;top:0;right:0;bottom:0;width:420px;max-width:94vw;background:var(--paper);box-shadow:-14px 0 54px -22px rgba(11,59,69,.6);display:flex;flex-direction:column;transform:translateX(100%);transition:transform .28s cubic-bezier(.2,.7,.2,1)}
.cp-cart-drawer.open .cp-cart-panel{transform:none}
.cp-cart-drawer.cp-busy .cp-cart-body{opacity:.55;pointer-events:none;transition:opacity .12s}
.cp-cart-head{display:flex;justify-content:space-between;align-items:center;padding:18px 22px;border-bottom:1px solid var(--line);background:var(--white)}
.cp-cart-title{font-family:var(--display);font-weight:500;font-size:18px;color:var(--teal)}
.cp-cart-count{color:var(--muted);font-size:14px;font-family:var(--body)}
.cp-cart-x{width:36px;height:36px;flex:none;border:1px solid var(--line-strong);border-radius:var(--rs);background:var(--white);display:grid;place-items:center;cursor:pointer;color:var(--ink);transition:.18s}
.cp-cart-x:hover{border-color:var(--signal);color:var(--signal-deep)}
.cp-cart-body{flex:1;min-height:0;overflow:hidden;display:flex;flex-direction:column}

/* empty */
.cp-cart-empty{flex:1;display:flex;flex-direction:column;align-items:center;justify-content:center;text-align:center;gap:16px;padding:40px 28px}
.cp-cart-empty svg{color:var(--line-strong)}
.cp-cart-empty p{color:var(--muted);font-size:15px}

/* lines — the only scrollable region; grows to fill, scrolls internally */
.cp-cart-lines{flex:1;min-height:0;overflow-y:auto;padding:4px 22px}
.cp-line{display:flex;gap:14px;padding:18px 0;border-bottom:1px solid var(--line)}
.cp-line-media{width:64px;height:64px;flex:none;background:linear-gradient(160deg,#eef3f3,#e3ecec);border:1px solid var(--line);border-radius:var(--rs);display:grid;place-items:center;overflow:hidden}
.cp-line-media img{width:100%;height:100%;object-fit:cover}
.cp-line-media .cp-vial{transform:scale(.8)}
.cp-line-info{flex:1;min-width:0;display:flex;flex-direction:column;gap:3px}
.cp-line-name{font-family:var(--display);font-weight:500;font-size:14px;color:var(--teal);line-height:1.25}
.cp-line-size{color:var(--muted)}
.cp-line-bottom{display:flex;justify-content:space-between;align-items:center;margin-top:9px;gap:10px}
.cp-qtybox{display:inline-flex;align-items:center;border:1px solid var(--line-strong);border-radius:var(--rs);height:34px;background:var(--white)}
.cp-qtybox button{width:30px;height:32px;border:none;background:transparent;color:var(--teal);cursor:pointer;font-size:16px;line-height:1;display:grid;place-items:center;font-family:var(--body)}
.cp-qtybox button:hover{color:var(--signal-deep)}
.cp-qtybox .cp-qty{min-width:30px;text-align:center;font-size:13px;color:var(--ink);border-left:1px solid var(--line);border-right:1px solid var(--line);align-self:stretch;display:grid;place-items:center}
.cp-line-price{font-family:var(--display);font-weight:500;color:var(--teal);font-size:14px;white-space:nowrap}
.cp-line-price del{color:var(--muted);font-weight:400;font-size:12px;margin-right:5px}
.cp-line-price ins{text-decoration:none}
.cp-line-remove{background:none;border:none;color:var(--muted);cursor:pointer;align-self:flex-start;padding:2px;line-height:0;transition:.15s}
.cp-line-remove:hover{color:#b3402f}

/* foot — pinned to the bottom of the panel, always visible */
.cp-cart-foot{flex:none;border-top:1px solid var(--line);padding:18px 22px 20px;background:var(--white)}
.cp-coupon{display:flex;gap:8px;margin-bottom:8px}
.cp-coupon input{flex:1;min-width:0;padding:11px 12px;border:1px solid var(--line-strong);border-radius:var(--rs);font-family:var(--body);font-size:13px;background:var(--paper)}
.cp-coupon input:focus{outline:none;border-color:var(--signal)}
.cp-coupon .btn{flex:none;padding:11px 16px;font-size:14px}
.cp-coupon-msg{font-size:12px;color:#b3402f;margin-bottom:8px;min-height:0}
.cp-coupon-msg:empty{display:none}
.cp-applied-coupon{display:flex;justify-content:space-between;align-items:center;background:rgba(22,184,166,.08);border:1px solid rgba(22,184,166,.3);border-radius:var(--rs);padding:8px 12px;margin-bottom:10px;font-size:12px;color:var(--teal)}
.cp-coupon-remove{background:none;border:none;color:var(--muted);font-size:18px;line-height:1;cursor:pointer}
.cp-coupon-remove:hover{color:var(--teal)}
.cp-cart-totals{margin:6px 0 14px}
.cp-total-row{display:flex;justify-content:space-between;padding:6px 0;font-size:14px;color:var(--ink)}
.cp-total-row.cp-discount{color:var(--signal-deep)}
.cp-total-row.cp-grand{font-family:var(--display);font-weight:500;font-size:18px;color:var(--teal);border-top:1px solid var(--line);padding-top:12px;margin-top:6px}
.cp-checkout{width:100%;justify-content:center}
.cp-cart-ruo{margin-top:12px;font-size:10px;color:var(--muted);text-align:center;letter-spacing:.03em}

/* Cart upsells — horizontal slider between the lines and the footer. */
.cp-up{flex:none;border-top:1px solid var(--line);padding:14px 22px 6px}
.cp-up-head{display:block;color:var(--signal-deep);margin-bottom:11px}
.cp-up-track{display:flex;gap:10px;overflow-x:auto;padding-bottom:10px;scroll-snap-type:x proximity;-webkit-overflow-scrolling:touch}
.cp-up-track::-webkit-scrollbar{height:5px}
.cp-up-track::-webkit-scrollbar-thumb{background:var(--line-strong);border-radius:3px}
.cp-up-card{flex:0 0 132px;scroll-snap-align:start;background:var(--white);border:1px solid var(--line);border-radius:var(--rs);overflow:hidden;display:flex;flex-direction:column}
.cp-up-media{display:block;aspect-ratio:16/9;background:linear-gradient(160deg,#eef3f3,#e3ecec);overflow:hidden}
.cp-up-media img{width:100%;height:100%;object-fit:cover;display:block}
.cp-up-media .cp-vial{transform:scale(.42)}
.cp-up-name{display:block;font-family:var(--display);font-weight:500;font-size:12px;color:var(--teal);line-height:1.25;padding:8px 9px 0;text-decoration:none;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.cp-up-foot{display:flex;align-items:center;justify-content:space-between;gap:6px;padding:6px 9px 9px;margin-top:auto}
.cp-up-price{font-family:var(--display);font-weight:500;font-size:12px;color:var(--teal);white-space:nowrap}
.cp-up-add{flex:none;width:26px;height:26px;border-radius:var(--rs);background:var(--teal);color:#fff;border:none;cursor:pointer;font-size:16px;line-height:1;display:grid;place-items:center;transition:.15s}
.cp-up-add:hover{background:var(--signal-deep)}

@media(max-width:560px){
  .cp-cart-panel{width:100vw;max-width:100vw}
}

/* ---- Account: login + registration ---- */
/* Login auth block fills the content grid; register stays a narrow centered card. */
.cp-auth{max-width:none}
.cp-auth-narrow{max-width:480px;margin-inline:auto}
/* Two equal-width columns; align-items:stretch makes the boxes equal height. */
.cp-auth-grid{display:grid;grid-template-columns:1fr 1fr;gap:22px;align-items:stretch}
.cp-auth-card{background:var(--white);border:1px solid var(--line);border-radius:var(--r);padding:30px 30px 26px}
.cp-auth-new{background:linear-gradient(168deg,#f3f8f7,#eaf2f1);border-color:var(--line-strong)}
.cp-auth-kicker{color:var(--signal-deep);display:block;margin-bottom:8px}
.cp-auth-h{font-family:var(--display);font-weight:500;font-size:23px;color:var(--teal);letter-spacing:-.01em;margin:0 0 6px}
.cp-auth-sub{color:var(--muted);font-size:14px;line-height:1.55;margin:0 0 18px}
.cp-auth-list{list-style:none;padding:0;margin:0 0 22px}
.cp-auth-list li{position:relative;padding-left:24px;margin-bottom:9px;color:var(--ink);font-size:14px}
.cp-auth-list li::before{content:"";position:absolute;left:0;top:6px;width:14px;height:8px;border-left:2px solid var(--signal);border-bottom:2px solid var(--signal);transform:rotate(-45deg)}
.cp-auth-submit{width:100%;justify-content:center;margin-top:4px}
.cp-auth-ruo{margin-top:14px;font-size:10px;color:var(--muted);text-align:center;letter-spacing:.03em}

/* shared auth form fields */
.cp-form{display:flex;flex-direction:column}
.cp-form label:not(.cp-check){font-family:var(--mono);font-size:11px;letter-spacing:.06em;text-transform:uppercase;color:var(--muted);margin:14px 0 6px}
.cp-form label:not(.cp-check):first-of-type{margin-top:0}
.cp-form .req{color:var(--signal-deep)}
.cp-form input[type=text],.cp-form input[type=email],.cp-form input[type=password]{padding:12px 14px;border:1px solid var(--line-strong);border-radius:var(--rs);font-family:var(--body);font-size:15px;background:var(--paper);color:var(--ink);width:100%}
.cp-form input:focus{outline:none;border-color:var(--signal);box-shadow:0 0 0 3px rgba(22,184,166,.12)}
.cp-field-hint{font-size:12px;color:var(--muted);margin-top:6px}
.cp-form-split{display:flex;justify-content:space-between;align-items:center;gap:12px;margin:16px 0 6px;flex-wrap:wrap}
.cp-check{display:flex;align-items:flex-start;gap:9px;cursor:pointer;font-size:13px;color:var(--ink);line-height:1.5}
.cp-check input{margin-top:2px;flex:none;width:16px;height:16px;accent-color:var(--signal-deep)}
.cp-check-inline{align-items:center}
.cp-ruo-check{margin:18px 0 4px;background:var(--paper);border:1px solid var(--line);border-radius:var(--rs);padding:13px 14px}
.cp-lost{font-size:13px;color:var(--signal-deep)}
.cp-lost:hover{color:var(--teal)}
.cp-auth-errors{background:rgba(179,64,47,.06);border:1px solid rgba(179,64,47,.28);border-radius:var(--rs);padding:12px 14px;margin-bottom:18px}
.cp-auth-errors p{color:#a23725;font-size:13px;margin:0 0 4px}
.cp-auth-errors p:last-child{margin-bottom:0}
.cp-auth-single{text-align:center}
/* Register page: centered post-title (matches the centered card) + centered
   heading block inside the card (form fields stay left-aligned). */
.cp-register-page .page-title{text-align:center}
.cp-auth-narrow .cp-auth-kicker,
.cp-auth-narrow .cp-auth-h,
.cp-auth-narrow .cp-auth-sub{text-align:center}

/* Desktop: inset the login grid by the site gutter so its left/right edges
   match the other pages' .wrap content (the .woocommerce wrapper aligns to the
   .wrap outer edge; this 24px adds the same inner gutter). Only above the grid
   breakpoint — on mobile the single column relies on the page-main gutter. */
@media(min-width:721px){
  .woocommerce-account .cp-auth{padding-left:24px;padding-right:24px}
}

@media(max-width:720px){
  .cp-auth-grid{grid-template-columns:1fr}
}

/* ---- My Account: align to the site content grid ----
   The theme uses 0 root padding, so the constrained page content ran
   edge-to-edge on the account page (dashboard nav, login/register, details,
   orders). Give it the same gutter as .wrap (24px desktop, 15px mobile) so it
   lines up with the rest of the site. Desktop content stays centered at the
   1180px content size, so wide screens are visually unchanged. */
.woocommerce-account .page-main{padding-left:24px;padding-right:24px}
.woocommerce-account .page-main .woocommerce{max-width:1180px;margin-inline:auto}
@media(max-width:560px){
  .woocommerce-account .page-main{padding-left:15px;padding-right:15px}
  /* Stack nav above content with breathing room and keep tables in-gutter. */
  .woocommerce-account .woocommerce-MyAccount-navigation{margin-bottom:22px}
  .woocommerce-account .woocommerce-MyAccount-content{width:100%}
  /* Standalone /register/ page (not a woocommerce-account body) — same gutter,
     without double-padding the account page which already gets it above. */
  body:not(.woocommerce-account) .cp-auth{padding-left:15px;padding-right:15px}
}

/* =====================================================================
   About page
   ===================================================================== */
/* Shared image placeholder */
.img-ph{position:relative;background:linear-gradient(160deg,#eef3f3,#e3ecec);border:1px dashed var(--line-strong);border-radius:var(--r);min-height:300px;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:7px;text-align:center;padding:24px}
.img-ph-tag{font-family:var(--mono);font-size:11px;letter-spacing:.08em;color:var(--signal-deep);text-transform:uppercase}
.img-ph-note{font-size:12px;color:var(--muted)}
.img-ph svg{color:var(--line-strong)}

/* 1. Hero */
.about-hero{border-bottom:1px solid var(--line);background:var(--white)}
.about-hero .wrap{display:grid;grid-template-columns:1.05fr .95fr;gap:48px;align-items:center;padding-top:64px;padding-bottom:64px}
.about-hero h1{font-size:clamp(30px,4.4vw,44px);color:var(--teal);margin:14px 0 0}
.about-hero .lead{font-size:18px;color:var(--muted);margin:20px 0 0;max-width:520px;line-height:1.6}
.about-hero-media{aspect-ratio:5/4;border:1px solid var(--line);border-radius:var(--r);overflow:hidden;background:linear-gradient(160deg,#eef3f3,#e3ecec)}
.about-hero-media img{width:100%;height:100%;object-fit:cover;display:block}

/* 2 & 3. Split sections (image one side, copy the other) */
.about-split .wrap{display:grid;grid-template-columns:1fr 1fr;gap:52px;align-items:center}
.about-split-media{min-height:340px;align-self:stretch}
.about-split-media img{width:100%;height:100%;object-fit:cover;display:block;border:1px solid var(--line);border-radius:var(--r)}
.about-imgleft .about-split-media{order:-1}            /* image on the left */
.about-split-copy .mono{color:var(--signal-deep);display:block;margin-bottom:10px}
.about-split-copy h2{font-size:30px;color:var(--teal);margin:0 0 14px}
.about-split-copy p{color:var(--muted);font-size:15.5px;line-height:1.7;margin:0}
.about-shop{margin-top:24px}
.about-checks{list-style:none;padding:0;margin:22px 0 0;display:grid;gap:13px}
.about-checks li{display:flex;align-items:flex-start;gap:12px;color:var(--ink);font-size:15px;line-height:1.4}
.about-checks li svg{flex:none;color:var(--signal-deep);margin-top:1px}

/* 4. Process — 3-step row */
.about-process{background:var(--white);border-top:1px solid var(--line);border-bottom:1px solid var(--line)}
.about-process .about-head{text-align:center;margin-bottom:40px}
.about-process .about-head .mono{color:var(--signal-deep);display:block;margin-bottom:10px}
.about-process .about-head h2{font-size:30px;color:var(--teal)}
.about-steps{display:grid;grid-template-columns:repeat(3,1fr);gap:22px}
.about-step{position:relative;background:var(--paper);border:1px solid var(--line);border-radius:var(--r);padding:28px 24px}
.about-step-ic{width:48px;height:48px;border-radius:var(--rs);background:rgba(22,184,166,.1);color:var(--signal-deep);display:grid;place-items:center;margin-bottom:16px}
.about-step-n{position:absolute;top:22px;right:24px;font-family:var(--mono);font-size:12px;color:var(--line-strong)}
.about-step h3{font-size:18px;color:var(--teal);margin:0 0 7px}
.about-step p{font-size:14px;color:var(--muted);line-height:1.55;margin:0}
.about-step-arrow{display:none}

/* 5. Compliance — calm panel (not an error box) */
.about-compliance{background:linear-gradient(168deg,#f3f8f7,#eaf2f1);border:1px solid rgba(22,184,166,.28);border-radius:var(--r);padding:36px 38px;display:flex;gap:22px;align-items:flex-start}
.about-compliance-ic{width:46px;height:46px;flex:none;border-radius:var(--rs);background:var(--white);border:1px solid rgba(22,184,166,.3);color:var(--signal-deep);display:grid;place-items:center}
.about-compliance .mono{color:var(--signal-deep);display:block;margin-bottom:8px}
.about-compliance h2{font-size:24px;color:var(--teal);margin:0 0 10px}
.about-compliance p{color:var(--muted);font-size:15px;line-height:1.7;margin:0;max-width:760px}

/* 6. CTA band */
.about-cta{background:var(--teal);color:#dbeeea}
.about-cta .wrap{display:flex;justify-content:space-between;align-items:center;gap:32px;flex-wrap:wrap;padding-top:52px;padding-bottom:52px}
.about-cta .mono{color:var(--signal);display:block;margin-bottom:10px}
.about-cta h2{color:#fff;font-size:28px;margin:0 0 8px}
.about-cta p{color:#a9ccc6;font-size:15px;margin:0;max-width:480px}
.about-cta-actions{display:flex;align-items:center;gap:20px;flex-wrap:wrap}
.about-cta-actions .link-arrow{color:#bfe9e2}
.about-cta-actions .link-arrow:hover{color:#fff}

@media(max-width:840px){
  .about-hero .wrap{grid-template-columns:1fr;gap:28px;padding-top:44px;padding-bottom:44px}
  .about-split .wrap{grid-template-columns:1fr;gap:26px}
  .about-imgleft .about-split-media{order:0}            /* mobile: copy first */
  .about-hero-media,.about-split-media{min-height:230px}
  .about-steps{grid-template-columns:1fr;gap:14px}
  .about-compliance{flex-direction:column;gap:16px;padding:26px 22px}
  .about-cta .wrap{flex-direction:column;align-items:flex-start;gap:22px}
}

/* =====================================================================
   Policy / legal pages (Research-Use Policy, Terms, Privacy, …)
   Readable single column, generous line-height, numbered headings.
   ===================================================================== */
.policy-main{padding:46px 0 84px}
.policy-wrap{max-width:820px}
.policy-banner{display:flex;gap:13px;align-items:flex-start;background:#fdf6e4;border:1px solid #e6d28f;border-radius:var(--rs);padding:14px 18px;margin-bottom:32px}
.policy-banner svg{color:#b07d12;flex:none;margin-top:1px}
.policy-banner strong{display:block;font-family:var(--display);font-weight:600;font-size:14px;color:#7c5e15;letter-spacing:.01em}
.policy-banner span{display:block;color:#8a7330;font-size:13px;line-height:1.5;margin-top:3px}
.policy-head{margin-bottom:32px;padding-bottom:24px;border-bottom:1px solid var(--line)}
.policy-head .mono{color:var(--signal-deep);display:block;margin-bottom:10px}
.policy-title{font-size:clamp(28px,4vw,38px);color:var(--teal);margin:0}
.policy-updated{margin:14px 0 0;font-size:12.5px;color:var(--muted);font-family:var(--mono);letter-spacing:.02em}
.policy-main .ph{color:var(--signal-deep);font-weight:600}
.policy-section{margin-bottom:26px}
.policy-section h2{font-size:19px;color:var(--teal);margin:0 0 10px;display:flex;gap:10px;align-items:baseline}
.policy-num{color:var(--signal-deep);font-family:var(--mono);font-size:14px;flex:none}
.policy-section p{color:var(--ink);font-size:15.5px;line-height:1.85;margin:0}
.policy-section ul{list-style:none;padding:0;margin:8px 0 0;display:grid;gap:11px}
.policy-section li{position:relative;padding-left:20px;color:var(--ink);font-size:15.5px;line-height:1.7}
.policy-section li::before{content:"";position:absolute;left:2px;top:10px;width:6px;height:6px;border-radius:50%;background:var(--signal)}
.policy-section li b,.policy-section li strong{color:var(--teal);font-weight:600}
.policy-section a{color:var(--signal-deep)}
.policy-section a:hover{color:var(--teal)}
.policy-related{margin-top:40px;padding-top:26px;border-top:1px solid var(--line)}
.policy-related .mono{color:var(--signal-deep);display:block;margin-bottom:8px}
.policy-related p{color:var(--muted);font-size:14.5px;line-height:1.7;margin:0}
.policy-related a{color:var(--signal-deep)}
.policy-related a:hover{color:var(--teal)}
@media(max-width:560px){
  .policy-main{padding:34px 0 64px}
  .policy-section h2{font-size:18px}
}

/* =====================================================================
   Contact page
   ===================================================================== */
.contact-head-sec{padding-bottom:30px}
.contact-h1{font-size:clamp(28px,4vw,40px);color:var(--teal);margin:14px 0 0}
.contact-intro{font-size:17px;color:var(--muted);margin:16px 0 0;max-width:560px;line-height:1.6}
.contact-grid{display:grid;grid-template-columns:1.25fr .75fr;gap:34px;align-items:start}
.contact-card{background:var(--white);border:1px solid var(--line);border-radius:var(--r);padding:30px}

/* shared form fields (reuses .cp-form) + textarea + optional tag */
.cp-form textarea{padding:12px 14px;border:1px solid var(--line-strong);border-radius:var(--rs);font-family:var(--body);font-size:15px;background:var(--paper);color:var(--ink);width:100%;resize:vertical;min-height:132px;line-height:1.6}
.cp-form textarea:focus{outline:none;border-color:var(--signal);box-shadow:0 0 0 3px rgba(22,184,166,.12)}
.cp-form .opt{color:var(--muted);font-weight:400;text-transform:none;letter-spacing:0;font-family:var(--body);font-size:12px}
.contact-submit{margin-top:22px;width:100%;justify-content:center}
.contact-formnote{margin-top:12px;font-size:10px;color:var(--muted);letter-spacing:.03em;text-align:center}
.cp-hp{position:absolute !important;left:-9999px;width:1px;height:1px;overflow:hidden}

/* contact details (right) */
.contact-details-h{font-size:19px;color:var(--teal);margin:0 0 16px}
.contact-detail{display:flex;gap:13px;align-items:flex-start;padding:15px 0;border-top:1px solid var(--line)}
.contact-detail:first-of-type{border-top:none;padding-top:0}
.contact-detail-ic{width:38px;height:38px;flex:none;border-radius:var(--rs);background:rgba(22,184,166,.1);color:var(--signal-deep);display:grid;place-items:center}
.contact-detail-label{display:block;font-family:var(--mono);font-size:11px;letter-spacing:.05em;text-transform:uppercase;color:var(--muted);margin-bottom:4px}
.contact-detail-val{display:block;color:var(--ink);font-size:14px;line-height:1.5}

/* success state */
.contact-success{text-align:center;padding:20px 6px}
.contact-success-ic{width:56px;height:56px;border-radius:50%;background:rgba(22,184,166,.12);color:var(--signal-deep);display:inline-grid;place-items:center;margin-bottom:16px}
.contact-success h2{font-size:22px;color:var(--teal);margin:0 0 10px}
.contact-success p{color:var(--muted);font-size:15px;line-height:1.6;margin:0 auto 20px;max-width:430px}

/* support / FAQ strip */
.contact-faq{background:var(--white);border-top:1px solid var(--line);border-bottom:1px solid var(--line)}
.contact-faq .wrap{padding-top:24px;padding-bottom:24px}
.contact-faq-inner{display:flex;align-items:center;gap:16px;flex-wrap:wrap}
.contact-faq-inner svg{color:var(--signal-deep);flex:none}
.contact-faq-inner p{margin:0;color:var(--ink);font-size:15px;flex:1;min-width:240px}
.contact-faq-inner .link-arrow{flex:none}

/* calm research-use note (not an error box) */
.contact-ruo{color:var(--muted);font-size:13px;line-height:1.65;text-align:center;max-width:700px;margin:0 auto;padding:15px 20px;background:rgba(22,184,166,.05);border:1px solid var(--line);border-radius:var(--rs)}

@media(max-width:840px){
  .contact-grid{grid-template-columns:1fr;gap:20px}
  .contact-card{padding:24px}
  .contact-faq-inner{gap:10px}
}

/* ---- Post-add "View cart" link: hidden on mobile (drawer + badge suffice) ---- */
@media(max-width:768px){
  .woocommerce a.added_to_cart,
  .card .foot .added_to_cart{display:none !important}
}

/* ---- PDP sticky add-to-cart bar ---- */
.pdp-sticky{position:fixed;left:0;right:0;bottom:0;z-index:60;background:var(--white);border-top:1px solid var(--line-strong);box-shadow:0 -8px 30px -18px rgba(11,59,69,.55);transform:translateY(115%);transition:transform .26s cubic-bezier(.2,.7,.2,1);visibility:hidden}
.pdp-sticky.show{transform:none;visibility:visible}
.pdp-sticky .wrap{display:flex;align-items:center;gap:16px;min-height:66px;padding-top:10px;padding-bottom:10px}
.pdp-sticky-info{display:flex;flex-direction:column;min-width:0;flex:1;gap:1px}
.pdp-sticky-name{font-family:var(--display);font-weight:500;color:var(--teal);font-size:15px;line-height:1.2;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.pdp-sticky-price{font-size:13px;color:var(--ink)}
.pdp-sticky-price .amount{font-weight:500}
.pdp-sticky-price del{color:var(--muted);font-weight:400;margin-right:5px;font-size:12px}
.pdp-sticky-price ins{text-decoration:none}
.pdp-sticky-actions{display:flex;align-items:center;gap:10px;flex:none}
.pdp-sticky-size{height:44px;border:1px solid var(--line-strong);border-radius:var(--rs);padding:0 32px 0 13px;font-family:var(--body);font-size:14px;color:var(--ink);background:var(--white) url("data:image/svg+xml;charset=utf-8,%3Csvg xmlns='http://www.w3.org/2000/svg' width='12' height='12' viewBox='0 0 24 24' fill='none' stroke='%230B3B45' stroke-width='2'%3E%3Cpath d='M6 9l6 6 6-6'/%3E%3C/svg%3E") no-repeat right 11px center;-webkit-appearance:none;appearance:none;cursor:pointer;max-width:160px}
.pdp-sticky-size:focus{outline:none;border-color:var(--signal)}
.pdp-sticky-add{white-space:nowrap}
.pdp-sticky-add[disabled]{opacity:.55;cursor:not-allowed}
@media(max-width:560px){
  .pdp-sticky .wrap{gap:10px;min-height:60px;padding-left:15px;padding-right:15px}
  .pdp-sticky-name{font-size:14px}
  .pdp-sticky-price{font-size:12px}
  .pdp-sticky-size{max-width:108px;font-size:13px;padding:0 28px 0 11px}
  .pdp-sticky-add{padding:12px 16px;font-size:14px}
}

/* =====================================================================
   Product search — desktop header dropdown + mobile /search/ page
   ===================================================================== */
/* Desktop dropdown (anchored under the header; JS sets panel/overlay top) */
.cp-search{position:fixed;inset:0;z-index:90;visibility:hidden;opacity:0;transition:opacity .16s ease}
.cp-search.open{visibility:visible;opacity:1}
.cp-search-overlay{position:fixed;left:0;right:0;bottom:0;top:0;border:none;margin:0;padding:0;background:rgba(11,59,69,.4);backdrop-filter:blur(2px);-webkit-backdrop-filter:blur(2px);cursor:pointer}
.cp-search-panel{position:fixed;left:0;right:0;top:0;background:var(--white);border-bottom:1px solid var(--line);box-shadow:0 20px 44px -26px rgba(11,59,69,.55);transform:translateY(-14px);transition:transform .2s cubic-bezier(.2,.7,.2,1)}
.cp-search.open .cp-search-panel{transform:none}
.cp-search-inner{max-width:760px;padding-top:18px;padding-bottom:20px}

/* Search field (shared by dropdown + page) */
.cp-search-form{display:flex;align-items:center;gap:12px;border:1px solid var(--line-strong);border-radius:var(--rs);padding:0 14px;background:var(--paper);height:52px}
.cp-search-form:focus-within{border-color:var(--signal);box-shadow:0 0 0 3px rgba(22,184,166,.12)}
.cp-search-ic{color:var(--muted);flex:none}
.cp-search-input{flex:1;min-width:0;border:none;background:transparent;font-family:var(--body);font-size:16px;color:var(--ink);outline:none;height:100%;-webkit-appearance:none;appearance:none}
.cp-search-input::placeholder{color:var(--muted)}
.cp-search-input::-webkit-search-cancel-button{-webkit-appearance:none}
.cp-search-x{flex:none;border:none;background:transparent;color:var(--muted);cursor:pointer;padding:4px;line-height:0}
.cp-search-x:hover{color:var(--teal)}

/* Results list + states */
.cp-search-results{margin-top:10px;max-height:62vh;overflow-y:auto}
.cp-search-results:empty{display:none}
.cp-search-hint{margin-top:12px;font-size:10px;color:var(--muted);letter-spacing:.04em}
.cp-search.open .cp-search-results:not(:empty)+.cp-search-hint{display:none}
.cp-search-empty{padding:18px 6px;color:var(--muted);font-size:14px}

/* Suggestion / result row */
.cp-sresult{display:flex;align-items:center;gap:14px;padding:11px 8px;border-radius:var(--rs);text-decoration:none;transition:background .12s}
.cp-sresult:hover,.cp-sresult:focus-visible{background:rgba(22,184,166,.07)}
.cp-sr-media{width:46px;height:46px;flex:none;background:linear-gradient(160deg,#eef3f3,#e3ecec);border:1px solid var(--line);border-radius:var(--rs);display:grid;place-items:center;overflow:hidden}
.cp-sr-media img{width:100%;height:100%;object-fit:cover}
.cp-sr-media .cp-vial{transform:scale(.5)}
.cp-sr-info{flex:1;min-width:0;display:flex;flex-direction:column;gap:1px}
.cp-sr-cat{color:var(--muted);font-size:10px}
.cp-sr-name{font-family:var(--display);font-weight:500;color:var(--teal);font-size:14px;line-height:1.25;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.cp-sr-size{color:var(--muted);font-size:10px}
.cp-sr-price{font-family:var(--display);font-weight:500;color:var(--teal);font-size:14px;white-space:nowrap;flex:none}

/* Mobile /search/ page */
.cp-searchpage{padding:38px 0 70px}
.cp-searchpage .wrap{max-width:820px}
.cp-searchpage-h{font-size:clamp(24px,5vw,32px);color:var(--teal);margin:12px 0 20px}
.cp-searchpage-form{height:54px}
.cp-searchpage-results{margin-top:14px;max-height:none;overflow:visible}
.cp-popular{margin-top:30px}
.cp-searchpage.has-query .cp-popular{display:none}
.cp-popular-kicker{color:var(--signal-deep);display:block;margin-bottom:16px}
/* Full /shop product cards in the search page's narrower column: 3 across,
   dropping to 2 like the shop archive on smaller screens. */
.cp-popular ul.products{grid-template-columns:repeat(3,1fr)}
@media(max-width:680px){
  .cp-popular ul.products{grid-template-columns:repeat(2,1fr)}
}

@media(max-width:560px){
  .cp-search-inner{padding-left:15px;padding-right:15px}
  .cp-sr-name{font-size:13.5px}
}

/* ---- Mobile menu (hamburger + slide-in drawer) ---- */
.menu-toggle{display:none;width:38px;height:38px;flex:none;border:1px solid var(--line-strong);border-radius:var(--rs);background:var(--white);color:var(--ink);place-items:center;cursor:pointer;transition:.18s}
.menu-toggle:hover,.menu-toggle:focus-visible{border-color:var(--signal);color:var(--signal-deep)}
.mobile-nav{position:fixed;inset:0;z-index:80;visibility:hidden;opacity:0;transition:opacity .2s ease}
.mobile-nav.open{visibility:visible;opacity:1}
.m-overlay{position:absolute;inset:0;z-index:1;border:none;padding:0;margin:0;background:rgba(11,59,69,0.5);backdrop-filter:blur(2px);-webkit-backdrop-filter:blur(2px);cursor:pointer}
.m-panel{position:absolute;top:0;left:0;bottom:0;z-index:2;width:84%;max-width:330px;background:var(--paper);box-shadow:8px 0 44px -12px rgba(11,59,69,.55);display:flex;flex-direction:column;padding:20px 22px 26px;transform:translateX(-100%);transition:transform .26s cubic-bezier(.2,.7,.2,1);overflow-y:auto}
.mobile-nav.open .m-panel{transform:none}
.m-head{display:flex;justify-content:space-between;align-items:center;margin-bottom:20px}
.m-head .logo{font-size:19px}
.m-close{width:36px;height:36px;flex:none;border:1px solid var(--line-strong);border-radius:var(--rs);background:var(--white);display:grid;place-items:center;cursor:pointer;color:var(--ink);transition:.18s}
.m-close:hover,.m-close:focus-visible{border-color:var(--signal);color:var(--signal-deep)}
.m-links{display:flex;flex-direction:column}
.m-links a{font-family:var(--display);font-weight:500;font-size:19px;color:var(--teal);padding:13px 2px;border-bottom:1px solid var(--line)}
.m-links a:hover,.m-links a:focus-visible{color:var(--signal-deep)}
.m-sub{display:flex;flex-direction:column;margin-top:16px}
.m-sub a{font-size:14px;color:var(--muted);padding:8px 2px}
.m-sub a:hover{color:var(--signal-deep)}
.m-ruo{margin-top:auto;padding-top:22px;font-family:var(--mono);font-size:10px;letter-spacing:0.03em;text-transform:uppercase;color:var(--muted);line-height:1.6}

/* ---- Responsive ---- */
@media(max-width:900px){
  .hero .wrap{grid-template-columns:1fr;padding:54px 24px 60px}
  .hero h1{font-size:40px}.hero-art{height:280px}.hero-art svg{display:none}
  .trust .wrap{grid-template-columns:1fr 1fr}
  .trust .item{border-left:none;border-top:1px solid var(--line);padding-left:0}
  .trust .item:nth-child(2){border-left:1px solid var(--line);padding-left:22px}
  .cats,.prods,ul.products{grid-template-columns:repeat(2,1fr)}
  .pdp-grid{grid-template-columns:1fr;gap:30px}
  .pdp-media{min-height:0}
  .pdp-detail{grid-template-columns:1fr;gap:30px;margin-top:38px}
  .quality .wrap{grid-template-columns:1fr;gap:30px}
  nav.main{display:none}
  .site-footer .cols{grid-template-columns:1fr 1fr}
  /* Mobile header: hamburger left, logo centered, cart right (search + account move into the menu) */
  .menu-toggle{display:grid}
  .site-header .logo{flex:1 1 auto;justify-content:center}
  .search-btn,.account-btn{display:none}
}
@media(max-width:560px){
  .prods{grid-template-columns:1fr 1fr}
  .hero h1{font-size:33px}
  .news form{flex-direction:column}
  .wrap{padding-left:15px;padding-right:15px}
  .util .wrap{justify-content:center;gap:0;text-align:center}
}

/* ============================================================
   Checkout Select2 fields (Country / State) — match input height
   ============================================================ */
.woocommerce form .form-row input.input-text,
.woocommerce form .form-row select,
.woocommerce-checkout .input-text,
.woocommerce form .form-row .select2-container .select2-selection--single{min-height:48px;box-sizing:border-box}
.woocommerce form .form-row .select2-container .select2-selection--single{display:flex;align-items:center;padding:0 14px;line-height:normal}
.select2-container--default .select2-selection--single .select2-selection__rendered{line-height:normal;padding:0;color:var(--ink)}
.select2-container--default .select2-selection--single .select2-selection__arrow{height:46px;right:10px}
.select2-dropdown{border-color:var(--line-strong)}

/* ============================================================
   404 page
   ============================================================ */
.error-main{padding:0}
.error-wrap{max-width:680px;margin:0 auto;text-align:center;padding-top:96px;padding-bottom:110px}
.error-code{color:var(--signal-deep)}
.error-title{font-family:var(--display);font-weight:500;color:var(--teal);font-size:clamp(30px,5vw,44px);letter-spacing:-.02em;margin:14px 0 0}
.error-lead{font-size:18px;color:var(--muted);margin:18px auto 30px;max-width:520px}
.error-actions{display:flex;gap:14px;justify-content:center;flex-wrap:wrap}
.error-links{margin-top:48px;padding-top:26px;border-top:1px solid var(--line)}
.error-links .mono{display:block;color:var(--muted);margin-bottom:14px}
.error-links ul{list-style:none;padding:0;margin:0;display:flex;gap:10px 26px;justify-content:center;flex-wrap:wrap}
.error-links a{color:var(--signal-deep);font-weight:600}
.error-links a:hover{color:var(--teal)}

/* ============================================================
   Order received / thank-you page
   ============================================================ */
.cp-thankyou-page .page-main{padding-left:24px;padding-right:24px}
.cp-thankyou-page .page-title{margin-bottom:6px}
.cp-thankyou{max-width:880px}
.cp-thankyou-lead{font-size:18px;color:var(--muted);margin:0 0 30px}
.cp-order-meta{display:grid;grid-template-columns:repeat(auto-fit,minmax(140px,1fr));gap:22px 28px;padding:24px 26px;background:var(--white);border:1px solid var(--line);border-radius:var(--rl);margin:0 0 38px}
.cp-meta-item{display:flex;flex-direction:column;gap:6px;min-width:0}
.cp-meta-label{font-family:var(--mono);font-size:11px;text-transform:uppercase;letter-spacing:.07em;color:var(--muted)}
.cp-meta-value{font-size:15px;font-weight:600;color:var(--ink);word-break:break-word}
.cp-thankyou .woocommerce-order-details,
.cp-thankyou .woocommerce-customer-details{margin-top:40px}
.cp-thankyou h2{font-family:var(--display);font-weight:500;color:var(--teal);font-size:20px;margin:0 0 16px}
.cp-thankyou table.woocommerce-table,
.cp-thankyou .woocommerce-table--order-details,
.cp-thankyou table.shop_table{width:100%;border-collapse:collapse;border:1px solid var(--line);border-radius:var(--rl);overflow:hidden;background:var(--white)}
.cp-thankyou .woocommerce-table th,
.cp-thankyou .woocommerce-table td,
.cp-thankyou table.shop_table th,
.cp-thankyou table.shop_table td{padding:14px 16px;border-bottom:1px solid var(--line);text-align:left;font-size:14px;color:var(--ink)}
.cp-thankyou .woocommerce-table tfoot th,
.cp-thankyou .woocommerce-table tfoot td{font-weight:600}
.cp-thankyou .woocommerce-table tr:last-child td,
.cp-thankyou .woocommerce-table tfoot tr:last-child th,
.cp-thankyou .woocommerce-table tfoot tr:last-child td{border-bottom:0}
.cp-thankyou td.product-total,
.cp-thankyou th.product-total,
.cp-thankyou .woocommerce-table td:last-child,
.cp-thankyou .woocommerce-table th:last-child{text-align:right}
.cp-thankyou .woocommerce-customer-details address{font-style:normal;line-height:1.7;padding:18px 20px;background:var(--white);border:1px solid var(--line);border-radius:var(--rl);color:var(--ink)}
@media(max-width:860px){
  .cp-thankyou-page .page-main{padding-left:15px;padding-right:15px}
  .cp-order-meta{grid-template-columns:1fr 1fr;gap:18px 20px;padding:20px}
}
@media(max-width:460px){
  .cp-order-meta{grid-template-columns:1fr}
}
