/* ==========================================================================
   GM Lounge theme — light frosted blue glass UI.
   Mobile-first. Uses CSS variables injected from PHP for full Customizer control.
   ========================================================================== */

/* ---------- Reset & base ---------- */
*, *::before, *::after { box-sizing: border-box; }
html { -webkit-text-size-adjust: 100%; text-size-adjust: 100%; scroll-behavior: smooth; }
body {
	margin: 0;
	color: var(--gm-text);
	font-family: var(--gm-font-body);
	font-size: 16px;
	line-height: 1.55;
	background:
		radial-gradient(1100px 700px at 12% -10%, var(--gm-bg-c), transparent 60%),
		radial-gradient(900px 600px at 100% 10%, color-mix(in srgb, var(--gm-accent) 18%, transparent), transparent 60%),
		linear-gradient(180deg, var(--gm-bg-a), var(--gm-bg-b) 45%, var(--gm-bg-a));
	min-height: 100vh;
	-webkit-font-smoothing: antialiased;
	text-rendering: optimizeLegibility;
}
img, svg, video { max-width: 100%; height: auto; display: block; }
a { color: var(--gm-primary); text-decoration: none; transition: color .15s ease, opacity .15s ease; }
a:hover { color: color-mix(in srgb, var(--gm-primary) 80%, #000 0%); opacity: .9; }
button { font: inherit; color: inherit; cursor: pointer; }
h1,h2,h3,h4,h5 { font-family: var(--gm-font-heading); color: var(--gm-text); margin: 0 0 .5em; line-height: 1.2; letter-spacing: -.01em; }
p { margin: 0 0 1em; }
ul, ol { margin: 0; padding: 0; }
li { list-style: none; }

.screen-reader-text {
	border: 0; clip: rect(1px,1px,1px,1px); -webkit-clip-path: inset(50%); clip-path: inset(50%);
	height: 1px; margin: -1px; overflow: hidden; padding: 0; position: absolute; width: 1px; word-wrap: normal !important;
}
.gm-skip-link { position: absolute; left: -9999px; top: 0; padding: 10px 14px; background: #fff; color: var(--gm-primary); border-radius: 8px; z-index: 9999; }
.gm-skip-link:focus { left: 12px; top: 12px; }

/* ---------- Container ---------- */
.gm-container { width: 100%; max-width: var(--gm-container); margin: 0 auto; padding: 0 16px; }
@media (min-width: 768px) { .gm-container { padding: 0 24px; } }

/* ---------- Background blobs ---------- */
.gm-bg { position: fixed; inset: 0; z-index: -1; pointer-events: none; overflow: hidden; }
.gm-bg-blob {
	position: absolute; width: 520px; height: 520px; border-radius: 50%;
	filter: blur(80px); opacity: .35; will-change: transform;
}
.gm-bg-blob--a { top: -180px; left: -120px; background: var(--gm-accent); }
.gm-bg-blob--b { bottom: -200px; right: -160px; background: color-mix(in srgb, var(--gm-primary) 40%, var(--gm-bg-c)); }
.gm-bg-blob--c { top: 40%; left: 50%; transform: translate(-50%,-50%); background: color-mix(in srgb, var(--gm-bg-c) 60%, #fff); opacity: .4; }

/* ---------- Buttons ---------- */
.gm-btn {
	display: inline-flex; align-items: center; gap: 8px;
	padding: 10px 18px; border-radius: 999px;
	font-weight: 600; font-size: 14.5px;
	border: 1px solid transparent;
	transition: transform .15s ease, box-shadow .2s ease, background .2s ease;
	white-space: nowrap;
}
.gm-btn:active { transform: translateY(1px); }
.gm-btn-primary {
	color: #fff;
	background: linear-gradient(135deg, var(--gm-primary), color-mix(in srgb, var(--gm-primary) 70%, var(--gm-accent)));
	box-shadow: 0 8px 22px -8px color-mix(in srgb, var(--gm-primary) 60%, transparent);
}
.gm-btn-primary:hover { color: #fff; box-shadow: 0 10px 28px -8px color-mix(in srgb, var(--gm-primary) 75%, transparent); }
.gm-btn-ghost {
	color: var(--gm-text);
	background: rgba(255,255,255,.55);
	border-color: var(--gm-card-brd);
	-webkit-backdrop-filter: blur(12px); backdrop-filter: blur(12px);
}
.gm-btn-ghost:hover { background: rgba(255,255,255,.75); }
.gm-icon-btn {
	display: inline-flex; align-items: center; justify-content: center;
	width: 40px; height: 40px;
	border-radius: 12px;
	background: rgba(255,255,255,.55);
	border: 1px solid var(--gm-card-brd);
	color: var(--gm-text);
	-webkit-backdrop-filter: blur(10px); backdrop-filter: blur(10px);
	transition: background .15s ease;
}
.gm-icon-btn:hover { background: rgba(255,255,255,.85); }
.gm-icon { display: inline-block; vertical-align: middle; }

/* ---------- Frosted card ---------- */
.gm-card {
	background: var(--gm-card);
	border: 1px solid var(--gm-card-brd);
	border-radius: var(--gm-radius);
	-webkit-backdrop-filter: blur(14px) saturate(140%); backdrop-filter: blur(14px) saturate(140%);
	box-shadow: 0 8px 28px -16px rgba(15, 23, 42, .12);
	transition: transform .2s ease, box-shadow .25s ease, border-color .2s ease;
}
.gm-card:hover { transform: translateY(-2px); box-shadow: 0 16px 40px -18px rgba(15, 23, 42, .18); border-color: color-mix(in srgb, var(--gm-primary) 40%, var(--gm-card-brd)); }

/* ============================================================
   HEADER
   ============================================================ */
.gm-header {
	position: -webkit-sticky; position: sticky; top: 0; z-index: 50;
	background: linear-gradient(180deg, rgba(255,255,255,.55) 0%, rgba(255,255,255,.35) 100%);
	-webkit-backdrop-filter: saturate(180%) blur(20px); backdrop-filter: saturate(180%) blur(20px);
	border-bottom: 1px solid rgba(255,255,255,.35);
	box-shadow: 0 1px 3px rgba(15,23,42,.04);
	transition: box-shadow .25s ease, background .25s ease, border-color .25s ease;
	will-change: transform;
	overflow: visible;
}
.gm-header.is-scrolled {
	background: linear-gradient(180deg, rgba(255,255,255,.78) 0%, rgba(255,255,255,.62) 100%);
	border-bottom-color: rgba(255,255,255,.45);
	box-shadow: 0 8px 32px -12px rgba(15,23,42,.12), 0 1px 2px rgba(15,23,42,.04);
}
.gm-header-inner { display: flex; align-items: center; gap: 16px; height: 64px; overflow: visible; }
.gm-header-brand { display: flex; align-items: center; gap: 10px; min-width: 0; }
.gm-tagline { display: none; margin: 0; font-size: 12px; color: var(--gm-muted); }
@media (min-width: 1024px) { .gm-tagline { display: inline; } }

.gm-logo-text { display: inline-flex; align-items: center; gap: 10px; color: var(--gm-text); font-family: var(--gm-font-heading); font-weight: 800; font-size: 20px; }
.gm-logo-mark { display: inline-flex; }
.custom-logo { max-height: 40px; width: auto; }
.custom-logo-link { display: inline-flex; }

.gm-nav { display: none; flex: 1; }
.gm-menu { display: flex; gap: 4px; align-items: center; }
.gm-menu li { position: relative; }
.gm-menu a { display: inline-flex; padding: 8px 14px; border-radius: 999px; color: var(--gm-text); font-weight: 500; font-size: 14.5px; }
.gm-menu a:hover { background: rgba(255,255,255,.6); color: var(--gm-primary); }
.gm-menu .current-menu-item > a { background: rgba(255,255,255,.85); color: var(--gm-primary); }
.gm-menu .sub-menu {
	position: absolute; top: 100%; left: 0; min-width: 200px;
	background: rgba(255,255,255,.92); border: 1px solid var(--gm-card-brd);
	border-radius: 14px; padding: 6px; box-shadow: 0 18px 40px -18px rgba(15,23,42,.25);
	-webkit-backdrop-filter: blur(14px); backdrop-filter: blur(14px);
	display: none;
}
.gm-menu li:hover > .sub-menu, .gm-menu li:focus-within > .sub-menu { display: block; }
.gm-menu .sub-menu a { display: block; padding: 8px 12px; border-radius: 8px; }

@media (min-width: 1024px) { .gm-nav { display: flex; justify-content: center; } }

.gm-header-tools { display: flex; align-items: center; gap: 8px; margin-left: auto; }
.gm-cta { display: none; }
@media (min-width: 1024px) { .gm-cta { display: inline-flex; } .gm-menu-toggle { display: none; } }

.gm-cart-link {
	position: relative; display: inline-flex; align-items: center; justify-content: center;
	width: 40px; height: 40px; border-radius: 12px;
	background: rgba(255,255,255,.55); border: 1px solid var(--gm-card-brd);
	color: var(--gm-text);
}
.gm-cart-link:hover { background: rgba(255,255,255,.85); }
.gm-cart-count {
	position: absolute; top: -6px; right: -6px;
	min-width: 20px; height: 20px; padding: 0 5px; border-radius: 999px;
	background: var(--gm-primary); color: #fff;
	font-size: 11px; font-weight: 700; display: inline-flex; align-items: center; justify-content: center;
	box-shadow: 0 4px 10px -2px color-mix(in srgb, var(--gm-primary) 60%, transparent);
}
.gm-cart-count.is-empty { display: none; }

/* ---------- Header search panel + pill search form ---------- */
.gm-search-panel {
	padding: 14px 0;
	border-top: 1px solid var(--gm-card-brd);
	background: color-mix(in srgb, var(--gm-bg-b) 85%, transparent);
}
/* Slide/fade-in when the panel becomes visible. */
.gm-search-panel:not([hidden]) { animation: gm-fade-in .22s ease-out; }

/*
 * Pill search form — used by both searchform.php (default WP search) and
 * woocommerce/product-searchform.php (Woo product search). Same shape as
 * the hero search so the experience feels consistent.
 */
.gm-pill-search {
	display: flex; align-items: center; gap: 0;
	width: 100%;
	background: rgba(255,255,255,.92);
	border: 1px solid var(--gm-card-brd);
	border-radius: 999px;
	padding: 4px 4px 4px 14px;
	box-shadow: 0 8px 24px -16px rgba(15,23,42,.25);
	transition: border-color .18s ease, box-shadow .18s ease;
}
.gm-pill-search:focus-within {
	border-color: color-mix(in srgb, var(--gm-primary) 50%, transparent);
	box-shadow: 0 10px 30px -16px color-mix(in srgb, var(--gm-primary) 60%, transparent);
}
.gm-pill-search-icon {
	display: inline-flex; align-items: center; justify-content: center;
	color: var(--gm-muted);
	flex-shrink: 0;
	margin-right: 4px;
}
.gm-pill-search-input {
	flex: 1; min-width: 0;
	border: 0; background: transparent; outline: none;
	padding: 10px 12px;
	font: inherit; font-size: 15px;
	color: var(--gm-text);
}
.gm-pill-search-input::placeholder { color: var(--gm-muted); opacity: .85; }
.gm-pill-search-input::-webkit-search-decoration,
.gm-pill-search-input::-webkit-search-cancel-button { -webkit-appearance: none; }
.gm-pill-search-btn {
	flex-shrink: 0;
	display: inline-flex; align-items: center; justify-content: center;
	width: 40px; height: 40px;
	border: 0; border-radius: 999px; cursor: pointer;
	color: #fff;
	background: linear-gradient(135deg, var(--gm-primary), var(--gm-accent));
	box-shadow: 0 6px 14px -4px color-mix(in srgb, var(--gm-primary) 60%, transparent);
	transition: transform .15s ease, filter .15s ease;
	-webkit-appearance: none; appearance: none;
}
.gm-pill-search-btn:hover { transform: translateY(-1px); filter: saturate(1.15); }
.gm-pill-search-btn:active { transform: translateY(0); }
.gm-pill-search-btn:focus-visible {
	outline: 2px solid color-mix(in srgb, var(--gm-primary) 60%, transparent);
	outline-offset: 2px;
}
@media (max-width: 599px) {
	.gm-pill-search { padding: 3px 3px 3px 12px; }
	.gm-pill-search-input { font-size: 14px; padding: 9px 8px; }
	.gm-pill-search-btn { width: 36px; height: 36px; }
}

/* ---------- Wallet balance pill (logged-in users only) ---------- */
.gm-wallet-pill {
	display: inline-flex; align-items: center; gap: 6px;
	height: 40px;
	padding: 0 12px;
	border-radius: 999px;
	background: linear-gradient(135deg,
		color-mix(in srgb, var(--gm-primary) 10%, #fff),
		color-mix(in srgb, var(--gm-accent) 14%, #fff));
	border: 1px solid color-mix(in srgb, var(--gm-primary) 24%, transparent);
	color: var(--gm-text);
	font-size: 13px; font-weight: 700;
	white-space: nowrap;
	-webkit-backdrop-filter: blur(10px); backdrop-filter: blur(10px);
	box-shadow: inset 0 0 0 1px rgba(255,255,255,.4);
}
.gm-wallet-pill-icon {
	display: inline-flex; align-items: center; justify-content: center;
	color: var(--gm-primary);
	flex-shrink: 0;
}
.gm-wallet-pill-amount { line-height: 1; }
/* Strip default plugin chrome inside the pill so it inherits our look. */
.gm-wallet-pill-amount,
.gm-wallet-pill-amount * {
	color: inherit !important;
	background: transparent !important;
	border: 0 !important;
	padding: 0 !important;
	margin: 0 !important;
	font: inherit !important;
	box-shadow: none !important;
	text-decoration: none !important;
}
.gm-wallet-pill-amount a { color: var(--gm-primary) !important; }
@media (max-width: 480px) {
	/* Tighter on tiny phones; show only currency value, hide explanatory text. */
	.gm-wallet-pill { padding: 0 10px; font-size: 12.5px; gap: 4px; }
}

/* Drawer */
.gm-drawer {
	position: fixed; inset: 0; z-index: 60;
	background: rgba(15,23,42,.4);
	opacity: 0; pointer-events: none; transition: opacity .25s ease;
}
.gm-drawer.is-open { opacity: 1; pointer-events: auto; }
.gm-drawer-inner {
	position: absolute; right: 0; top: 0; bottom: 0;
	width: min(360px, 90vw);
	background: rgba(255,255,255,.92);
	-webkit-backdrop-filter: blur(20px); backdrop-filter: blur(20px);
	border-left: 1px solid var(--gm-card-brd);
	transform: translateX(100%); transition: transform .28s ease;
	padding: 16px; display: flex; flex-direction: column; gap: 12px;
	overflow: auto;
}
.gm-drawer.is-open .gm-drawer-inner { transform: translateX(0); }
.gm-drawer-head { display: flex; align-items: center; justify-content: space-between; }
.gm-drawer-menu { display: flex; flex-direction: column; gap: 4px; margin-top: 8px; }
.gm-drawer-menu a { display: block; padding: 12px 14px; border-radius: 12px; color: var(--gm-text); font-weight: 500; }
.gm-drawer-menu a:hover { background: var(--gm-bg-c); }

/* ============================================================
   HERO  (G2G-inspired, blue brand colors, CSS-art right side)
   ============================================================ */
.gm-hero {
	position: relative;
	margin: 12px 0 20px;
	padding: 22px 18px 18px;
	overflow: hidden;
	color: #fff;
	background:
		radial-gradient(1200px 500px at 110% -20%, color-mix(in srgb, var(--gm-accent) 60%, transparent) 0%, transparent 55%),
		radial-gradient(900px 500px at -10% 120%, color-mix(in srgb, var(--gm-primary) 70%, transparent) 0%, transparent 55%),
		linear-gradient(125deg,
			color-mix(in srgb, var(--gm-primary) 92%, #000) 0%,
			color-mix(in srgb, var(--gm-primary) 78%, var(--gm-accent)) 50%,
			color-mix(in srgb, var(--gm-accent) 80%, var(--gm-primary)) 100%);
	border: 1px solid color-mix(in srgb, #fff 18%, transparent);
	border-radius: var(--gm-radius);
	display: grid; grid-template-columns: 1fr; gap: 18px;
	box-shadow: 0 18px 50px -22px color-mix(in srgb, var(--gm-primary) 55%, transparent);
}
.gm-hero a { color: #fff; }
.gm-hero-bg { position: absolute; inset: 0; pointer-events: none; z-index: 0; }
.gm-hero-bg-orb {
	position: absolute; border-radius: 50%; filter: blur(40px); opacity: .55;
	mix-blend-mode: screen;
}
.gm-hero-bg-orb-a {
	width: 380px; height: 380px; right: -110px; top: -130px;
	background: radial-gradient(circle, #fff 0%, color-mix(in srgb, var(--gm-accent) 70%, #fff) 35%, transparent 65%);
}
.gm-hero-bg-orb-b {
	width: 320px; height: 320px; left: -120px; bottom: -130px;
	background: radial-gradient(circle, color-mix(in srgb, var(--gm-accent) 80%, #fff) 0%, transparent 65%);
	opacity: .35;
}
.gm-hero-content {
	position: relative; z-index: 2;
	max-width: 640px;
	display: flex; flex-direction: column; align-items: flex-start;
	background: rgba(255,255,255,.07);
	-webkit-backdrop-filter: blur(10px) saturate(140%);
	backdrop-filter: blur(10px) saturate(140%);
	border: 1px solid rgba(255,255,255,.15);
	border-radius: calc(var(--gm-radius) - 2px);
	padding: 20px;
}
.gm-hero-eyebrow {
	display: inline-flex; align-items: center; gap: 8px;
	padding: 5px 12px; border-radius: 999px;
	background: rgba(255,255,255,.14); border: 1px solid rgba(255,255,255,.22);
	color: #fff; font-weight: 600; font-size: 12px;
	letter-spacing: .04em;
	margin-bottom: 14px;
	-webkit-backdrop-filter: blur(8px); backdrop-filter: blur(8px);
}
.gm-dot {
	width: 7px; height: 7px; border-radius: 50%;
	background: #4ade80;
	box-shadow: 0 0 0 4px rgba(74,222,128,.25);
	animation: gm-pulse 1.8s ease-in-out infinite;
}
.gm-hero-title {
	font-size: clamp(1.45rem, 3.2vw, 2rem);
	font-weight: 800;
	line-height: 1.05;
	letter-spacing: -.01em;
	margin: 0 0 12px;
	color: #fff;
	text-shadow: 0 2px 30px rgba(0,0,0,.18);
	font-family: var(--gm-font-heading);
}
.gm-hero-sub {
	font-size: clamp(.85rem, 1.2vw, .95rem);
	color: rgba(255,255,255,.86);
	margin: 0 0 12px;
	max-width: 560px;
	line-height: 1.5;
}

/* Pill search bar */
.gm-hero-search {
	position: relative;
	display: flex; align-items: center; gap: 0;
	width: 100%; max-width: 520px;
	background: rgba(255,255,255,.95);
	border: 1px solid rgba(255,255,255,.6);
	border-radius: 999px;
	padding: 5px 5px 5px 14px;
	box-shadow: 0 10px 30px -12px rgba(0,0,0,.35),
				inset 0 0 0 1px rgba(255,255,255,.6);
	transition: box-shadow .2s ease, transform .2s ease;
	margin-bottom: 14px;
}
.gm-hero-search:focus-within {
	box-shadow: 0 14px 38px -12px rgba(0,0,0,.4),
				0 0 0 4px color-mix(in srgb, var(--gm-accent) 35%, transparent);
}
.gm-hero-search-icon { display: inline-flex; color: var(--gm-muted); flex-shrink: 0; }
.gm-hero-search input[type="search"] {
	flex: 1; min-width: 0;
	border: none !important; outline: none; background: transparent !important;
	padding: 10px 12px !important;
	font: inherit; font-size: 14.5px;
	color: var(--gm-text);
	box-shadow: none !important;
	max-width: 100% !important;
}
.gm-hero-search input[type="search"]::placeholder { color: var(--gm-muted); }
.gm-hero-search-btn {
	display: inline-flex; align-items: center; justify-content: center;
	flex-shrink: 0;
	width: 40px; height: 40px;
	border-radius: 50%;
	border: 0; cursor: pointer;
	color: #fff;
	background: linear-gradient(135deg, var(--gm-primary), var(--gm-accent));
	box-shadow: 0 4px 12px -2px color-mix(in srgb, var(--gm-primary) 60%, transparent);
	transition: transform .2s ease, box-shadow .2s ease;
}
.gm-hero-search-btn:hover { transform: scale(1.06); box-shadow: 0 8px 18px -4px color-mix(in srgb, var(--gm-primary) 80%, transparent); }
.gm-hero-search-btn:active { transform: scale(.96); }

/* Trust badges row */
.gm-hero-badges {
	list-style: none; margin: 0 0 10px; padding: 0;
	display: flex; flex-wrap: wrap; gap: 14px 18px;
	color: rgba(255,255,255,.92);
	font-size: 12.5px; font-weight: 600;
}
.gm-hero-badge {
	display: inline-flex; align-items: center; gap: 6px;
	letter-spacing: .01em;
	white-space: nowrap;
}
.gm-hero-badge-ic {
	display: inline-flex; align-items: center; justify-content: center;
	width: 22px; height: 22px;
	border-radius: 50%;
	background: rgba(255,255,255,.16);
	border: 1px solid rgba(255,255,255,.25);
	color: #fff;
	flex-shrink: 0;
}
/*
 * Inline dot separators between adjacent badges. Only shown on tablet+ where
 * the row never wraps — on phones the badges flex-wrap, so a ::before dot
 * leaves an orphan bullet at the start of any wrapped line.
 */
@media (min-width: 600px) {
	.gm-hero-badge + .gm-hero-badge::before {
		content: ''; display: inline-block; width: 4px; height: 4px; border-radius: 50%;
		background: rgba(255,255,255,.35);
		margin-right: 14px; align-self: center;
	}
}
.gm-hero-disclaimer {
	margin: 8px 0 0; font-size: 11.5px; line-height: 1.5;
	color: rgba(255,255,255,.7);
	font-style: italic;
	max-width: 620px;
}

/* Right-side art (image OR CSS fallback) */
.gm-hero-art {
	position: relative; z-index: 1;
	min-height: 220px;
	display: none; /* CSS-art fallback is hidden on mobile to keep hero compact */
}
/* When the user has provided a real image, show it on mobile too — it IS the design. */
.gm-hero-art-image {
	display: flex !important; align-items: center; justify-content: center;
	min-height: 200px;
	padding: 6px;
	margin-top: 4px;
}
@media (max-width: 767px) {
	.gm-hero-art-image { min-height: 220px; max-height: 280px; }
	.gm-hero-art-image img { max-width: 280px; max-height: 280px; }
}
.gm-hero-art-image::before {
	content: ''; position: absolute; inset: 0; pointer-events: none;
	background:
		radial-gradient(closest-side at 50% 50%,
			color-mix(in srgb, var(--gm-accent) 65%, transparent) 0%,
			color-mix(in srgb, var(--gm-primary) 35%, transparent) 35%,
			transparent 70%);
	filter: blur(20px);
	opacity: .8;
	z-index: 0;
}
.gm-hero-art-image img {
	position: relative; z-index: 1;
	width: 100%; height: 100%;
	max-width: 300px;
	max-height: 460px;
	object-fit: contain;
	margin: 0 auto;
	filter: drop-shadow(0 18px 30px rgba(0,0,0,.35))
			drop-shadow(0 0 30px color-mix(in srgb, var(--gm-accent) 40%, transparent));
	animation: gm-hero-float 6s ease-in-out infinite;
}
@keyframes gm-hero-float {
	0%, 100% { transform: translateY(0); }
	50%      { transform: translateY(-10px); }
}

/* Legacy markup classes kept inert for backward compat. */
.gm-hero-glow, .gm-hero-card { display: none; }

/* ----------------------------------------------------------------
   Mobile (< 600px): image becomes a background layer behind the
   content, hero collapses to a single flex column, type scales down.
   ---------------------------------------------------------------- */
@media (max-width: 599px) {
	.gm-hero {
		padding: 22px 16px 20px;
		display: flex;
		flex-direction: column;
	}

	/* Content sits above the background image. */
	.gm-hero-content { max-width: 100%; margin: 0 0 8px; padding: 16px; }

	/* The image becomes a full-bleed backdrop — anchored to the right
	   so the mascot peeks behind the right side, and faded so text
	   stays readable on top. */
	.gm-hero-art-image {
		position: absolute !important;
		inset: 0;
		z-index: 0 !important;
		min-height: 0;
		max-height: none;
		margin: 0;
		padding: 0;
		opacity: .42;
		pointer-events: none;
	}
	.gm-hero-art-image::before { display: none; }     /* no glow halo when used as bg */
	.gm-hero-art-image img {
		position: absolute;
		inset: 0;
		width: 100%;
		height: 100%;
		max-width: none;
		max-height: none;
		object-fit: cover;
		object-position: 80% center;
		margin: 0;
		filter: none;
		animation: none;
	}

	/* Type sizing — slightly smaller so it reads cleanly over the bg art. */
	.gm-hero-eyebrow { font-size: 10.5px; padding: 3px 10px; margin-bottom: 8px; }
	.gm-hero-title  { font-size: clamp(1.45rem, 6vw, 1.85rem); line-height: 1.1; margin-bottom: 6px; }
	.gm-hero-sub    { font-size: .88rem; line-height: 1.45; margin-bottom: 10px; max-width: 100%; }

	/* Search bar: keep the placeholder fully visible. */
	.gm-hero-search { padding: 4px 4px 4px 12px; }
	.gm-hero-search-icon svg { width: 16px; height: 16px; }
	.gm-hero-search input[type="search"] {
		padding: 9px 8px !important;
		font-size: 13.5px;
	}
	.gm-hero-search-btn { width: 36px; height: 36px; }
	.gm-hero-search-btn svg { width: 16px; height: 16px; }

	/* Trust badges: tighter, smaller, no inline dot separators (handled above). */
	.gm-hero-badges     { gap: 8px 14px; font-size: 11.5px; margin-bottom: 6px; }
	.gm-hero-badge-ic   { width: 18px; height: 18px; }
	.gm-hero-badge-ic svg { width: 11px; height: 11px; }
}

@media (min-width: 768px) {
	.gm-hero {
		padding: 22px 28px 18px;
		grid-template-columns: 1.25fr 1fr;
		gap: 16px;
		align-items: center;
	}
	.gm-hero-art { display: block; min-height: 200px; }
}

@media (min-width: 1100px) {
	.gm-hero { padding: 28px 36px 22px; }
	.gm-hero-art { min-height: 240px; }
}

/* ============================================================
   CATEGORIES ROW
   ============================================================ */
.gm-cats { margin: 18px 0 26px; }
.gm-cats-row {
	display: flex; gap: 12px; overflow-x: auto; padding: 4px 2px 14px;
	scroll-snap-type: x mandatory; scrollbar-width: thin;
}
.gm-cats-row::-webkit-scrollbar { height: 6px; }
.gm-cats-row::-webkit-scrollbar-thumb { background: var(--gm-card-brd); border-radius: 999px; }
.gm-cats-item { flex: 0 0 auto; scroll-snap-align: start; }
.gm-cats-link {
	display: flex; flex-direction: column; align-items: center; gap: 8px;
	padding: 12px; min-width: 96px;
	background: var(--gm-card); border: 1px solid var(--gm-card-brd);
	border-radius: var(--gm-radius);
	-webkit-backdrop-filter: blur(12px); backdrop-filter: blur(12px);
	color: var(--gm-text); font-size: 13px; font-weight: 600;
	transition: transform .2s ease, border-color .2s ease;
}
.gm-cats-link:hover { transform: translateY(-2px); border-color: color-mix(in srgb, var(--gm-primary) 40%, var(--gm-card-brd)); color: var(--gm-primary); }
.gm-cats-img {
	width: 56px; height: 56px; border-radius: 14px;
	display: inline-flex; align-items: center; justify-content: center;
	background: linear-gradient(135deg, color-mix(in srgb, var(--gm-accent) 30%, #fff), #fff);
	color: var(--gm-primary); overflow: hidden;
}
.gm-cats-img img { width: 100%; height: 100%; object-fit: cover; }
.gm-cats-name { text-align: center; line-height: 1.2; }

/* ============================================================
   SECTIONS / PRODUCT GRID
   ============================================================ */
.gm-section { margin: 28px 0; }
.gm-section-head { display: flex; align-items: baseline; justify-content: space-between; gap: 12px; margin-bottom: 14px; }
.gm-section-title {
	font-size: clamp(1.25rem, 2.5vw, 1.6rem);
	font-weight: 800; margin: 0;
}
.gm-section-more { display: inline-flex; align-items: center; gap: 6px; font-size: 14px; font-weight: 600; color: var(--gm-primary); }
.gm-section-more:hover { gap: 10px; }

.gm-grid { display: grid; gap: 10px; grid-template-columns: repeat(2, minmax(0, 1fr)); }
@media (min-width: 600px) { .gm-grid { gap: 14px; grid-template-columns: repeat(4, minmax(0, 1fr)); } }
@media (min-width: 900px) { .gm-grid { gap: 18px; grid-template-columns: repeat(5, minmax(0, 1fr)); } }
@media (min-width: 1200px) { .gm-grid { grid-template-columns: repeat(6, minmax(0, 1fr)); } }

.gm-product { padding: 6px; display: flex; flex-direction: column; }
.gm-product-link { color: inherit; display: flex; flex-direction: column; flex: 1; }
.gm-product-link:hover { color: inherit; }
.gm-product-thumb {
	position: relative; aspect-ratio: 1; border-radius: calc(var(--gm-radius) - 6px);
	overflow: hidden;
	background: linear-gradient(135deg, color-mix(in srgb, var(--gm-accent) 18%, #fff), #fff);
}
.gm-product-thumb img { width: 100%; height: 100%; object-fit: cover; transition: transform .35s ease; }
.gm-product:hover .gm-product-thumb img { transform: scale(1.04); }
.gm-product-meta { padding: 8px 4px 6px; flex: 1; display: flex; flex-direction: column; gap: 2px; }
.gm-product-title { font-size: 12.5px; font-weight: 700; line-height: 1.25; margin: 0; color: var(--gm-text);
	display: -webkit-box; -webkit-line-clamp: 2; line-clamp: 2; -webkit-box-orient: vertical; overflow: hidden;
}
.gm-product-cta { padding: 4px 0 0; }

/* Animated "Buy Now" button — gradient shimmer + arrow slide.
   Used on both <a> (product cards) and <button> (group cards), so we
   explicitly reset native button chrome here. */
.gm-buy-now {
	position: relative; overflow: hidden; isolation: isolate;
	display: inline-flex; align-items: center; justify-content: center;
	gap: 6px;
	width: 100%;
	padding: 7px 10px;
	border: 0;
	border-radius: 999px;
	cursor: pointer;
	font-family: inherit;
	font-size: 11.5px; font-weight: 700;
	letter-spacing: .01em;
	color: #fff !important;
	text-decoration: none !important;
	-webkit-appearance: none;
	appearance: none;
	background: linear-gradient(110deg,
		var(--gm-primary) 0%,
		color-mix(in srgb, var(--gm-accent) 90%, var(--gm-primary)) 50%,
		var(--gm-primary) 100%);
	background-size: 220% 100%;
	box-shadow: 0 4px 12px -4px color-mix(in srgb, var(--gm-primary) 60%, transparent),
				inset 0 -2px 0 0 color-mix(in srgb, #000 12%, transparent);
	animation: gm-buy-shimmer 4s linear infinite;
	transition: transform .2s ease, box-shadow .25s ease, filter .2s ease;
	white-space: nowrap;
}
.gm-buy-now::after {
	content: ''; position: absolute; top: 0; left: -120%;
	width: 55%; height: 100%;
	background: linear-gradient(90deg, transparent, rgba(255,255,255,.45), transparent);
	transform: skewX(-22deg);
	animation: gm-buy-shine 4.5s ease-in-out 1.2s infinite;
	pointer-events: none;
	z-index: 1;
}
.gm-buy-now > * { position: relative; z-index: 2; }
.gm-buy-now-arrow {
	display: inline-block;
	transition: transform .25s cubic-bezier(.2,.8,.25,1);
}
.gm-buy-now:hover {
	color: #fff !important;
	transform: translateY(-2px);
	filter: saturate(1.15);
	box-shadow: 0 10px 22px -6px color-mix(in srgb, var(--gm-primary) 70%, transparent),
				inset 0 -2px 0 0 color-mix(in srgb, #000 12%, transparent);
}
.gm-buy-now:hover .gm-buy-now-arrow { transform: translateX(4px); }
.gm-buy-now:active { transform: translateY(0); }
.gm-buy-now:focus-visible {
	outline: 2px solid color-mix(in srgb, var(--gm-primary) 60%, transparent);
	outline-offset: 2px;
}

@keyframes gm-buy-shimmer {
	0%   { background-position: 100% 0; }
	100% { background-position: -120% 0; }
}
@keyframes gm-buy-shine {
	0%, 55%   { left: -120%; }
	75%, 100% { left: 130%; }
}

@media (min-width: 600px) {
	.gm-product { padding: 10px; }
	.gm-product-meta { padding: 10px 4px 8px; gap: 4px; }
	.gm-product-title { font-size: 14px; line-height: 1.3; }
	.gm-buy-now { padding: 9px 14px; font-size: 13px; gap: 8px; }
}

/* Card hover lift */
.gm-product { transition: transform .25s cubic-bezier(.2,.8,.25,1), box-shadow .25s ease; }
.gm-product:hover { transform: translateY(-3px); }

/* ---------- Card ribbons ---------- */
.gm-ribbon {
	position: absolute;
	top: 10px;
	left: -2px;
	z-index: 3;
	display: inline-flex;
	align-items: center;
	gap: 4px;
	padding: 4px 12px 4px 10px;
	font-size: 11px;
	font-weight: 800;
	letter-spacing: .04em;
	text-transform: uppercase;
	line-height: 1;
	color: #fff;
	border-radius: 0 6px 6px 0;
	box-shadow: 0 2px 8px -2px rgba(0,0,0,.25);
	pointer-events: none;
}
.gm-ribbon::before {
	content: '';
	position: absolute;
	left: 0;
	bottom: -5px;
	width: 0;
	height: 0;
	border-style: solid;
	border-width: 5px 5px 0 0;
}

/* Sale — vibrant green */
.gm-ribbon--sale {
	background: linear-gradient(135deg, #10b981, #059669);
}
.gm-ribbon--sale::before {
	border-color: #047857 transparent transparent transparent;
}

/* Stock out — dark/red */
.gm-ribbon--stockout {
	background: linear-gradient(135deg, #ef4444, #dc2626);
}
.gm-ribbon--stockout::before {
	border-color: #b91c1c transparent transparent transparent;
}

/* Custom — theme primary gradient */
.gm-ribbon--custom {
	background: linear-gradient(135deg, var(--gm-primary), color-mix(in srgb, var(--gm-primary) 70%, var(--gm-accent)));
}
.gm-ribbon--custom::before {
	border-color: color-mix(in srgb, var(--gm-primary) 70%, #000) transparent transparent transparent;
}

/* Stockout card: desaturate the image */
.gm-card--stockout .gm-product-thumb img {
	filter: grayscale(.6) opacity(.7);
}
.gm-card--stockout .gm-buy-now {
	pointer-events: none;
	opacity: .45;
	filter: grayscale(.8);
}

/* ============================================================
   POSTS / ARCHIVE
   ============================================================ */
.gm-posts { display: grid; gap: 18px; grid-template-columns: 1fr; margin: 20px 0; }
@media (min-width: 720px) { .gm-posts { grid-template-columns: repeat(2, minmax(0,1fr)); } }
@media (min-width: 1024px) { .gm-posts { grid-template-columns: repeat(3, minmax(0,1fr)); } }
.gm-post { overflow: hidden; }
.gm-post-thumb { display: block; aspect-ratio: 16/9; overflow: hidden; }
.gm-post-thumb img { width: 100%; height: 100%; object-fit: cover; }
.gm-post-body { padding: 16px; }
.gm-post-title { font-size: 18px; font-weight: 700; margin: 0 0 8px; }
.gm-post-title a { color: inherit; }
.gm-post-meta { color: var(--gm-muted); font-size: 13px; margin-bottom: 8px; }
.gm-post-excerpt { color: var(--gm-muted); font-size: 14.5px; }
.gm-link { color: var(--gm-primary); font-weight: 600; font-size: 14px; }

.gm-page-header { margin: 24px 0 18px; }
.woocommerce-cart .gm-page-header { display: none; }
.woocommerce-checkout .gm-page-header { text-align: center; margin: 20px auto 10px; max-width: 860px; }
.gm-page-title { font-size: clamp(1.5rem, 3.4vw, 2.2rem); font-weight: 800; margin: 0; }
.gm-page-thumb { margin: 18px 0; border-radius: var(--gm-radius); overflow: hidden; }
.gm-page-content { font-size: 16px; }
.gm-prose p { margin: 0 0 1em; }
.gm-prose h2 { font-size: 1.5rem; margin-top: 1.4em; }
.gm-prose h3 { font-size: 1.2rem; margin-top: 1.2em; }
.gm-prose img { border-radius: 14px; margin: 1em 0; }
.gm-prose blockquote { padding: 10px 18px; border-left: 4px solid var(--gm-primary); background: rgba(255,255,255,.5); border-radius: 8px; color: var(--gm-muted); }
.gm-prose code { background: var(--gm-bg-c); padding: 2px 6px; border-radius: 6px; font-size: 14px; }
.gm-prose pre { background: #0f172a; color: #e2e8f0; padding: 14px 16px; border-radius: 12px; overflow: auto; }
.gm-prose a { text-decoration: underline; text-underline-offset: 3px; }

.gm-pagination { display: flex; justify-content: center; margin: 28px 0; }
.gm-pagination .page-numbers { display: inline-flex; align-items: center; justify-content: center; min-width: 36px; height: 36px; padding: 0 10px; margin: 0 3px; border-radius: 10px; background: rgba(255,255,255,.6); border: 1px solid var(--gm-card-brd); color: var(--gm-text); font-weight: 600; }
.gm-pagination .page-numbers.current { background: var(--gm-primary); color: #fff; border-color: var(--gm-primary); }

/* ============================================================
   404
   ============================================================ */
.gm-404 { padding: 40px 0 60px; }
.gm-404-card { padding: 28px; text-align: center; }
.gm-404-card .gm-page-title { font-size: clamp(2.5rem, 8vw, 5rem); }
.gm-404-text { color: var(--gm-muted); }
.gm-404-actions { display: flex; gap: 10px; justify-content: center; flex-wrap: wrap; margin: 14px 0 18px; }

/* ============================================================
   STATIC PAGES (About, Support, Reviews)
   ============================================================ */
.gm-static-page {
	max-width: 680px;
	margin: 0 auto;
	padding: 24px 0 40px;
	display: flex;
	flex-direction: column;
	gap: 18px;
}
.gm-static-header {
	text-align: center;
	padding: 0 16px;
}
.gm-static-icon {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	width: 52px;
	height: 52px;
	border-radius: 50%;
	background: linear-gradient(135deg, var(--gm-primary), var(--gm-accent));
	color: #fff;
	margin: 0 auto 12px;
}
.gm-static-title {
	font-size: clamp(1.5rem, 4vw, 2rem);
	font-weight: 800;
	margin: 0 0 6px;
}
.gm-static-subtitle {
	color: var(--gm-muted);
	font-size: 15px;
	margin: 0;
}
.gm-static-card {
	padding: 22px;
}
.gm-static-card .gm-prose { font-size: 15px; line-height: 1.7; }
.gm-static-card .gm-prose p:first-child { margin-top: 0; }
.gm-static-card .gm-prose p:last-child { margin-bottom: 0; }

/* About Us — feature cards */
.gm-about-features {
	display: grid;
	grid-template-columns: 1fr;
	gap: 12px;
}
@media (min-width: 540px) { .gm-about-features { grid-template-columns: repeat(3, 1fr); } }
.gm-about-feature {
	padding: 20px 16px;
	text-align: center;
}
.gm-about-feature-icon {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	width: 42px;
	height: 42px;
	border-radius: 12px;
	background: color-mix(in srgb, var(--gm-primary) 10%, transparent);
	color: var(--gm-primary);
	margin-bottom: 10px;
}
.gm-about-feature h3 {
	font-size: 14px;
	font-weight: 800;
	margin: 0 0 4px;
}
.gm-about-feature p {
	font-size: 13px;
	color: var(--gm-muted);
	margin: 0;
	line-height: 1.5;
}

/* Support — channel cards */
.gm-support-channels {
	display: grid;
	grid-template-columns: 1fr;
	gap: 12px;
}
@media (min-width: 540px) { .gm-support-channels { grid-template-columns: 1fr 1fr; } }
.gm-support-card {
	display: flex;
	align-items: flex-start;
	gap: 14px;
	padding: 20px;
	text-decoration: none;
	color: var(--gm-text);
	transition: border-color .2s ease, box-shadow .2s ease;
}
.gm-support-card:hover {
	border-color: color-mix(in srgb, var(--gm-primary) 40%, var(--gm-card-brd));
	box-shadow: 0 4px 20px color-mix(in srgb, var(--gm-primary) 10%, transparent);
}
.gm-support-icon {
	flex-shrink: 0;
	width: 48px;
	height: 48px;
	border-radius: 14px;
	display: flex;
	align-items: center;
	justify-content: center;
}
.gm-support-messenger .gm-support-icon { background: #ede7f6; color: #0084ff; }
.gm-support-whatsapp .gm-support-icon { background: #e8f5e9; color: #25d366; }
.gm-support-info h3 { font-size: 15px; font-weight: 800; margin: 0 0 2px; }
.gm-support-info p { font-size: 13px; color: var(--gm-muted); margin: 0 0 8px; line-height: 1.45; }
.gm-support-cta {
	font-size: 13px;
	font-weight: 700;
	color: var(--gm-primary);
}

/* Reviews — card grid */
.gm-reviews-grid {
	display: grid;
	grid-template-columns: 1fr;
	gap: 12px;
}
@media (min-width: 540px) { .gm-reviews-grid { grid-template-columns: 1fr 1fr; } }
.gm-review-card {
	padding: 18px;
	display: flex;
	flex-direction: column;
	gap: 8px;
}
.gm-review-header {
	display: flex;
	align-items: center;
	gap: 10px;
}
.gm-review-avatar img {
	width: 36px;
	height: 36px;
	border-radius: 50%;
	object-fit: cover;
}
.gm-review-author {
	display: block;
	font-size: 13.5px;
	font-weight: 700;
}
.gm-review-product {
	display: block;
	font-size: 11.5px;
	color: var(--gm-muted);
}
.gm-review-stars {
	display: flex;
	gap: 2px;
	color: #f59e0b;
}
.gm-review-text {
	font-size: 13.5px;
	line-height: 1.5;
	color: var(--gm-text);
	margin: 0;
}
.gm-review-date {
	font-size: 11.5px;
	color: var(--gm-muted);
}

/* ============================================================
   FOOTER
   ============================================================ */
.gm-footer {
	margin-top: 40px;
	background: color-mix(in srgb, var(--gm-bg-a) 85%, transparent);
	-webkit-backdrop-filter: blur(14px); backdrop-filter: blur(14px);
	padding-bottom: 80px;
}
@media (min-width: 768px) { .gm-footer { padding-bottom: 0; } }
@media (max-width: 767px) {
	.gm-footer-inner {
		text-align: center;
		gap: 24px;
		padding: 28px 16px 20px;
	}
	.gm-footer-brand { align-items: center; }
	.gm-footer-blurb { margin-left: auto; margin-right: auto; }
	.gm-footer-heading::after { left: 50%; transform: translateX(-50%); }
	.gm-footer-menu { align-items: center; }
	.gm-footer-payments { flex-direction: column; gap: 8px; padding: 14px 12px; }
	.gm-footer-pay-img { height: 30px; }
	.gm-footer-base-inner { justify-content: center; text-align: center; flex-direction: column; gap: 4px; }
}

/* Gradient accent bar at top */
.gm-footer-accent {
	height: 3px;
	background: linear-gradient(90deg, var(--gm-primary), var(--gm-accent), var(--gm-primary));
}

/* Main grid */
.gm-footer-inner {
	display: grid;
	gap: 28px;
	padding: 34px 16px 28px;
	grid-template-columns: 1fr;
}
@media (min-width: 768px) {
	.gm-footer-inner { grid-template-columns: 1.6fr 1fr 1fr; padding: 40px 24px 32px; }
}

/* Brand column */
.gm-footer-brand { display: flex; flex-direction: column; gap: 0; }
.gm-footer-tagline {
	font-size: 14.5px;
	font-weight: 700;
	color: var(--gm-text);
	margin: 10px 0 4px;
}
.gm-footer-blurb {
	color: var(--gm-muted);
	font-size: 13.5px;
	max-width: 380px;
	margin: 0;
	line-height: 1.55;
}

/* Link columns */
.gm-footer-heading {
	font-size: 13px;
	font-weight: 800;
	text-transform: uppercase;
	letter-spacing: .06em;
	color: var(--gm-text);
	margin: 0 0 12px;
	position: relative;
	padding-bottom: 8px;
}
.gm-footer-heading::after {
	content: '';
	position: absolute;
	left: 0;
	bottom: 0;
	width: 24px;
	height: 2px;
	border-radius: 2px;
	background: var(--gm-primary);
}
.gm-footer-links .gm-footer-menu { list-style: none; padding: 0; margin: 0; }
.gm-footer-menu { display: flex; flex-direction: column; gap: 9px; }
.gm-footer-menu li { list-style: none; }
.gm-footer-menu a {
	color: var(--gm-muted);
	font-weight: 500;
	font-size: 13.5px;
	transition: color .15s ease, padding-left .15s ease;
}
.gm-footer-menu a:hover { color: var(--gm-primary); padding-left: 4px; }

/* Payment methods bar */
.gm-footer-payments-bar {
	border-top: 1px solid var(--gm-card-brd);
	background: rgba(255,255,255,.4);
}
.gm-footer-payments {
	display: flex;
	flex-wrap: wrap;
	gap: 14px;
	align-items: center;
	justify-content: center;
	padding: 16px;
}
.gm-footer-pay-label {
	font-size: 12.5px;
	font-weight: 700;
	color: var(--gm-muted);
	text-transform: uppercase;
	letter-spacing: .03em;
}
.gm-footer-pay-img { height: 36px; width: auto; object-fit: contain; }

/* Copyright bar */
.gm-footer-base {
	border-top: 1px solid var(--gm-card-brd);
	padding: 14px 0;
	color: var(--gm-muted);
}
.gm-footer-base-inner {
	display: flex;
	flex-wrap: wrap;
	justify-content: space-between;
	align-items: center;
	gap: 8px;
	padding: 0 16px;
}
@media (max-width: 540px) {
	.gm-footer-base-inner { justify-content: center; text-align: center; }
}
.gm-footer-base small { font-size: 12.5px; }
.gm-footer-love { opacity: .7; }

/* ============================================================
   MOBILE BOTTOM NAV
   ============================================================ */
.gm-mnav {
	position: fixed; left: 12px; right: 12px; bottom: 12px; z-index: 40;
	background: rgba(255,255,255,.85);
	border: 1px solid var(--gm-card-brd);
	border-radius: 22px;
	-webkit-backdrop-filter: blur(20px) saturate(160%); backdrop-filter: blur(20px) saturate(160%);
	box-shadow: 0 18px 40px -18px rgba(15,23,42,.25);
	padding: 8px;
	padding-bottom: max(8px, env(safe-area-inset-bottom));
}
.gm-mnav ul { display: grid; grid-template-columns: repeat(4, 1fr); gap: 4px; }
.gm-mnav a {
	display: flex; flex-direction: column; align-items: center; gap: 2px;
	padding: 8px 4px; border-radius: 14px;
	color: var(--gm-muted); font-size: 11px; font-weight: 600;
	transition: color .15s ease, background .15s ease;
}
.gm-mnav a:hover, .gm-mnav a.is-active { color: var(--gm-primary); background: var(--gm-bg-c); }
.gm-mnav svg { color: inherit; }

/* Body padding so the floating nav never covers the last row of content. */
body.gm-body { padding-bottom: 90px; }

/* Desktop: keep the same floating bottom-pill aesthetic, but constrain its
   width and center it so it doesn't span the full viewport. Slightly bigger
   touch targets and labels because we have the room. */
@media (min-width: 1024px) {
	.gm-mnav {
		left: 50%;
		right: auto;
		bottom: 18px;
		transform: translateX(-50%);
		width: min(560px, calc(100vw - 32px));
		padding: 10px;
		box-shadow: 0 24px 48px -24px rgba(15,23,42,.35),
		            0 4px 12px -2px rgba(15,23,42,.08);
	}
	.gm-mnav ul { gap: 6px; }
	.gm-mnav a {
		padding: 10px 6px;
		font-size: 12.5px;
		gap: 4px;
	}
	body.gm-body { padding-bottom: 96px; }
}

/* ============================================================
   WOOCOMMERCE OVERRIDES
   ============================================================ */
.gm-shop .woocommerce-products-header { margin: 18px 0; }
.gm-shop .woocommerce-products-header__title { font-size: clamp(1.4rem, 3vw, 2rem); font-weight: 800; }

/* Result count + ordering: kill floats, use flex row */
.gm-shop .woocommerce-result-count,
.gm-shop .woocommerce-ordering {
	float: none !important;
}
.gm-shop .woocommerce-result-count {
	color: var(--gm-muted); font-size: 13px; margin: 0 0 4px;
}
.gm-shop .woocommerce-ordering {
	margin: 0 0 14px;
}
.gm-shop .woocommerce-ordering select {
	padding: 8px 12px; border-radius: 999px; border: 1px solid var(--gm-card-brd);
	background: rgba(255,255,255,.7); font: inherit; font-size: 13px;
}

/* Product grid: mirror .gm-grid from homepage */
.woocommerce ul.products,
.woocommerce-page ul.products {
	clear: both !important;
	display: grid !important;
	grid-template-columns: repeat(3, minmax(0,1fr));
	gap: 10px; margin: 0; padding: 0;
	list-style: none !important;
}
.woocommerce ul.products::before,
.woocommerce ul.products::after {
	display: none !important;
	content: none !important;
}
@media (min-width: 600px)  { .woocommerce ul.products { grid-template-columns: repeat(4, minmax(0,1fr)); gap: 14px; } }
@media (min-width: 900px)  { .woocommerce ul.products { grid-template-columns: repeat(5, minmax(0,1fr)); gap: 18px; } }
@media (min-width: 1200px) { .woocommerce ul.products { grid-template-columns: repeat(6, minmax(0,1fr)); } }
/* Cards now rendered via gmlounge_render_product_card() — same as homepage.
   Keep a fallback for any li.product that still uses default WooCommerce markup. */
.woocommerce ul.products li.product {
	float: none !important; width: auto !important; margin: 0 !important;
	list-style: none;
}
.woocommerce span.onsale {
	background: var(--gm-primary); color: #fff; padding: 4px 10px; border-radius: 999px;
	font-size: 11.5px; font-weight: 700; min-height: auto; line-height: 1.4;
}

/* ============================================================
   SINGLE PRODUCT — vertical card layout
   ============================================================ */
.gm-single-product {
	display: flex;
	flex-direction: column;
	gap: 16px;
	max-width: 640px;
	margin: 0 auto;
}

/* ---- Hero header card ---- */
.gm-sp-header {
	padding: 14px;
	position: relative;
	overflow: hidden;
}
.gm-sp-header::before {
	content: '';
	position: absolute;
	inset: 0 0 auto;
	height: 3px;
	background: linear-gradient(90deg, var(--gm-primary), var(--gm-accent));
	opacity: .85;
}
.gm-sp-hero {
	display: flex;
	gap: 14px;
	align-items: flex-start;
}
.gm-sp-thumb {
	flex-shrink: 0;
	width: 80px;
	height: 80px;
	border-radius: calc(var(--gm-radius) - 4px);
	overflow: hidden;
	background: linear-gradient(135deg, color-mix(in srgb, var(--gm-accent) 18%, #fff), #fff);
}
.gm-sp-thumb img {
	width: 100%;
	height: 100%;
	object-fit: cover;
}
.gm-sp-info {
	flex: 1;
	min-width: 0;
}
.gm-sp-title {
	font-size: clamp(1.1rem, 3vw, 1.45rem);
	font-weight: 800;
	margin: 0 0 8px;
	line-height: 1.25;
	color: var(--gm-text);
}

/* Trust badges */
.gm-sp-badges {
	display: flex;
	flex-wrap: wrap;
	gap: 6px;
	margin-bottom: 4px;
}
.gm-sp-badge {
	display: inline-flex;
	align-items: center;
	gap: 4px;
	padding: 3px 9px;
	border: 1px solid var(--gm-card-brd);
	border-radius: 999px;
	background: rgba(255,255,255,.7);
	font-size: 10.5px;
	font-weight: 700;
	color: var(--gm-text);
	line-height: 1;
	white-space: nowrap;
}
.gm-sp-badge-icon {
	color: var(--gm-primary);
}

/* Collapsible short description */
.gm-sp-excerpt {
	position: relative;
	margin-top: 10px;
	padding-top: 10px;
	border-top: 1px solid var(--gm-card-brd);
}
.gm-sp-excerpt-text {
	font-size: 13.5px;
	line-height: 1.55;
	color: var(--gm-muted);
	max-height: 3.1em;
	overflow: hidden;
	transition: max-height .3s ease;
}
.gm-sp-excerpt-text p { margin: 0; }
.gm-sp-excerpt.is-open .gm-sp-excerpt-text {
	max-height: 600px;
}
.gm-sp-excerpt-toggle {
	display: flex;
	align-items: center;
	justify-content: center;
	width: 100%;
	padding: 4px 0 0;
	border: 0;
	background: none;
	cursor: pointer;
	color: var(--gm-muted);
	transition: color .2s ease, transform .2s ease;
}
.gm-sp-excerpt-toggle:hover { color: var(--gm-primary); }
.gm-sp-chevron { transition: transform .25s ease; }
.gm-sp-excerpt.is-open .gm-sp-chevron { transform: rotate(180deg); }

/* ---- Form wrap (PPOM + variations + add to cart) ---- */
.gm-sp-form-wrap {
	background: var(--gm-card);
	border: 1px solid var(--gm-card-brd);
	border-radius: var(--gm-radius);
	overflow: hidden;
	-webkit-backdrop-filter: blur(14px) saturate(140%);
	backdrop-filter: blur(14px) saturate(140%);
	padding: 16px;
	box-shadow: 0 8px 28px -16px rgba(15, 23, 42, .12);
}
.gm-sp-form-wrap .summary { all: unset; display: block; }
.gm-sp-form-wrap .entry-summary { all: unset; display: block; }

/* Hide the default WooCommerce gallery / sale flash / price / title
   that might still leak through plugins */
.gm-single-product > .woocommerce-product-gallery,
.gm-single-product > .images,
.gm-single-product > .summary > .product_title,
.gm-single-product > .summary > .price,
.gm-single-product > .summary > .woocommerce-product-details__short-description,
.gm-single-product > .summary > .product_meta,
.gm-single-product > .woocommerce-tabs { display: none !important; }

/* Shimmer skeleton loader */
@keyframes gmShimmer {
	0% { background-position: -300px 0; }
	100% { background-position: 300px 0; }
}
.gm-sp-shimmer {
	display: flex;
	flex-direction: column;
	gap: 14px;
}
.gm-sp-shimmer-row {
	display: flex;
	gap: 12px;
}
.gm-sp-shimmer-grid {
	display: grid;
	grid-template-columns: repeat(3, 1fr);
	gap: 8px;
}
@media (max-width: 600px) {
	.gm-sp-shimmer-grid { grid-template-columns: repeat(2, 1fr); }
}
.gm-sp-shimmer-block {
	border-radius: 10px;
	background: linear-gradient(90deg, #eef1f5 25%, #e2e6ec 37%, #eef1f5 63%);
	background-size: 600px 100%;
	animation: gmShimmer 1.4s ease infinite;
}
.gm-sp-shimmer-card {
	height: 80px;
}

/* Variations form — hidden until JS reorders PPOM, then revealed */
.gm-sp-form-wrap form.cart {
	display: flex;
	flex-direction: column;
	gap: 14px;
	padding: 0;
	border: 0;
	background: none;
	border-radius: 0;
	opacity: 0;
	max-height: 0;
	overflow: hidden;
	transition: opacity .3s ease, max-height .3s ease;
}
.gm-sp-form-wrap form.cart.gm-sp-ready {
	opacity: 1;
	max-height: 4000px;
	overflow: visible;
}

/* WooVR variation cards — override plugin grid selectors.
   Plugin uses [class*="woovr-variations-grid"] with high specificity,
   so we match it and add our wrapper for clean overrides. */

/* Container: CSS Grid instead of plugin's flex-wrap + negative margins */
.gm-sp-form-wrap .woovr-variations[class*="woovr-variations-grid"] {
	display: grid !important;
	grid-template-columns: repeat(3, 1fr) !important;
	gap: 8px !important;
	padding: 0 !important;
	margin: 0 !important;
	max-width: 100% !important;
	overflow: hidden !important;
}

@media (max-width: 600px) {
	.gm-sp-form-wrap .woovr-variations[class*="woovr-variations-grid"] {
		grid-template-columns: repeat(2, 1fr) !important;
		gap: 6px !important;
	}
	.gm-sp-form-wrap .woovr-variations[class*="woovr-variations-grid"] .woovr-variation {
		grid-template-columns: 24px 1fr !important;
		padding: 7px 7px !important;
		gap: 0 6px !important;
	}
	.gm-sp-form-wrap .woovr-variations[class*="woovr-variations-grid"] .woovr-variation .woovr-variation-image {
		width: 24px !important;
	}
	.gm-sp-form-wrap .woovr-variations[class*="woovr-variations-grid"] .woovr-variation .woovr-variation-image img {
		width: 24px !important;
		height: 24px !important;
		max-width: 24px !important;
	}
	.gm-sp-form-wrap .woovr-variations[class*="woovr-variations-grid"] .woovr-variation .woovr-variation-name label,
	.gm-sp-form-wrap .woovr-variations[class*="woovr-variations-grid"] .woovr-variation .woovr-variation-name p {
		font-size: 10px !important;
	}
	.gm-sp-form-wrap .woovr-variations[class*="woovr-variations-grid"] .woovr-variation .woovr-variation-description {
		font-size: 8.5px !important;
	}
	.gm-sp-form-wrap .woovr-variations[class*="woovr-variations-grid"] .woovr-variation .woovr-variation-price {
		font-size: 10.5px !important;
		margin: 3px 0 0 !important;
		padding: 3px 0 0 !important;
	}
	.gm-sp-form-wrap {
		padding: 10px !important;
	}
	.gm-sp-form-wrap .ppom-rendering-fields,
	.gm-sp-form-wrap .form-row.ppom-rendering-fields {
		padding: 12px 10px 18px !important;
	}
}

/* Each variation card — two-section layout: top (image+name+desc) → divider → price */
.gm-sp-form-wrap .woovr-variations[class*="woovr-variations-grid"] .woovr-variation {
	display: grid !important;
	grid-template-columns: 32px 1fr !important;
	grid-template-rows: auto auto !important;
	gap: 0 8px !important;
	width: auto !important;
	padding: 8px 10px !important;
	margin: 0 !important;
	border: 2px solid var(--gm-card-brd) !important;
	border-radius: calc(var(--gm-radius) - 4px) !important;
	background: rgba(255,255,255,.85) !important;
	position: relative;
	cursor: pointer;
	transition: border-color .2s ease, box-shadow .2s ease, background .2s ease;
	align-items: center;
	min-width: 0 !important;
	overflow: hidden !important;
}
.gm-sp-form-wrap .woovr-variations[class*="woovr-variations-grid"] .woovr-variation:hover {
	border-color: color-mix(in srgb, var(--gm-primary) 40%, var(--gm-card-brd)) !important;
}

/* Active card */
.gm-sp-form-wrap .woovr-variations[class*="woovr-variations-grid"] .woovr-variation.woovr-variation-active {
	border-color: var(--gm-primary) !important;
	background: color-mix(in srgb, var(--gm-primary) 5%, #fff) !important;
	box-shadow: 0 0 0 3px color-mix(in srgb, var(--gm-primary) 12%, transparent) !important;
}

/* Checkmark badge — hidden by default, visible only on active card */
.gm-sp-form-wrap .woovr-variations[class*="woovr-variations-grid"] .woovr-variation::before {
	display: none !important;
}
.gm-sp-form-wrap .woovr-variations[class*="woovr-variations-grid"] .woovr-variation.woovr-variation-active::before {
	display: block !important;
	width: 18px !important;
	height: 18px !important;
	line-height: 18px !important;
	font-size: 11px !important;
	top: 6px !important;
	right: 6px !important;
	background-color: var(--gm-primary) !important;
	border: 1.5px solid #fff !important;
}

/* Hide radio selector */
.gm-sp-form-wrap .woovr-variations[class*="woovr-variations-grid"] .woovr-variation .woovr-variation-selector {
	display: none !important;
}

/* Image — left column, spanning both rows is not needed, just row 1 */
.gm-sp-form-wrap .woovr-variations[class*="woovr-variations-grid"] .woovr-variation .woovr-variation-image {
	grid-column: 1 !important;
	grid-row: 1 !important;
	width: 32px !important;
	flex: none !important;
	margin: 0 !important;
	padding: 0 !important;
	align-self: center;
}
.gm-sp-form-wrap .woovr-variations[class*="woovr-variations-grid"] .woovr-variation .woovr-variation-image img {
	width: 32px !important;
	height: 32px !important;
	max-width: 32px !important;
	object-fit: contain !important;
	border-radius: 6px !important;
}
.gm-sp-form-wrap .woovr-variations[class*="woovr-variations-grid"] .woovr-variation .woovr-variation-image::before {
	display: none !important;
}

/* Info block — right column row 1 (contains name, description, price) */
.gm-sp-form-wrap .woovr-variations[class*="woovr-variations-grid"] .woovr-variation .woovr-variation-info {
	grid-column: 2 !important;
	grid-row: 1 !important;
	display: flex !important;
	flex-direction: column !important;
	align-items: flex-start !important;
	text-align: left !important;
	padding: 0 !important;
	flex: none !important;
	width: 100% !important;
	min-width: 0 !important;
	gap: 0 !important;
	overflow: hidden !important;
}

/* Variation name */
.gm-sp-form-wrap .woovr-variations[class*="woovr-variations-grid"] .woovr-variation .woovr-variation-name {
	margin: 0 !important;
	padding: 0 !important;
	font-weight: 700 !important;
	order: 1;
}
.gm-sp-form-wrap .woovr-variations[class*="woovr-variations-grid"] .woovr-variation .woovr-variation-name label,
.gm-sp-form-wrap .woovr-variations[class*="woovr-variations-grid"] .woovr-variation .woovr-variation-name p {
	font-size: 10px !important;
	font-weight: 700 !important;
	color: var(--gm-text) !important;
	line-height: 1.3 !important;
	cursor: pointer;
	text-align: left !important;
	margin: 0 !important;
	overflow: hidden !important;
	display: -webkit-box !important;
	-webkit-line-clamp: 2 !important;
	line-clamp: 2 !important;
	-webkit-box-orient: vertical !important;
	white-space: normal !important;
	text-overflow: unset !important;
	max-width: 100% !important;
}

/* Description — visible, below name */
.gm-sp-form-wrap .woovr-variations[class*="woovr-variations-grid"] .woovr-variation .woovr-variation-description {
	display: block !important;
	font-size: 9.5px !important;
	font-weight: 500 !important;
	color: #22c55e !important;
	line-height: 1.3 !important;
	margin: 1px 0 0 !important;
	padding: 0 !important;
	order: 2;
	overflow: hidden !important;
	text-overflow: ellipsis !important;
	white-space: nowrap !important;
	max-width: 100% !important;
}

/* Price — below a visual divider, via border-top on price */
.gm-sp-form-wrap .woovr-variations[class*="woovr-variations-grid"] .woovr-variation .woovr-variation-price {
	font-size: 12px !important;
	font-weight: 800 !important;
	color: var(--gm-primary) !important;
	margin: 5px 0 0 !important;
	padding: 5px 0 0 !important;
	display: block !important;
	text-align: left !important;
	width: 100% !important;
	border-top: 1px solid color-mix(in srgb, var(--gm-card-brd) 60%, transparent) !important;
	order: 3;
}

/* Hide availability */
.gm-sp-form-wrap .woovr-variations[class*="woovr-variations-grid"] .woovr-variation .woovr-variation-availability {
	display: none !important;
}

/* Also handle non-grid / radio list fallback */
.gm-sp-form-wrap .woovr-variations .woovr-variation {
	margin-left: 0 !important;
	margin-right: 0 !important;
}

/* Hide redundant WooCommerce variation desc+price (already shown in WooVR cards) */
.gm-sp-form-wrap .woocommerce-variation.single_variation {
	visibility: hidden !important;
}

/* PPOM fields — styled as a section above variations */
.gm-sp-form-wrap .ppom-rendering-fields .ppom-field-wrapper[data-type="hidden"] {
	display: none !important;
}
.gm-sp-form-wrap .ppom-rendering-fields,
.gm-sp-form-wrap .form-row.ppom-rendering-fields {
	display: flex !important;
	flex-wrap: wrap;
	gap: 12px;
	padding: 18px 18px 24px !important;
	background: color-mix(in srgb, var(--gm-primary) 4%, #fff);
	border: 1px solid color-mix(in srgb, var(--gm-primary) 15%, var(--gm-card-brd));
	border-radius: calc(var(--gm-radius) - 4px);
	margin: 0;
}
.gm-sp-form-wrap .ppom-rendering-fields .ppom-field-wrapper {
	flex: 1 1 calc(50% - 12px) !important;
	min-width: calc(50% - 12px) !important;
	width: auto !important;
	max-width: none !important;
	padding: 0 !important;
	margin: 0 !important;
}
.gm-sp-form-wrap .ppom-rendering-fields .ign-status {
	flex: 0 0 100% !important;
	width: 100% !important;
	order: 90;
	margin: 4px 0 0 !important;
}
.gm-sp-form-wrap .ppom-rendering-fields {
	margin-bottom: 14px !important;
}
.gm-sp-form-wrap .ppom-rendering-fields .form-group {
	margin: 0;
}
.gm-sp-form-wrap .ppom-rendering-fields label {
	display: block;
	font-size: 12.5px;
	font-weight: 700;
	color: var(--gm-text);
	margin-bottom: 5px;
}
.gm-sp-form-wrap .ppom-rendering-fields label .show_required {
	color: #ef4444;
}
.gm-sp-form-wrap .ppom-rendering-fields .form-control,
.gm-sp-form-wrap .ppom-rendering-fields input[type="text"],
.gm-sp-form-wrap .ppom-rendering-fields input[type="number"],
.gm-sp-form-wrap .ppom-rendering-fields input[type="email"],
.gm-sp-form-wrap .ppom-rendering-fields select,
.gm-sp-form-wrap .ppom-rendering-fields textarea {
	width: 100%;
	padding: 10px 12px !important;
	border: 1px solid var(--gm-card-brd) !important;
	border-radius: 10px !important;
	font-size: 14px !important;
	font-family: inherit !important;
	background: #fff !important;
	color: var(--gm-text) !important;
	transition: border-color .2s ease, box-shadow .2s ease;
}
.gm-sp-form-wrap .ppom-rendering-fields .form-control:focus,
.gm-sp-form-wrap .ppom-rendering-fields input:focus,
.gm-sp-form-wrap .ppom-rendering-fields select:focus,
.gm-sp-form-wrap .ppom-rendering-fields textarea:focus {
	outline: none !important;
	border-color: color-mix(in srgb, var(--gm-primary) 50%, transparent) !important;
	box-shadow: 0 0 0 3px color-mix(in srgb, var(--gm-primary) 12%, transparent) !important;
}

/* Hide the native variations dropdown (woovr replaces it) */
.gm-sp-form-wrap table.variations { display: none; }
.gm-sp-form-wrap .reset_variations { display: none; }
.gm-sp-form-wrap .reset_variations_alert { display: none; }

/* Selected variation info strip */
.gm-sp-form-wrap .woocommerce-variation {
	background: color-mix(in srgb, var(--gm-primary) 6%, #fff);
	border: 1px solid color-mix(in srgb, var(--gm-primary) 20%, var(--gm-card-brd));
	border-radius: 12px;
	padding: 10px 14px;
	font-size: 13px;
}
.gm-sp-form-wrap .woocommerce-variation-description p { margin: 0; font-size: 13px; color: var(--gm-muted); }
.gm-sp-form-wrap .woocommerce-variation-price .price {
	font-size: 1.15rem;
	font-weight: 800;
	color: var(--gm-primary);
}

/* Quantity + Buttons row */
.gm-sp-form-wrap .woocommerce-variation-add-to-cart {
	display: flex;
	flex-wrap: wrap;
	align-items: center;
	gap: 8px;
}
.gm-sp-form-wrap .quantity {
	display: flex;
	align-items: center;
	border: 1px solid var(--gm-card-brd);
	border-radius: 12px;
	overflow: hidden;
	background: #fff;
}
.gm-sp-form-wrap .quantity input[type="number"] {
	width: 48px;
	padding: 10px 4px;
	text-align: center;
	border: 0;
	border-radius: 0;
	font-weight: 700;
	font-size: 15px;
	background: transparent;
	-moz-appearance: textfield;
	appearance: textfield;
}
.gm-sp-form-wrap .quantity input::-webkit-outer-spin-button,
.gm-sp-form-wrap .quantity input::-webkit-inner-spin-button {
	-webkit-appearance: none;
	margin: 0;
}

/* Action buttons */
.gm-sp-form-wrap .single_add_to_cart_button,
.gm-sp-form-wrap .wpcbn-btn {
	flex: 1;
	display: inline-flex;
	align-items: center;
	justify-content: center;
	padding: 12px 16px !important;
	border: 0 !important;
	border-radius: 12px !important;
	font-weight: 700 !important;
	font-size: 14px !important;
	cursor: pointer;
	transition: transform .15s ease, box-shadow .2s ease;
	white-space: nowrap;
}
.gm-sp-form-wrap .single_add_to_cart_button {
	background: rgba(255,255,255,.85) !important;
	color: var(--gm-text) !important;
	border: 1px solid var(--gm-card-brd) !important;
}
.gm-sp-form-wrap .single_add_to_cart_button:hover {
	background: #fff !important;
	border-color: var(--gm-primary) !important;
	color: var(--gm-text) !important;
}
.gm-sp-form-wrap .wpcbn-btn {
	background: linear-gradient(135deg, var(--gm-primary), color-mix(in srgb, var(--gm-primary) 70%, var(--gm-accent))) !important;
	color: #fff !important;
	box-shadow: 0 4px 14px -4px color-mix(in srgb, var(--gm-primary) 55%, transparent);
}
.gm-sp-form-wrap .wpcbn-btn:hover {
	transform: translateY(-1px);
	box-shadow: 0 8px 22px -6px color-mix(in srgb, var(--gm-primary) 70%, transparent);
	color: #fff !important;
}

/* ---- Long description card ---- */
.gm-sp-description {
	padding: 18px;
}
.gm-sp-desc-title {
	font-size: 1.2rem;
	font-weight: 800;
	margin: 0 0 12px;
}
.gm-sp-desc-body {
	font-size: 14.5px;
	line-height: 1.7;
	color: var(--gm-text);
}
.gm-sp-desc-body p { margin: 0 0 .8em; }

/* ---- Related products ---- */
.gm-single-product .related.products {
	margin-top: 8px;
}
.gm-single-product .related.products > h2 {
	font-size: 1.15rem;
	font-weight: 800;
	margin: 0 0 12px;
}
.gm-single-product .related.products ul.products {
	display: grid;
	grid-template-columns: repeat(2, 1fr);
	gap: 10px;
	list-style: none;
	padding: 0;
	margin: 0;
}
.gm-single-product .related.products ul.products li.product {
	background: var(--gm-card);
	border: 1px solid var(--gm-card-brd);
	border-radius: var(--gm-radius);
	overflow: hidden;
	padding: 8px;
	transition: transform .2s ease, box-shadow .25s ease;
}
.gm-single-product .related.products ul.products li.product:hover {
	transform: translateY(-2px);
	box-shadow: 0 8px 24px -10px rgba(15, 23, 42, .15);
}
.gm-single-product .related.products ul.products li.product a img {
	width: 100%;
	aspect-ratio: 1;
	object-fit: cover;
	border-radius: calc(var(--gm-radius) - 4px);
}
.gm-single-product .related.products ul.products li.product h2 {
	font-size: 12px;
	font-weight: 700;
	margin: 6px 0 2px;
	line-height: 1.25;
	display: -webkit-box;
	-webkit-line-clamp: 2;
	line-clamp: 2;
	-webkit-box-orient: vertical;
	overflow: hidden;
}
.gm-single-product .related.products ul.products li.product .price {
	font-size: 11.5px;
	font-weight: 700;
	color: var(--gm-primary);
}
.gm-single-product .related.products ul.products li.product .button {
	display: none;
}
.gm-single-product .related.products ul.products li.product .wpcbn-btn {
	display: none;
}

/* ---- Global WooCommerce buttons (non-single-product) ---- */
.woocommerce #respond input#submit,
.woocommerce a.button,
.woocommerce button.button,
.woocommerce input.button {
	background: var(--gm-primary) !important; color: #fff !important;
	padding: 10px 20px !important; border-radius: 999px !important;
	font-weight: 600 !important; border: 0 !important;
}
.woocommerce a.button.alt, .woocommerce button.button.alt, .woocommerce #respond input#submit.alt {
	background: linear-gradient(135deg, var(--gm-primary), color-mix(in srgb, var(--gm-primary) 70%, var(--gm-accent))) !important;
}

/* ---- Responsive adjustments ---- */
@media (min-width: 480px) {
	.gm-sp-thumb { width: 96px; height: 96px; }
	.gm-sp-header { padding: 18px; }
	.gm-sp-title { font-size: 1.35rem; }
}
@media (min-width: 768px) {
	.gm-single-product { max-width: 680px; }
	.gm-sp-hero { gap: 18px; }
	.gm-sp-thumb { width: 110px; height: 110px; }
	.gm-sp-form-wrap { padding: 20px; }
	.gm-single-product .related.products ul.products {
		grid-template-columns: repeat(4, 1fr);
	}
}

/* My-account shared card style */
.woocommerce-MyAccount-content,
.woocommerce-account .woocommerce-MyAccount-navigation ul {
	background: var(--gm-card); border: 1px solid var(--gm-card-brd);
	border-radius: var(--gm-radius); padding: 18px;
	-webkit-backdrop-filter: blur(12px); backdrop-filter: blur(12px);
}

/* ===================== Cart Page (WooCommerce Block Cart) ===================== */

/* Page-level container */
.wp-block-woocommerce-cart {
	max-width: 720px !important;
	margin: 0 auto !important;
	padding: 0 12px !important;
}

/* Page title */
.woocommerce-cart .wp-block-post-title,
.woocommerce-cart .entry-title {
	font-size: 1.5rem;
	font-weight: 800;
	margin-bottom: 16px;
}

/* Two-column layout wrapper */
.wc-block-cart .wc-block-components-sidebar-layout {
	gap: 16px;
}

/* ---- Main column (items) ---- */
.wc-block-cart .wc-block-components-main {
	background: var(--gm-card);
	border: 1px solid var(--gm-card-brd);
	border-radius: var(--gm-radius);
	padding: 0 !important;
	overflow: hidden;
	-webkit-backdrop-filter: blur(12px);
	backdrop-filter: blur(12px);
}

/* Items table reset */
table.wc-block-cart-items {
	border: 0 !important;
}
table.wc-block-cart-items .wc-block-cart-items__header {
	padding: 12px 18px !important;
	border-bottom: 1px solid var(--gm-card-brd);
	background: color-mix(in srgb, var(--gm-primary) 3%, var(--gm-card));
}
table.wc-block-cart-items .wc-block-cart-items__header th {
	font-size: 11px !important;
	font-weight: 600 !important;
	text-transform: uppercase !important;
	letter-spacing: .04em;
	color: var(--gm-muted) !important;
}

/* Each cart item row */
table.wc-block-cart-items .wc-block-cart-items__row {
	padding: 16px 18px !important;
	border-bottom: 1px solid var(--gm-card-brd) !important;
}
table.wc-block-cart-items .wc-block-cart-items__row:last-child {
	border-bottom: 0 !important;
}

/* Product image */
.wc-block-cart-item__image {
	width: 64px !important;
}
.wc-block-cart-item__image img {
	border-radius: 10px !important;
	object-fit: cover !important;
}

/* Product name */
.wc-block-cart .wc-block-components-product-name {
	font-size: 14px !important;
	font-weight: 700 !important;
	color: var(--gm-text) !important;
	text-decoration: none !important;
	margin-bottom: 2px !important;
}
.wc-block-cart .wc-block-components-product-name:hover {
	color: var(--gm-primary) !important;
}

/* Product metadata (variation details) */
.wc-block-cart .wc-block-components-product-metadata {
	font-size: 12px !important;
	color: var(--gm-muted) !important;
}

/* Product price (per item) */
.wc-block-cart .wc-block-cart-item__prices {
	font-size: 13px !important;
	color: var(--gm-muted) !important;
	font-weight: 600 !important;
}

/* Quantity selector */
.wc-block-cart .wc-block-components-quantity-selector {
	border: 1.5px solid var(--gm-card-brd) !important;
	border-radius: 10px !important;
	overflow: hidden;
}
.wc-block-cart .wc-block-components-quantity-selector input {
	font-weight: 700 !important;
	color: var(--gm-text) !important;
}
.wc-block-cart .wc-block-components-quantity-selector .wc-block-components-quantity-selector__button {
	color: var(--gm-text) !important;
}
.wc-block-cart .wc-block-components-quantity-selector .wc-block-components-quantity-selector__button:hover {
	color: var(--gm-primary) !important;
}

/* Remove item link */
.wc-block-cart .wc-block-cart-item__remove-link {
	font-size: 12px !important;
	color: #ef4444 !important;
	opacity: .7;
	text-decoration: none !important;
	transition: opacity .2s ease;
}
.wc-block-cart .wc-block-cart-item__remove-link:hover {
	opacity: 1;
}

/* Item total */
.wc-block-cart-item__total .wc-block-components-product-price {
	font-size: 15px !important;
	font-weight: 800 !important;
	color: var(--gm-primary) !important;
}

/* ---- Sidebar (totals) ---- */
.wc-block-cart .wc-block-components-sidebar {
	background: var(--gm-card);
	border: 1px solid var(--gm-card-brd);
	border-radius: var(--gm-radius);
	padding: 20px !important;
	-webkit-backdrop-filter: blur(12px);
	backdrop-filter: blur(12px);
	align-self: flex-start;
}

/* Totals heading */
.wc-block-cart .wp-block-woocommerce-cart-order-summary-heading-block {
	font-size: 1.1rem !important;
	font-weight: 800 !important;
	margin: 0 0 12px !important;
	padding: 0 !important;
}

/* Totals rows */
.wc-block-cart .wc-block-components-totals-item {
	border-color: color-mix(in srgb, var(--gm-card-brd) 50%, transparent) !important;
}
.wc-block-cart .wc-block-components-totals-item__label {
	font-weight: 600 !important;
	color: var(--gm-muted) !important;
}
.wc-block-cart .wc-block-components-totals-item__value {
	font-weight: 700 !important;
	color: var(--gm-text) !important;
}

/* Footer total (grand total) */
.wc-block-cart .wc-block-components-totals-footer-item .wc-block-components-totals-item__label {
	font-weight: 800 !important;
	color: var(--gm-text) !important;
}
.wc-block-cart .wc-block-components-totals-footer-item .wc-block-components-totals-item__value {
	font-weight: 800 !important;
	color: var(--gm-primary) !important;
}

/* Proceed to checkout button */
.wc-block-cart__submit-button {
	border-radius: 14px !important;
	padding: 14px 20px !important;
	font-size: 15px !important;
	font-weight: 700 !important;
	background: linear-gradient(135deg, var(--gm-primary), color-mix(in srgb, var(--gm-primary) 70%, var(--gm-accent))) !important;
	color: #fff !important;
	border: 0 !important;
	box-shadow: 0 4px 14px -4px color-mix(in srgb, var(--gm-primary) 55%, transparent);
	transition: transform .15s ease, box-shadow .2s ease !important;
}
.wc-block-cart__submit-button:hover {
	transform: translateY(-1px);
	box-shadow: 0 8px 22px -6px color-mix(in srgb, var(--gm-primary) 70%, transparent) !important;
	color: #fff !important;
	opacity: 1 !important;
}

/* Coupon panel */
.wc-block-cart .wc-block-components-totals-coupon .wc-block-components-totals-coupon__input input {
	border-radius: 10px !important;
}
.wc-block-cart .wc-block-components-totals-coupon__button {
	border-radius: 10px !important;
	background: var(--gm-primary) !important;
	color: #fff !important;
}

/* Order summary block border */
.wc-block-cart .wp-block-woocommerce-cart-order-summary-block {
	border-color: color-mix(in srgb, var(--gm-card-brd) 50%, transparent) !important;
}
.wc-block-cart .wp-block-woocommerce-cart-order-summary-totals-block {
	border-color: color-mix(in srgb, var(--gm-card-brd) 50%, transparent) !important;
}

/* Empty cart */
.wc-block-cart__empty-cart__title {
	color: var(--gm-muted) !important;
}

/* Sticky checkout bar (mobile) */
.wc-block-cart .wc-block-cart__submit-container--sticky {
	background: var(--gm-card) !important;
	border-top: 1px solid var(--gm-card-brd);
	-webkit-backdrop-filter: blur(12px);
	backdrop-filter: blur(12px);
}

/* Cart responsive */
@media (max-width: 600px) {
	.wp-block-woocommerce-cart { padding: 0 6px !important; }
	.wc-block-cart .wc-block-components-main { border-radius: calc(var(--gm-radius) - 2px); }
	.wc-block-cart .wc-block-components-sidebar {
		border-radius: calc(var(--gm-radius) - 2px);
		padding: 16px !important;
	}
	table.wc-block-cart-items .wc-block-cart-items__row { padding: 12px 14px !important; }
	.wc-block-cart-item__image { width: 52px !important; }
	.wc-block-cart .wc-block-components-product-name { font-size: 13px !important; }
	.wc-block-cart-item__total .wc-block-components-product-price { font-size: 14px !important; }
}

/* ===================== Checkout Page (WooCommerce Block Checkout) ===================== */

/* Page-level container */
.wp-block-woocommerce-checkout {
	max-width: 860px !important;
	margin: 0 auto !important;
	padding: 0 12px !important;
}

/* Two-column layout */
.wc-block-checkout .wc-block-components-sidebar-layout {
	gap: 16px;
}

/* ---- Main column (form) ---- */
.wc-block-checkout .wc-block-checkout__main {
	background: var(--gm-card);
	border: 1px solid var(--gm-card-brd);
	border-radius: var(--gm-radius);
	padding: 24px !important;
	-webkit-backdrop-filter: blur(12px);
	backdrop-filter: blur(12px);
}

/* Section headings inside checkout */
.wc-block-checkout .wc-block-components-checkout-step__heading {
	font-size: 15px !important;
	font-weight: 700 !important;
	color: var(--gm-text) !important;
}

/* Checkout step container */
.wc-block-checkout .wc-block-components-checkout-step {
	border-color: color-mix(in srgb, var(--gm-card-brd) 50%, transparent) !important;
}
.wc-block-checkout .wc-block-components-checkout-step__container:after {
	border-color: color-mix(in srgb, var(--gm-card-brd) 50%, transparent) !important;
}

/* Text inputs */
.wc-block-checkout .wc-block-components-text-input input,
.wc-block-checkout .wc-block-components-text-input textarea {
	border-radius: 10px !important;
	border-color: var(--gm-card-brd) !important;
	font-size: 14px !important;
}
.wc-block-checkout .wc-block-components-text-input input:focus,
.wc-block-checkout .wc-block-components-text-input textarea:focus {
	border-color: var(--gm-primary) !important;
	box-shadow: 0 0 0 1px var(--gm-primary) !important;
}

/* Select inputs */
.wc-block-checkout .wc-blocks-components-select .wc-blocks-components-select__select {
	border-radius: 10px !important;
	border-color: var(--gm-card-brd) !important;
}
.wc-block-checkout .wc-blocks-components-select .wc-blocks-components-select__select:focus {
	border-color: var(--gm-primary) !important;
}

/* Panels (shipping, payment, etc.) */
.wc-block-checkout .wc-block-components-panel__button {
	font-weight: 600 !important;
	color: var(--gm-text) !important;
}

/* Radio controls (shipping methods, payment methods) */
.wc-block-checkout .wc-block-components-radio-control__input {
	border-color: var(--gm-card-brd) !important;
}
.wc-block-checkout .wc-block-components-radio-control__input:checked {
	border-color: var(--gm-primary) !important;
	background: var(--gm-primary) !important;
}

/* Checkbox controls */
.wc-block-checkout .wc-block-components-checkbox__input[type="checkbox"]:checked {
	background: var(--gm-primary) !important;
	border-color: var(--gm-primary) !important;
}

/* Address card */
.wc-block-checkout .wc-block-components-address-card {
	border-radius: 10px !important;
	border-color: var(--gm-card-brd) !important;
}

/* ---- Sidebar (order summary) ---- */
.wc-block-checkout .wc-block-checkout__sidebar {
	background: var(--gm-card);
	border: 1px solid var(--gm-card-brd);
	border-radius: var(--gm-radius);
	padding: 20px !important;
	-webkit-backdrop-filter: blur(12px);
	backdrop-filter: blur(12px);
	align-self: flex-start;
	order: -1 !important;
	width: 100% !important;
	padding-left: 20px !important;
}
.wc-block-checkout .wc-block-checkout__main {
	order: 1 !important;
	width: 100% !important;
	padding-right: 0 !important;
}

/* Order summary heading */
.wc-block-checkout .wp-block-woocommerce-checkout-order-summary-block {
	border-color: color-mix(in srgb, var(--gm-card-brd) 50%, transparent) !important;
}

/* Order summary product name */
.wc-block-checkout .wc-block-components-order-summary-item__description .wc-block-components-product-name {
	font-weight: 600 !important;
	color: var(--gm-text) !important;
	font-size: 13px !important;
}

/* Order summary product image */
.wc-block-checkout .wc-block-components-order-summary-item__image img {
	border-radius: 8px !important;
}

/* Order summary product quantity badge */
.wc-block-checkout .wc-block-components-order-summary-item__quantity {
	background: var(--gm-primary) !important;
	border-color: var(--gm-card) !important;
	box-shadow: none !important;
}

/* Totals rows */
.wc-block-checkout .wc-block-components-totals-item {
	border-color: color-mix(in srgb, var(--gm-card-brd) 50%, transparent) !important;
}
.wc-block-checkout .wc-block-components-totals-item__label {
	font-weight: 600 !important;
	color: var(--gm-muted) !important;
}
.wc-block-checkout .wc-block-components-totals-item__value {
	font-weight: 700 !important;
	color: var(--gm-text) !important;
}

/* Footer total */
.wc-block-checkout .wc-block-components-totals-footer-item .wc-block-components-totals-item__label {
	font-weight: 800 !important;
	color: var(--gm-text) !important;
}
.wc-block-checkout .wc-block-components-totals-footer-item .wc-block-components-totals-item__value {
	font-weight: 800 !important;
	color: var(--gm-primary) !important;
}

/* Totals block borders */
.wc-block-checkout .wp-block-woocommerce-checkout-order-summary-totals-block {
	border-color: color-mix(in srgb, var(--gm-card-brd) 50%, transparent) !important;
}

/* Place order button */
.wc-block-components-checkout-place-order-button {
	border-radius: 14px !important;
	padding: 16px 24px !important;
	font-size: 15px !important;
	font-weight: 700 !important;
	background: linear-gradient(135deg, var(--gm-primary), color-mix(in srgb, var(--gm-primary) 70%, var(--gm-accent))) !important;
	color: #fff !important;
	border: 0 !important;
	box-shadow: 0 4px 14px -4px color-mix(in srgb, var(--gm-primary) 55%, transparent);
	transition: transform .15s ease, box-shadow .2s ease !important;
}
.wc-block-components-checkout-place-order-button:hover {
	transform: translateY(-1px);
	box-shadow: 0 8px 22px -6px color-mix(in srgb, var(--gm-primary) 70%, transparent) !important;
	color: #fff !important;
	opacity: 1 !important;
}
.wc-block-components-checkout-place-order-button:focus {
	box-shadow: 0 0 0 2px var(--gm-primary) !important;
}

/* Return to cart link */
.wc-block-components-checkout-return-to-cart-button {
	color: var(--gm-primary) !important;
	font-weight: 600 !important;
	font-size: 13px !important;
}

/* Payment method labels */
.wc-block-checkout .wc-block-components-radio-control__label {
	font-weight: 600 !important;
}

/* Express payment section */
.wc-block-checkout .wc-block-components-express-payment--checkout {
	border-color: color-mix(in srgb, var(--gm-card-brd) 50%, transparent) !important;
}

/* Notices inside checkout */
.wc-block-checkout .wc-block-components-notice-banner {
	border-radius: 10px !important;
	border-color: var(--gm-card-brd) !important;
}

/* Hide unnecessary billing fields — keep only full name & phone */
.wc-block-checkout__billing-fields .wc-block-components-address-form__last_name,
.wc-block-checkout__billing-fields .wc-block-components-address-form__company,
.wc-block-checkout__billing-fields .wc-block-components-address-form__address_1,
.wc-block-checkout__billing-fields .wc-block-components-address-form__address_2,
.wc-block-checkout__billing-fields .wc-block-components-address-form__city,
.wc-block-checkout__billing-fields .wc-block-components-address-form__state,
.wc-block-checkout__billing-fields .wc-block-components-address-form__postcode,
.wc-block-checkout__billing-fields .wc-block-components-country-input,
.wc-block-checkout__billing-fields .wc-block-components-address-form__address_2-hidden-input,
.wc-block-checkout__shipping-fields {
	display: none !important;
}

/* Make first_name field full width (since last_name is hidden) */
.wc-block-checkout__billing-fields .wc-block-components-address-form__first_name {
	flex: 0 0 100% !important;
	max-width: 100% !important;
}

/* Hide (optional) label on phone */
.wc-block-checkout__billing-fields .wc-block-components-address-form__phone .wc-block-components-text-input label .optional {
	display: none !important;
}

/* Checkout responsive */
@media (max-width: 600px) {
	.wp-block-woocommerce-checkout { padding: 0 6px !important; }
	.wc-block-checkout .wc-block-checkout__main {
		padding: 16px !important;
		border-radius: calc(var(--gm-radius) - 2px);
	}
	.wc-block-checkout .wc-block-checkout__sidebar {
		padding: 16px !important;
		border-radius: calc(var(--gm-radius) - 2px);
	}
}

/* ===================== Order Received (Thank-you) Page ===================== */

/* Hide default notice + page header on order-received */
.woocommerce-thankyou-order-received { display: none !important; }
.gm-page:has(.woocommerce-order) > .gm-page-header { display: none !important; }

/* Constrain width */
.woocommerce-order { max-width: 600px; margin: 0 auto; }

/* ---- Animated success hero ---- */
.gm-order-hero {
	text-align: center;
	padding: 32px 20px 28px;
	position: relative;
	overflow: hidden;
	background: linear-gradient(135deg, rgba(255,255,255,.6) 0%, rgba(255,255,255,.2) 100%);
	border: 1px solid var(--gm-card-brd);
	border-radius: var(--gm-radius);
	margin-bottom: 16px;
	-webkit-backdrop-filter: blur(16px);
	backdrop-filter: blur(16px);
}
.gm-order-hero::before {
	content: '';
	position: absolute;
	top: 0; left: -100%;
	width: 60%; height: 100%;
	background: linear-gradient(90deg, transparent, rgba(255,255,255,.35), transparent);
	animation: gmShimmerSweep 2s .8s ease-in-out forwards;
	pointer-events: none;
}
@keyframes gmShimmerSweep {
	to { left: 150%; }
}
.gm-order-checkmark {
	width: 84px;
	height: 84px;
	margin: 0 auto 18px;
}
.gm-checkmark-svg {
	width: 84px;
	height: 84px;
}
.gm-checkmark-circle {
	stroke: var(--gm-primary);
	stroke-width: 2.5;
	stroke-dasharray: 166;
	stroke-dashoffset: 166;
	animation: gmCircleDraw .6s .1s cubic-bezier(.65,0,.45,1) forwards;
}
.gm-checkmark-check {
	stroke: var(--gm-primary);
	stroke-width: 3;
	stroke-linecap: round;
	stroke-linejoin: round;
	stroke-dasharray: 48;
	stroke-dashoffset: 48;
	animation: gmCheckDraw .35s .55s cubic-bezier(.65,0,.45,1) forwards;
}
@keyframes gmCircleDraw {
	to { stroke-dashoffset: 0; }
}
@keyframes gmCheckDraw {
	to { stroke-dashoffset: 0; }
}
.gm-order-title {
	font-size: 1.5rem;
	font-weight: 800;
	color: var(--gm-text);
	margin: 0 0 6px;
	animation: gmFadeUp .5s .7s both;
}
.gm-order-subtitle {
	font-size: 14px;
	color: var(--gm-muted);
	margin: 0 0 10px;
	animation: gmFadeUp .5s .85s both;
}
.gm-order-id {
	display: inline-block;
	background: color-mix(in srgb, var(--gm-primary) 10%, transparent);
	color: var(--gm-primary);
	font-weight: 700;
	font-size: 13px;
	padding: 4px 14px;
	border-radius: 999px;
	animation: gmFadeUp .5s 1s both;
}
@keyframes gmFadeUp {
	from { opacity: 0; transform: translateY(12px); }
	to   { opacity: 1; transform: translateY(0); }
}

/* ---- Confetti particles ---- */
.gm-confetti {
	position: absolute;
	top: 0; left: 0; right: 0; bottom: 0;
	pointer-events: none;
	overflow: hidden;
}
.gm-confetti i {
	position: absolute;
	width: 8px;
	height: 8px;
	border-radius: 2px;
	opacity: 0;
	animation: gmConfettiFall 2.5s ease-in forwards;
}
.gm-confetti i:nth-child(1)  { left: 10%; background: #4f8cff; animation-delay: .3s; }
.gm-confetti i:nth-child(2)  { left: 20%; background: #ff6b6b; animation-delay: .5s; border-radius: 50%; }
.gm-confetti i:nth-child(3)  { left: 30%; background: #ffd93d; animation-delay: .4s; }
.gm-confetti i:nth-child(4)  { left: 40%; background: #6bcb77; animation-delay: .6s; border-radius: 50%; }
.gm-confetti i:nth-child(5)  { left: 50%; background: #4f8cff; animation-delay: .35s; }
.gm-confetti i:nth-child(6)  { left: 60%; background: #ff6b6b; animation-delay: .55s; }
.gm-confetti i:nth-child(7)  { left: 70%; background: #ffd93d; animation-delay: .45s; border-radius: 50%; }
.gm-confetti i:nth-child(8)  { left: 80%; background: #6bcb77; animation-delay: .65s; }
.gm-confetti i:nth-child(9)  { left: 15%; background: #c084fc; animation-delay: .7s; border-radius: 50%; }
.gm-confetti i:nth-child(10) { left: 85%; background: #c084fc; animation-delay: .5s; }
.gm-confetti i:nth-child(11) { left: 45%; background: #ffd93d; animation-delay: .8s; border-radius: 50%; }
.gm-confetti i:nth-child(12) { left: 55%; background: #4f8cff; animation-delay: .75s; }
@keyframes gmConfettiFall {
	0%   { top: -10%; opacity: 1; transform: rotate(0deg) scale(1); }
	50%  { opacity: 1; }
	100% { top: 105%; opacity: 0; transform: rotate(720deg) scale(.3); }
}

/* ---- Hide order number card (shown in hero) ---- */
ul.woocommerce-order-overview li.woocommerce-order-overview__order { display: none !important; }

/* ---- Order overview list → card grid ---- */
ul.woocommerce-order-overview.order_details {
	list-style: none !important;
	display: grid !important;
	grid-template-columns: repeat(2, 1fr) !important;
	gap: 8px !important;
	padding: 0 !important;
	margin: 0 0 20px !important;
	overflow: hidden !important;
}
ul.woocommerce-order-overview.order_details::before,
ul.woocommerce-order-overview.order_details::after {
	display: none !important;
}
ul.woocommerce-order-overview.order_details li {
	float: none !important;
	display: block !important;
	width: auto !important;
	margin: 0 !important;
	border: 1px solid var(--gm-card-brd) !important;
	background: var(--gm-card);
	border-radius: 12px;
	padding: 12px !important;
	text-align: center;
	font-size: 11px;
	color: var(--gm-muted);
	font-weight: 500;
	text-transform: uppercase;
	letter-spacing: .03em;
	overflow: hidden;
	-webkit-backdrop-filter: blur(12px);
	backdrop-filter: blur(12px);
}
ul.woocommerce-order-overview.order_details li strong {
	display: block;
	margin-top: 3px;
	font-size: 13px;
	font-weight: 800;
	color: var(--gm-text);
	text-transform: none;
	letter-spacing: 0;
	overflow: hidden;
	text-overflow: ellipsis;
	white-space: nowrap;
}

/* ---- Order details section ---- */
.woocommerce-order .woocommerce-order-details {
	background: var(--gm-card);
	border: 1px solid var(--gm-card-brd);
	border-radius: var(--gm-radius);
	padding: 20px;
	margin-bottom: 16px;
	-webkit-backdrop-filter: blur(12px);
	backdrop-filter: blur(12px);
}
.woocommerce-order .woocommerce-order-details__title {
	font-size: 1rem;
	font-weight: 800;
	margin: 0 0 14px;
	color: var(--gm-text);
}
.woocommerce-order .woocommerce-table--order-details {
	border: 0 !important;
	border-collapse: collapse;
	width: 100%;
}
.woocommerce-order .woocommerce-table--order-details thead th {
	font-size: 11px;
	text-transform: uppercase;
	letter-spacing: .04em;
	color: var(--gm-muted);
	font-weight: 600;
	padding: 0 0 10px;
	border-bottom: 1px solid var(--gm-card-brd);
}
.woocommerce-order .woocommerce-table--order-details tbody td {
	padding: 12px 0;
	border-bottom: 1px solid color-mix(in srgb, var(--gm-card-brd) 50%, transparent);
	font-size: 13px;
	vertical-align: top;
}
.woocommerce-order .woocommerce-table--order-details tbody td a {
	color: var(--gm-text);
	font-weight: 600;
	text-decoration: none;
}
.woocommerce-order .woocommerce-table--order-details tbody td a:hover {
	color: var(--gm-primary);
}
.woocommerce-order .wc-item-meta {
	list-style: none;
	padding: 0;
	margin: 6px 0 0;
}
.woocommerce-order .wc-item-meta li {
	font-size: 12px;
	color: var(--gm-muted);
	margin-bottom: 2px;
}
.woocommerce-order .wc-item-meta li strong {
	font-weight: 600;
	color: var(--gm-text);
}
.woocommerce-order .wc-item-meta li p {
	display: inline;
	margin: 0;
}
.woocommerce-order .woocommerce-table--order-details tfoot th {
	text-align: left;
	padding: 10px 0;
	font-size: 13px;
	font-weight: 600;
	color: var(--gm-muted);
	border-top: 1px solid color-mix(in srgb, var(--gm-card-brd) 50%, transparent);
}
.woocommerce-order .woocommerce-table--order-details tfoot td {
	text-align: right;
	padding: 10px 0;
	font-size: 13px;
	font-weight: 700;
	color: var(--gm-text);
	border-top: 1px solid color-mix(in srgb, var(--gm-card-brd) 50%, transparent);
}

/* ---- Customer details (billing) ---- */
.woocommerce-order .woocommerce-customer-details {
	background: var(--gm-card);
	border: 1px solid var(--gm-card-brd);
	border-radius: var(--gm-radius);
	padding: 20px;
	margin-bottom: 16px;
	-webkit-backdrop-filter: blur(12px);
	backdrop-filter: blur(12px);
}
.woocommerce-order .woocommerce-column__title {
	font-size: 1rem;
	font-weight: 800;
	margin: 0 0 10px;
	color: var(--gm-text);
}
.woocommerce-order .woocommerce-customer-details address {
	font-style: normal;
	font-size: 14px;
	color: var(--gm-text);
	line-height: 1.6;
}
.woocommerce-order .woocommerce-customer-details address p {
	margin: 2px 0;
	color: var(--gm-muted);
}

/* ---- Order tracking (if present) ---- */
.woocommerce-order .cost-status-tracker {
	background: var(--gm-card);
	border: 1px solid var(--gm-card-brd);
	border-radius: var(--gm-radius);
	padding: 20px;
	margin-bottom: 16px;
	-webkit-backdrop-filter: blur(12px);
	backdrop-filter: blur(12px);
}

/* Responsive */
@media (max-width: 480px) {
	.woocommerce-order .woocommerce-order-overview {
		grid-template-columns: repeat(2, 1fr);
	}
	.gm-order-hero { padding: 24px 14px 22px; }
	.gm-order-checkmark { width: 68px; height: 68px; }
	.gm-checkmark-svg { width: 68px; height: 68px; }
	.gm-order-title { font-size: 1.25rem; }
}

.woocommerce-account .woocommerce-MyAccount-navigation { display: none !important; }
.woocommerce-account .woocommerce-MyAccount-content {
	float: none !important;
	width: 100% !important;
	margin: 0 !important;
}

/* ---- My Account — Orders table ---- */
.woocommerce-MyAccount-orders {
	width: 100%; border-collapse: separate; border-spacing: 0;
	font-size: 13.5px;
}
/* Mobile: convert table to stacked cards */
@media (max-width: 767px) {
	.woocommerce-MyAccount-orders,
	.woocommerce-MyAccount-orders thead,
	.woocommerce-MyAccount-orders tbody {
		display: block !important; width: 100%;
	}
	.woocommerce-MyAccount-orders thead { display: none !important; }
	.woocommerce-MyAccount-orders tbody tr {
		display: flex !important; flex-wrap: wrap; gap: 6px;
		background: var(--gm-card); border: 1px solid var(--gm-card-brd);
		border-radius: var(--gm-radius); padding: 14px;
		margin-bottom: 10px;
		-webkit-backdrop-filter: blur(12px); backdrop-filter: blur(12px);
	}
	.woocommerce-MyAccount-orders td {
		display: block !important; padding: 0; border: 0;
		box-sizing: border-box;
	}
	.woocommerce-MyAccount-orders td::before { display: none !important; }

	.woocommerce-MyAccount-orders .woocommerce-orders-table__cell-order-id-date {
		width: 100%; display: flex !important; align-items: center; gap: 8px;
		padding-bottom: 8px; margin-bottom: 2px;
		border-bottom: 1px solid var(--gm-card-brd);
	}
	.woocommerce-MyAccount-orders .woocommerce-orders-table__cell-order-products {
		width: 100%; min-width: 0;
	}
	.woocommerce-MyAccount-orders .woocommerce-orders-table__cell-order-total {
		display: inline-flex !important; align-items: center;
	}
	.woocommerce-MyAccount-orders .woocommerce-orders-table__cell-order-status {
		display: inline-flex !important; align-items: center; margin-left: auto;
	}
	.woocommerce-MyAccount-orders .woocommerce-orders-table__cell-order-actions {
		width: 100%; display: flex !important; justify-content: flex-end;
		padding-top: 8px; margin-top: 4px;
		border-top: 1px solid var(--gm-card-brd);
	}
}
/* Order thumb + meta */
.gm-order-thumb { flex-shrink: 0; }
.gm-order-thumb img {
	width: 48px; height: 48px; border-radius: 10px; object-fit: cover;
	border: 1px solid var(--gm-card-brd); display: block;
}
.gm-order-meta { display: flex; flex-direction: column; gap: 1px; white-space: nowrap; }
.gm-order-num { font-size: 14px; font-weight: 800; color: var(--gm-text); }
.gm-order-date { font-size: 11.5px; color: var(--gm-muted); }

.gm-order-product-row {
	display: flex; align-items: center; gap: 8px;
	padding: 4px 0; min-width: 0;
}
.gm-order-product-info {
	font-size: 13px; font-weight: 600; color: var(--gm-text);
	overflow: hidden; text-overflow: ellipsis; white-space: nowrap;
	min-width: 0; flex: 1;
}
.gm-order-product-info small { color: var(--gm-muted); font-weight: 700; }

.gm-toggle-products {
	display: inline-flex; align-items: center; gap: 5px;
	font-size: 13px; font-weight: 600; color: var(--gm-primary);
	text-decoration: none;
}
.gm-toggle-products:hover { color: var(--gm-text); }
.gm-toggle-icon { font-size: 10px; transition: transform .25s ease; }
.gm-toggle-icon.is-open { transform: rotate(180deg); }
.gm-products-list { margin-top: 6px; padding-left: 8px; border-left: 2px solid var(--gm-card-brd); }

.gm-order-total { font-weight: 800; color: var(--gm-text); font-size: 14px; white-space: nowrap; }
.gm-status {
	display: inline-flex; align-items: center; gap: 5px;
	padding: 5px 12px; border-radius: 999px;
	font-size: 11.5px; font-weight: 700;
	letter-spacing: .02em; white-space: nowrap;
}
.gm-status::before {
	content: ''; width: 7px; height: 7px; border-radius: 50%;
	flex-shrink: 0; background: currentColor;
}
/* WooCommerce defaults */
.gm-status--processing       { background: rgba(59,130,246,.12);  color: #2563eb; }
.gm-status--completed        { background: rgba(34,197,94,.12);   color: #16a34a; }
.gm-status--on-hold          { background: rgba(245,158,11,.12);  color: #d97706; }
.gm-status--pending          { background: rgba(245,158,11,.12);  color: #d97706; }
.gm-status--cancelled        { background: rgba(239,68,68,.12);   color: #dc2626; }
.gm-status--refunded         { background: rgba(139,92,246,.12);  color: #7c3aed; }
.gm-status--failed           { background: rgba(239,68,68,.12);   color: #dc2626; }
/* Custom statuses */
.gm-status--order-progress   { background: rgba(59,130,246,.12);  color: #2563eb; }
.gm-status--pending-price    { background: rgba(245,158,11,.12);  color: #d97706; }
.gm-status--stock-pending    { background: rgba(249,115,22,.12);  color: #ea580c; }
.gm-status--refund-pending   { background: rgba(139,92,246,.12);  color: #7c3aed; }
.gm-status--manual-queue     { background: rgba(99,102,241,.12);  color: #4f46e5; }
.gm-status--order-canceled   { background: rgba(239,68,68,.12);   color: #dc2626; }
.gm-status--order-delivered  { background: rgba(34,197,94,.12);   color: #16a34a; }
.gm-status--partial-success  { background: rgba(234,179,8,.14);   color: #ca8a04; }

.woocommerce-MyAccount-orders .woocommerce-orders-table__cell-order-actions {
	width: 100%; display: flex; justify-content: flex-end;
	padding-top: 8px; margin-top: 6px;
	border-top: 1px solid var(--gm-card-brd);
}
.woocommerce-MyAccount-orders .woocommerce-orders-table__cell-order-actions .button {
	display: inline-flex; align-items: center; justify-content: center;
	padding: 6px 16px; border-radius: 999px;
	background: var(--gm-primary); color: #fff !important;
	font-size: 12px; font-weight: 700; text-decoration: none;
	border: 0; transition: background .2s ease, transform .15s ease;
}
.woocommerce-MyAccount-orders .woocommerce-orders-table__cell-order-actions .button:hover {
	filter: brightness(1.08); transform: translateY(-1px);
}

@media (min-width: 768px) {
	.woocommerce-MyAccount-orders thead {
		display: table-header-group;
	}
	.woocommerce-MyAccount-orders thead tr {
		display: table-row;
	}
	.woocommerce-MyAccount-orders thead th {
		padding: 10px 14px; font-size: 11.5px; font-weight: 700;
		text-transform: uppercase; letter-spacing: .04em;
		color: var(--gm-muted); border-bottom: 1px solid var(--gm-card-brd);
		text-align: left;
	}
	.woocommerce-MyAccount-orders tbody tr {
		display: table-row; margin: 0; padding: 0;
		border: 0; border-radius: 0;
		background: transparent; backdrop-filter: none;
		-webkit-backdrop-filter: none;
	}
	.woocommerce-MyAccount-orders tbody tr:hover {
		transform: none; box-shadow: none;
		background: rgba(255,255,255,.5);
	}
	.woocommerce-MyAccount-orders tbody tr + tr td {
		border-top: 1px solid var(--gm-card-brd);
	}
	.woocommerce-MyAccount-orders td {
		display: table-cell !important; padding: 14px;
		vertical-align: middle;
	}
	.woocommerce-MyAccount-orders .woocommerce-orders-table__cell-order-id-date {
		width: auto; white-space: nowrap;
		border-bottom: 0; padding-bottom: 14px; margin-bottom: 0;
	}
	.gm-order-num { display: block; }
	.gm-order-date { display: block; }
	.woocommerce-MyAccount-orders .woocommerce-orders-table__cell-order-total,
	.woocommerce-MyAccount-orders .woocommerce-orders-table__cell-order-status {
		white-space: nowrap;
	}
	.woocommerce-MyAccount-orders .woocommerce-orders-table__cell-order-actions {
		width: auto; border-top: 0; padding-top: 14px; margin-top: 0;
		text-align: right;
	}
}

/* ---- View Order page ---- */
.woocommerce-MyAccount-content > p:first-of-type {
	background: linear-gradient(135deg, rgba(59,130,246,.08) 0%, rgba(99,102,241,.06) 100%);
	border: 1px solid rgba(59,130,246,.15);
	border-radius: var(--gm-radius); padding: 16px 18px;
	font-size: 14px; line-height: 1.7; color: var(--gm-text);
	margin-bottom: 22px;
}
.woocommerce-MyAccount-content > p:first-of-type mark {
	background: none; font-weight: 700; color: var(--gm-primary);
}
.woocommerce-MyAccount-content > p:first-of-type mark.order-status {
	display: inline-flex; align-items: center; gap: 5px;
	padding: 3px 10px; border-radius: 999px;
	background: rgba(59,130,246,.12); font-size: 12px; font-weight: 700;
}

/* Order details section */
.woocommerce-order-details { margin-bottom: 22px; }
.woocommerce-order-details__title,
.woocommerce-customer-details .woocommerce-column__title {
	font-size: 16px; font-weight: 800; color: var(--gm-text);
	margin: 0 0 12px; padding-bottom: 8px;
	border-bottom: 2px solid var(--gm-card-brd);
}

/* Order details table */
.woocommerce-table--order-details {
	width: 100%; border-collapse: separate; border-spacing: 0;
	background: var(--gm-card); border: 1px solid var(--gm-card-brd);
	border-radius: var(--gm-radius); overflow: hidden;
	-webkit-backdrop-filter: blur(12px); backdrop-filter: blur(12px);
	font-size: 13.5px;
}
.woocommerce-table--order-details thead th {
	padding: 10px 16px; font-size: 11.5px; font-weight: 700;
	text-transform: uppercase; letter-spacing: .04em;
	color: var(--gm-muted); background: rgba(255,255,255,.3);
	border-bottom: 1px solid var(--gm-card-brd); text-align: left;
}
.woocommerce-table--order-details tbody td,
.woocommerce-table--order-details tfoot td,
.woocommerce-table--order-details tfoot th {
	padding: 12px 16px; border-top: 1px solid var(--gm-card-brd);
}
.woocommerce-table--order-details tbody td:first-child { font-weight: 600; }
.woocommerce-table--order-details tbody .product-name a {
	color: var(--gm-text); text-decoration: none; font-weight: 600;
}
.woocommerce-table--order-details tbody .product-name a:hover { color: var(--gm-primary); }
.woocommerce-table--order-details tbody .product-quantity {
	color: var(--gm-muted); font-weight: 700; font-size: 12px;
}
.woocommerce-table--order-details tfoot th {
	font-weight: 700; color: var(--gm-text); text-align: left;
	font-size: 13px;
}
.woocommerce-table--order-details tfoot tr:last-child th,
.woocommerce-table--order-details tfoot tr:last-child td {
	font-size: 15px; font-weight: 800; color: var(--gm-text);
}

/* Customer details / billing address */
.woocommerce-customer-details {
	background: var(--gm-card); border: 1px solid var(--gm-card-brd);
	border-radius: var(--gm-radius); padding: 18px;
	-webkit-backdrop-filter: blur(12px); backdrop-filter: blur(12px);
	margin-top: 22px;
}
.woocommerce-customer-details address {
	font-style: normal; font-size: 14px; line-height: 1.8;
	color: var(--gm-text);
}
.woocommerce-customer-details address p { margin: 4px 0; }
.woocommerce-customer-details--phone::before {
	content: '📞 '; font-size: 13px;
}
.woocommerce-customer-details--email::before {
	content: '✉️ '; font-size: 13px;
}

/* Cost / Order Status Tracker */
.cost-status-tracker {
	background: var(--gm-card); border: 1px solid var(--gm-card-brd);
	border-radius: var(--gm-radius); padding: 18px;
	-webkit-backdrop-filter: blur(12px); backdrop-filter: blur(12px);
	margin-top: 18px;
	text-align: left !important;
}
.cost-tracker-header {
	display: flex; align-items: center; justify-content: space-between;
	flex-wrap: wrap; gap: 8px; margin-bottom: 16px;
}
.cost-tracker-title {
	font-size: 16px; font-weight: 800; color: var(--gm-text); margin: 0;
}
.cost-tracker-actions {
	display: flex; align-items: center; gap: 8px;
}
.cost-tracker-badge {
	display: inline-flex; align-items: center; padding: 4px 10px;
	border-radius: 999px; font-size: 11px; font-weight: 700;
	background: rgba(59,130,246,.1); color: var(--gm-primary);
}
.cost-refresh-btn {
	display: inline-flex; align-items: center; gap: 4px;
	padding: 5px 10px; border-radius: 999px;
	border: 1px solid var(--gm-card-brd); background: rgba(255,255,255,.6);
	font-size: 12px; font-weight: 600; color: var(--gm-text);
	cursor: pointer; transition: border-color .2s, background .2s;
}
.cost-refresh-btn:hover {
	border-color: var(--gm-primary); background: rgba(255,255,255,.9);
	color: var(--gm-primary);
}
.cost-refresh-icon { display: flex; align-items: center; }
.cost-auto-refresh-indicator {
	font-size: 11px; color: var(--gm-muted);
	display: inline-flex; align-items: center; gap: 4px;
}
.cost-spinner {
	width: 12px; height: 12px; border: 2px solid var(--gm-card-brd);
	border-top-color: var(--gm-primary); border-radius: 50%;
	animation: gm-spin .6s linear infinite;
}
@keyframes gm-spin { to { transform: rotate(360deg); } }

/* Timeline */
.cost-timeline { position: relative; padding-left: 22px; }
.cost-timeline::before {
	content: ''; position: absolute; left: 7px; top: 4px; bottom: 4px;
	width: 2px; background: var(--gm-card-brd); border-radius: 2px;
}
.cost-timeline-item {
	position: relative; padding-bottom: 18px;
}
.cost-timeline-item:last-child { padding-bottom: 0; }
.cost-timeline-marker {
	position: absolute; left: -22px; top: 3px;
	width: 14px; height: 14px; border-radius: 50%;
	border: 2px solid var(--gm-card-brd); background: #fff;
	z-index: 1;
}
.cost-timeline-item.cost-current .cost-timeline-marker {
	border-color: var(--gm-primary);
	background: var(--gm-primary);
	box-shadow: 0 0 0 4px rgba(59,130,246,.15);
}
.cost-timeline-content h4 {
	margin: 0; font-size: 13.5px; font-weight: 700; color: var(--gm-text);
}
.cost-timeline-item.cost-current .cost-timeline-content h4 {
	color: var(--gm-primary);
}
.cost-time-wrapper {
	align-items: flex-start !important;
	gap: 6px;
	flex-wrap: wrap;
	margin-top: 3px;
}
.cost-time, .cost-time-full {
	font-size: 11.5px; color: var(--gm-muted);
}
.cost-time-separator { font-size: 8px; color: var(--gm-muted); }

/* WooCommerce notices */
.woocommerce-message,
.woocommerce-info,
.woocommerce-error {
	background: var(--gm-card) !important;
	border: 1px solid var(--gm-card-brd) !important;
	border-radius: var(--gm-radius) !important;
	padding: 14px 16px !important;
	margin: 0 0 18px !important;
	color: var(--gm-text) !important;
	list-style: none !important;
	-webkit-backdrop-filter: blur(10px); backdrop-filter: blur(10px);
	box-shadow: 0 4px 18px -8px rgba(0,0,0,.1) !important;
	display: flex !important;
	flex-direction: column !important;
	gap: 6px !important;
}
.woocommerce-error {
	background: rgba(239,68,68,.06) !important;
	border-color: rgba(239,68,68,.25) !important;
}
.woocommerce-message {
	background: rgba(34,197,94,.06) !important;
	border-color: rgba(34,197,94,.25) !important;
}
.woocommerce-info {
	background: rgba(59,130,246,.06) !important;
	border-color: rgba(59,130,246,.2) !important;
}
/* Kill default WC ::before icon */
.woocommerce-message::before,
.woocommerce-info::before,
.woocommerce-error::before { display: none !important; }
/* Individual list items */
.woocommerce-error li,
.woocommerce-message li,
.woocommerce-info li {
	display: flex !important;
	align-items: flex-start !important;
	gap: 8px !important;
	font-size: 13.5px !important;
	font-weight: 500 !important;
	line-height: 1.45 !important;
	list-style: none !important;
	padding: 0 !important;
	margin: 0 !important;
}
.woocommerce-error li::before {
	content: '✕' !important;
	display: inline-flex !important;
	align-items: center !important;
	justify-content: center !important;
	flex-shrink: 0 !important;
	width: 18px !important; height: 18px !important;
	border-radius: 50% !important;
	background: #ef4444 !important;
	color: #fff !important;
	font-size: 9px !important;
	font-weight: 800 !important;
	margin-top: 1px !important;
}
.woocommerce-message li::before {
	content: '✓' !important;
	display: inline-flex !important;
	align-items: center !important;
	justify-content: center !important;
	flex-shrink: 0 !important;
	width: 18px !important; height: 18px !important;
	border-radius: 50% !important;
	background: #22c55e !important;
	color: #fff !important;
	font-size: 10px !important;
	font-weight: 800 !important;
	margin-top: 1px !important;
}
.woocommerce-info li::before {
	content: 'i' !important;
	display: inline-flex !important;
	align-items: center !important;
	justify-content: center !important;
	flex-shrink: 0 !important;
	width: 18px !important; height: 18px !important;
	border-radius: 50% !important;
	background: #3b82f6 !important;
	color: #fff !important;
	font-size: 11px !important;
	font-weight: 800 !important;
	font-style: italic !important;
	margin-top: 1px !important;
}

/* Forms */
.gm-prose input[type="text"], .gm-prose input[type="email"], .gm-prose input[type="url"],
.gm-prose textarea, .gm-prose select,
input[type="text"], input[type="email"], input[type="url"], input[type="tel"], input[type="password"],
textarea, select {
	border: 1px solid var(--gm-card-brd);
	border-radius: 12px;
	padding: 12px 14px;
	font: inherit; font-size: 14.5px;
	background: rgba(255,255,255,.85);
	color: var(--gm-text);
	width: 100%; max-width: 100%;
	line-height: 1.4;
	transition: border-color .2s ease, box-shadow .2s ease, background .2s ease;
}
input::placeholder, textarea::placeholder {
	color: var(--gm-muted);
	opacity: .7;
}
input:hover, textarea:hover, select:hover {
	border-color: color-mix(in srgb, var(--gm-primary) 35%, var(--gm-card-brd));
}
input:focus, textarea:focus, select:focus {
	outline: none;
	border-color: color-mix(in srgb, var(--gm-primary) 50%, transparent);
	box-shadow: 0 0 0 3px color-mix(in srgb, var(--gm-primary) 12%, transparent);
	background: #fff;
}
input:disabled, textarea:disabled, select:disabled {
	background: rgba(255,255,255,.5);
	color: var(--gm-muted);
	cursor: not-allowed;
}

/* Comments */
.gm-comments { padding: 18px; margin-top: 24px; }
.gm-comments-list { display: flex; flex-direction: column; gap: 14px; }
.gm-comments-list .comment-body { background: rgba(255,255,255,.7); border: 1px solid var(--gm-card-brd); border-radius: 14px; padding: 12px 14px; }

/* ============================================================
   GROUP CARDS
   ============================================================ */
.gm-group-card { position: relative; }
.gm-group-trigger {
	all: unset; cursor: pointer;
	display: flex; flex-direction: column; flex: 1;
	width: 100%;
}
.gm-group-trigger:focus-visible {
	outline: 2px solid var(--gm-primary); outline-offset: 2px;
	border-radius: var(--gm-radius);
}
.gm-group-card .gm-product-thumb {
	background: linear-gradient(135deg,
		color-mix(in srgb, var(--gm-primary) 18%, #fff),
		color-mix(in srgb, var(--gm-accent) 22%, #fff));
}
.gm-group-placeholder {
	position: absolute; inset: 0;
	display: flex; align-items: center; justify-content: center;
	color: var(--gm-primary); opacity: .85;
}
.gm-group-badge {
	position: absolute; top: 6px; left: 6px;
	display: inline-flex; align-items: center; gap: 4px;
	padding: 3px 7px;
	background: rgba(255,255,255,.92);
	border: 1px solid var(--gm-card-brd);
	border-radius: 999px;
	color: var(--gm-primary);
	font-size: 10.5px; font-weight: 700;
	line-height: 1;
	-webkit-backdrop-filter: blur(6px); backdrop-filter: blur(6px);
}
.gm-group-cta-text {
	display: inline-flex; align-items: center; gap: 4px;
	color: var(--gm-primary);
	font-size: 12px; font-weight: 700;
}
.gm-group-cta-arrow {
	display: inline-block;
	transition: transform .25s cubic-bezier(.2,.8,.25,1);
}
.gm-group-card:hover .gm-group-cta-arrow,
.gm-group-trigger:focus-visible .gm-group-cta-arrow {
	transform: translateX(4px);
}
@media (min-width: 600px) {
	.gm-group-cta-text { font-size: 13px; }
	.gm-group-badge { font-size: 11.5px; padding: 4px 8px; }
}

/* ============================================================
   MODAL (responsive)
   ============================================================ */
.gm-modal[hidden] { display: none !important; }
.gm-modal {
	position: fixed; inset: 0; z-index: 1000;
	display: flex; align-items: stretch; justify-content: center;
	padding: 0;
}
.gm-modal-backdrop {
	position: absolute; inset: 0;
	background: color-mix(in srgb, var(--gm-text) 55%, transparent);
	-webkit-backdrop-filter: blur(6px); backdrop-filter: blur(6px);
	animation: gm-fade-in .18s ease both;
}
.gm-modal-dialog {
	position: relative; z-index: 1;
	display: flex; flex-direction: column;
	width: 100%; max-width: 100%;
	background: linear-gradient(180deg, var(--gm-bg-a) 0%, var(--gm-bg-b) 100%);
	border-top: 1px solid var(--gm-card-brd);
	box-shadow: 0 -22px 60px -20px rgba(15,23,42,.35);
	animation: gm-slide-up .25s cubic-bezier(.2,.8,.25,1) both;
	max-height: 100vh;
	border-radius: 22px 22px 0 0;
	margin-top: auto;
}
.gm-modal-head {
	position: sticky; top: 0; z-index: 2;
	display: flex; align-items: flex-start; justify-content: space-between;
	gap: 12px;
	padding: 16px 18px 14px;
	background: color-mix(in srgb, var(--gm-bg-a) 92%, transparent);
	-webkit-backdrop-filter: blur(14px) saturate(1.4);
	backdrop-filter: blur(14px) saturate(1.4);
	border-bottom: 1px solid color-mix(in srgb, var(--gm-card-brd) 70%, transparent);
}
.gm-modal-head::after {
	content: ''; position: absolute; left: 0; right: 0; bottom: -1px; height: 1px;
	background: linear-gradient(90deg, transparent, color-mix(in srgb, var(--gm-primary) 40%, transparent), transparent);
}
.gm-modal-titles { min-width: 0; flex: 1; display: flex; flex-direction: column; gap: 6px; }
.gm-modal-intro {
	display: inline-flex; align-self: flex-start; align-items: center; gap: 6px;
	margin: 0;
	padding: 4px 10px;
	font-size: 11px; line-height: 1.2;
	font-weight: 700;
	letter-spacing: .08em; text-transform: uppercase;
	color: var(--gm-primary);
	background: color-mix(in srgb, var(--gm-primary) 12%, transparent);
	border: 1px solid color-mix(in srgb, var(--gm-primary) 22%, transparent);
	border-radius: 999px;
	max-width: 100%;
	white-space: normal;
}
.gm-modal-intro::before {
	content: ''; width: 6px; height: 6px; border-radius: 50%;
	background: var(--gm-primary);
	box-shadow: 0 0 0 0 color-mix(in srgb, var(--gm-primary) 50%, transparent);
	animation: gm-pulse 1.8s ease-in-out infinite;
}
.gm-modal-title {
	margin: 0; font-size: clamp(1.25rem, 4vw, 1.65rem);
	font-weight: 800; line-height: 1.15;
	font-family: var(--gm-font-heading);
	color: var(--gm-text);
	background: linear-gradient(120deg, var(--gm-text) 0%, color-mix(in srgb, var(--gm-primary) 70%, var(--gm-text)) 100%);
	-webkit-background-clip: text; background-clip: text;
	-webkit-text-fill-color: transparent;
}
.gm-modal-close {
	flex-shrink: 0;
	width: 38px; height: 38px;
	background: rgba(255,255,255,.85);
	border: 1px solid var(--gm-card-brd);
	color: var(--gm-text);
	transition: background .2s ease, color .2s ease, transform .2s ease, border-color .2s ease;
}
.gm-modal-close:hover {
	background: var(--gm-primary); color: #fff; border-color: var(--gm-primary);
	transform: rotate(90deg);
}
.gm-modal-body {
	flex: 1;
	overflow-y: auto;
	padding: 16px 18px 28px;
	-webkit-overflow-scrolling: touch;
}
.gm-modal-grid {
	margin: 0;
	--gm-cols: 3;
	--gm-cols-tablet: 3;
	--gm-cols-mobile: 2;
	grid-template-columns: repeat(var(--gm-cols-mobile), minmax(0, 1fr)) !important;
}
@media (min-width: 600px) {
	.gm-modal-grid { grid-template-columns: repeat(var(--gm-cols-tablet), minmax(0, 1fr)) !important; }
}
@media (min-width: 900px) {
	.gm-modal-grid { grid-template-columns: repeat(var(--gm-cols), minmax(0, 1fr)) !important; }
}

/* Compact cards inside modal */
.gm-modal-grid .gm-product { padding: 5px; }
.gm-modal-grid .gm-product-meta { padding: 5px 3px 4px; gap: 1px; }
.gm-modal-grid .gm-product-title { font-size: 11px; line-height: 1.2; }
.gm-modal-grid .gm-buy-now { padding: 6px 10px; font-size: 11px; gap: 4px; }
.gm-modal-grid .gm-buy-now-arrow { font-size: 11px; }

/* Stagger-in for cards inside an open modal */
.gm-modal:not([hidden]) .gm-modal-grid > .gm-product {
	opacity: 0;
	animation: gm-card-in .35s cubic-bezier(.2,.8,.25,1) forwards;
}
.gm-modal:not([hidden]) .gm-modal-grid > .gm-product:nth-child(1) { animation-delay: .04s; }
.gm-modal:not([hidden]) .gm-modal-grid > .gm-product:nth-child(2) { animation-delay: .09s; }
.gm-modal:not([hidden]) .gm-modal-grid > .gm-product:nth-child(3) { animation-delay: .14s; }
.gm-modal:not([hidden]) .gm-modal-grid > .gm-product:nth-child(4) { animation-delay: .19s; }
.gm-modal:not([hidden]) .gm-modal-grid > .gm-product:nth-child(5) { animation-delay: .24s; }
.gm-modal:not([hidden]) .gm-modal-grid > .gm-product:nth-child(6) { animation-delay: .29s; }
.gm-modal:not([hidden]) .gm-modal-grid > .gm-product:nth-child(n+7) { animation-delay: .34s; }

@keyframes gm-card-in {
	from { opacity: 0; transform: translateY(10px) scale(.97); }
	to   { opacity: 1; transform: translateY(0) scale(1); }
}
@keyframes gm-pulse {
	0%, 100% { box-shadow: 0 0 0 0 color-mix(in srgb, var(--gm-primary) 50%, transparent); }
	50%      { box-shadow: 0 0 0 5px color-mix(in srgb, var(--gm-primary) 0%, transparent); }
}

/* Tablet/desktop: centered card with rounded corners */
@media (min-width: 720px) {
	.gm-modal { padding: 20px; align-items: center; }
	.gm-modal-dialog {
		max-width: 480px;
		max-height: calc(100vh - 40px);
		border-radius: 18px;
		border: 1px solid var(--gm-card-brd);
		margin: 0;
		animation: gm-zoom-in .22s cubic-bezier(.2,.8,.25,1) both;
		box-shadow: 0 30px 80px -20px rgba(15,23,42,.4);
	}
	.gm-modal-head { padding: 14px 18px 12px; border-radius: 18px 18px 0 0; }
	.gm-modal-body { padding: 14px 16px 20px; }
	.gm-modal-intro { font-size: 12px; }
}

/* Lock body scroll while modal is open */
body.gm-modal-open { overflow: hidden; }
body.gm-modal-open .gm-mnav { display: none; }

@keyframes gm-fade-in {
	from { opacity: 0; }
	to   { opacity: 1; }
}
@keyframes gm-slide-up {
	from { transform: translateY(20px); opacity: 0; }
	to   { transform: translateY(0); opacity: 1; }
}
@keyframes gm-zoom-in {
	from { transform: scale(.96); opacity: 0; }
	to   { transform: scale(1); opacity: 1; }
}

/* Reduced motion */
@media (prefers-reduced-motion: reduce) {
	*, *::before, *::after { transition: none !important; animation: none !important; }
	html { scroll-behavior: auto; }
}
