/* ==========================================================================
   Qevora Technologies — design system
   Palette: forest #102821 · ivory #F5F0E8 · copper #B9794D · sage #7C8A70
            charcoal #1F2321 · stone #D8D2C7
   Type:    Fraunces (display) · Inter (UI/body)
   ========================================================================== */

:root {
	--qv-forest: #102821;
	--qv-forest-deep: #0B1D18;
	--qv-ivory: #F5F0E8;
	--qv-copper: #B9794D;
	--qv-copper-dark: #9A6039;
	--qv-sage: #7C8A70;
	--qv-charcoal: #1F2321;
	--qv-stone: #D8D2C7;
	--qv-white: #FFFFFF;
	--qv-error: #A63D2F;
	--qv-success: #4E6B4A;

	--qv-font-display: "Fraunces", Georgia, serif;
	--qv-font-body: "Inter", -apple-system, "Segoe UI", sans-serif;

	--qv-radius: 10px;
	--qv-radius-lg: 18px;
	--qv-shadow: 0 8px 28px rgba(16, 40, 33, 0.12);
	--qv-max: 1240px;
	--qv-ease: cubic-bezier(0.22, 1, 0.36, 1);
}

/* ---------- Base ---------- */
body {
	font-family: var(--qv-font-body);
	color: var(--qv-charcoal);
	background: var(--qv-ivory);
}

h1, h2, h3, .qv-hero h1 {
	font-family: var(--qv-font-display);
	font-weight: 600;
	color: var(--qv-forest);
	letter-spacing: -0.01em;
}

a { color: var(--qv-copper-dark); }
a:hover { color: var(--qv-copper); }

:focus-visible {
	outline: 3px solid var(--qv-copper);
	outline-offset: 2px;
	border-radius: 2px;
}

/* ---------- Buttons ---------- */
.qv-btn,
.button,
button.alt,
.woocommerce #respond input#submit,
.woocommerce a.button,
.woocommerce button.button,
.woocommerce input.button {
	display: inline-block;
	font-family: var(--qv-font-body);
	font-weight: 600;
	font-size: 1rem;
	line-height: 1;
	padding: 0.95em 1.6em;
	border-radius: var(--qv-radius);
	border: 2px solid transparent;
	cursor: pointer;
	text-decoration: none;
	transition: transform 0.15s var(--qv-ease), background 0.15s, color 0.15s, border-color 0.15s;
}

.qv-btn-primary,
.woocommerce a.button.alt,
.woocommerce button.button.alt,
.single_add_to_cart_button {
	background: var(--qv-copper);
	color: var(--qv-white) !important;
}
.qv-btn-primary:hover,
.woocommerce a.button.alt:hover,
.woocommerce button.button.alt:hover,
.single_add_to_cart_button:hover {
	background: var(--qv-copper-dark);
	transform: translateY(-1px);
}

.qv-btn-ghost {
	background: transparent;
	color: var(--qv-ivory) !important;
	border-color: var(--qv-ivory);
}
.qv-btn-ghost:hover { background: rgba(245, 240, 232, 0.12); }

.qv-btn-copper { background: var(--qv-forest); color: var(--qv-ivory) !important; }
.qv-btn-copper:hover { background: var(--qv-forest-deep); }

/* ---------- Header ---------- */
.site-header,
.storefront-sticky-add-to-cart {
	background: var(--qv-forest);
	color: var(--qv-ivory);
	position: sticky;
	top: 0;
	z-index: 900;
	box-shadow: 0 2px 12px rgba(11, 29, 24, 0.35);
}
.site-header a,
.site-header .site-title a,
.site-header .cart-contents,
.main-navigation ul li a {
	color: var(--qv-ivory);
}
.site-header a:hover,
.main-navigation ul li a:hover { color: var(--qv-copper); }

.site-search .widget_product_search input[type="search"] {
	background: var(--qv-white);
	border: 1px solid var(--qv-stone);
	border-radius: var(--qv-radius);
	padding: 0.7em 1em;
}

/* Mega menu panel (Storefront primary nav dropdowns) */
.main-navigation ul.menu ul {
	background: var(--qv-white);
	border-radius: 0 0 var(--qv-radius) var(--qv-radius);
	box-shadow: var(--qv-shadow);
	border-top: 3px solid var(--qv-copper);
}
.main-navigation ul.menu ul li a { color: var(--qv-charcoal); }
.main-navigation ul.menu ul li a:hover { color: var(--qv-copper-dark); background: var(--qv-ivory); }
.main-navigation .qv-mega > ul {
	display: grid !important;
	grid-template-columns: repeat(3, minmax(180px, 1fr));
	gap: 0.25rem 2rem;
	padding: 1.25rem 1.5rem;
	min-width: 640px;
}
.main-navigation .qv-mega > ul > li > a {
	font-weight: 600;
	color: var(--qv-forest);
	text-transform: uppercase;
	font-size: 0.78rem;
	letter-spacing: 0.06em;
}

/* ---------- Hero ---------- */
.qv-hero {
	display: grid;
	grid-template-columns: 1.05fr 0.95fr;
	align-items: center;
	gap: 2rem;
	background:
		radial-gradient(1000px 500px at 85% -10%, rgba(185, 121, 77, 0.22), transparent 60%),
		var(--qv-forest);
	color: var(--qv-ivory);
	padding: clamp(3rem, 7vw, 6rem) clamp(1.25rem, 5vw, 5rem);
}
.qv-hero h1 {
	color: var(--qv-ivory);
	font-size: clamp(2.4rem, 5.5vw, 4.2rem);
	line-height: 1.05;
	margin: 0.4em 0;
}
.qv-hero-sub { max-width: 34em; font-size: 1.12rem; color: var(--qv-stone); }
.qv-eyebrow {
	font-size: 0.8rem;
	letter-spacing: 0.14em;
	text-transform: uppercase;
	color: var(--qv-copper);
	font-weight: 600;
}
.qv-hero-actions { display: flex; flex-wrap: wrap; gap: 0.8rem; margin-top: 1.6rem; }
.qv-hero-media img {
	width: 100%;
	height: auto;
	border-radius: var(--qv-radius-lg);
	box-shadow: 0 24px 60px rgba(0, 0, 0, 0.35);
}

/* ---------- Trust bar ---------- */
.qv-trustbar {
	display: flex;
	flex-wrap: wrap;
	justify-content: center;
	gap: 0.5rem 2.2rem;
	list-style: none;
	margin: 0;
	padding: 0.9rem 1rem;
	background: var(--qv-forest-deep);
	color: var(--qv-stone);
	font-size: 0.85rem;
	letter-spacing: 0.04em;
}
.qv-trustbar li::before { content: "✓"; color: var(--qv-copper); margin-right: 0.45em; font-weight: 700; }

/* ---------- Sections ---------- */
.qv-section {
	max-width: var(--qv-max);
	margin: 0 auto;
	padding: clamp(2.5rem, 6vw, 4.5rem) 1.25rem;
}
.qv-section > h2 { font-size: clamp(1.6rem, 3vw, 2.3rem); margin-bottom: 1.2em; }
.qv-section-ivory { max-width: none; background: var(--qv-white); }
.qv-section-ivory > * { max-width: var(--qv-max); margin-left: auto; margin-right: auto; }

/* ---------- Category cards ---------- */
.qv-cat-grid {
	display: grid;
	grid-template-columns: repeat(auto-fill, minmax(220px, 1fr));
	gap: 1.1rem;
}
.qv-cat-card {
	position: relative;
	display: block;
	border-radius: var(--qv-radius);
	overflow: hidden;
	background: var(--qv-forest);
	aspect-ratio: 4 / 3;
	text-decoration: none;
	transition: transform 0.2s var(--qv-ease), box-shadow 0.2s;
}
.qv-cat-card:hover { transform: translateY(-4px); box-shadow: var(--qv-shadow); }
.qv-cat-card img { width: 100%; height: 100%; object-fit: cover; opacity: 0.85; }
.qv-cat-card span {
	position: absolute;
	inset: auto 0 0 0;
	padding: 0.8rem 1rem;
	background: linear-gradient(transparent, rgba(11, 29, 24, 0.92));
	color: var(--qv-ivory);
	font-weight: 600;
}

/* ---------- Condition badges & guide ---------- */
.qv-badge {
	display: inline-block;
	font-size: 0.72rem;
	font-weight: 700;
	letter-spacing: 0.05em;
	text-transform: uppercase;
	padding: 0.35em 0.75em;
	border-radius: 999px;
	color: var(--qv-white);
	background: var(--qv-charcoal);
}
.qv-badge.is-new       { background: var(--qv-forest); }
.qv-badge.is-openbox   { background: var(--qv-copper); }
.qv-badge.is-excellent { background: var(--qv-success); }
.qv-badge.is-good      { background: var(--qv-sage); }
.qv-badge.is-fair      { background: #8C8577; }

.qv-conditions {
	display: grid;
	grid-template-columns: repeat(auto-fit, minmax(200px, 1fr));
	gap: 1rem;
}
.qv-condition-card {
	background: var(--qv-ivory);
	border: 1px solid var(--qv-stone);
	border-radius: var(--qv-radius);
	padding: 1.2rem;
}
.qv-condition-card p { margin: 0.7em 0 0; font-size: 0.92rem; }

/* ---------- Why grid ---------- */
.qv-why { background: transparent; }
.qv-why-grid {
	display: grid;
	grid-template-columns: repeat(auto-fit, minmax(260px, 1fr));
	gap: 1.1rem;
}
.qv-why-card {
	background: var(--qv-white);
	border-left: 4px solid var(--qv-copper);
	border-radius: 0 var(--qv-radius) var(--qv-radius) 0;
	padding: 1.4rem 1.5rem;
	box-shadow: 0 2px 10px rgba(16, 40, 33, 0.06);
}
.qv-why-card h3 { font-size: 1.08rem; margin: 0 0 0.4em; }
.qv-why-card p { margin: 0; font-size: 0.95rem; color: #46504A; }

/* ---------- Promos ---------- */
.qv-testing-promo, .qv-b2b, .qv-sustain, .qv-newsletter { text-align: center; }
.qv-testing-promo { background: var(--qv-forest); max-width: none; color: var(--qv-stone); }
.qv-testing-promo h2 { color: var(--qv-ivory); }
.qv-testing-promo p { max-width: 42em; margin: 0 auto 1.4em; }
.qv-sustain { background: var(--qv-sage); max-width: none; color: var(--qv-forest-deep); }
.qv-sustain h2 { color: var(--qv-forest-deep); }
.qv-sustain p { max-width: 44em; margin: 0 auto; font-size: 1.05rem; }
.qv-savings { color: var(--qv-success); font-weight: 600; }

/* ---------- Testing checklist (product tab) ---------- */
.qv-checklist {
	columns: 2;
	column-gap: 3rem;
	list-style: none;
	padding: 0;
}
.qv-checklist li { padding: 0.35em 0; break-inside: avoid; }
.qv-checklist li::before { content: "✓"; color: var(--qv-success); font-weight: 700; margin-right: 0.5em; }
.qv-checklist-note { font-size: 0.85rem; color: #6B7069; }

/* ---------- WooCommerce polish ---------- */
.woocommerce ul.products li.product {
	background: var(--qv-white);
	border-radius: var(--qv-radius);
	padding: 0.9rem;
	transition: transform 0.18s var(--qv-ease), box-shadow 0.18s;
}
.woocommerce ul.products li.product:hover { transform: translateY(-3px); box-shadow: var(--qv-shadow); }
.woocommerce ul.products li.product .price { color: var(--qv-forest); font-weight: 600; }
.woocommerce ul.products li.product .price del { color: #8C8577; }
.onsale { background: var(--qv-copper) !important; }
.woocommerce div.product p.price { color: var(--qv-forest); font-size: 1.5rem; }
.woocommerce-breadcrumb { font-size: 0.82rem; }

/* Active filter tags (WooCommerce layered nav / filter plugin) */
.woocommerce-widget-layered-nav-filters ul li a,
.qv-filter-tag {
	display: inline-block;
	background: var(--qv-forest);
	color: var(--qv-ivory) !important;
	border-radius: 999px;
	padding: 0.3em 0.9em;
	font-size: 0.8rem;
	margin: 0 0.35em 0.35em 0;
}

/* ---------- Footer ---------- */
.site-footer {
	background: var(--qv-forest-deep);
	color: var(--qv-stone);
}
.site-footer a { color: var(--qv-stone); }
.site-footer a:hover { color: var(--qv-copper); }
.site-footer h3, .site-footer .widget-title { color: var(--qv-ivory); font-family: var(--qv-font-body); font-size: 0.85rem; text-transform: uppercase; letter-spacing: 0.08em; }
.qv-footer-tagline {
	text-align: center;
	font-family: var(--qv-font-display);
	color: var(--qv-ivory);
	font-size: 1.1rem;
	padding: 1.2rem 1rem 0.4rem;
}

/* ---------- Reveal animation ---------- */
[data-reveal] { opacity: 0; transform: translateY(18px); transition: opacity 0.6s var(--qv-ease), transform 0.6s var(--qv-ease); }
[data-reveal].is-visible { opacity: 1; transform: none; }

@media (prefers-reduced-motion: reduce) {
	*, *::before, *::after { animation: none !important; transition: none !important; }
	[data-reveal] { opacity: 1; transform: none; }
}

/* ---------- Responsive ---------- */
@media (max-width: 900px) {
	.qv-hero { grid-template-columns: 1fr; }
	.qv-hero-media { order: -1; }
	.qv-checklist { columns: 1; }
	.main-navigation .qv-mega > ul { grid-template-columns: 1fr; min-width: 0; }
}
@media (max-width: 560px) {
	.qv-trustbar { justify-content: flex-start; gap: 0.4rem 1.2rem; }
	.qv-hero-actions .qv-btn { width: 100%; text-align: center; }
	.woocommerce table.shop_table_responsive tr td { font-size: 0.92rem; }
}
