/* ============================================================================
   OPS Science Checkout — cart drawer + 3-step checkout + thank-you card.
   Black-on-white to match the site's Flatsome 3.17 theme (opsscience.org):
   white surfaces, #000 ink, black buttons, hairline gray borders.
   Type: DM Sans (UI/body) + DM Serif Display (headings), matching the theme.
   ============================================================================ */
:root{
	--opsck-bg:#ffffff; --opsck-ink:#000000; --opsck-muted:#555555; --opsck-faint:#8a8a8a;
	--opsck-accent:#000000; --opsck-accent-h:#222222;
	--opsck-line:#e5e5e5; --opsck-panel:#ffffff; --opsck-soft:#f6f6f6;
	--opsck-serif:"DM Serif Display",Georgia,"Times New Roman",serif;
	--opsck-sans:"DM Sans",-apple-system,BlinkMacSystemFont,"Segoe UI",Helvetica,Arial,sans-serif;
}

/* ---------- shared bits ---------- */
.opsck-eyebrow,.opsck-step-num,.opsck-drawer-eyebrow,.opsck-coupon-label,.opsck-pm-tag,
.opsck-summary-title,.opsck-ship-flat,.opsck-si-qty{
	font-family:var(--opsck-sans);text-transform:uppercase;letter-spacing:.12em;font-size:11px;font-weight:600;color:var(--opsck-faint);
}
.opsck-btn{
	display:inline-flex;align-items:center;justify-content:center;gap:8px;
	font-family:var(--opsck-sans);font-weight:600;font-size:14px;line-height:1;letter-spacing:.02em;
	padding:15px 26px;border-radius:0;border:1px solid var(--opsck-ink);cursor:pointer;text-decoration:none;transition:.15s;
}
.opsck-btn-primary{background:var(--opsck-ink);color:#fff;}
.opsck-btn-primary:hover{background:var(--opsck-accent-h);border-color:var(--opsck-accent-h);}
.opsck-btn-primary[disabled]{opacity:.4;cursor:not-allowed;}
.opsck-btn-ghost{background:transparent;color:var(--opsck-ink);border-color:var(--opsck-line);}
.opsck-btn-ghost:hover{border-color:var(--opsck-ink);}

/* WooCommerce cart page "Proceed to checkout" — force black bg / white text to match theme */
.woocommerce .wc-proceed-to-checkout a.checkout-button,
.woocommerce-cart .wc-proceed-to-checkout a.checkout-button,
.wc-proceed-to-checkout a.checkout-button,
a.checkout-button.button.alt,
a.checkout-button{
	background-color:#000000!important;background-image:none!important;color:#ffffff!important;
	border:1px solid #000000!important;border-radius:0!important;box-shadow:none!important;
}
.woocommerce .wc-proceed-to-checkout a.checkout-button:hover,
.wc-proceed-to-checkout a.checkout-button:hover,
a.checkout-button:hover{background-color:#222222!important;color:#ffffff!important;border-color:#222222!important;}
.opsck-error{background:#fff5f5;border:1px solid #d92d20;color:#b42318;border-radius:0;padding:12px 16px;margin:0 0 18px;font-family:var(--opsck-sans);font-size:14px;}
.opsck-note,.opsck-empty{font-family:var(--opsck-sans);color:var(--opsck-muted);}

/* ============================================================================
   CART DRAWER (slide-over)
   ============================================================================ */
.opsck-drawer-overlay{position:fixed;inset:0;background:rgba(0,0,0,.45);z-index:99998;opacity:0;transition:opacity .25s;}
.opsck-drawer-overlay.is-open{opacity:1;}
.opsck-drawer-overlay[hidden]{display:none;}
.opsck-drawer{
	position:fixed;top:0;right:0;height:100%;width:400px;max-width:92vw;background:var(--opsck-bg);
	z-index:99999;transform:translateX(102%);transition:transform .28s cubic-bezier(.4,0,.2,1);
	display:flex;flex-direction:column;box-shadow:-14px 0 40px rgba(0,0,0,.16);font-family:var(--opsck-sans);color:var(--opsck-ink);
}
.opsck-drawer.is-open{transform:translateX(0);}
.opsck-drawer-scroll{display:flex;flex-direction:column;height:100%;overflow:hidden;}
.opsck-drawer-head{display:flex;align-items:center;gap:10px;padding:20px 22px;border-bottom:1px solid var(--opsck-line);}
.opsck-drawer-count{font-family:var(--opsck-sans);font-size:11px;letter-spacing:.1em;color:var(--opsck-faint);}
.opsck-drawer-close{margin-left:auto;background:none;border:none;font-size:26px;line-height:1;cursor:pointer;color:var(--opsck-ink);padding:0 4px;}
.opsck-drawer-fs{padding:14px 22px;border-bottom:1px solid var(--opsck-line);}
.opsck-fs-msg{margin:0 0 8px;font-size:13px;color:var(--opsck-muted);}
.opsck-fs-bar{height:6px;border-radius:0;background:var(--opsck-soft);overflow:hidden;}
.opsck-fs-bar span{display:block;height:100%;background:var(--opsck-ink);transition:width .3s;}
.opsck-drawer-body{flex:1;overflow-y:auto;padding:8px 22px;}
.opsck-drawer-empty{padding:40px 0 14px;text-align:center;color:var(--opsck-faint);}
.opsck-drawer-shop{display:block;text-align:center;color:var(--opsck-ink);font-weight:600;text-decoration:underline;}
.opsck-drawer-items{list-style:none;margin:0;padding:0;}
.opsck-drawer-item{display:flex;gap:12px;padding:16px 0;border-bottom:1px solid var(--opsck-line);}
.opsck-di-img img{width:56px;height:56px;object-fit:cover;border-radius:0;background:var(--opsck-soft);border:1px solid var(--opsck-line);}
.opsck-di-main{flex:1;min-width:0;}
.opsck-di-name{display:block;font-weight:600;font-size:14px;margin:0 0 8px;}
.opsck-di-qty{display:inline-flex;align-items:center;border:1px solid var(--opsck-line);border-radius:0;overflow:hidden;}
.opsck-di-qty button{width:28px;height:28px;border:none;background:transparent;cursor:pointer;font-size:15px;color:var(--opsck-ink);}
.opsck-di-qty button:hover{background:var(--opsck-soft);}
.opsck-qty-n{min-width:26px;text-align:center;font-size:13px;font-variant-numeric:tabular-nums;}
.opsck-di-side{display:flex;flex-direction:column;align-items:flex-end;gap:8px;}
.opsck-di-price{font-weight:600;font-size:14px;}
.opsck-di-remove{background:none;border:none;padding:0;cursor:pointer;font-size:11px;color:var(--opsck-faint);text-decoration:underline;}
.opsck-di-remove:hover{color:#b42318;}
.opsck-drawer-subtotal{display:flex;justify-content:space-between;padding:16px 22px 6px;font-size:15px;}
.opsck-drawer-subtotal strong{font-size:17px;}
.opsck-drawer-note{margin:0;padding:0 22px 8px;font-family:var(--opsck-sans);font-size:10px;letter-spacing:.1em;color:var(--opsck-faint);}
.opsck-drawer-foot{padding:16px 22px 22px;border-top:1px solid var(--opsck-line);}
.opsck-drawer-cta{display:block;width:100%;box-sizing:border-box;text-align:center;background:var(--opsck-ink);color:#fff;font-weight:600;padding:16px;border-radius:0;text-decoration:none;letter-spacing:.02em;}
.opsck-drawer-cta:hover{background:var(--opsck-accent-h);}
.opsck-drawer-trust{margin:12px 0 0;text-align:center;font-family:var(--opsck-sans);font-size:9px;letter-spacing:.12em;color:var(--opsck-faint);}
body.opsck-drawer-open{overflow:hidden;}

/* ============================================================================
   CHECKOUT PAGE
   ============================================================================ */
.opsck-checkout-wrap{background:var(--opsck-bg);color:var(--opsck-ink);font-family:var(--opsck-sans);padding:44px 20px 80px;}
.opsck-checkout-inner{max-width:1120px;margin:0 auto;}
.opsck-notices{margin:0 0 18px;}
.opsck-co-head{margin:0 0 26px;}
.opsck-eyebrow{display:block;margin:0 0 10px;}
.opsck-co-head h1{font-family:var(--opsck-serif);font-weight:400;font-size:48px;line-height:1.05;margin:0;color:var(--opsck-ink);}
.opsck-co-sub{margin:12px 0 0;color:var(--opsck-muted);font-size:16px;}

/* step pills */
.opsck-steps-nav{display:flex;gap:8px;margin:0 0 24px;flex-wrap:wrap;}
.opsck-step-pill{font-family:var(--opsck-sans);font-weight:600;font-size:11px;letter-spacing:.1em;padding:8px 15px;border-radius:0;background:var(--opsck-soft);color:var(--opsck-faint);border:1px solid var(--opsck-line);}
.opsck-step-pill.is-active{background:var(--opsck-ink);color:#fff;border-color:var(--opsck-ink);}
.opsck-step-pill.is-done{background:#fff;color:var(--opsck-ink);border-color:var(--opsck-ink);}

/* grid */
.opsck-checkout-grid{display:grid;grid-template-columns:1fr 380px;gap:32px;align-items:start;}
.opsck-checkout-form{min-width:0;}

/* steps */
.opsck-step{display:none;background:var(--opsck-panel);border:1px solid var(--opsck-line);border-radius:0;padding:26px;}
.opsck-step.is-active{display:block;}
.opsck-step-title{font-family:var(--opsck-serif);font-weight:400;font-size:26px;margin:0 0 18px;line-height:1.15;color:var(--opsck-ink);}
.opsck-step-num{display:block;margin:0 0 8px;font-family:var(--opsck-sans);}
.opsck-step-lead{color:var(--opsck-muted);font-size:14px;margin:-8px 0 18px;}

/* fields */
.opsck-fields{display:grid;grid-template-columns:1fr 1fr;gap:16px;}
.opsck-field{display:flex;flex-direction:column;gap:6px;font-family:var(--opsck-sans);font-size:11px;font-weight:600;letter-spacing:.08em;color:var(--opsck-faint);}
.opsck-field.opsck-f-full{grid-column:1 / -1;}
.opsck-field .req{color:#d92d20;}
.opsck-field .opt{text-transform:none;letter-spacing:0;font-weight:400;}
.opsck-field input,.opsck-field select{
	font-family:var(--opsck-sans);font-size:15px;font-weight:400;color:var(--opsck-ink);letter-spacing:normal;
	padding:13px 14px;border:1px solid var(--opsck-line);border-radius:0;background:#fff;width:100%;box-sizing:border-box;
}
.opsck-field input:focus,.opsck-field select:focus{outline:none;border-color:var(--opsck-ink);}
.opsck-field input.opsck-invalid,.opsck-field select.opsck-invalid{border-color:#d92d20;}

/* shipping */
.opsck-ship-opt,.opsck-protect,.opsck-pay-method{display:flex;gap:12px;align-items:flex-start;border:1px solid var(--opsck-line);border-radius:0;padding:16px;margin:0 0 14px;cursor:pointer;}
.opsck-ship-opt.is-selected,.opsck-pay-method.is-selected{border-color:var(--opsck-ink);box-shadow:0 0 0 1px var(--opsck-ink) inset;}
.opsck-ship-opt input,.opsck-protect input,.opsck-pay-method input{margin-top:3px;width:18px;height:18px;accent-color:var(--opsck-ink);flex:none;}
.opsck-ship-main{flex:1;display:flex;flex-direction:column;align-items:flex-start;gap:3px;font-size:15px;}
.opsck-ship-main strong{font-weight:600;}
.opsck-ship-flat{background:var(--opsck-soft);padding:3px 8px;border-radius:0;border:1px solid var(--opsck-line);}
.opsck-ship-rate{font-weight:600;align-self:center;white-space:nowrap;}
.opsck-protect-main{display:flex;flex-direction:column;gap:6px;}
.opsck-protect-desc{font-size:13px;color:var(--opsck-muted);line-height:1.5;}

/* coupon */
.opsck-coupon{margin:22px 0 4px;}
.opsck-coupon-label{display:block;margin:0 0 8px;}
.opsck-coupon-row{display:flex;gap:10px;}
.opsck-coupon-row input{flex:1;font-family:var(--opsck-sans);font-size:15px;padding:13px 14px;border:1px solid var(--opsck-line);border-radius:0;background:#fff;}
.opsck-coupon-row input:focus{outline:none;border-color:var(--opsck-ink);}
.opsck-coupon-note{margin:8px 0 0;font-size:12px;color:var(--opsck-faint);}

/* payment methods */
.opsck-pay-method{flex-wrap:wrap;}
.opsck-pm-label{flex:1;font-size:15px;font-weight:600;}
.opsck-pm-label em{font-style:normal;color:var(--opsck-faint);font-weight:400;}
.opsck-pm-tag{align-self:center;}
.opsck-pm-note{flex-basis:100%;padding-left:30px;font-size:13px;color:var(--opsck-muted);line-height:1.5;}

/* crypto free-shipping incentive banner */
.opsck-crypto-freeship{display:flex;align-items:center;gap:8px;margin:0 0 14px;padding:12px 16px;border:1px solid var(--opsck-ink);background:#000;color:#fff;font-size:14px;border-radius:0;}
.opsck-crypto-freeship strong{color:#fff;}
.opsck-crypto-freeship:before{content:"\25CF";font-size:9px;line-height:1;}

/* crypto coin picker (BFF single-option pattern) */
.opsck-crypto-detail{margin:-6px 0 14px;padding:16px;border:1px solid var(--opsck-line);border-top:none;background:var(--opsck-soft);}
.opsck-coin-field{display:flex;flex-direction:column;gap:6px;font-family:var(--opsck-sans);font-size:11px;font-weight:600;letter-spacing:.08em;color:var(--opsck-faint);}
.opsck-coin-picker-label{text-transform:uppercase;}
.opsck-coin-select{font-family:var(--opsck-sans);font-size:15px;font-weight:400;letter-spacing:normal;color:var(--opsck-ink);padding:12px 14px;border:1px solid var(--opsck-line);border-radius:0;background:#fff;width:100%;max-width:340px;box-sizing:border-box;}
.opsck-coin-select:focus{outline:none;border-color:var(--opsck-ink);}
.opsck-coin-network{margin:12px 0 0;font-size:14px;color:var(--opsck-ink);}
.opsck-coin-network strong{font-weight:700;}
.opsck-coin-warn{margin:6px 0 0;font-size:12px;color:var(--opsck-muted);line-height:1.5;}

/* actions */
.opsck-step-actions{display:flex;gap:12px;justify-content:flex-end;margin-top:22px;}
.opsck-place-note{margin:14px 0 0;font-size:12px;color:var(--opsck-faint);line-height:1.5;}

/* summary — black panel, ALL text white/high-contrast */
.opsck-summary{position:sticky;top:20px;background:var(--opsck-ink);color:#fff;border-radius:0;padding:24px;}
.opsck-summary *{color:#fff;}
.opsck-summary-title{margin:0 0 18px;color:#fff;letter-spacing:.14em;}
.opsck-summary-items{list-style:none;margin:0 0 16px;padding:0 0 16px;border-bottom:1px solid rgba(255,255,255,.28);}
.opsck-summary-items li{display:flex;justify-content:space-between;gap:12px;padding:7px 0;font-size:14px;color:#fff;}
.opsck-si-name{color:#fff;}
.opsck-si-price{color:#fff;font-weight:600;}
.opsck-si-qty{color:#fff;margin-left:6px;}
.opsck-summary-rows .opsck-sr{display:flex;justify-content:space-between;padding:7px 0;font-size:14px;color:#fff;}
.opsck-summary-rows .opsck-sr span{color:#fff;}
.opsck-sr-discount,.opsck-sr-discount span{color:#fff;}
.opsck-sr-total{border-top:1px solid rgba(255,255,255,.28);margin-top:8px;padding-top:14px;font-size:18px;color:#fff;}
.opsck-sr-total strong{font-size:20px;color:#fff;}
.opsck-summary-note{margin:16px 0 0;font-size:12px;color:#fff;line-height:1.5;}
.opsck-ship-desc{display:block;font-size:13px;color:var(--opsck-muted);margin-top:3px;}

@media(max-width:900px){
	.opsck-checkout-grid{grid-template-columns:1fr;}
	.opsck-summary{position:static;order:-1;}
	.opsck-co-head h1{font-size:36px;}
}
@media(max-width:560px){
	.opsck-fields{grid-template-columns:1fr;}
}

/* ============================================================================
   THANK-YOU / ORDER-RECEIVED payment card
   ============================================================================ */
.opsck-pay-card{background:var(--opsck-panel);border:2px solid var(--opsck-ink);border-radius:0;padding:28px;margin:0 0 28px;font-family:var(--opsck-sans);color:var(--opsck-ink);}
.opsck-pay-title{font-family:var(--opsck-serif);font-weight:400;font-size:24px;margin:0 0 12px;color:var(--opsck-ink);}
.opsck-pay-lead{font-size:15px;line-height:1.6;color:var(--opsck-muted);margin:0 0 20px;}
.opsck-pay-rows{border-top:1px solid var(--opsck-line);}
.opsck-pay-row{display:flex;justify-content:space-between;gap:16px;padding:12px 0;border-bottom:1px solid var(--opsck-line);}
.opsck-pay-k{font-family:var(--opsck-sans);font-size:11px;font-weight:600;letter-spacing:.08em;text-transform:uppercase;color:var(--opsck-faint);}
.opsck-pay-v{font-size:15px;font-weight:600;text-align:right;}
.opsck-pay-amount{color:var(--opsck-ink);}
.opsck-pay-usd{color:var(--opsck-faint);font-weight:400;font-size:13px;}
.opsck-wallet-block{margin:18px 0 0;}
.opsck-wallet-copy{display:flex;gap:10px;align-items:center;margin-top:8px;flex-wrap:wrap;}
.opsck-wallet-addr{font-family:ui-monospace,Menlo,Consolas,monospace;font-size:14px;background:var(--opsck-soft);padding:11px 14px;border-radius:0;border:1px solid var(--opsck-line);word-break:break-all;flex:1;min-width:0;}
.opsck-copy-btn{background:var(--opsck-ink);color:#fff;border:1px solid var(--opsck-ink);border-radius:0;padding:11px 18px;cursor:pointer;font-family:var(--opsck-sans);font-weight:600;font-size:13px;}
.opsck-copy-btn:hover{background:var(--opsck-accent-h);}
.opsck-pay-instructions{margin:20px 0 0;font-size:14px;line-height:1.7;color:var(--opsck-muted);}
