/**
 * Star - Multipurpose WooCommerce Theme — core stylesheet.
 *
 * Single file by design (see README "Performance" section) — no CSS
 * framework, no per-component file splitting that would need a build
 * step. Organized top-to-bottom: tokens > base > layout > header/footer
 * > homepage sections > blog > WooCommerce > responsive overrides live
 * inline near what they affect (mobile-first: base rules are mobile,
 * @media min-width blocks add tablet/desktop).
 *
 * Every color/font value is a CSS custom property so a client reskin
 * (Customizer > Brand Colors / Typography) never requires touching
 * this file — see inc/customizer-css.php for how the vars are set.
 *
 * @package Star_MP
 */

/* =====================================================================
   1. DESIGN TOKENS (fallback defaults — inc/customizer-css.php prints
      the live Customizer values later in <head>, which override these
      via normal CSS cascade since they share the same :root specificity)
   ===================================================================== */
:root {
	--color-primary: #1a1a2e;
	--color-accent: #ff6b35;
	--color-text: #222222;
	--color-bg: #ffffff;
	--color-header-bg: #ffffff;
	--color-footer-bg: #1a1a2e;
	--font-heading: -apple-system, BlinkMacSystemFont, 'Segoe UI', Roboto, sans-serif;
	--font-body: -apple-system, BlinkMacSystemFont, 'Segoe UI', Roboto, Helvetica, Arial, sans-serif;

	/* Derived / structural tokens — not Customizer-controlled, kept
	   here so spacing/radius/shadow stay consistent sitewide. */
	--space-xs: 0.5rem;
	--space-sm: 1rem;
	--space-md: 1.5rem;
	--space-lg: 2.5rem;
	--space-xl: 4rem;
	--radius: 6px;
	--radius-lg: 12px;
	--shadow-sm: 0 1px 3px rgba(0, 0, 0, 0.08);
	--shadow-md: 0 4px 16px rgba(0, 0, 0, 0.1);
	--container-width: 1280px;
	--header-height: 76px;
	--border-color: #e5e5e5;
	--color-success: #1e8e3e;
	--color-error: #d93025;
	--transition: 0.2s ease;
}

/* =====================================================================
   2. RESET / BASE
   ===================================================================== */
*,
*::before,
*::after {
	box-sizing: border-box;
}

html {
	-webkit-text-size-adjust: 100%;
	scroll-behavior: smooth;
}

body {
	margin: 0;
	font-family: var(--font-body);
	font-size: 16px;
	line-height: 1.6;
	color: var(--color-text);
	background: var(--color-bg);
}

h1, h2, h3, h4, h5, h6 {
	font-family: var(--font-heading);
	line-height: 1.25;
	margin: 0 0 var(--space-sm);
	color: var(--color-primary);
	font-weight: 600;
}

p {
	margin: 0 0 var(--space-sm);
}

a {
	color: var(--color-primary);
	text-decoration: none;
	transition: color var(--transition);
}

a:hover {
	color: var(--color-accent);
}

img {
	max-width: 100%;
	height: auto;
	display: block;
}

ul, ol {
	margin: 0;
	padding: 0;
	list-style: none;
}

button, input, select, textarea {
	font-family: inherit;
	font-size: 1rem;
}

button {
	cursor: pointer;
}

table {
	width: 100%;
	border-collapse: collapse;
}

/* Screen-reader-only text (skip link, form labels) */
.screen-reader-text {
	position: absolute !important;
	width: 1px;
	height: 1px;
	padding: 0;
	margin: -1px;
	overflow: hidden;
	clip: rect(0, 0, 0, 0);
	white-space: nowrap;
	border: 0;
}

.skip-link {
	position: fixed;
	top: -100px;
	left: 0;
	z-index: 10000;
	background: var(--color-primary);
	color: #fff;
	padding: var(--space-xs) var(--space-sm);
	transition: top var(--transition);
}

.skip-link:focus {
	top: 0;
	color: #fff;
}

:focus-visible {
	outline: 2px solid var(--color-accent);
	outline-offset: 2px;
}

/* =====================================================================
   3. LAYOUT UTILITIES
   ===================================================================== */
.container {
	width: 100%;
	max-width: var(--container-width);
	margin-inline: auto;
	padding-inline: var(--space-sm);
}

.section-heading {
	font-size: 1.75rem;
	text-align: center;
	margin-bottom: var(--space-lg);
}

/* Buttons */
.btn {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	gap: 0.4em;
	padding: 0.75em 1.6em;
	border-radius: var(--radius);
	border: 1px solid transparent;
	font-weight: 600;
	font-size: 0.95rem;
	line-height: 1.2;
	cursor: pointer;
	transition: background var(--transition), color var(--transition), border-color var(--transition), transform var(--transition);
	text-align: center;
}

.btn:hover {
	transform: translateY(-1px);
}

.btn-accent,
.woocommerce a.button,
.woocommerce button.button,
.woocommerce input.button,
.woocommerce #respond input#submit,
.woocommerce-checkout #place_order,
#newsletter-email + .newsletter-submit {
	background: var(--color-accent);
	color: #fff;
	border-color: var(--color-accent);
}

.btn-accent:hover,
.woocommerce a.button:hover,
.woocommerce button.button:hover,
.woocommerce input.button:hover,
.woocommerce #respond input#submit:hover,
.woocommerce-checkout #place_order:hover {
	filter: brightness(0.9);
	color: #fff;
}

.btn-outline {
	background: transparent;
	color: var(--color-primary);
	border-color: var(--border-color);
}

.btn-outline:hover {
	border-color: var(--color-accent);
	color: var(--color-accent);
}

.btn-outline-dark {
	background: transparent;
	color: var(--color-primary);
	border-color: var(--color-primary);
}

.btn-outline-light {
	background: transparent;
	color: #fff;
	border-color: rgba(255, 255, 255, 0.7);
}

.btn-outline-light:hover {
	background: rgba(255, 255, 255, 0.15);
	color: #fff;
}

.btn-lg {
	padding: 0.9em 2em;
	font-size: 1.05rem;
}

/* =====================================================================
   4. HEADER
   ===================================================================== */
.header-topbar {
	background: var(--color-primary);
	color: #fff;
	font-size: 0.85rem;
	padding: 6px 0;
}

.site-header {
	background: var(--color-header-bg);
	border-bottom: 1px solid var(--border-color);
	position: relative;
	z-index: 100;
}

.site-header.is-sticky-enabled.is-stuck {
	position: sticky;
	top: 0;
	box-shadow: var(--shadow-sm);
	animation: star-mp-slide-down 0.25s ease;
}

@keyframes star-mp-slide-down {
	from { transform: translateY(-100%); }
	to { transform: translateY(0); }
}

.header-inner {
	display: flex;
	align-items: center;
	justify-content: space-between;
	gap: var(--space-md);
	min-height: var(--header-height);
}

.site-branding img,
.site-branding .custom-logo {
	max-height: 48px;
	width: auto;
}

.site-title-link {
	font-family: var(--font-heading);
	font-size: 1.4rem;
	font-weight: 700;
	color: var(--color-primary);
}

.mobile-menu-toggle {
	background: none;
	border: none;
	padding: 4px;
	color: var(--color-primary);
	display: flex;
}

.primary-nav {
	display: none;
}

.primary-menu {
	display: flex;
	gap: var(--space-md);
}

.primary-menu > li {
	position: relative;
}

.primary-menu > li > a {
	display: block;
	padding: 0.5em 0;
	font-weight: 500;
	color: var(--color-primary);
}

.primary-menu .sub-menu {
	position: absolute;
	top: 100%;
	left: 0;
	min-width: 200px;
	background: var(--color-bg);
	box-shadow: var(--shadow-md);
	border-radius: var(--radius);
	padding: var(--space-xs) 0;
	opacity: 0;
	visibility: hidden;
	transform: translateY(6px);
	transition: opacity var(--transition), transform var(--transition), visibility var(--transition);
	z-index: 50;
}

.primary-menu li:hover > .sub-menu,
.primary-menu li:focus-within > .sub-menu {
	opacity: 1;
	visibility: visible;
	transform: translateY(0);
}

.primary-menu .sub-menu a {
	display: block;
	padding: 0.5em var(--space-sm);
	color: var(--color-text);
}

.primary-menu .sub-menu a:hover {
	background: rgba(0, 0, 0, 0.04);
	color: var(--color-accent);
}

.header-actions {
	display: flex;
	align-items: center;
	gap: var(--space-sm);
}

.header-search-toggle,
.header-cart-link,
.header-wishlist-link,
.header-compare-link,
.header-account-link {
	background: none;
	border: none;
	color: var(--color-primary);
	display: inline-flex;
	align-items: center;
	gap: 4px;
	position: relative;
}

.header-account-link {
	font-size: 0.9rem;
	font-weight: 500;
}

.cart-count {
	position: absolute;
	top: -8px;
	right: -10px;
	background: var(--color-accent);
	color: #fff;
	font-size: 0.65rem;
	font-weight: 700;
	min-width: 17px;
	height: 17px;
	border-radius: 50%;
	display: flex;
	align-items: center;
	justify-content: center;
	padding: 0 3px;
}

.header-search-panel {
	background: var(--color-header-bg);
	border-top: 1px solid var(--border-color);
	padding: var(--space-md) 0;
}

.header-search-panel[hidden] {
	display: none;
}

.header-search-panel .woocommerce-product-search,
.header-search-panel .search-form {
	display: flex;
	gap: var(--space-xs);
}

.header-search-panel input[type='search'],
.header-search-panel input[type='text'] {
	flex: 1;
	padding: 0.6em 1em;
	border: 1px solid var(--border-color);
	border-radius: var(--radius);
}

.mobile-nav {
	background: var(--color-header-bg);
	border-top: 1px solid var(--border-color);
}

.mobile-nav[hidden] {
	display: none;
}

.mobile-menu > li > a {
	display: block;
	padding: 0.9em var(--space-sm);
	border-bottom: 1px solid var(--border-color);
	color: var(--color-primary);
	font-weight: 500;
}

.mobile-menu .sub-menu a {
	padding-left: calc(var(--space-sm) * 2);
	font-size: 0.9rem;
}

body.mobile-nav-open {
	overflow: hidden;
}

@media (min-width: 1024px) {
	.mobile-menu-toggle {
		display: none;
	}
	.primary-nav {
		display: block;
	}
	.mobile-nav {
		display: none !important;
	}
}

/* Breadcrumbs */
.star-multipurpose-breadcrumbs {
	font-size: 0.85rem;
	color: #777;
	margin: var(--space-md) 0 var(--space-sm);
}

.star-multipurpose-breadcrumbs a {
	color: #777;
}

.star-multipurpose-breadcrumbs a:hover {
	color: var(--color-accent);
}

.star-multipurpose-breadcrumbs .current {
	color: var(--color-text);
}

/* =====================================================================
   5. FOOTER
   ===================================================================== */
.site-footer {
	background: var(--color-footer-bg);
	color: rgba(255, 255, 255, 0.85);
	margin-top: var(--space-xl);
}

.footer-columns {
	display: grid;
	grid-template-columns: 1fr;
	gap: var(--space-lg);
	padding-block: var(--space-xl);
}

.footer-columns .widget-title {
	color: #fff;
	font-size: 1rem;
	margin-bottom: var(--space-sm);
}

.footer-columns a {
	color: rgba(255, 255, 255, 0.75);
}

.footer-columns a:hover {
	color: #fff;
}

.footer-bottom {
	border-top: 1px solid rgba(255, 255, 255, 0.12);
	padding-block: var(--space-sm);
}

.footer-bottom-inner {
	display: flex;
	flex-direction: column;
	gap: var(--space-xs);
	align-items: center;
	text-align: center;
	font-size: 0.85rem;
}

.footer-copyright {
	margin: 0;
}

@media (min-width: 768px) {
	.footer-columns {
		grid-template-columns: repeat(3, 1fr);
	}
	.footer-bottom-inner {
		flex-direction: row;
		justify-content: space-between;
		text-align: left;
	}
}

/* =====================================================================
   6. HOMEPAGE SECTIONS
   ===================================================================== */

/* --- Hero Banner --- */
.hero-banner {
	position: relative;
	background-size: cover;
	background-position: center;
	background-color: var(--color-primary);
	color: #fff;
	padding: var(--space-xl) 0;
	min-height: 360px;
	display: flex;
	align-items: center;
}

.hero-banner-overlay {
	position: absolute;
	inset: 0;
	background: linear-gradient(90deg, rgba(0, 0, 0, 0.55) 0%, rgba(0, 0, 0, 0.25) 100%);
}

.hero-banner-inner {
	position: relative;
	z-index: 1;
	max-width: 640px;
}

.hero-heading {
	color: #fff;
	font-size: clamp(1.75rem, 5vw, 3rem);
	margin-bottom: var(--space-sm);
}

.hero-subheading {
	font-size: 1.1rem;
	margin-bottom: var(--space-md);
	color: rgba(255, 255, 255, 0.9);
}

.hero-actions {
	display: flex;
	flex-wrap: wrap;
	gap: var(--space-sm);
}

/* --- USP / Trust Icons Row --- */
.usp-row {
	background: rgba(0, 0, 0, 0.02);
	border-bottom: 1px solid var(--border-color);
}

.usp-row-inner {
	display: grid;
	grid-template-columns: 1fr;
	gap: var(--space-md);
	padding-block: var(--space-lg);
}

.usp-item {
	display: flex;
	align-items: center;
	gap: var(--space-sm);
	text-align: left;
}

.usp-icon {
	color: var(--color-accent);
	flex-shrink: 0;
}

.usp-copy {
	display: flex;
	flex-direction: column;
}

.usp-title {
	font-weight: 600;
	color: var(--color-primary);
}

.usp-text {
	font-size: 0.85rem;
	color: #777;
}

@media (min-width: 768px) {
	.usp-row-inner {
		grid-template-columns: repeat(2, 1fr);
	}
}

@media (min-width: 1024px) {
	.usp-row-inner {
		grid-template-columns: repeat(4, 1fr);
	}
}

/* --- Featured Categories Grid --- */
.featured-categories {
	padding-block: var(--space-xl);
}

.category-grid {
	display: grid;
	grid-template-columns: repeat(2, 1fr);
	gap: var(--space-md);
}

.category-card {
	display: flex;
	flex-direction: column;
	border-radius: var(--radius-lg);
	overflow: hidden;
	background: #f7f7f7;
	transition: transform var(--transition), box-shadow var(--transition);
}

.category-card:hover {
	transform: translateY(-4px);
	box-shadow: var(--shadow-md);
}

.category-card-image {
	aspect-ratio: 1 / 1;
	background: #eee;
	overflow: hidden;
}

.category-card-image img {
	width: 100%;
	height: 100%;
	object-fit: cover;
}

.category-card-placeholder {
	display: block;
	width: 100%;
	height: 100%;
	background: linear-gradient(135deg, var(--color-primary), var(--color-accent));
	opacity: 0.15;
}

.category-card-name {
	font-weight: 600;
	color: var(--color-primary);
	padding: var(--space-sm) var(--space-sm) 0;
}

.category-card-count {
	font-size: 0.8rem;
	color: #888;
	padding: 0 var(--space-sm) var(--space-sm);
}

@media (min-width: 768px) {
	.category-grid {
		grid-template-columns: repeat(3, 1fr);
	}
}

@media (min-width: 1024px) {
	.category-grid[data-count='4'],
	.category-grid[data-count='8'] { grid-template-columns: repeat(4, 1fr); }
	.category-grid[data-count='5'],
	.category-grid[data-count='6'] { grid-template-columns: repeat(3, 1fr); }
}

/* --- Featured Products / Related Products Carousels --- */
.featured-products,
.related-products {
	padding-block: var(--space-xl);
}

.related-products {
	background: rgba(0, 0, 0, 0.015);
}

.featured-products-swiper,
.related-products-swiper {
	padding-bottom: var(--space-sm);
	position: relative;
}

.featured-products-swiper .swiper-button-next,
.featured-products-swiper .swiper-button-prev,
.related-products-swiper .swiper-button-next,
.related-products-swiper .swiper-button-prev {
	color: var(--color-primary);
	background: var(--color-bg);
	width: 40px;
	height: 40px;
	border-radius: 50%;
	box-shadow: var(--shadow-sm);
}

.featured-products-swiper .swiper-button-next::after,
.featured-products-swiper .swiper-button-prev::after,
.related-products-swiper .swiper-button-next::after,
.related-products-swiper .swiper-button-prev::after {
	font-size: 14px;
	font-weight: 700;
}

/* --- Testimonials --- */
.testimonials {
	padding-block: var(--space-xl);
	background: rgba(0, 0, 0, 0.015);
}

.testimonials-grid {
	display: grid;
	grid-template-columns: 1fr;
	gap: var(--space-md);
}

.testimonial-card {
	background: var(--color-bg);
	border: 1px solid var(--border-color);
	border-radius: var(--radius-lg);
	padding: var(--space-md);
	margin: 0;
}

.testimonial-quote {
	font-style: italic;
	color: var(--color-text);
	margin: var(--space-xs) 0 var(--space-sm);
}

.testimonial-author {
	display: flex;
	align-items: center;
	gap: var(--space-xs);
}

.testimonial-avatar img {
	width: 44px;
	height: 44px;
	border-radius: 50%;
	object-fit: cover;
}

.testimonial-author-info {
	display: flex;
	flex-direction: column;
}

.testimonial-name {
	font-weight: 600;
	font-size: 0.9rem;
}

.testimonial-role {
	font-size: 0.8rem;
	color: #888;
}

.star-multipurpose-stars {
	display: inline-flex;
	gap: 2px;
	margin-bottom: 4px;
}

.star.is-empty svg {
	color: #ddd;
}

.star.is-filled svg {
	color: #f5a623;
}

@media (min-width: 768px) {
	.testimonials-grid {
		grid-template-columns: repeat(2, 1fr);
	}
}

@media (min-width: 1024px) {
	.testimonials-grid {
		grid-template-columns: repeat(3, 1fr);
	}
}

/* --- Promo Banner --- */
.promo-banner {
	padding-block: var(--space-xl);
}

.promo-banner-inner {
	display: grid;
	grid-template-columns: 1fr;
	gap: var(--space-lg);
	align-items: center;
	background: rgba(0, 0, 0, 0.02);
	border-radius: var(--radius-lg);
	overflow: hidden;
}

.promo-banner-image img {
	width: 100%;
	height: 100%;
	object-fit: cover;
	display: block;
	min-height: 260px;
}

.promo-banner-content {
	padding: var(--space-lg);
}

.promo-banner-eyebrow {
	display: block;
	text-transform: uppercase;
	letter-spacing: 0.08em;
	font-size: 0.75rem;
	font-weight: 600;
	color: var(--color-accent);
	margin-bottom: var(--space-xs);
}

.promo-banner-heading {
	font-size: 1.75rem;
	margin-bottom: var(--space-xs);
}

.promo-banner-subheading {
	color: #666;
	margin-bottom: var(--space-sm);
}

.promo-banner-features {
	margin-bottom: var(--space-md);
}

.promo-banner-features li {
	display: flex;
	align-items: center;
	gap: 8px;
	padding: 4px 0;
	color: var(--color-text);
	font-size: 0.9rem;
}

.promo-banner-features svg {
	color: var(--color-accent);
	flex-shrink: 0;
}

@media (min-width: 768px) {
	.promo-banner-inner {
		grid-template-columns: 1fr 1fr;
	}
	.promo-banner-content {
		padding: var(--space-xl);
	}
}

/* --- Newsletter Signup --- */
.newsletter-signup {
	background: var(--color-primary);
	color: #fff;
	padding-block: var(--space-xl);
}

.newsletter-signup-inner {
	display: flex;
	flex-direction: column;
	gap: var(--space-md);
	align-items: center;
	text-align: center;
}

.newsletter-signup .section-heading {
	color: #fff;
}

.newsletter-text {
	color: rgba(255, 255, 255, 0.85);
}

.newsletter-form {
	display: flex;
	width: 100%;
	max-width: 460px;
	gap: var(--space-xs);
}

.newsletter-email-input {
	flex: 1;
	padding: 0.8em 1em;
	border-radius: var(--radius);
	border: none;
}

.star-multipurpose-honeypot {
	position: absolute;
	left: -9999px;
}

@media (min-width: 768px) {
	.newsletter-signup-inner {
		flex-direction: row;
		justify-content: space-between;
		text-align: left;
	}
	.newsletter-signup .section-heading {
		margin-bottom: 4px;
	}
}

/* =====================================================================
   7. BLOG
   ===================================================================== */
.post-grid {
	display: grid;
	grid-template-columns: 1fr;
	gap: var(--space-lg);
	padding-block: var(--space-lg);
}

.post-card {
	border: 1px solid var(--border-color);
	border-radius: var(--radius-lg);
	overflow: hidden;
}

.post-card-thumb img {
	width: 100%;
	aspect-ratio: 16 / 9;
	object-fit: cover;
}

.post-card-body {
	padding: var(--space-md);
}

.posted-on {
	font-size: 0.8rem;
	color: #888;
}

@media (min-width: 768px) {
	.post-grid {
		grid-template-columns: repeat(2, 1fr);
	}
}

@media (min-width: 1024px) {
	.post-grid {
		grid-template-columns: repeat(3, 1fr);
	}
}

.page-header {
	padding-block: var(--space-md);
}

/* --- Search Results --- */
.search-results-header {
	margin-bottom: var(--space-lg);
}

.search-results-header .page-title span {
	color: var(--color-accent);
}

.search-results-count {
	color: #888;
	font-size: 0.9rem;
}

.search-no-results {
	text-align: center;
	padding: var(--space-xl) 0;
}

.search-no-results .woocommerce-product-search,
.search-no-results .search-form {
	display: flex;
	justify-content: center;
	gap: var(--space-xs);
	margin-top: var(--space-md);
}

.search-no-results input[type="search"],
.search-no-results input[type="text"] {
	max-width: 320px;
	padding: 0.7em 1em;
	border: 1px solid var(--border-color);
	border-radius: var(--radius);
}

/* --- Single Post --- */
.single-post-layout {
	display: block;
	padding-block: var(--space-lg);
}

.single-post-header {
	margin-bottom: var(--space-md);
}

.single-post-title {
	font-size: clamp(1.5rem, 4vw, 2.25rem);
}

.single-post-meta {
	display: flex;
	gap: var(--space-sm);
	font-size: 0.85rem;
	color: #888;
}

.single-post-thumb img {
	width: 100%;
	border-radius: var(--radius-lg);
	margin-bottom: var(--space-md);
}

.single-post-entry-content {
	line-height: 1.75;
}

.single-post-entry-content img {
	border-radius: var(--radius);
}

.single-post-tags {
	margin-top: var(--space-md);
	font-size: 0.85rem;
}

.single-post-tags a {
	display: inline-block;
	padding: 2px 10px;
	border: 1px solid var(--border-color);
	border-radius: 999px;
	margin: 2px;
}

.single-post-author-box {
	display: flex;
	gap: var(--space-sm);
	margin-top: var(--space-lg);
	padding: var(--space-md);
	border: 1px solid var(--border-color);
	border-radius: var(--radius-lg);
}

.single-post-author-box img {
	border-radius: 50%;
	flex-shrink: 0;
}

.author-box-name {
	font-weight: 600;
	display: block;
	margin-bottom: 4px;
}

.author-box-bio {
	font-size: 0.9rem;
	color: #777;
	margin: 0;
}

/* --- Comments --- */
.comments-area {
	margin-top: var(--space-lg);
}

.comments-title {
	font-size: 1.25rem;
}

.comment-list {
	margin-bottom: var(--space-md);
}

.comment-list .comment {
	display: flex;
	gap: var(--space-sm);
	padding: var(--space-sm) 0;
	border-bottom: 1px solid var(--border-color);
}

.comment-list .avatar {
	border-radius: 50%;
	flex-shrink: 0;
}

.comment-list .comment-content {
	flex: 1;
}

.comment-list .children {
	margin-left: var(--space-lg);
}

.comment-form label {
	display: block;
	margin-bottom: 4px;
	font-size: 0.9rem;
}

.comment-form input[type='text'],
.comment-form input[type='email'],
.comment-form input[type='url'],
.comment-form textarea {
	width: 100%;
	padding: 0.7em;
	border: 1px solid var(--border-color);
	border-radius: var(--radius);
	margin-bottom: var(--space-sm);
}

@media (min-width: 1024px) {
	.single-post-layout {
		display: grid;
		grid-template-columns: 1fr 300px;
		gap: var(--space-lg);
		align-items: start;
	}
}

/* =====================================================================
   8. WOOCOMMERCE
   ===================================================================== */

.woocommerce-page .container {
	padding-block: var(--space-md);
}

.woocommerce-layout {
	display: block;
}

.woocommerce-content-area {
	min-width: 0;
}

/* Two-column: filters sidebar + product grid, desktop only */
@media (min-width: 1024px) {
	.woocommerce-layout--with-sidebar {
		display: grid;
		grid-template-columns: 260px 1fr;
		gap: var(--space-lg);
		align-items: start;
	}
	.woocommerce-layout--with-sidebar .woocommerce-content-area {
		order: 2;
	}
	.woocommerce-layout--with-sidebar .shop-filters-sidebar {
		order: 1;
		position: sticky;
		top: calc(var(--header-height) + var(--space-md));
	}
}

.woocommerce-products-header__title,
.page-title {
	font-size: 1.75rem;
	margin-bottom: var(--space-sm);
}

/* --- Shop Toolbar --- */
.shop-toolbar {
	display: flex;
	flex-wrap: wrap;
	align-items: center;
	justify-content: space-between;
	gap: var(--space-sm);
	padding-bottom: var(--space-md);
	border-bottom: 1px solid var(--border-color);
	margin-bottom: var(--space-md);
}

.woocommerce-result-count {
	margin: 0;
	color: #777;
	font-size: 0.9rem;
}

.shop-toolbar-controls {
	display: flex;
	align-items: center;
	gap: var(--space-sm);
}

.shop-view-toggle {
	display: flex;
	border: 1px solid var(--border-color);
	border-radius: var(--radius);
	overflow: hidden;
}

.view-toggle-btn {
	display: flex;
	align-items: center;
	justify-content: center;
	padding: 0.4em 0.6em;
	color: #999;
	background: var(--color-bg);
}

.view-toggle-btn.is-active {
	background: var(--color-primary);
	color: #fff;
}

.shop-sort-dropdown select,
.woocommerce-ordering select {
	padding: 0.5em 0.8em;
	border: 1px solid var(--border-color);
	border-radius: var(--radius);
	background: var(--color-bg);
}

/* --- Shop Filters Sidebar --- */
.shop-filters-sidebar {
	margin-bottom: var(--space-lg);
}

.shop-filters-form {
	border: 1px solid var(--border-color);
	border-radius: var(--radius-lg);
	padding: var(--space-md);
}

.filter-group {
	padding-block: var(--space-sm);
	border-bottom: 1px solid var(--border-color);
}

.filter-group:first-child {
	padding-top: 0;
}

.filter-group-title {
	font-size: 0.95rem;
	margin-bottom: var(--space-xs);
}

.filter-checkbox-list li {
	margin-bottom: 6px;
}

.filter-checkbox-list label {
	display: flex;
	align-items: center;
	gap: 6px;
	font-size: 0.9rem;
	cursor: pointer;
}

.filter-count {
	color: #999;
	font-size: 0.8rem;
}

.price-range-inputs {
	display: flex;
	align-items: center;
	gap: var(--space-xs);
}

.price-range-inputs input {
	width: 0;
	flex: 1;
	padding: 0.5em;
	border: 1px solid var(--border-color);
	border-radius: var(--radius);
}

.filter-actions {
	display: flex;
	align-items: center;
	justify-content: space-between;
	gap: var(--space-sm);
	padding-top: var(--space-sm);
}

.filter-clear {
	font-size: 0.85rem;
	color: #999;
	text-decoration: underline;
}

/* --- Products Grid --- */
#star-mp-shop-results.is-loading {
	opacity: 0.5;
	pointer-events: none;
}

.products {
	display: grid;
	grid-template-columns: repeat(2, 1fr);
	gap: var(--space-md);
}

.products.products-view-list {
	grid-template-columns: 1fr;
}

@media (min-width: 640px) {
	.products.columns-3 { grid-template-columns: repeat(3, 1fr); }
	.products.columns-4 { grid-template-columns: repeat(3, 1fr); }
	.products.columns-5 { grid-template-columns: repeat(3, 1fr); }
}

@media (min-width: 1024px) {
	.products.columns-3 { grid-template-columns: repeat(3, 1fr); }
	.products.columns-4 { grid-template-columns: repeat(4, 1fr); }
	.products.columns-5 { grid-template-columns: repeat(5, 1fr); }
	.products.products-view-list { grid-template-columns: 1fr; }
}

/* Product card — shared by shop grid, homepage carousel, related products */
.product-card {
	position: relative;
	display: flex;
	flex-direction: column;
	border: 1px solid var(--border-color);
	border-radius: var(--radius-lg);
	overflow: hidden;
	background: var(--color-bg);
	transition: box-shadow var(--transition), transform var(--transition);
	height: 100%;
}

.product-card:hover {
	box-shadow: var(--shadow-md);
	transform: translateY(-2px);
}

.product-card-image {
	position: relative;
	aspect-ratio: 4 / 5;
	background: #f5f5f5;
	overflow: hidden;
}

.product-card-image img {
	width: 100%;
	height: 100%;
	object-fit: cover;
}

.product-badge {
	position: absolute;
	top: 10px;
	left: 10px;
	font-size: 0.7rem;
	font-weight: 700;
	padding: 3px 8px;
	border-radius: 4px;
	color: #fff;
	z-index: 2;
}

.product-badge-sale {
	background: var(--color-accent);
}

.product-badge-outofstock {
	background: #999;
}

.product-card-body {
	padding: var(--space-sm);
	display: flex;
	flex-direction: column;
	gap: 4px;
	flex: 1;
}

.product-card-cat {
	font-size: 0.72rem;
	text-transform: uppercase;
	letter-spacing: 0.03em;
	color: #999;
}

.product-card-title {
	font-size: 0.95rem;
	margin: 0;
}

.product-card-title a {
	color: var(--color-primary);
}

.product-card-price {
	font-weight: 700;
	color: var(--color-primary);
}

.product-card-price del {
	color: #999;
	font-weight: 400;
	margin-right: 4px;
}

.product-card-price ins {
	text-decoration: none;
	color: var(--color-accent);
}

.product-card-rating {
	display: flex;
	align-items: center;
	gap: 4px;
	font-size: 0.8rem;
	color: #999;
}

.product-card-actions {
	margin-top: auto;
	padding-top: var(--space-xs);
}

.product-card-add-to-cart {
	width: 100%;
}

/* List view: horizontal card */
.products-view-list .product-card {
	flex-direction: row;
}

.products-view-list .product-card-image {
	width: 180px;
	flex-shrink: 0;
	aspect-ratio: 1 / 1;
}

.products-view-list .product-card-body {
	flex: 1;
}

.no-products-found {
	grid-column: 1 / -1;
	text-align: center;
	padding: var(--space-xl) 0;
	color: #888;
}

/* Pagination */
.page-numbers {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	min-width: 36px;
	height: 36px;
	padding: 0 8px;
	margin: var(--space-lg) 4px 0 0;
	border: 1px solid var(--border-color);
	border-radius: var(--radius);
	color: var(--color-primary);
}

.page-numbers.current {
	background: var(--color-primary);
	color: #fff;
	border-color: var(--color-primary);
}

/* --- Single Product --- */
.woocommerce div.product .woocommerce-product-gallery {
	border-radius: var(--radius-lg);
	overflow: hidden;
}

.woocommerce div.product p.price,
.woocommerce div.product span.price {
	color: var(--color-primary);
	font-size: 1.4rem;
	font-weight: 700;
}

.woocommerce div.product .stock {
	font-weight: 600;
}

.woocommerce div.product .stock.in-stock {
	color: var(--color-success);
}

.woocommerce div.product .stock.out-of-stock {
	color: var(--color-error);
}

.woocommerce div.product form.cart .quantity input {
	width: 60px;
	padding: 0.6em;
	border: 1px solid var(--border-color);
	border-radius: var(--radius);
	margin-right: var(--space-xs);
}

.woocommerce table.shop_attributes,
.woocommerce table.woocommerce-product-attributes {
	border: 1px solid var(--border-color);
}

.woocommerce table.shop_attributes th,
.woocommerce table.shop_attributes td {
	padding: 0.6em var(--space-sm);
	border: 1px solid var(--border-color);
}

.woocommerce .woocommerce-tabs ul.tabs li {
	display: inline-block;
	margin-right: var(--space-sm);
}

.woocommerce .woocommerce-tabs ul.tabs li a {
	font-weight: 600;
	padding-bottom: 4px;
	display: inline-block;
	border-bottom: 2px solid transparent;
}

.woocommerce .woocommerce-tabs ul.tabs li.active a {
	border-color: var(--color-accent);
	color: var(--color-accent);
}

/* --- Cart Page --- */
.star-mp-cart-page {
	display: block;
}

.cart-table-wrap {
	overflow-x: auto;
}

.star-mp-cart-table {
	border: 1px solid var(--border-color);
}

.star-mp-cart-table th,
.star-mp-cart-table td {
	padding: var(--space-sm);
	border-bottom: 1px solid var(--border-color);
	text-align: left;
}

.star-mp-cart-table img {
	width: 64px;
	border-radius: var(--radius);
}

.cart-actions-row {
	display: flex;
	flex-wrap: wrap;
	align-items: center;
	justify-content: space-between;
	gap: var(--space-sm);
	margin-top: var(--space-md);
}

.cart-actions-row .coupon {
	display: flex;
	gap: var(--space-xs);
}

.cart-actions-row .coupon input {
	padding: 0.6em;
	border: 1px solid var(--border-color);
	border-radius: var(--radius);
}

.cart-collaterals {
	margin-top: var(--space-lg);
	max-width: 420px;
	margin-left: auto;
}

.cart-collaterals .cart_totals table {
	border: 1px solid var(--border-color);
}

.cart-collaterals .cart_totals th,
.cart-collaterals .cart_totals td {
	padding: 0.7em var(--space-sm);
	border-bottom: 1px solid var(--border-color);
}

/* --- Checkout Page --- */
.checkout-layout {
	display: block;
}

.checkout-form-col .form-row {
	margin-bottom: var(--space-sm);
}

.checkout-form-col label {
	display: block;
	margin-bottom: 4px;
	font-size: 0.9rem;
	font-weight: 500;
}

.checkout-form-col input[type='text'],
.checkout-form-col input[type='email'],
.checkout-form-col input[type='tel'],
.checkout-form-col select,
.checkout-form-col textarea {
	width: 100%;
	padding: 0.7em;
	border: 1px solid var(--border-color);
	border-radius: var(--radius);
}

.checkout-order-review-sticky {
	background: rgba(0, 0, 0, 0.02);
	border: 1px solid var(--border-color);
	border-radius: var(--radius-lg);
	padding: var(--space-md);
	margin-top: var(--space-lg);
}

#order_review table.shop_table {
	border: none;
}

#order_review table.shop_table th,
#order_review table.shop_table td {
	padding: 0.6em 0;
	border-bottom: 1px solid var(--border-color);
}

@media (min-width: 1024px) {
	.checkout-layout {
		display: grid;
		grid-template-columns: 1fr 420px;
		gap: var(--space-lg);
		align-items: start;
	}
	.checkout-order-review-sticky {
		margin-top: 0;
		position: sticky;
		top: calc(var(--header-height) + var(--space-md));
	}
}

/* --- My Account --- */
.woocommerce-MyAccount-navigation ul {
	border: 1px solid var(--border-color);
	border-radius: var(--radius-lg);
	overflow: hidden;
	margin-bottom: var(--space-md);
}

.woocommerce-MyAccount-navigation li {
	border-bottom: 1px solid var(--border-color);
}

.woocommerce-MyAccount-navigation li:last-child {
	border-bottom: none;
}

.woocommerce-MyAccount-navigation a {
	display: block;
	padding: 0.8em var(--space-sm);
}

.woocommerce-MyAccount-navigation li.is-active a {
	background: var(--color-primary);
	color: #fff;
}

@media (min-width: 1024px) {
	.woocommerce-account .woocommerce {
		display: grid;
		grid-template-columns: 220px 1fr;
		gap: var(--space-lg);
	}
}

/* --- WooCommerce notices --- */
.woocommerce-message,
.woocommerce-error,
.woocommerce-info {
	list-style: none;
	padding: var(--space-sm) var(--space-md);
	border-radius: var(--radius);
	margin-bottom: var(--space-md);
	background: rgba(0, 0, 0, 0.03);
	border-left: 4px solid var(--color-primary);
}

.woocommerce-error {
	border-color: var(--color-error);
}

.woocommerce-message {
	border-color: var(--color-success);
}

/* =====================================================================
   9. SHOP FEATURES — Wishlist, Compare, Quick View, Live Search,
      Mega Menu, Size Guide
   ===================================================================== */

/* --- Product card hover actions (wishlist/compare/quick view) --- */
.product-card-hover-actions {
	position: absolute;
	top: 10px;
	right: 10px;
	z-index: 3;
	display: flex;
	flex-direction: column;
	gap: 6px;
	opacity: 0;
	transform: translateX(6px);
	transition: opacity var(--transition), transform var(--transition);
}

.product-card:hover .product-card-hover-actions,
.product-card:focus-within .product-card-hover-actions {
	opacity: 1;
	transform: translateX(0);
}

.product-hover-btn {
	display: flex;
	align-items: center;
	justify-content: center;
	width: 36px;
	height: 36px;
	border-radius: 50%;
	border: none;
	background: var(--color-bg);
	color: var(--color-primary);
	box-shadow: var(--shadow-sm);
	transition: background var(--transition), color var(--transition);
}

.product-hover-btn:hover {
	background: var(--color-primary);
	color: #fff;
}

.product-hover-btn.wishlist-btn.is-active svg,
.product-hover-btn.compare-btn.is-active {
	color: var(--color-accent);
}

.product-hover-btn.wishlist-btn.is-active svg {
	fill: var(--color-accent);
}

.product-hover-btn.compare-btn.is-active {
	background: var(--color-primary);
	color: #fff;
}

/* Touch devices have no hover — always show the buttons. */
@media (hover: none) {
	.product-card-hover-actions {
		opacity: 1;
		transform: none;
	}
}

/* --- Generic modal (Quick View, Size Guide) --- */
.star-mp-modal {
	position: fixed;
	inset: 0;
	z-index: 1000;
	display: flex;
	align-items: center;
	justify-content: center;
	padding: var(--space-md);
}

.star-mp-modal[hidden] {
	display: none;
}

.star-mp-modal-overlay {
	position: absolute;
	inset: 0;
	background: rgba(0, 0, 0, 0.6);
}

.star-mp-modal-dialog {
	position: relative;
	background: var(--color-bg);
	border-radius: var(--radius-lg);
	max-width: 900px;
	width: 100%;
	max-height: 90vh;
	overflow-y: auto;
	padding: var(--space-lg);
	box-shadow: var(--shadow-md);
}

.star-mp-modal-close {
	position: absolute;
	top: var(--space-sm);
	right: var(--space-sm);
	background: none;
	border: none;
	color: var(--color-primary);
	z-index: 2;
}

body.star-mp-modal-open {
	overflow: hidden;
}

.star-mp-modal-loading {
	text-align: center;
	padding: var(--space-xl) 0;
	color: #888;
}

/* Quick View dialog layout */
.quick-view-body {
	display: grid;
	grid-template-columns: 1fr;
	gap: var(--space-md);
}

.quick-view-gallery img {
	border-radius: var(--radius);
	width: 100%;
}

.quick-view-title {
	font-size: 1.3rem;
	margin-bottom: 4px;
}

.quick-view-price {
	font-size: 1.2rem;
	font-weight: 700;
	color: var(--color-primary);
	display: block;
	margin-bottom: 6px;
}

.quick-view-rating {
	display: flex;
	align-items: center;
	gap: 4px;
	margin-bottom: var(--space-sm);
	font-size: 0.85rem;
	color: #888;
}

.quick-view-excerpt {
	font-size: 0.9rem;
	color: #666;
	margin-bottom: var(--space-sm);
}

.quick-view-cart-form .quantity input {
	width: 60px;
	padding: 0.6em;
	border: 1px solid var(--border-color);
	border-radius: var(--radius);
	margin-right: var(--space-xs);
}

.quick-view-full-link {
	display: inline-block;
	margin-top: var(--space-sm);
	font-size: 0.85rem;
	text-decoration: underline;
}

@media (min-width: 768px) {
	.quick-view-body {
		grid-template-columns: 1fr 1fr;
	}
}

/* Size Guide */
.size-guide-trigger {
	display: inline-flex;
	align-items: center;
	gap: 6px;
	background: none;
	border: none;
	color: var(--color-primary);
	text-decoration: underline;
	font-size: 0.85rem;
	margin-top: var(--space-sm);
	padding: 0;
}

.size-guide-content table {
	width: 100%;
	border: 1px solid var(--border-color);
	margin-top: var(--space-sm);
}

.size-guide-content th,
.size-guide-content td {
	padding: 0.5em 0.8em;
	border: 1px solid var(--border-color);
	text-align: left;
}

/* --- Wishlist / Compare empty states --- */
.star-mp-empty-list {
	text-align: center;
	padding: var(--space-xl) var(--space-md);
	color: #888;
	border: 1px dashed var(--border-color);
	border-radius: var(--radius-lg);
}

/* --- Compare table --- */
.star-mp-compare-table-wrap {
	overflow-x: auto;
}

.star-mp-compare-table {
	border-collapse: collapse;
	min-width: 600px;
}

.star-mp-compare-table th,
.star-mp-compare-table td {
	padding: var(--space-sm);
	border: 1px solid var(--border-color);
	vertical-align: top;
	text-align: center;
}

.star-mp-compare-table th {
	text-align: left;
	background: rgba(0, 0, 0, 0.02);
	white-space: nowrap;
}

.star-mp-compare-table .compare-row-image td {
	position: relative;
	min-width: 160px;
}

.star-mp-compare-table .compare-row-image img {
	width: 100px;
	margin: 0 auto 6px;
	border-radius: var(--radius);
}

.compare-product-title {
	display: block;
	font-size: 0.85rem;
	color: var(--color-primary);
}

.compare-remove {
	position: absolute;
	top: 6px;
	right: 6px;
	width: 22px;
	height: 22px;
	line-height: 20px;
	border-radius: 50%;
	background: var(--color-bg);
	border: 1px solid var(--border-color);
	color: #888;
	font-size: 1rem;
	cursor: pointer;
}

/* --- Live search dropdown --- */
.header-search-panel {
	position: relative;
}

.live-search-results {
	position: absolute;
	left: 0;
	right: 0;
	top: 100%;
	background: var(--color-bg);
	border: 1px solid var(--border-color);
	border-top: none;
	max-height: 400px;
	overflow-y: auto;
	box-shadow: var(--shadow-md);
	z-index: 60;
}

.live-search-results[hidden] {
	display: none;
}

.live-search-results-list li + li {
	border-top: 1px solid var(--border-color);
}

.live-search-result a {
	display: flex;
	align-items: center;
	gap: var(--space-sm);
	padding: var(--space-xs) var(--space-sm);
}

.live-search-thumb img {
	width: 40px;
	height: 40px;
	object-fit: cover;
	border-radius: var(--radius);
}

.live-search-info {
	display: flex;
	flex-direction: column;
	font-size: 0.85rem;
}

.live-search-price {
	color: #888;
	font-size: 0.8rem;
}

.live-search-view-all {
	display: block;
	text-align: center;
	padding: var(--space-xs);
	font-size: 0.85rem;
	font-weight: 600;
	border-top: 1px solid var(--border-color);
}

.live-search-no-results {
	padding: var(--space-sm);
	color: #888;
	margin: 0;
}

/* --- Mega menu --- */
.mega-menu-panel {
	position: absolute;
	left: 0;
	right: 0;
	top: 100%;
	background: var(--color-bg);
	box-shadow: var(--shadow-md);
	border-top: 2px solid var(--color-accent);
	z-index: 50;
	opacity: 0;
	visibility: hidden;
	transform: translateY(6px);
	transition: opacity var(--transition), transform var(--transition), visibility var(--transition);
}

.primary-menu > li:hover > .mega-menu-panel,
.primary-menu > li:focus-within > .mega-menu-panel {
	opacity: 1;
	visibility: visible;
	transform: translateY(0);
}

.mega-menu-grid {
	display: grid;
	grid-template-columns: repeat(4, 1fr);
	gap: var(--space-lg);
	padding: var(--space-lg) 0;
}

.mega-menu-grid > li > a {
	font-weight: 600;
	color: var(--color-primary);
	display: block;
	margin-bottom: 6px;
}

.mega-menu-grid .sub-menu {
	position: static;
	box-shadow: none;
	opacity: 1;
	visibility: visible;
	transform: none;
	padding: 0;
}

.mega-menu-grid .sub-menu a {
	padding: 4px 0;
	color: var(--color-text);
	font-size: 0.9rem;
}

/* =====================================================================
   10. PRINT
   ===================================================================== */
@media print {
	.site-header, .site-footer, .shop-filters-sidebar, .hero-actions {
		display: none;
	}
}
