/*
Theme Name: NZM Laboratories
Theme URI: https://nzmlab.com/
Author: NZM Laboratories
Description: WooCommerce storefront theme for NZM Laboratories — research-grade peptides, EU-synthesised, Janoshik-verified. Converted faithfully from the original Astro design to a full WooCommerce theme (shop, product, cart, checkout, research blog).
Version: 1.0.1
Requires at least: 6.5
Tested up to: 7.0
Requires PHP: 8.0
License: GNU General Public License v2 or later
License URI: http://www.gnu.org/licenses/gpl-2.0.html
Text Domain: nzm
Tags: e-commerce, woocommerce, custom-menu, featured-images, blog
WC requires at least: 8.0
WC tested up to: 10.9
*/

/*
 * The full visual system lives in assets/css/ (layout.css, home.css, product.css,
 * shop.css, cart.css, checkout.css, science.css, points.css, finalcta.css) and is
 * enqueued from functions.php. This file carries the theme header plus small
 * WordPress-environment overrides that the vendored design CSS can't know about.
 */

/* --------------------------------------------------------------------------
 * Admin-bar offset for the homepage's absolute nav.
 *
 * On the homepage the nav is `position:absolute; top:36px` (transparent bar
 * floating over the hero, sitting just under the 36px utility bar). When the
 * WordPress admin bar is visible it adds `html{margin-top:32px}`, which pushes
 * the in-flow utility bar down but NOT the absolute nav — so the nav overlaps
 * the utility bar. Push the absolute nav down by the admin-bar height to match.
 * (Selectors use two body classes on the same <body>: .admin-bar + .home.)
 * ----------------------------------------------------------------------- */
body.admin-bar.home .nav {
	top: calc( 36px + 32px );
}

@media screen and ( max-width: 782px ) {
	body.admin-bar.home .nav {
		top: calc( 36px + 46px );
	}
}

/* --------------------------------------------------------------------------
 * Tier Pricing Table — restyle the plugin's quantity "blocks" (buttons) on the
 * product buy box to match the original design's .qty-preset chips: quantity on
 * top (bold), price + discount below, active tier filled ink. Scoped to .info
 * so it only affects the PDP buy box. !important beats the plugin's main.css.
 * ----------------------------------------------------------------------- */
.info .tiered-pricing-wrapper,
.info .tiered-pricing-dynamic-price-wrapper {
	border: 0 !important;
	padding: 0 !important;
	margin: 14px 0 0 !important;
	background: none !important;
	box-shadow: none !important;
}
.info .tiered-pricing-blocks {
	display: flex !important;
	flex-wrap: wrap;
	gap: 8px !important;
	border: 0 !important;
	padding: 12px 0 0 !important;
	background: none !important;
}
.info .tiered-pricing-blocks .tiered-pricing-block {
	position: relative;
	display: inline-flex !important;
	flex-direction: column;
	align-items: center;
	justify-content: center;
	gap: 3px;
	min-width: 88px;
	margin: 0 !important;
	padding: 9px 16px !important;
	background: var( --white, #fff ) !important;
	border: 1px solid var( --line, #d4d4d4 ) !important;
	border-radius: 5px !important;
	cursor: pointer;
	text-align: center;
	font-family: "JetBrains Mono", monospace !important;
	color: var( --ink, #0a0a0a ) !important;
	transition: border-color .2s ease, color .2s ease, background-color .2s ease;
}
/* "Most popular" badge on the first discount tier (qty 3), like the source. */
.info .tiered-pricing-blocks .tiered-pricing-block[data-tiered-quantity="3"] {
	border-color: var( --ink, #0a0a0a ) !important;
}
.info .tiered-pricing-blocks .tiered-pricing-block[data-tiered-quantity="3"]::after {
	content: "Most popular";
	position: absolute;
	top: -9px;
	left: 50%;
	transform: translateX( -50% );
	white-space: nowrap;
	background: var( --ink, #0a0a0a );
	color: var( --white, #fff );
	font-size: 8px;
	font-weight: 600;
	text-transform: uppercase;
	letter-spacing: .12em;
	padding: 2px 8px;
	border-radius: 999px;
	line-height: 1.4;
}
.info .tiered-pricing-blocks .tiered-pricing-block[data-tiered-quantity="3"].tiered-pricing--active::after {
	background: var( --white, #fff );
	color: var( --ink, #0a0a0a );
}
.info .tiered-pricing-blocks .tiered-pricing-block:hover {
	border-color: var( --ink, #0a0a0a ) !important;
}
.info .tiered-pricing-blocks .tiered-pricing-block.tiered-pricing--active {
	background: var( --ink, #0a0a0a ) !important;
	border-color: var( --ink, #0a0a0a ) !important;
	color: var( --white, #fff ) !important;
}
.info .tiered-pricing-block__quantity {
	order: -1;
	font-size: 12px !important;
	font-weight: 600 !important;
	text-transform: uppercase;
	letter-spacing: .06em;
	line-height: 1.1 !important;
	color: inherit !important;
}
.info .tiered-pricing-block__price {
	display: flex !important;
	align-items: baseline;
	gap: 4px;
	margin: 0 !important;
	font-size: 10px !important;
	letter-spacing: .04em;
	line-height: 1.1 !important;
	color: var( --ink-soft, #1c1c1c ) !important;
}
.info .tiered-pricing-block.tiered-pricing--active .tiered-pricing-block__price,
.info .tiered-pricing-block.tiered-pricing--active .tiered-pricing-block__price-discount {
	color: rgba( 255, 255, 255, .7 ) !important;
}
.info .tiered-pricing-block__price .woocommerce-Price-amount {
	font-size: 11px !important;
	font-weight: 600;
	color: inherit !important;
}
.info .tiered-pricing-block__price-discount {
	font-size: 10px !important;
	color: inherit !important;
}


/* --------------------------------------------------------------------------
 * Request-a-compound (bench-req) section — homepage + shop.
 * The source shipped these rules as an inline <style> in the page <head> (not in
 * any bundled CSS file), so they were missing from the theme. Restored here.
 * ----------------------------------------------------------------------- */
.bench-req{padding:96px 0;background:var(--bg-soft, #f7f5f0)}.bench-req__grid{display:grid;grid-template-columns:5fr 7fr;gap:64px;align-items:start;background:var(--white, #ffffff);border:1px solid var(--ink, #1a1a1a);border-radius:10px;padding:56px}.bench-req__icon{display:block;color:var(--ink, #1a1a1a);margin-bottom:20px}.bench-req__intro .sec__eyebrow{margin-bottom:18px}.bench-req__intro .sec__title{margin-bottom:24px}.bench-req__lede{font-size:17px;line-height:1.55;color:var(--ink, #1a1a1a);margin:0 0 16px}.bench-req__cred{font-size:14px;line-height:1.55;color:var(--ink-soft, #5a5a5a);margin:0 0 24px}.bench-req__form{display:flex;flex-direction:column;gap:16px;background:var(--white, #ffffff);border:1px solid var(--border, #e5e1d8);padding:32px}.bench-req__row{display:grid;grid-template-columns:1fr 1fr;gap:16px}.bench-req__field{display:flex;flex-direction:column;gap:6px}.bench-req__label{font-family:var(--font-mono, monospace);font-size:11px;letter-spacing:.08em;text-transform:uppercase;color:var(--ink-soft, #5a5a5a)}.bench-req__field input,.bench-req__field textarea{font-family:inherit;font-size:15px;line-height:1.4;color:var(--ink, #1a1a1a);padding:10px 12px;background:var(--bg-soft, #f7f5f0);border:1px solid var(--border, #e5e1d8);border-radius:0;outline:none;transition:border-color .15s ease}.bench-req__field input:focus,.bench-req__field textarea:focus{border-color:var(--ink, #1a1a1a)}.bench-req__field textarea{resize:vertical;min-height:88px}.bench-req__check{display:flex;align-items:center;gap:10px;font-size:14px;line-height:1.4;color:var(--ink, #1a1a1a);cursor:pointer;user-select:none;margin-top:4px}.bench-req__check input{width:16px;height:16px;accent-color:var(--ink, #1a1a1a)}.bench-req__submit{align-self:flex-start;margin-top:8px}.bench-req__disclaimer{font-size:12px;line-height:1.5;color:var(--ink-soft, #5a5a5a);margin:8px 0 0;padding-top:16px;border-top:1px solid var(--border, #e5e1d8)}.bench-req__thanks{font-size:14px;line-height:1.5;color:var(--accent, #0a0a0a);margin:4px 0 0}@media(max-width:880px){.bench-req{padding:64px 0}.bench-req__grid{grid-template-columns:1fr;gap:40px}.bench-req__form{padding:24px}.bench-req__row{grid-template-columns:1fr}}
