/* Product of the Week — structural styles (plugin-owned, theme-independent).
   Colors read the child theme's brand tokens with sane fallbacks. */

.gg-potw {
	border-radius: var(--gg-radius, 10px);
	overflow: hidden;
	background: var(--gg-ink, #21313c);
	color: #fff;
}
.gg-potw--hero { display: grid; grid-template-columns: 1fr 1fr; align-items: center; margin: 2rem 0; }
.gg-potw--card { max-width: 380px; }
.gg-potw__media img { width: 100%; height: 100%; object-fit: cover; display: block; }
.gg-potw__body { padding: 2rem; }
.gg-potw__kicker {
	color: var(--gg-accent, #ff6b35); font-weight: 700; letter-spacing: .08em;
	text-transform: uppercase; font-size: .8rem; margin-bottom: .5rem;
}
.gg-potw__title { color: #fff; margin: 0 0 .75rem; font-size: 1.6rem; }
.gg-potw__price { font-size: 1.25rem; margin-bottom: .5rem; }
.gg-potw__price del { opacity: .55; margin-right: .5em; }
.gg-potw__price ins { text-decoration: none; font-weight: 700; color: var(--gg-accent, #ff6b35); }
.gg-potw__deadline { font-size: .85rem; opacity: .75; margin-bottom: 1rem; }
.gg-potw__cta {
	display: inline-block; background: var(--gg-accent, #ff6b35); color: #fff;
	padding: .7rem 1.4rem; border-radius: var(--gg-radius, 10px); font-weight: 600; text-decoration: none;
}
.gg-potw__cta:hover { background: var(--gg-accent-dark, #e2551f); color: #fff; }
.gg-potw--empty { background: #f2f0ea; color: var(--gg-ink, #21313c); padding: 2rem; text-align: center; }
.gg-potw--empty .gg-potw__kicker { margin-bottom: .25rem; }
@media (max-width: 720px) { .gg-potw--hero { grid-template-columns: 1fr; } }

/* The POTW product's storefront badge reads "Product of the Week" instead of
   "Sale!". The class is appended to whatever badge the theme rendered, so this
   only has to undo the fixed sizing themes give a one-word badge. Class doubled
   for specificity (same trick as the theme's .gg-hero.gg-hero) so it beats
   Astra's .ast-onsale-card without !important. */
.gg-potw-flash.gg-potw-flash {
	/* NOT `width: auto`. The badge Astra hands us is position:absolute, and this
	   rule outranks Astra's own `width: fit-content` (doubled class). On an
	   absolutely positioned box `auto` resolves against the offsets rather than
	   shrink-wrapping, so the longer "Product of the Week" label stretched the
	   pill to the full content column (1163px over a 600px gallery, straight
	   through the breadcrumb). `fit-content` is what "size to the text" means
	   here; `right: auto` keeps it anchored to its left offset whatever the
	   theme sets downstream. Only a long label exposes this — "Sale!" looked
	   fine, which is why an HTML-string assertion could never catch it. */
	width: fit-content;
	right: auto;
	height: auto;
	min-width: 0;
	min-height: 0;
	line-height: 1.2;
	padding: .45em .95em;
	border-radius: 999px;
	white-space: nowrap;
}
