/* Emrge Research — catalog + product page styles (shared) */
:root{--white:#ffffff;--off-white:#f7f7f5;--border:#e4e3df;--border-mid:#c8c6c0;--text:#111110;--text-mid:#5a5955;--text-light:#9a9894;--emerald:#1a7a4a;--emerald-mid:#2a9960;--emerald-dim:rgba(26,122,74,0.08);--emerald-line:rgba(26,122,74,0.18);--display:'Cormorant Garamond',Georgia,serif;--body:'DM Sans',sans-serif;--mono:'DM Mono',monospace;--radius:2px;--max:1240px;}
*,*::before,*::after{box-sizing:border-box;margin:0;padding:0;}
html{scroll-behavior:smooth;overflow-x:hidden;}
body{background:var(--white);color:var(--text);font-family:var(--body);font-size:15px;line-height:1.7;font-weight:300;overflow-x:hidden;-webkit-font-smoothing:antialiased;}
/* AGE GATE */
#age-gate{position:fixed;inset:0;background:var(--white);z-index:10000;display:flex;align-items:center;justify-content:center;padding:2rem;}
#age-gate.dismissed{display:none;}
.age-box{max-width:460px;width:100%;border:1px solid var(--border);padding:3.5rem 3rem;text-align:center;}
.age-logo{font-family:var(--display);font-size:2.6rem;font-weight:600;letter-spacing:0.22em;color:var(--text);margin-bottom:0.2rem;}
.age-divider{width:32px;height:1px;background:var(--emerald);margin:1.25rem auto;}
.age-box strong{display:block;font-size:15px;font-weight:500;color:var(--text);margin-bottom:0.6rem;}
.age-box p{color:var(--text-light);font-size:13px;margin-bottom:2.5rem;line-height:1.75;}
.age-buttons{display:flex;gap:0.75rem;}
.btn-age-yes{flex:1;background:var(--emerald);color:var(--white);border:1px solid var(--emerald);padding:0.9rem;font-family:var(--body);font-weight:500;font-size:12px;letter-spacing:0.1em;text-transform:uppercase;cursor:pointer;transition:background 0.2s;}
.btn-age-yes:hover{background:var(--emerald-mid);}
.btn-age-no{flex:1;background:transparent;color:var(--text-light);border:1px solid var(--border);padding:0.9rem;font-family:var(--body);font-size:12px;letter-spacing:0.1em;text-transform:uppercase;cursor:pointer;transition:color 0.2s,border-color 0.2s;}
.btn-age-no:hover{color:var(--text);border-color:var(--border-mid);}
/* DISCLAIMER */
.disclaimer-bar{background:var(--off-white);border-bottom:1px solid var(--border);padding:0.6rem 2.5rem;font-size:11px;color:var(--text-light);text-align:center;letter-spacing:0.04em;line-height:1.6;}
.disclaimer-bar strong{color:var(--text-mid);font-weight:500;}
.disclaimer-bar a{color:var(--text-light);text-decoration:underline;}
.disclaimer-bar a:hover{color:var(--emerald);}
/* NAV */
nav{position:sticky;top:0;z-index:600;display:flex;align-items:center;justify-content:space-between;padding:0 2.5rem;height:68px;border-bottom:1px solid var(--border);background:rgba(255,255,255,0.97);backdrop-filter:blur(12px);}
.nav-logo{font-family:var(--display);font-size:1.9rem;font-weight:600;letter-spacing:0.22em;color:var(--text);text-decoration:none;position:absolute;left:50%;transform:translateX(-50%);transition:color 0.2s;}
.nav-logo:hover{color:var(--emerald);}
.nav-links{display:flex;align-items:center;gap:2rem;list-style:none;}
.nav-links a{color:var(--text-mid);text-decoration:none;font-size:11.5px;letter-spacing:0.1em;text-transform:uppercase;font-weight:400;transition:color 0.2s;}
.nav-links a:hover,.nav-links a.active{color:var(--text);}
.nav-cta{color:var(--emerald)!important;border:1px solid var(--emerald-line)!important;padding:0.45rem 1.1rem;font-size:11px!important;border-radius:var(--radius);transition:background 0.2s,color 0.2s!important;}
.nav-cta:hover{background:var(--emerald)!important;color:var(--white)!important;border-color:var(--emerald)!important;}
.nav-toggle{display:none;flex-direction:column;justify-content:center;gap:5px;width:36px;height:36px;background:none;border:none;cursor:pointer;padding:0;z-index:700;}
.nav-toggle span{display:block;width:20px;height:1.5px;background:var(--text);transition:transform 0.25s,opacity 0.25s;transform-origin:center;}
.nav-toggle.open span:nth-child(1){transform:translateY(6.5px) rotate(45deg);}
.nav-toggle.open span:nth-child(2){opacity:0;}
.nav-toggle.open span:nth-child(3){transform:translateY(-6.5px) rotate(-45deg);}
/* PAGE HEADER */
.page-header{border-bottom:1px solid var(--border);background:var(--off-white);padding:4rem 2.5rem 3rem;}
.page-header-inner{max-width:100%;}
.breadcrumb{font-family:var(--mono);font-size:10px;letter-spacing:0.18em;text-transform:uppercase;color:var(--text-light);margin-bottom:1.5rem;}
.breadcrumb a{color:var(--text-light);text-decoration:none;}
.breadcrumb a:hover{color:var(--emerald);}
.breadcrumb span{color:var(--border-mid);}
.page-eyebrow{display:flex;align-items:center;gap:0.75rem;margin-bottom:1.25rem;}
.page-eyebrow-line{width:24px;height:1px;background:var(--emerald);}
.page-eyebrow-text{font-family:var(--mono);font-size:10px;letter-spacing:0.22em;text-transform:uppercase;color:var(--emerald);}
.page-title{font-family:var(--display);font-size:clamp(2.8rem,5vw,4.5rem);font-weight:300;line-height:1.05;letter-spacing:-0.01em;color:var(--text);margin-bottom:1rem;}
.page-title em{font-style:italic;}
.page-subtitle{font-size:14.5px;color:var(--text-mid);max-width:560px;line-height:1.8;font-weight:300;}
/* CATALOG LAYOUT */
.catalog-wrap{width:100%;display:grid;grid-template-columns:220px 1fr;min-height:80vh;border-top:1px solid var(--border);}
.sidebar{border-right:1px solid var(--border);padding:2.5rem 0;position:sticky;top:68px;height:calc(100vh - 68px);overflow-y:auto;background:var(--white);}
.sidebar-section{margin-bottom:2rem;padding:0 1.5rem;}
.sidebar-label{font-family:var(--mono);font-size:9px;letter-spacing:0.25em;text-transform:uppercase;color:var(--text-light);margin-bottom:1rem;}
.filter-list{list-style:none;}
.filter-list li{margin-bottom:0.15rem;}
.filter-list a{font-size:12.5px;color:var(--text-mid);text-decoration:none;padding:0.4rem 0.6rem;display:block;border-left:2px solid transparent;transition:all 0.18s;}
.filter-list a:hover,.filter-list a.active{color:var(--emerald);border-color:var(--emerald);background:var(--emerald-dim);}
/* CART */
.cart-btn-wrap{padding:0 1.5rem 1.5rem;}
.cart-btn{width:100%;background:var(--text);color:var(--white);border:none;padding:0.8rem 1rem;font-family:var(--body);font-weight:500;font-size:11.5px;letter-spacing:0.1em;text-transform:uppercase;cursor:pointer;transition:background 0.2s;display:flex;align-items:center;justify-content:center;gap:0.6rem;}
.cart-btn:hover{background:var(--emerald);}
.cart-btn.has-items{background:var(--emerald);}
.cart-count{background:var(--white);color:var(--emerald);font-size:10px;font-weight:700;width:18px;height:18px;border-radius:50%;display:none;align-items:center;justify-content:center;font-family:var(--mono);}
.cart-count.visible{display:flex;}
/* CART DRAWER */
.cart-overlay{position:fixed;inset:0;background:rgba(0,0,0,0.4);z-index:400;opacity:0;pointer-events:none;transition:opacity 0.3s;}
.cart-overlay.open{opacity:1;pointer-events:all;}
.cart-drawer{position:fixed;top:0;right:0;bottom:0;width:420px;max-width:100vw;background:var(--white);border-left:1px solid var(--border);z-index:500;transform:translateX(100%);transition:transform 0.35s cubic-bezier(0.4,0,0.2,1);display:flex;flex-direction:column;}
.cart-drawer.open{transform:translateX(0);}
.cart-header{padding:1.75rem 2rem;border-bottom:1px solid var(--border);display:flex;align-items:center;justify-content:space-between;flex-shrink:0;}
.cart-title{font-family:var(--display);font-size:1.6rem;font-weight:500;letter-spacing:0.06em;color:var(--text);}
.cart-close{background:none;border:none;color:var(--text-light);cursor:pointer;font-size:20px;line-height:1;transition:color 0.2s;padding:0.25rem;}
.cart-close:hover{color:var(--text);}
.cart-body{flex:1;overflow-y:auto;padding:1.5rem 2rem;}
.cart-empty{text-align:center;padding:4rem 1rem;color:var(--text-light);}
.cart-empty-icon{font-family:var(--display);font-size:3rem;color:var(--border-mid);letter-spacing:0.1em;}
.cart-empty p{font-size:13px;margin-top:0.75rem;color:var(--text-light);}
.cart-item{display:grid;grid-template-columns:1fr auto;gap:1rem;padding:1.25rem 0;border-bottom:1px solid var(--border);align-items:start;}
.cart-item:last-child{border-bottom:none;}
.ci-name{font-family:var(--display);font-size:1.1rem;font-weight:500;color:var(--text);line-height:1;margin-bottom:0.25rem;}
.ci-spec{font-family:var(--mono);font-size:10px;color:var(--text-light);letter-spacing:0.08em;}
.ci-controls{display:flex;align-items:center;gap:0.5rem;margin-top:0.75rem;}
.qty-btn{background:none;border:1px solid var(--border);color:var(--text-mid);width:24px;height:24px;cursor:pointer;font-size:14px;display:flex;align-items:center;justify-content:center;transition:all 0.2s;}
.qty-btn:hover{border-color:var(--emerald);color:var(--emerald);}
.qty-val{font-family:var(--mono);font-size:12px;color:var(--text);min-width:20px;text-align:center;}
.ci-remove{font-size:10px;letter-spacing:0.1em;color:var(--text-light);background:none;border:none;cursor:pointer;margin-left:0.5rem;transition:color 0.2s;font-family:var(--body);text-transform:uppercase;}
.ci-remove:hover{color:#c0392b;}
.ci-price{font-family:var(--display);font-size:1.3rem;font-weight:400;color:var(--text);text-align:right;}
.ci-unit{font-family:var(--mono);font-size:9px;color:var(--text-light);text-align:right;margin-top:2px;}
/* CART FOOTER */
.cart-footer{padding:1.5rem 2rem;border-top:1px solid var(--border);}
.cart-minimum{background:var(--off-white);border:1px solid var(--border);padding:0.75rem 1rem;margin-bottom:1rem;font-size:12px;color:var(--text-mid);}
.cart-minimum.met{border-color:var(--emerald-line);background:var(--emerald-dim);}
.cart-minimum.met .min-status{color:var(--emerald);}
.min-bar-wrap{height:2px;background:var(--border);margin:0.5rem 0;}
.min-bar{height:100%;background:var(--emerald);transition:width 0.4s;}
.cart-row{display:flex;justify-content:space-between;font-size:13px;color:var(--text-mid);margin-bottom:0.4rem;}
.cart-row.total{font-family:var(--display);font-size:1.3rem;color:var(--text);font-weight:400;margin-top:0.75rem;padding-top:0.75rem;border-top:1px solid var(--border);}
.cart-row.total span:last-child{color:var(--emerald);}
.cart-row.discount span:last-child{color:var(--emerald);}
.cart-totals{margin-bottom:1.25rem;}
.btn-checkout{width:100%;background:var(--emerald);color:var(--white);border:none;padding:1rem;font-family:var(--body);font-weight:500;font-size:12px;letter-spacing:0.12em;text-transform:uppercase;cursor:pointer;transition:background 0.2s;margin-bottom:0.75rem;}
.btn-checkout:hover{background:var(--emerald-mid);}
.btn-checkout:disabled{opacity:0.35;cursor:not-allowed;}
.cart-note{font-size:10.5px;color:var(--text-light);text-align:center;letter-spacing:0.04em;line-height:1.6;}
.discount-wrap{background:var(--off-white);border:1px solid var(--border);padding:0.85rem 1rem;margin-bottom:1rem;}
.discount-label{font-size:10px;letter-spacing:0.14em;text-transform:uppercase;font-family:var(--mono);color:var(--emerald);margin-bottom:0.6rem;}
.discount-row{display:flex;gap:0.5rem;}
.discount-input{flex:1;background:var(--white);border:1px solid var(--border);color:var(--text);padding:0.6rem 0.75rem;font-family:var(--mono);font-size:12px;letter-spacing:0.1em;text-transform:uppercase;outline:none;transition:border-color 0.2s;}
.discount-input:focus{border-color:var(--emerald);}
.discount-input::placeholder{color:var(--text-light);text-transform:none;letter-spacing:0.04em;font-size:11px;}
.btn-discount{background:var(--text);border:none;color:var(--white);padding:0.6rem 1.2rem;font-family:var(--mono);font-size:10px;font-weight:500;letter-spacing:0.14em;text-transform:uppercase;cursor:pointer;transition:background 0.2s;}
.btn-discount:hover{background:var(--emerald);}
.discount-msg{font-size:11px;font-family:var(--mono);margin-top:0.5rem;letter-spacing:0.04em;}
.discount-msg.success{color:var(--emerald);}
.discount-msg.error{color:#c0392b;}
/* CHECKOUT MODAL */
.checkout-modal-wrap{display:none;position:fixed;inset:0;background:rgba(0,0,0,0.6);z-index:600;align-items:center;justify-content:center;padding:2rem;}
.checkout-modal-wrap.open{display:flex;}
.checkout-modal{background:var(--white);border:1px solid var(--border);max-width:520px;width:100%;padding:2.5rem;max-height:90vh;overflow-y:auto;}
.cm-eyebrow{display:flex;align-items:center;gap:0.6rem;margin-bottom:0.5rem;}
.cm-eyebrow-line{width:20px;height:1px;background:var(--emerald);}
.cm-eyebrow-text{font-family:var(--mono);font-size:10px;letter-spacing:0.2em;text-transform:uppercase;color:var(--emerald);}
.cm-title{font-family:var(--display);font-size:1.8rem;font-weight:400;letter-spacing:0.04em;color:var(--text);margin-bottom:1.5rem;}
.cm-form{display:flex;flex-direction:column;gap:0.75rem;margin-bottom:1.5rem;}
.cm-row{display:grid;grid-template-columns:1fr 1fr;gap:0.75rem;}
.cm-field{display:flex;flex-direction:column;gap:0.35rem;}
.cm-field label{font-size:10px;letter-spacing:0.15em;text-transform:uppercase;color:var(--text-light);font-family:var(--mono);}
.cm-field input,.cm-field select{background:var(--off-white);border:1px solid var(--border);color:var(--text);padding:0.7rem 0.9rem;font-family:var(--body);font-size:13px;outline:none;transition:border-color 0.2s;width:100%;}
.cm-field input:focus,.cm-field select:focus{border-color:var(--emerald);}
.cm-field select option{background:var(--white);}
.cm-order-summary{background:var(--off-white);border:1px solid var(--border);padding:1rem 1.25rem;margin-bottom:1.5rem;font-size:12px;}
.cm-order-row{display:flex;justify-content:space-between;color:var(--text-mid);margin-bottom:0.35rem;font-family:var(--mono);}
.cm-order-total{display:flex;justify-content:space-between;color:var(--text);font-family:var(--display);font-size:1.3rem;font-weight:400;margin-top:0.75rem;padding-top:0.75rem;border-top:1px solid var(--border);}
.cm-order-total span:last-child{color:var(--emerald);}
.cm-actions{display:flex;gap:0.75rem;}
.btn-pay{flex:1;background:var(--emerald);color:var(--white);border:none;padding:0.9rem;font-family:var(--body);font-weight:500;font-size:12px;letter-spacing:0.12em;text-transform:uppercase;cursor:pointer;transition:background 0.2s;}
.btn-pay:hover{background:var(--emerald-mid);}
.btn-cancel{background:none;border:1px solid var(--border);color:var(--text-mid);padding:0.9rem 1.25rem;font-family:var(--body);font-size:12px;letter-spacing:0.1em;text-transform:uppercase;cursor:pointer;transition:all 0.2s;}
.btn-cancel:hover{border-color:var(--border-mid);color:var(--text);}
/* PRODUCT AREA */
.product-area{background:var(--off-white);}
.cat-section{padding:2.5rem 2rem;border-bottom:1px solid var(--border);}
.cat-section:last-child{border-bottom:none;}
.cat-header{display:flex;align-items:baseline;gap:1.5rem;margin-bottom:1.75rem;}
.cat-title{font-family:var(--display);font-size:1.5rem;font-weight:400;color:var(--text);line-height:1;}
.cat-title em{font-style:italic;color:var(--emerald);}
.cat-count{font-family:var(--mono);font-size:10px;color:var(--text-light);letter-spacing:0.15em;}
/* CARD GRID */
.product-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:12px;margin-bottom:0;}
/* PRODUCT CARD */
.pc{background:var(--white);border:1px solid var(--border);cursor:pointer;transition:border-color 0.2s,box-shadow 0.2s;display:flex;flex-direction:column;overflow:hidden;}
.pc:hover{border-color:var(--emerald-line);box-shadow:0 2px 16px rgba(0,0,0,0.07);}
.pc.open{border-color:var(--emerald);box-shadow:0 2px 20px rgba(26,122,74,0.12);}
.pc-img{width:100%;aspect-ratio:3/4;overflow:hidden;background:var(--white);display:flex;align-items:center;justify-content:center;border-bottom:1px solid var(--border);}
.pc-img img{width:100%;height:100%;object-fit:contain;object-position:center;transition:transform 0.4s;}
.pc:hover .pc-img img{transform:scale(1.04);}
.pc-body{padding:1rem 1rem 0.85rem;display:flex;flex-direction:column;flex:1;}
.pc-tag{font-family:var(--mono);font-size:8.5px;letter-spacing:0.18em;text-transform:uppercase;color:var(--emerald);background:var(--emerald-dim);display:inline-block;padding:0.18rem 0.5rem;margin-bottom:0.6rem;align-self:flex-start;}
.pc-name{font-family:var(--display);font-size:1.35rem;font-weight:400;color:var(--text);line-height:1.1;margin-bottom:0.3rem;}
.pc-spec{font-family:var(--mono);font-size:9.5px;color:var(--text-light);letter-spacing:0.06em;margin-bottom:0.5rem;}
.pc-desc{font-size:11.5px;color:var(--text-mid);line-height:1.6;flex:1;margin-bottom:0.75rem;}
.pc-footer{display:flex;align-items:center;justify-content:space-between;padding-top:0.75rem;border-top:1px solid var(--border);margin-top:auto;}
.pc-price-block{}
.pc-from{font-family:var(--mono);font-size:8px;color:var(--text-light);letter-spacing:0.15em;text-transform:uppercase;}
.pc-price{font-family:var(--display);font-size:1.6rem;font-weight:300;color:var(--text);line-height:1;}
.pc-chevron{width:24px;height:24px;display:flex;align-items:center;justify-content:center;transition:transform 0.25s;color:var(--text-light);}
.pc-chevron svg{width:15px;height:15px;}
.pc.open .pc-chevron{transform:rotate(180deg);color:var(--emerald);}
/* EXPANSION PANEL */
.pc-expansion{display:none;background:var(--white);border:1px solid var(--emerald);border-top:3px solid var(--emerald);margin:0 0 1.5rem;position:relative;}
.pc-expansion.open{display:block;}
.exp-inner{display:grid;grid-template-columns:260px 1fr 280px;align-items:start;}
.exp-img-col{border-right:1px solid var(--border);cursor:zoom-in;position:relative;overflow:hidden;background:var(--white);}
.exp-img-col img{width:100%;display:block;object-fit:contain;aspect-ratio:3/4;transition:transform 0.4s;}
.exp-img-col:hover img{transform:scale(1.03);}
.exp-img-hint{position:absolute;bottom:0.6rem;right:0.6rem;background:rgba(0,0,0,0.5);color:#fff;font-family:var(--mono);font-size:8.5px;letter-spacing:0.12em;text-transform:uppercase;padding:0.25rem 0.55rem;opacity:0;transition:opacity 0.2s;pointer-events:none;}
.exp-img-col:hover .exp-img-hint{opacity:1;}
.exp-info-col{padding:2rem 1.75rem;border-right:1px solid var(--border);}
.exp-tag{font-family:var(--mono);font-size:8.5px;letter-spacing:0.2em;text-transform:uppercase;color:var(--emerald);background:var(--emerald-dim);display:inline-block;padding:0.18rem 0.5rem;margin-bottom:0.75rem;}
.exp-name{font-family:var(--display);font-size:2rem;font-weight:300;color:var(--text);line-height:1.05;margin-bottom:0.6rem;}
.exp-short{font-size:13px;color:var(--text-mid);font-style:italic;line-height:1.65;margin-bottom:0.75rem;}
.exp-desc{font-size:12.5px;color:var(--text-mid);line-height:1.85;margin-bottom:1.25rem;}
.exp-meta{display:flex;flex-direction:column;gap:0.35rem;margin-bottom:1.25rem;padding:1rem;background:var(--off-white);border:1px solid var(--border);}
.exp-meta-row{display:flex;gap:0.75rem;font-size:12px;}
.exp-meta-label{font-family:var(--mono);font-size:9.5px;color:var(--text-light);letter-spacing:0.1em;text-transform:uppercase;width:58px;flex-shrink:0;}
.exp-meta-val{color:var(--text-mid);}
.exp-coa{font-family:var(--mono);font-size:9.5px;letter-spacing:0.14em;text-transform:uppercase;color:var(--emerald);text-decoration:none;border-bottom:1px solid var(--emerald-line);padding-bottom:1px;}
.exp-coa:hover{border-color:var(--emerald);}
.exp-ruo{font-size:11px;color:var(--text-light);line-height:1.65;margin-top:1rem;padding-top:1rem;border-top:1px solid var(--border);}
.exp-order-col{padding:2rem 1.5rem;}
.exp-order-label{font-family:var(--mono);font-size:9px;letter-spacing:0.22em;text-transform:uppercase;color:var(--text-light);margin-bottom:1rem;}
.exp-order-row{display:flex;align-items:center;justify-content:space-between;padding:0.85rem 0;border-bottom:1px solid var(--border);}
.exp-order-row:last-child{border-bottom:none;}
.exp-order-name{font-size:13px;font-weight:400;color:var(--text);margin-bottom:0.15rem;}
.exp-order-spec{font-family:var(--mono);font-size:9.5px;color:var(--text-light);}
.exp-order-right{display:flex;align-items:center;gap:0.85rem;}
.exp-order-price{font-family:var(--display);font-size:1.4rem;font-weight:300;color:var(--text);}
.exp-close{position:absolute;top:0.75rem;right:1rem;background:none;border:none;font-family:var(--mono);font-size:10px;letter-spacing:0.12em;text-transform:uppercase;color:var(--text-light);cursor:pointer;transition:color 0.2s;padding:0.3rem 0;}
.exp-close:hover{color:var(--emerald);}
.btn-add{font-size:10px;letter-spacing:0.1em;text-transform:uppercase;color:var(--white);background:var(--text);border:1px solid var(--text);padding:0.45rem 0.9rem;cursor:pointer;font-family:var(--body);transition:background 0.2s,border-color 0.2s;white-space:nowrap;}
.btn-add:hover{background:var(--emerald);border-color:var(--emerald);}
.btn-add.kit{background:var(--emerald);border-color:var(--emerald);}
.btn-add.kit:hover{background:var(--emerald-mid);border-color:var(--emerald-mid);}
.btn-add.added{background:var(--emerald);border-color:var(--emerald);}
/* FOOTER */
footer{border-top:1px solid var(--border);padding:2rem 2.5rem;background:var(--off-white);display:flex;justify-content:space-between;align-items:center;flex-wrap:wrap;gap:1rem;}
footer p{font-size:11px;color:var(--text-light);}
.footer-links{display:flex;gap:2rem;}
.footer-links a{font-size:11px;color:var(--text-light);text-decoration:none;transition:color 0.2s;}
.footer-links a:hover{color:var(--emerald);}
@keyframes fadeUp{from{opacity:0;transform:translateY(16px);}to{opacity:1;transform:translateY(0);}}
@keyframes fadeIn{from{opacity:0;}to{opacity:1;}}
@media(max-width:900px){
  .catalog-wrap{grid-template-columns:1fr;}
  .sidebar{position:static;height:auto;border-right:none;border-bottom:1px solid var(--border);padding:1.5rem 2rem;display:flex;flex-wrap:wrap;gap:1.5rem;overflow-y:visible;}
  .sidebar-section{margin:0;padding:0;}
  .cart-btn-wrap{padding:0;width:100%;}
  .product-grid{grid-template-columns:repeat(3,1fr);}
  .exp-inner{grid-template-columns:200px 1fr;}
  .exp-order-col{grid-column:1/-1;border-top:1px solid var(--border);border-left:none;padding:1.5rem;}
  .cat-section{padding:2rem 1.5rem;}
}
@media(max-width:640px){
  .disclaimer-bar{display:none;}
  .nav-toggle{display:flex;z-index:700;}
  .nav-logo{font-size:1.4rem;}
  .nav-links{display:none;position:fixed;top:0;left:0;width:100%;min-height:100vh;padding:5rem 2rem 2rem;background:var(--white);flex-direction:column;align-items:flex-start;gap:0;z-index:650;overflow-y:auto;}
  .nav-links.nav-open{display:flex;}
  .nav-links li{width:100%;}
  .nav-links li a{display:block;padding:1rem 0;font-size:1rem;border-bottom:1px solid var(--border);color:var(--text);letter-spacing:0.08em;}
  .nav-links li:last-child a{border-bottom:none;}
  .nav-cta{background:transparent!important;border:none!important;padding:1rem 0!important;}
  .product-grid{grid-template-columns:repeat(2,1fr);gap:8px;}
  .exp-inner{grid-template-columns:1fr;}
  .exp-img-col{max-height:260px;}
  .exp-img-col img{aspect-ratio:4/3;}
  .exp-order-col{border-top:1px solid var(--border);}
  .exp-order-row{flex-wrap:wrap;gap:0.5rem;}
  .exp-order-right{width:100%;justify-content:space-between;}
  .cm-row{grid-template-columns:1fr;}
  .cart-drawer{width:100vw;}
  footer{flex-direction:column;align-items:flex-start;}
}


/* ── Catalog cards now link to product pages ───────────────── */
a.pc{text-decoration:none;color:inherit;}
a.pc:focus-visible{outline:2px solid var(--emerald);outline-offset:2px;}
.pc-view{font-family:var(--mono);font-size:9.5px;letter-spacing:0.12em;text-transform:uppercase;color:var(--text-light);display:flex;align-items:center;gap:0.35rem;transition:color 0.2s;}
.pc:hover .pc-view{color:var(--emerald);}
.pc-view svg{width:13px;height:13px;transition:transform 0.2s;}
.pc:hover .pc-view svg{transform:translateX(2px);}

/* ── Lightbox (was missing styles) ─────────────────────────── */
.lightbox{position:fixed;inset:0;background:rgba(17,17,16,0.88);z-index:9000;display:none;align-items:center;justify-content:center;flex-direction:column;padding:2rem;cursor:zoom-out;}
.lightbox.open{display:flex;}
.lightbox-img{max-width:min(92vw,720px);max-height:82vh;object-fit:contain;background:var(--white);cursor:default;}
.lightbox-caption{font-family:var(--mono);font-size:11px;letter-spacing:0.08em;color:rgba(255,255,255,0.75);margin-top:1rem;text-align:center;}
.lightbox-close{position:absolute;top:1rem;right:1.25rem;background:none;border:none;color:#fff;font-size:30px;line-height:1;cursor:pointer;padding:0.25rem 0.5rem;}

/* ── Floating cart (product pages) ─────────────────────────── */
.float-cart{position:fixed;right:1.5rem;bottom:1.5rem;z-index:390;width:auto;padding:0.85rem 1.25rem;box-shadow:0 6px 24px rgba(17,17,16,0.18);}

/* ── PRODUCT PAGE ──────────────────────────────────────────── */
.pd-crumb{padding:1.5rem 2.5rem 0;max-width:1080px;margin:0 auto;}
.pd-crumb .breadcrumb{margin-bottom:0;}
.pd-hero{max-width:1080px;margin:0 auto;padding:2rem 2.5rem 4rem;display:grid;grid-template-columns:minmax(0,380px) minmax(0,1fr);gap:4.5rem;align-items:start;}
.pd-media{position:sticky;top:92px;border:1px solid var(--border);background:var(--white);cursor:zoom-in;overflow:hidden;}
.pd-media img{width:100%;display:block;aspect-ratio:3/4;object-fit:contain;transition:transform 0.5s;}
.pd-media:hover img{transform:scale(1.025);}
.pd-media-hint{position:absolute;bottom:0.75rem;right:0.75rem;background:rgba(17,17,16,0.6);color:#fff;font-family:var(--mono);font-size:9px;letter-spacing:0.12em;text-transform:uppercase;padding:0.3rem 0.6rem;opacity:0;transition:opacity 0.2s;pointer-events:none;}
.pd-media:hover .pd-media-hint{opacity:1;}
.pd-info{padding-top:0.5rem;}
.pd-tag{font-family:var(--mono);font-size:9px;letter-spacing:0.2em;text-transform:uppercase;color:var(--emerald);background:var(--emerald-dim);display:inline-block;padding:0.22rem 0.6rem;margin-bottom:1.1rem;}
.pd-name{font-family:var(--display);font-size:clamp(2.4rem,3.8vw,3.3rem);font-weight:300;line-height:1;letter-spacing:-0.01em;color:var(--text);margin-bottom:0.9rem;}
.pd-spec{font-family:var(--mono);font-size:11px;color:var(--text-light);letter-spacing:0.06em;margin-bottom:1.5rem;}
.pd-short{font-family:var(--display);font-size:1.15rem;font-style:italic;font-weight:300;line-height:1.55;color:var(--text-mid);margin-bottom:1.75rem;max-width:30em;}
.pd-buy{border-top:1px solid var(--text);}
.pd-buy-head{display:flex;justify-content:space-between;align-items:baseline;padding:0.9rem 0;border-bottom:1px solid var(--border);}
.pd-buy-title{font-size:13px;font-weight:500;color:var(--text);}
.pd-buy-note{font-size:11.5px;color:var(--text-light);}
.pd-opt{display:grid;grid-template-columns:1fr auto auto;gap:1.25rem;align-items:center;padding:1.05rem 0;border-bottom:1px solid var(--border);}
.pd-opt-name{font-size:14px;color:var(--text);font-weight:400;}
.pd-opt-spec{font-family:var(--mono);font-size:10px;color:var(--text-light);margin-top:0.15rem;}
.pd-opt-price{font-family:var(--display);font-size:1.7rem;font-weight:300;color:var(--text);}
.pd-opt-each{font-family:var(--mono);font-size:9.5px;color:var(--text-light);display:block;text-align:right;margin-top:-0.15rem;}
.pd-opt .btn-add{padding:0.6rem 1.15rem;font-size:10.5px;}
.pd-terms{font-size:12px;color:var(--text-mid);line-height:1.75;margin-top:1.1rem;}
.pd-terms a{color:var(--emerald);}
.pd-latest{margin-top:1.75rem;display:flex;gap:1rem;align-items:center;justify-content:space-between;padding:1rem 1.15rem;background:var(--off-white);border:1px solid var(--border);border-left:3px solid var(--emerald);}
.pd-latest-text{font-size:12.5px;color:var(--text-mid);line-height:1.6;}
.pd-latest-text strong{color:var(--text);font-weight:500;}
.pd-latest a{font-size:11px;font-weight:500;letter-spacing:0.06em;color:var(--emerald);text-decoration:none;white-space:nowrap;border-bottom:1px solid var(--emerald-line);}
.pd-latest a:hover{border-color:var(--emerald);}

.pd-section{border-top:1px solid var(--border);}
.pd-section-inner{max-width:var(--max);margin:0 auto;padding:4rem 2.5rem;}
.pd-h2{font-family:var(--display);font-size:2.2rem;font-weight:300;line-height:1.1;color:var(--text);margin-bottom:0.6rem;}
.pd-lede{font-size:13.5px;color:var(--text-mid);line-height:1.8;max-width:62ch;margin-bottom:2rem;}
.pd-lede a{color:var(--emerald);}
.pd-overview{display:grid;grid-template-columns:minmax(0,3fr) minmax(0,2fr);gap:4rem;align-items:start;}
.pd-desc{font-size:14.5px;color:var(--text-mid);line-height:1.9;max-width:62ch;}
.pd-specs{width:100%;border-collapse:collapse;border-top:1px solid var(--text);}
.pd-specs th,.pd-specs td{padding:0.85rem 0;border-bottom:1px solid var(--border);text-align:left;vertical-align:top;font-size:13px;}
.pd-specs th{font-weight:400;color:var(--text-light);width:38%;padding-right:1rem;}
.pd-specs td{color:var(--text);}

/* COA ledger */
.coa-ledger{width:100%;border-collapse:collapse;border-top:1px solid var(--text);}
.coa-ledger th{font-size:11px;font-weight:500;color:var(--text-light);text-align:left;padding:0.75rem 1rem 0.75rem 0;border-bottom:1px solid var(--border);}
.coa-ledger td{padding:1.05rem 1rem 1.05rem 0;border-bottom:1px solid var(--border);font-size:13.5px;color:var(--text);vertical-align:middle;}
.coa-ledger tr.is-latest td{background:var(--emerald-dim);}
.coa-ledger tr.is-latest td:first-child{box-shadow:inset 3px 0 0 var(--emerald);padding-left:1rem;}
.coa-ledger td:first-child,.coa-ledger th:first-child{padding-left:0.25rem;}
.coa-date{font-family:var(--mono);font-size:11.5px;color:var(--text-mid);white-space:nowrap;}
.coa-test{line-height:1.45;}
.coa-sub{display:block;font-size:11.5px;color:var(--text-light);margin-top:0.15rem;}
.coa-id{font-family:var(--mono);font-size:12px;color:var(--text-mid);}
.coa-chip{display:inline-block;font-size:10.5px;font-weight:500;color:var(--emerald);border:1px solid var(--emerald-line);padding:0.1rem 0.45rem;margin-left:0.4rem;vertical-align:1px;white-space:nowrap;}
.coa-chip.latest{background:var(--emerald);border-color:var(--emerald);color:var(--white);}
.coa-view{display:inline-block;font-size:11px;font-weight:500;letter-spacing:0.06em;color:var(--emerald);text-decoration:none;border:1px solid var(--emerald-line);padding:0.4rem 0.8rem;white-space:nowrap;transition:background 0.2s,color 0.2s;}
.coa-view:hover{background:var(--emerald);color:var(--white);border-color:var(--emerald);}
.coa-foot{font-size:12px;color:var(--text-light);line-height:1.75;margin-top:1.25rem;max-width:72ch;}
.coa-foot a{color:var(--emerald);}
.coa-group-title{font-family:var(--display);font-size:1.45rem;font-weight:400;color:var(--text);margin:2.25rem 0 0.75rem;}
.coa-group-title:first-of-type{margin-top:0;}

.pd-related-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:12px;}
.pd-ruo{max-width:var(--max);margin:0 auto;padding:0 2.5rem 3rem;font-size:11.5px;color:var(--text-light);line-height:1.75;}

@media(max-width:900px){
  .pd-hero{grid-template-columns:1fr;gap:2rem;padding:1.5rem 1.5rem 3rem;}
  .pd-media{position:relative;top:auto;max-width:340px;}
  .pd-overview{grid-template-columns:1fr;gap:2.5rem;}
  .pd-section-inner{padding:3rem 1.5rem;}
  .pd-crumb{padding:1.25rem 1.5rem 0;}
  .pd-related-grid{grid-template-columns:repeat(3,1fr);}
  .pd-ruo{padding:0 1.5rem 2.5rem;}
}
@media(max-width:640px){
  .pd-opt{grid-template-columns:1fr auto;row-gap:0.6rem;}
  .pd-opt .btn-add{grid-column:1/-1;width:100%;padding:0.75rem;}
  .pd-latest{flex-direction:column;align-items:flex-start;}
  .coa-ledger thead{display:none;}
  .coa-ledger,.coa-ledger tbody,.coa-ledger tr,.coa-ledger td{display:block;width:100%;}
  .coa-ledger tr{border-bottom:1px solid var(--border);padding:1rem 0.75rem;}
  .coa-ledger td{border:none;padding:0.15rem 0;}
  .coa-ledger tr.is-latest td{background:none;}
  .coa-ledger tr.is-latest{background:var(--emerald-dim);box-shadow:inset 3px 0 0 var(--emerald);}
  .coa-ledger tr.is-latest td:first-child{box-shadow:none;padding-left:0;}
  .coa-ledger td.coa-action{padding-top:0.6rem;}
  .pd-related-grid{grid-template-columns:repeat(2,1fr);gap:8px;}
  .float-cart{right:1rem;bottom:1rem;}
}
@media(prefers-reduced-motion:reduce){
  .pd-media img,.pc-img img,.pc-view svg{transition:none;}
}

/* Cart drawer + checkout sit above the sticky nav (nav was covering the drawer's close button) */
.cart-overlay{z-index:690;}
.cart-drawer{z-index:700;}
.checkout-modal-wrap{z-index:800;}

/* "Show all results" under long lab tables */
.coa-more{margin-top:1rem;background:none;border:1px solid var(--border-mid);color:var(--text);font-family:var(--body);font-size:12px;letter-spacing:0.04em;padding:0.65rem 1.2rem;cursor:pointer;transition:border-color 0.2s,color 0.2s;}
.coa-more:hover{border-color:var(--emerald);color:var(--emerald);}
.coa-ledger tr[hidden]{display:none!important;}
/* same column widths in every lab table */
@media(min-width:641px){
  .coa-ledger{table-layout:fixed;}
  .coa-ledger th:nth-child(1){width:16%;}
  .coa-ledger th:nth-child(3){width:13%;}
  .coa-ledger th:nth-child(4){width:14%;}
  .coa-ledger th:nth-child(5){width:130px;}
}
