/**
 * Glow Product Grid
 *
 * Every colour is a custom property on .gpg — retheme the grid by overriding
 * these in the Customiser or Elementor's custom CSS, not by editing rules.
 */

.gpg {
	--gpg-ink: #16281f;
	--gpg-green: #1b4d3e;
	--gpg-green-dark: #143b2f;
	--gpg-badge: #ee4a3a;
	--gpg-off: #16a34a;
	--gpg-muted: #6b7280;
	--gpg-strike: #9ca3af;
	--gpg-card: #ffffff;
	--gpg-border: #ece5db;
	--gpg-tint: #f7f3ec;
	--gpg-gold: #c79a3f;
	--gpg-star: #f5a524;
	--gpg-benefit-bg: #eaf5ec;
	--gpg-benefit-ink: #1b6b41;
	--gpg-radius: 16px;
	--gpg-gap: 16px;
	--gpg-gutter: 16px;

	/* Overridden per-grid by the shortcode's column attributes. */
	--gpg-cols: 4;
	--gpg-cols-tablet: 3;
	--gpg-cols-mobile: 2;
}

/*
 * Don't inherit the theme's box model. Astra happens to set border-box
 * globally, but the full-width button and search field both overflow their
 * container under content-box, so pin it here rather than rely on that.
 */
.gpg,
.gpg *,
.gpg *::before,
.gpg *::after {
	box-sizing: border-box;
}

/*
 * The Elementor containers these sections sit in run edge to edge, so the
 * gutter belongs here. Horizontal scrollers stay full-bleed and pad their
 * own track instead, so the row can scroll past the screen edge.
 */
.gpg-section {
	padding-right: var(--gpg-gutter);
	padding-left: var(--gpg-gutter);
}

.gpg-section--flush {
	padding-right: 0;
	padding-left: 0;
}

.gpg-section--flush .gpg-chips,
.gpg-section--flush .gpg-usps {
	padding-right: var(--gpg-gutter);
	padding-left: var(--gpg-gutter);
}

/* -------------------------------------------------------------- Grid --- */

.gpg-grid {
	display: grid;
	grid-template-columns: repeat(var(--gpg-cols), minmax(0, 1fr));
	gap: var(--gpg-gap);
}

@media (max-width: 1024px) {
	.gpg-grid {
		grid-template-columns: repeat(var(--gpg-cols-tablet), minmax(0, 1fr));
	}
}

@media (max-width: 767px) {
	.gpg {
		--gpg-gap: 12px;
	}

	.gpg-grid {
		grid-template-columns: repeat(var(--gpg-cols-mobile), minmax(0, 1fr));
	}

	/* Two columns on a phone leave ~160px per card — buy back a few pixels
	   so price, strike-through and discount stay on one line. */
	.gpg-card__body {
		padding: 10px 10px 12px;
	}

	.gpg-card__title {
		font-size: 0.75rem;
	}

	.gpg-price {
		font-size: 0.95rem;
	}

	.gpg-price-was,
	.gpg-price-off {
		font-size: 0.6875rem;
	}

	.gpg .gpg-card .gpg-card__body a.gpg-atc.button {
		gap: 6px;
		padding: 9px 8px;
		font-size: 0.75rem !important;
		letter-spacing: 0;
	}

	.gpg-coupon,
	.gpg-card__meta {
		font-size: 0.6875rem;
	}
}

.gpg-card[hidden] {
	display: none;
}

/* -------------------------------------------------------------- Card --- */

.gpg-card {
	display: flex;
	flex-direction: column;
	overflow: hidden;
	background: var(--gpg-card);
	border: 1px solid var(--gpg-border);
	border-radius: var(--gpg-radius);
	transition: box-shadow 0.2s ease, transform 0.2s ease;
}

.gpg-card:hover {
	box-shadow: 0 8px 24px rgba(22, 40, 31, 0.1);
	transform: translateY(-2px);
}

@media (prefers-reduced-motion: reduce) {
	.gpg-card {
		transition: none;
	}

	.gpg-card:hover {
		transform: none;
	}
}

.gpg-card__media {
width: 100%;
    aspect-ratio: 1 / 1;
    overflow: hidden;
    display: flex;
    align-items: center;
    justify-content: center;
	position: relative;
	background: var(--gpg-tint);
}

.gpg-card__link {
	display: block;
}

.gpg-card__media img,
.gpg-card__img {
	display: block;
    width: 100%;
    height: 100%;
    object-fit: contain;
    aspect-ratio: auto;
    margin: 0;
}

/* Badge and wishlist ------------------------------------------------- */

.gpg-badge {
	position: absolute;
	top: 8px;
	left: 8px;
	z-index: 2;
	padding: 4px 10px;
	border-radius: 999px;
	background: var(--gpg-badge);
	color: #fff;
	font-size: 0.6875rem;
	font-weight: 700;
	line-height: 1.4;
	letter-spacing: 0.02em;
	white-space: nowrap;
}

.gpg-wishlist {
	position: absolute;
	top: 8px;
	right: 8px;
	z-index: 2;
	display: inline-flex;
	align-items: center;
	justify-content: center;
	width: 30px;
	height: 30px;
	padding: 0;
	border: 1px solid var(--gpg-border);
	border-radius: 999px;
	background: rgba(255, 255, 255, 0.92);
	color: var(--gpg-muted);
	cursor: pointer;
	transition: color 0.15s ease, background 0.15s ease;
}

.gpg-wishlist svg {
	width: 15px;
	height: 15px;
	fill: none;
	stroke: currentColor;
	stroke-width: 1.6;
	stroke-linejoin: round;
}

.gpg-wishlist:hover {
	color: var(--gpg-badge);
}

.gpg-wishlist[aria-pressed="true"] {
	color: var(--gpg-badge);
}

.gpg-wishlist[aria-pressed="true"] svg {
	fill: currentColor;
}

/* Card body ---------------------------------------------------------- */

.gpg-card__body {
	display: flex;
	flex: 1;
	flex-direction: column;
	gap: 6px;
	padding: 12px 12px 14px;
}

/*
 * Astra ships `.entry-content p { margin-bottom: 1.6em }` at specificity
 * (0,2,1), which outranks each element's own `margin: 0` and opened a 20-27px
 * gap between every line of the card. Zeroed from a selector that outranks it
 * so the body's flex gap is the only thing spacing these rows.
 */
.gpg .gpg-card .gpg-card__body > * {
	margin-top: 0;
	margin-bottom: 0;
}

.gpg-card__brand {
	margin: 0;
	color: var(--gpg-muted);
	font-size: 0.6875rem;
	line-height: 1.4;
}

.gpg .gpg-card__title {
	margin: 0;
	font-size: 0.875rem;
	font-weight: 600;
	line-height: 1.35;
	/* Astra uppercases headings site-wide; the mockup is sentence case. */
	text-transform: none;
	letter-spacing: 0;
}

/*
 * Astra's dynamic CSS ships `span.woocommerce-Price-amount.amount
 * { display: block !important }`, which put every price token on its own line
 * inside a card. !important is the only way past an !important, and it is
 * scoped to .gpg so nothing outside these components is affected.
 */
.gpg span.woocommerce-Price-amount.amount,
.gpg span.woocommerce-Price-amount bdi,
.gpg span.woocommerce-Price-currencySymbol,
.gpg-mc-totals span.woocommerce-Price-amount.amount,
.gpg-mc-totals span.woocommerce-Price-amount bdi,
.gpg-mc-savings span.woocommerce-Price-amount.amount,
.gpg-mc-savings span.woocommerce-Price-amount bdi,
.moderncart-price span.woocommerce-Price-amount.amount,
.moderncart-price span.woocommerce-Price-amount bdi {
	display: inline !important;
}

.gpg-card__title a {
	display: -webkit-box;
	-webkit-line-clamp: 2;
	-webkit-box-orient: vertical;
	overflow: hidden;
	overflow-wrap: anywhere;
	color: var(--gpg-ink);
	text-decoration: none;
}

.gpg-card__title a:hover {
	text-decoration: underline;
}

.gpg-card__price {
	display: flex;
	flex-wrap: wrap;
	align-items: baseline;
	gap: 6px;
	margin: 0;
}

.gpg-price {
	color: var(--gpg-ink);
	font-size: 1.2rem;
	font-weight: 700;
}

.gpg-price-was {
	color: var(--gpg-strike);
	font-size: 0.75rem;
	text-decoration: line-through;
}

.gpg-price-off {
	color: var(--gpg-off);
	font-size: 0.75rem;
	font-weight: 600;
}

/* Add to cart -------------------------------------------------------- */

/*
 * A site-level rule targets
 * `a.button.product_type_simple.add_to_cart_button.ajax_add_to_cart` with
 * !important — specificity (0,4,1). The card button carries those WooCommerce
 * classes deliberately, because they are what make the store's AJAX
 * add-to-cart and the Modern Cart side cart pick it up, so the long selector
 * below outranks that rule rather than dropping the classes to dodge it.
 */
/* Shape and type, shared by both states. */
.gpg .gpg-card .gpg-card__body a.gpg-atc.button {
	display: flex;
	align-items: center;
	justify-content: center;
	gap: 8px;
	width: 100%;
	/*
	 * Only the button takes up the slack, so buttons line up across a row
	 * while the text above stays tightly stacked. Putting this on the price
	 * row instead pushed a gap into the middle of the card.
	 */
	margin-top: auto;
	padding: 10px 12px;
	border-radius: 8px !important;
	/*
	 * Astra styles every .button with uppercase and its own font size. The
	 * mockup's button is sentence case, so these two win explicitly.
	 */
	font-size: 0.75rem !important;
	font-weight: 600;
	line-height: 1.4;
	letter-spacing: 0.01em;
	text-align: center;
	text-decoration: none;
	text-transform: none !important;
	cursor: pointer;
	transition: background 0.15s ease;
}

/*
 * The two states are written as mutually exclusive rather than one overriding
 * the other: :not() means the filled rule stops matching entirely once the
 * button is in the cart, so the outlined state never has to out-specify it.
 */
.gpg .gpg-card .gpg-card__body a.gpg-atc.button:not(.gpg-atc--incart) {
	border: 0 !important;
	background: var(--gpg-green) !important;
	color: #fff !important;
}

.gpg .gpg-card .gpg-card__body a.gpg-atc.button:not(.gpg-atc--incart):hover,
.gpg .gpg-card .gpg-card__body a.gpg-atc.button:not(.gpg-atc--incart):focus {
	background: var(--gpg-green-dark) !important;
	color: #fff !important;
}

.gpg .gpg-atc svg {
	flex: none;
	width: 15px;
	height: 15px;
	fill: currentColor;
}

/* WooCommerce toggles these while its AJAX request is in flight. */
.gpg .gpg-atc.loading {
	opacity: 0.7;
}

.gpg .gpg-atc.added::after {
	display: none;
}

/* =========================================================
   GPG — COMPACT PRICE + DISCOUNT + CART BUTTON
   ========================================================= */

/* Keep pricing compact */
.gpg .gpg-card__pricing {
    margin: 4px 0 0 !important;
    padding: 0 !important;
}


/* Price row */
.gpg .gpg-card__price {
    margin: 0 !important;
    padding: 0 !important;

    display: flex !important;
    align-items: baseline !important;
    gap: 6px !important;
}


/* Final price */
.gpg .gpg-card .gpg-price {
    margin: 0 !important;
    padding: 0 !important;

    font-size: 20px !important;
    line-height: 1.15 !important;
    font-weight: 700 !important;
}


/* Original price */
.gpg .gpg-card .gpg-price-was {
    margin: 0 !important;
    padding: 0 !important;

    font-size: 13px !important;
    line-height: 1 !important;
}


/* =========================================================
   DISCOUNT ROW
   ========================================================= */

.gpg .gpg-card .gpg-discount-summary {
    margin: 3px 0 0 !important;
    padding: 0 !important;

    display: flex !important;
    align-items: center !important;

    min-height: 0 !important;

    font-size: 12px !important;
    line-height: 1.2 !important;
    font-weight: 700 !important;

    color: #d62828 !important;
}


/* Discount percentage */
.gpg .gpg-card .gpg-discount-percent {
    font-size: 12px !important;
    font-weight: 800 !important;
    color: #d62828 !important;
}


/* Separator */
.gpg .gpg-card .gpg-discount-separator {
    margin: 0 3px !important;

    font-size: 12px !important;
    font-weight: 700 !important;

    color: #d62828 !important;
}


/* Save amount */
.gpg .gpg-card .gpg-discount-save {
    font-size: 12px !important;
    font-weight: 800 !important;
    color: #d62828 !important;
}


/* WooCommerce generated price markup inside Save amount */
.gpg .gpg-card .gpg-discount-save .woocommerce-Price-amount,
.gpg .gpg-card .gpg-discount-save .amount {
    font-size: 12px !important;
    font-weight: 800 !important;
    color: #d62828 !important;
}


/* =========================================================
   MINIMUM GAP BEFORE ADD TO CART
   ========================================================= */

.gpg .gpg-card .gpg-atc {
    margin-top: 7px !important;
}


/* =========================================================
   SHORTER ADD TO CART BUTTON
   ========================================================= */

.gpg .gpg-card .gpg-atc.button,
.gpg .gpg-card .gpg-atc.gpg-atc--incart {
    width: 100% !important;

    height: 46px !important;
    min-height: 46px !important;

    padding: 0 10px !important;

    margin-bottom: 0 !important;

    display: flex !important;
    align-items: center !important;
    justify-content: center !important;

    box-sizing: border-box !important;

    line-height: 1 !important;
}


/* Add to Cart text */
.gpg .gpg-card .gpg-atc__label {
    display: flex !important;
    align-items: center !important;
    justify-content: center !important;

    width: 100% !important;

    margin: 0 !important;
    padding: 0 !important;

    font-size: 12px !important;
    line-height: 1 !important;
    font-weight: 600 !important;

    letter-spacing: 2px !important;

    text-align: center !important;
}


/* =========================================================
   QUANTITY CONTROL — SAME BUTTON HEIGHT
   ========================================================= */

.gpg .gpg-card .gpg-qty {
    width: 100% !important;
    height: 46px !important;

    min-height: 46px !important;

    display: grid !important;
    grid-template-columns: 1fr 1fr 1fr !important;

    align-items: center !important;
    justify-items: center !important;

    padding: 0 !important;
    margin: 0 !important;
}


/* Minus / Plus */
.gpg .gpg-card .gpg-qty__minus,
.gpg .gpg-card .gpg-qty__plus {
    width: 100% !important;
    height: 46px !important;

    min-height: 46px !important;

    margin: 0 !important;
    padding: 0 !important;

    display: flex !important;
    align-items: center !important;
    justify-content: center !important;

    background: transparent !important;
    color: #ffffff !important;

    border: 0 !important;

    font-size: 23px !important;
    font-weight: 500 !important;

    line-height: 1 !important;
}


/* Quantity number */
.gpg .gpg-card .gpg-qty__value {
    width: 100% !important;
    height: 46px !important;

    display: flex !important;
    align-items: center !important;
    justify-content: center !important;

    margin: 0 !important;
    padding: 0 !important;

    color: #ffffff !important;

    font-size: 18px !important;
    font-weight: 700 !important;

    line-height: 1 !important;
}


/* =========================================================
   MOBILE FINE-TUNING
   ========================================================= */

@media (max-width: 767px) {

    .gpg .gpg-card__pricing {
        margin-top: 3px !important;
    }

    .gpg .gpg-card .gpg-discount-summary {
        margin-top: 3px !important;
        font-size: 11px !important;
    }

    .gpg .gpg-card .gpg-discount-percent,
    .gpg .gpg-card .gpg-discount-save,
    .gpg .gpg-card .gpg-discount-save .woocommerce-Price-amount,
    .gpg .gpg-card .gpg-discount-save .amount {
        font-size: 11px !important;
    }

    .gpg .gpg-card .gpg-atc {
        margin-top: 6px !important;
    }

    .gpg .gpg-card .gpg-atc.button,
    .gpg .gpg-card .gpg-atc.gpg-atc--incart {
        height: 44px !important;
        min-height: 44px !important;
    }

    .gpg .gpg-card .gpg-atc__label {
        font-size: 11px !important;
        letter-spacing: 1.8px !important;
    }

    .gpg .gpg-card .gpg-qty,
    .gpg .gpg-card .gpg-qty__minus,
    .gpg .gpg-card .gpg-qty__plus,
    .gpg .gpg-card .gpg-qty__value {
        height: 44px !important;
        min-height: 44px !important;
    }

    .gpg .gpg-card .gpg-qty__minus,
    .gpg .gpg-card .gpg-qty__plus {
        font-size: 22px !important;
    }

    .gpg .gpg-card .gpg-qty__value {
        font-size: 17px !important;
    }
}
.gpg .gpg-card .gpg-price-was {
    text-decoration-line: line-through !important;
    text-decoration-style: solid !important;
    text-decoration-thickness: 1.5px !important;
    text-decoration-color: currentColor !important;
    text-decoration-skip-ink: none !important;

    opacity: 0.65 !important;
    display: inline-block !important;
    vertical-align: baseline !important;
}
/* ------------------------------------------------- Search and filter --- */

.gpg-empty {
	margin: 24px 0 0;
	color: var(--gpg-muted);
	font-size: 0.875rem;
	text-align: center;
}

.gpg-tools {
	margin-top: 28px;
}

.gpg-search {
	display: flex;
	align-items: center;
	gap: 8px;
	padding: 4px 4px 4px 14px;
	background: var(--gpg-card);
	border: 1px solid var(--gpg-border);
	border-radius: 12px;
}

.gpg-search__icon {
	display: inline-flex;
	flex: none;
	color: var(--gpg-muted);
}

.gpg-search__icon svg {
	width: 18px;
	height: 18px;
	fill: currentColor;
}

.gpg .gpg-search__input {
	flex: 1;
	min-width: 0;
	height: 38px;
	margin: 0;
	padding: 0;
	border: 0;
	background: transparent;
	box-shadow: none;
	color: var(--gpg-ink);
	font-size: 0.875rem;
}

.gpg .gpg-search__input:focus {
	outline: none;
	box-shadow: none;
}

.gpg-search__go {
	display: inline-flex;
	flex: none;
	align-items: center;
	justify-content: center;
	width: 38px;
	height: 38px;
	padding: 0;
	border: 0;
	border-radius: 8px;
	background: var(--gpg-green);
	color: #fff;
	cursor: pointer;
}

.gpg-search__go:hover {
	background: var(--gpg-green-dark);
}

.gpg-search__go svg {
	width: 16px;
	height: 16px;
	fill: currentColor;
}

.gpg-tools__heading {
	display: flex;
	align-items: center;
	gap: 14px;
	margin: 26px 0 14px;
	font-size: 0.75rem;
	font-weight: 600;
	letter-spacing: 0.12em;
	text-transform: uppercase;
}

.gpg-tools__heading::before,
.gpg-tools__heading::after {
	flex: 1;
	height: 1px;
	background: var(--gpg-border);
	content: "";
}

.gpg-tools__heading span {
	color: var(--gpg-ink);
}

.gpg-cats {
	display: grid;
	gap: 10px;
	margin: 0;
	padding: 0;
	list-style: none;
}

.gpg-cats li {
	margin: 0;
	list-style: none;
}

.gpg-cat {
	display: flex;
	align-items: center;
	justify-content: space-between;
	gap: 12px;
	width: 100%;
	padding: 14px 16px;
	border: 1px solid var(--gpg-border);
	border-radius: 10px;
	background: var(--gpg-tint);
	color: var(--gpg-ink);
	font-size: 0.8125rem;
	font-weight: 600;
	text-align: left;
	cursor: pointer;
	transition: background 0.15s ease, color 0.15s ease;
}

.gpg-cat:hover {
	background: #efe9e0;
}

.gpg-cat[aria-pressed="true"] {
	background: var(--gpg-green);
	border-color: var(--gpg-green);
	color: #fff;
}

.gpg-cat__count {
	font-weight: 400;
	opacity: 0.75;
}

.gpg-cat svg {
	flex: none;
	width: 16px;
	height: 16px;
	fill: currentColor;
	transition: transform 0.15s ease;
}

.gpg-cat[aria-pressed="true"] svg {
	transform: rotate(90deg);
}

/* -------------------------------------------------- Card: rating row --- */

.gpg-card__meta {
	display: flex;
	align-items: center;
	justify-content: space-between;
	gap: 8px;
	margin: 0;
	font-size: 0.75rem;
}

.gpg-rating {
	display: inline-flex;
	align-items: center;
	gap: 4px;
	color: var(--gpg-ink);
}

.gpg-rating__star svg {
	display: block;
	width: 13px;
	height: 13px;
	fill: var(--gpg-star);
}

.gpg-rating__value {
	font-weight: 600;
}

.gpg-rating__count,
.gpg-card__sizes {
	color: var(--gpg-muted);
}

/* ------------------------------------------------- Card: benefit pill --- */

.gpg-benefit {
	display: inline-flex;
	align-items: center;
	gap: 6px;
	align-self: flex-start;
	max-width: 100%;
	margin: 2px 0 0;
	padding: 5px 10px;
	border-radius: 999px;
	background: var(--gpg-benefit-bg);
	color: var(--gpg-benefit-ink);
	font-size: 0.6875rem;
	font-weight: 600;
	line-height: 1.3;
}

.gpg-benefit__icon svg {
	display: block;
	width: 13px;
	height: 13px;
	fill: currentColor;
}

/* ------------------------------------------------------ Card: coupon --- */

.gpg-coupon {
	margin: 0 0 4px;
	color: var(--gpg-off);
	font-size: 0.75rem;
	font-weight: 500;
}

/* --------------------------------------------- Card: in-cart variant --- */

/*
 * Carries .button as well, so this outranks the filled rule above outright
 * rather than tying with it and depending on source order.
 */
.gpg .gpg-card .gpg-card__body a.gpg-atc.button.gpg-atc--incart {
	background: transparent !important;
	border: 1px solid var(--gpg-green) !important;
	color: var(--gpg-green) !important;
}

.gpg .gpg-card .gpg-card__body a.gpg-atc.button.gpg-atc--incart:hover,
.gpg .gpg-card .gpg-card__body a.gpg-atc.button.gpg-atc--incart:focus {
	background: var(--gpg-green) !important;
	color: #fff !important;
}

/* The cart glyph belongs to the "add" state only, as in the mockup. */
.gpg .gpg-atc--incart svg {
	display: none;
}

/* ------------------------------------------------- Announcement bar --- */

.gpg-announce {
	background: var(--gpg-green);
	color: #fff;
	font-size: 0.75rem;
	overflow: hidden;
}

.gpg-announce__track {
	display: flex;
	align-items: center;
	justify-content: center;
	gap: 28px;
	padding: 8px 16px;
}

.gpg-announce__item {
	display: inline-flex;
	align-items: center;
	gap: 7px;
	white-space: nowrap;
}

.gpg-announce__item + .gpg-announce__item {
	border-left: 1px solid rgba(255, 255, 255, 0.28);
	padding-left: 28px;
}

.gpg-announce__item strong {
	font-weight: 700;
}

.gpg-announce__icon svg {
	display: block;
	width: 15px;
	height: 15px;
	fill: var(--gpg-gold);
}

@media (max-width: 600px) {
	/* Too wide to sit still on a phone, so it scrolls instead of wrapping. */
	.gpg-announce__track {
		justify-content: flex-start;
		gap: 24px;
		overflow-x: auto;
		scrollbar-width: none;
		-webkit-overflow-scrolling: touch;
	}

	.gpg-announce__track::-webkit-scrollbar {
		display: none;
	}

	.gpg-announce__item + .gpg-announce__item {
		padding-left: 24px;
	}
}

/* ------------------------------------------------------ Category chips --- */

.gpg-chips {
    display: flex;
    flex-wrap: nowrap;
    gap: 6px;
    width: 100%;
    margin: 0;
    padding: 6px 0;
    list-style: none;
    overflow: hidden;
}


.gpg-chips::-webkit-scrollbar {
    display: none;
}


.gpg-chips__item {
    flex: 1 1 0;
    width: 0;
    min-width: 0;
    margin: 0;
    list-style: none;
}

.gpg-chip {
    display: flex;
    flex-direction: column;
    align-items: center;
    justify-content: flex-start;

    width: 100%;
    min-width: 0;
    height: auto;

    padding: 0;
    border: 0;
    border-radius: 0;

    background: transparent;
    color: var(--gpg-ink);

    font-size: 8px;
    font-weight: 500;
    line-height: 1.15;
    text-align: center;
    text-decoration: none;

    white-space: nowrap;
}

.gpg-chip:hover {
    border-color: var(--gpg-green);
    background: var(--gpg-tint);
    color: var(--gpg-green);
}

/* Circular icon container */
.gpg-chip__icon {
    display: flex;
    align-items: center;
    justify-content: center;

    width: 42px;
    height: 42px;

    margin: 0 auto 5px;

    border: 1px solid var(--gpg-border);
    border-radius: 50%;

    background: var(--gpg-card);
    box-sizing: border-box;
}

/* Icon */
.gpg-chip__icon svg {
    display: block;

    width: 18px;
    height: 18px;

    fill: var(--gpg-green);
}

/* Category text */
.gpg-chip__label {
    display: block;

    width: 100%;
    min-width: 0;

    margin: 0;

    color: var(--gpg-ink);

    font-size: 8px;
    font-weight: 500;
    line-height: 1.15;

    text-align: center;

    white-space: nowrap;
    overflow: visible;
    text-overflow: clip;
}

/* Mobile */
@media (max-width: 767px) {

    .gpg-chips {
        gap: 4px;
        padding: 5px 0;
    }

    .gpg-chip__icon {
        width: 40px;
        height: 40px;
        margin-bottom: 4px;
    }

    .gpg-chip__icon svg {
        width: 17px;
        height: 17px;
    }

    .gpg-chip__label {
        font-size: 7px;
        line-height: 1.1;
    }
}

/* ==========================================================
   USP STRIP
   Icon Circle + Bold Text
========================================================== */

.gpg-usps {
    display: flex;
    flex-wrap: nowrap;
    align-items: center;
    width: 100%;

    gap: 8px;

    margin: 0;
    padding: 6px 0;

    list-style: none;

    overflow: hidden;
}

.gpg-usps::-webkit-scrollbar {
    display: none;
}


/* Each USP gets equal available width */
.gpg-usp {
    display: flex;
    flex: 1 1 0;

    align-items: center;
    justify-content: center;

    min-width: 0;

    gap: 8px;

    margin: 0;
    padding: 2px 4px;

    border: 0;
    border-radius: 0;

    background: transparent;

    color: var(--gpg-ink);

    font-size: 11px;
    font-weight: 700;
    line-height: 1.25;

    list-style: none;
}


/* ----------------------------------------------------------
   Circular Icon
---------------------------------------------------------- */

.gpg-usp__icon {
    display: flex;
    align-items: center;
    justify-content: center;

    flex: 0 0 42px;

    width: 42px;
    height: 42px;

    border-radius: 50%;

    background: var(--gpg-benefit-bg);

    color: var(--gpg-green);
}


/* Icon itself */
.gpg-usp__icon svg {
    display: block;

    width: 22px;
    height: 22px;

    fill: none;
    stroke: currentColor;
    stroke-width: 1.6;
}


/* ----------------------------------------------------------
   USP Text
---------------------------------------------------------- */

.gpg-usp__text {
    display: block;

    min-width: 0;

    color: var(--gpg-ink);

    font-size: 11px;
    font-weight: 700;
    line-height: 1.25;

    text-align: left;
}


/* If the shortcode outputs plain text directly */
.gpg-usp > span:not(.gpg-usp__icon) {
    font-weight: 700;
}


/* ==========================================================
   MOBILE
========================================================== */

@media (max-width: 767px) {

    .gpg-usps {
        gap: 4px;
        padding: 5px 0;
    }

    .gpg-usp {
        gap: 5px;

        padding: 2px;

        font-size: 8px;
        line-height: 1.2;
    }

    .gpg-usp__icon {
        flex: 0 0 32px;

        width: 32px;
        height: 32px;
    }

    .gpg-usp__icon svg {
        width: 17px;
        height: 17px;
    }

    .gpg-usp__text {
        font-size: 8px;
        font-weight: 700;
        line-height: 1.2;
    }
}

/* ----------------------------------------------------
   Section Heading
---------------------------------------------------- */

.gpg-heading {
    display: flex;
    align-items: flex-end;
    justify-content: space-between;

    width: 100%;

    gap: 12px;

    margin: 0;
    padding: 0;
}

.gpg-heading__content {
    min-width: 0;
    flex: 1 1 auto;
}

/* Small eyebrow */
.gpg-heading__eyebrow {
    margin: 0 0 2px;

    color: var(--gpg-gold);

    font-size: 9px;
    font-weight: 700;

    line-height: 1;

    letter-spacing: 0.12em;
    text-transform: uppercase;
}

/* Main title */
.gpg .gpg-heading__title {
    margin: 0;

    color: var(--gpg-ink);

    font-size: clamp(20px, 5vw, 28px);
    font-weight: 600;

    line-height: 1.05;

    letter-spacing: 0;

    text-transform: none;

    white-space: nowrap;
}

/* View All */
.gpg-heading__link {
    display: inline-flex;

    flex: 0 0 auto;

    align-items: center;
    justify-content: center;

    gap: 3px;

    margin-bottom: 2px;

    color: var(--gpg-ink);

    font-size: 9px;
    font-weight: 600;

    line-height: 1;

    text-decoration: none;

    white-space: nowrap;
}

.gpg-heading__link:hover {
    color: var(--gpg-green);
}

.gpg-heading__link svg {
    width: 10px;
    height: 10px;

    fill: currentColor;
}


/* ----------------------------------------------------
   Mobile
---------------------------------------------------- */

@media (max-width: 767px) {

    .gpg-heading {
        gap: 8px;
    }

    .gpg-heading__eyebrow {
        margin-bottom: 2px;
        font-size: 7px;
        letter-spacing: 0.1em;
    }

    .gpg .gpg-heading__title {
        font-size: clamp(17px, 5vw, 22px);
        line-height: 1.05;
        white-space: nowrap;
    }

    .gpg-heading__link {
        margin-bottom: 1px;
        font-size: 7px;
        gap: 2px;
    }

    .gpg-heading__link svg {
        width: 8px;
        height: 8px;
    }
}

/* ==================================================== Side cart ======== */
/*
 * Modern Cart ships default blue styling. These rules brand it and add the
 * pieces the approved layout needs. They live outside .gpg because the cart
 * markup is the plugin's, not this plugin's.
 */

.moderncart-slide-out,
.moderncart-slide-out-panel {
	--gpg-green: #1b4d3e;
	--gpg-ink: #16281f;
	--gpg-muted: #6b7280;
	--gpg-border: #ece5db;
	--gpg-off: #16a34a;
	--gpg-benefit-bg: #eaf5ec;
	--gpg-strike: #9ca3af;
}

/*
 * Modern Cart's own subtotal/total rows are replaced wholesale by
 * .gpg-mc-totals, which is rendered just above the checkout button.
 */
.moderncart-cart-total .moderncart-cart-line-items {
	display: none !important;
}

.gpg-mc-totals {
	display: block;
	margin-bottom: 4px;
}

/*
 * The plugin appends its own "You saved 25%" note after the price filter's
 * output; the pill replaces it.
 */
.moderncart-price small {
	display: none !important;
}

/*
 * Modern Cart's default blue "Sale!" bubble on the thumbnail. The discount is
 * already stated beside the price, and the approved side cart has no badge on
 * the image.
 */
.moderncart-cart-item-onsale {
	display: none !important;
}

/*
 * Modern Cart's script hides cart thumbnails below 768px unless
 * `enable_product_image_in_mobile_view` is true — but this version's PHP never
 * localises that key, so it is always undefined and the images always vanish
 * on a phone. It applies the hiding as an inline style via jQuery .css(), and
 * an !important declaration in a stylesheet outranks a plain inline style.
 */
@media (max-width: 767px) {
	.moderncart-cart-item-image {
		display: block !important;
		flex: 0 0 64px;
		width: 64px;
	}

	.moderncart-cart-item-image img {
		display: block;
		width: 100%;
		height: auto;
		border-radius: 8px;
	}
}

/* Heading and subtitle */

.gpg-mc-subtitle {
	margin: 2px 0 0;
	color: var(--gpg-muted);
	font-size: 0.8125rem;
	text-align: center;
}

/* Line-item price */

.gpg-mc-item-price {
	color: var(--gpg-ink);
	font-size: 0.9375rem;
	font-weight: 700;
}

.gpg-mc-item-was {
	margin-left: 6px;
	color: var(--gpg-strike);
	font-size: 0.75rem;
	text-decoration: line-through;
}

.gpg-mc-item-off {
	display: inline-block;
	margin-left: 6px;
	padding: 2px 7px;
	border-radius: 999px;
	background: var(--gpg-benefit-bg);
	color: var(--gpg-off);
	font-size: 0.6875rem;
	font-weight: 700;
}

/* "Discount Applied" panel */

.gpg-mc-applied {
	display: flex;
	align-items: center;
	gap: 10px;
	margin: 0 0 14px;
	padding: 12px 14px;
	border: 1px solid #d7ead9;
	border-radius: 12px;
	background: var(--gpg-benefit-bg);
}

.gpg-mc-applied__icon svg {
	display: block;
	width: 18px;
	height: 18px;
	fill: var(--gpg-off);
}

.gpg-mc-applied__text {
	display: flex;
	flex-direction: column;
	gap: 1px;
}

.gpg-mc-applied__text strong {
	color: var(--gpg-ink);
	font-size: 0.8125rem;
}

.gpg-mc-applied__text small {
	color: var(--gpg-muted);
	font-size: 0.75rem;
}

/* Totals rows */

.gpg-mc-row {
	display: flex;
	align-items: baseline;
	justify-content: space-between;
	gap: 12px;
	padding: 5px 0;
	font-size: 0.875rem;
}

.gpg-mc-row__label {
	color: var(--gpg-muted);
}

.gpg-mc-row__value {
	color: var(--gpg-ink);
	font-weight: 600;
}

.gpg-mc-row--discount .gpg-mc-row__label,
.gpg-mc-row--discount .gpg-mc-row__value {
	color: var(--gpg-off);
}

.gpg-mc-row--total {
	margin-top: 6px;
	padding-top: 12px;
	border-top: 1px solid var(--gpg-border);
	font-size: 1.125rem;
}

.gpg-mc-row--total .gpg-mc-row__label {
	color: var(--gpg-ink);
	font-weight: 700;
}

.gpg-mc-row--total .gpg-mc-row__value {
	font-size: 1.25rem;
	font-weight: 700;
}

/* Savings band */

.gpg-mc-savings {
	display: flex;
	align-items: center;
	justify-content: center;
	gap: 8px;
	margin: 12px 0 4px;
	padding: 10px 12px;
	border-radius: 10px;
	background: var(--gpg-benefit-bg);
	color: #1b6b41;
	font-size: 0.8125rem;
	font-weight: 600;
}

.gpg-mc-savings svg {
	width: 15px;
	height: 15px;
	fill: currentColor;
}

/* Trust row */

.gpg-mc-trust {
	display: flex;
	justify-content: space-between;
	gap: 8px;
	margin: 0;
	padding: 14px 4px 4px;
	border-top: 1px solid var(--gpg-border);
	list-style: none;
}

.gpg-mc-trust li {
	display: flex;
	flex: 1;
	flex-direction: column;
	align-items: center;
	gap: 5px;
	margin: 0;
	color: var(--gpg-muted);
	font-size: 0.6875rem;
	line-height: 1.25;
	text-align: center;
	list-style: none;
}

.gpg-mc-trust__icon svg {
	display: block;
	width: 18px;
	height: 18px;
	fill: var(--gpg-green);
}

/* Brand the checkout button, which ships default blue. */

.moderncart-slide-out .wc-proceed-to-checkout .checkout-button,
.moderncart-slide-out a.checkout-button {
	background: var(--gpg-green) !important;
	border-color: var(--gpg-green) !important;
	border-radius: 10px !important;
	color: #fff !important;
	font-weight: 600 !important;
	text-transform: none !important;
}

/* ================================================ Cart / checkout ====== */

/*
 * Glow Pre-Launch Booking's own unstyled summary table. It is unhooked in PHP,
 * but this guarantees it never shows the same figures twice if that fails.
 */
.glow-prelaunch-summary {
	display: none !important;
}

/*
 * WooCommerce's own totals rows restate the same figures in raw form — the
 * booking plugin's two negative fees read as "Balance Payable ... -1,885",
 * and the order total reads 99 with no explanation. The summary card above
 * presents all of it, so the stock rows are hidden.
 *
 * Note this also hides any other cart fee. That is safe here because the only
 * fees on this store are the booking plugin's; revisit if that changes.
 */
.woocommerce-cart .cart_totals > h2,
.woocommerce-cart .cart_totals tr.cart-subtotal,
.woocommerce-cart .cart_totals tr.fee,
.woocommerce-cart .cart_totals tr.order-total,
.woocommerce-checkout tr.cart-subtotal,
.woocommerce-checkout tr.fee,
.woocommerce-checkout tr.order-total,
/* CartFlows' Instant Checkout review table does not carry those body classes. */
.instant-checkout-order-review-table tr.cart-subtotal,
.instant-checkout-order-review-table tr.fee,
.instant-checkout-order-review-table tr.order-total {
	display: none !important;
}

/* Pack size, on its own line under the product name. */
.gpg-item-size {
	display: block;
	margin-top: 2px;
	color: var(--gpg-muted);
	font-size: 0.8125rem;
	font-weight: 400;
}

/*
 * CartFlows collapses the coupon behind a "Have a coupon?" link. The approved
 * layout shows the field outright, so the link is dropped and the field is
 * opened by removing wcf-hide-field in JS — fighting its nested display rules
 * from CSS meant chasing specificity through several layers.
 */
.wcf-custom-coupon-field {
	display: flex !important;
	align-items: center;
	gap: 10px;
}

.wcf-custom-coupon-field .wcf-optimized-coupon-field {
	display: none !important;
}

.wcf-custom-coupon-field .wcf-coupon-col-1 {
	flex: 1;
	min-width: 0;
}

.wcf-custom-coupon-field .wcf-coupon-code-input {
	width: 100%;
	border-radius: 10px;
}

.wcf-custom-coupon-field .wcf-submit-coupon {
	border-radius: 10px !important;
	background: var(--gpg-green) !important;
	color: #fff !important;
	white-space: nowrap;
}

/* The row wrapper exists only to stay valid inside WooCommerce's table. */
.gpg-co-row > td {
	padding: 0 !important;
	border: 0 !important;
}

.gpg-co {
	display: block;
	margin: 16px 0;
}

.gpg-co__card {
	margin-bottom: 12px;
	padding: 16px;
	border: 1px solid var(--gpg-border);
	border-radius: 14px;
	background: var(--gpg-card);
}

.gpg-co__head {
	display: flex;
	align-items: center;
	justify-content: space-between;
	gap: 12px;
	margin-bottom: 12px;
}

.gpg .gpg-co__title {
	margin: 0;
	color: var(--gpg-ink);
	font-size: 1.125rem;
	font-weight: 700;
	text-transform: none;
	letter-spacing: 0;
}

.gpg-co__count {
	padding: 4px 10px;
	border-radius: 999px;
	background: var(--gpg-benefit-bg);
	color: var(--gpg-benefit-ink);
	font-size: 0.75rem;
	font-weight: 600;
	white-space: nowrap;
}

.gpg-co__row {
	display: flex;
	align-items: center;
	justify-content: space-between;
	gap: 12px;
	padding: 7px 0;
	font-size: 0.875rem;
}

.gpg-co__row > span:first-child {
	color: var(--gpg-muted);
}

.gpg-co__row > span:last-child {
	color: var(--gpg-ink);
	font-weight: 600;
}

.gpg-co__pill {
	display: inline-block;
	margin-left: 6px;
	padding: 2px 8px;
	border-radius: 999px;
	background: var(--gpg-benefit-bg);
	color: var(--gpg-off);
	font-size: 0.6875rem;
	font-weight: 700;
	font-style: normal;
}

.gpg-co__row--discount .gpg-co__minus {
	color: #d63b2f;
}

.gpg-co__row--total {
	margin-top: 6px;
	padding-top: 14px;
	border-top: 1px solid var(--gpg-border);
}

.gpg-co__row--total > span {
	color: var(--gpg-ink) !important;
	font-size: 1.0625rem;
	font-weight: 700;
}

/* Pay now / remaining */

.gpg-co__split {
	display: grid;
	gap: 12px;
	grid-template-columns: repeat(2, minmax(0, 1fr));
}

/*
 * Pay Now and Remaining stay side by side at every width — the approved layout
 * pairs them so the split reads as one decision, and the checkout's summary
 * column is narrow even on a desktop.
 */
@media (max-width: 380px) {
	.gpg-co__split {
		gap: 8px;
	}

	.gpg-co__pay,
	.gpg-co__due {
		flex-direction: column;
		gap: 8px;
		padding: 12px;
	}
}

.gpg-co__pay,
.gpg-co__due {
	display: flex;
	align-items: flex-start;
	gap: 12px;
	margin-bottom: 0;
}

.gpg-co__pay {
	border-color: #d7ead9;
	background: var(--gpg-benefit-bg);
}

.gpg-co__due {
	border-color: #f0e2cd;
	background: #fdf6ec;
}

.gpg-co__icon {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	flex: none;
	width: 38px;
	height: 38px;
	border-radius: 999px;
	background: rgba(255, 255, 255, 0.75);
}

.gpg-co__icon svg {
	width: 18px;
	height: 18px;
	fill: var(--gpg-green);
}

.gpg-co__due .gpg-co__icon svg {
	fill: #b07d2b;
}

.gpg-co__pay div,
.gpg-co__due div {
	display: flex;
	flex: 1;
	flex-direction: column;
	gap: 2px;
	text-align: left;
}

.gpg-co__pay strong,
.gpg-co__due strong {
	color: var(--gpg-ink);
	font-size: 0.875rem;
}

.gpg-co__amount {
	color: var(--gpg-ink);
	font-size: 1.25rem;
	font-weight: 700;
}

.gpg-co__pay small,
.gpg-co__due small {
	color: var(--gpg-muted);
	font-size: 0.75rem;
	line-height: 1.35;
}

.gpg-co__secure {
	display: flex;
	align-items: center;
	justify-content: center;
	gap: 7px;
	margin: 16px 0 0;
	color: var(--gpg-muted);
	font-size: 0.75rem;
}

.gpg-co__secure svg {
	width: 14px;
	height: 14px;
	fill: var(--gpg-green);
}

/* ================================================== Product page ======= */

.single-product div.product {
	--gpg-green: #1b4d3e;
	--gpg-ink: #16281f;
	--gpg-muted: #6b7280;
	--gpg-border: #ece5db;
	--gpg-off: #16a34a;
	--gpg-star: #f5a524;
	--gpg-strike: #9ca3af;
	--gpg-benefit-bg: #eaf5ec;
}

/* Sale badge on the gallery */

.single-product span.onsale.gpg-pdp-badge {
	display: flex !important;
	flex-direction: column;
	align-items: center;
	justify-content: center;
	position: absolute !important;
	z-index: 3;
	top: 14px !important;
	left: 14px !important;
	right: auto !important;
	min-height: 0 !important;
	min-width: 0 !important;
	width: auto !important;
	height: auto !important;
	margin: 0 !important;
	padding: 10px 12px !important;
	border-radius: 14px !important;
	background: var(--gpg-green) !important;
	color: #fff !important;
	font-size: 0.8125rem !important;
	font-weight: 700 !important;
	line-height: 1.15 !important;
	text-transform: none !important;
}

.single-product span.onsale.gpg-pdp-badge strong {
	font-size: 1rem;
	font-weight: 700;
}

.single-product span.onsale.gpg-pdp-badge span {
	font-size: 0.75rem;
	letter-spacing: 0.04em;
}

/* Breadcrumb */

/* Astra hides WooCommerce's breadcrumb outright, since it ships its own. */
.single-product nav.woocommerce-breadcrumb {
	display: block !important;
	margin: 0 0 14px;
	color: var(--gpg-muted);
	font-size: 0.75rem;
}

.single-product .woocommerce-breadcrumb a {
	color: var(--gpg-muted);
	text-decoration: none;
}

.single-product .woocommerce-breadcrumb a:hover {
	color: var(--gpg-green);
}

/* Summary column */

/* Astra's own "+ Free Shipping" note; replaced by .gpg-pdp-shipping below. */
.single-product .ast-shipping-text {
	display: none !important;
}

.single-product .gpg-pdp-brand {
	margin: 0 0 4px;
	color: var(--gpg-muted);
	font-size: 0.8125rem;
}

.single-product .product_title {
	margin: 0 0 8px;
	color: var(--gpg-green);
	font-size: clamp(1.375rem, 4vw, 1.875rem);
	font-weight: 700;
	letter-spacing: 0.02em;
	text-transform: uppercase;
}

.gpg-pdp-meta {
	display: flex;
	align-items: center;
	gap: 10px;
	margin: 0 0 10px;
	font-size: 0.8125rem;
}

.gpg-pdp-meta__sep {
	width: 1px;
	height: 14px;
	background: var(--gpg-border);
}

.gpg-pdp-sizes {
	color: var(--gpg-muted);
}

.single-product div.product p.price {
	display: inline-flex;
	align-items: baseline;
	flex-wrap: wrap;
	gap: 8px;
	margin: 0 0 4px !important;
	/* Astra paints .price with the brand green, which hid the sale price. */
	padding: 0 !important;
	background: transparent !important;
	color: var(--gpg-ink) !important;
	font-size: 1.5rem !important;
	font-weight: 700;
}

/* Both sit on one line; Astra renders them as blocks. */
.single-product div.product p.price del,
.single-product div.product p.price ins,
.single-product div.product p.price span.woocommerce-Price-amount.amount,
.single-product div.product p.price bdi {
	display: inline !important;
}

.single-product div.product p.price del {
	color: var(--gpg-strike) !important;
	font-size: 1rem;
	font-weight: 400;
	opacity: 1;
	/*
	 * WooCommerce prints <del> before <ins>. The approved layout leads with
	 * the price being charged, so the flex order is swapped rather than the
	 * markup — screen readers still get the original-then-current wording.
	 */
	order: 2;
}

.single-product div.product p.price ins {
	background: none;
	text-decoration: none;
	order: 1;
}

.single-product div.product p.price .screen-reader-text {
	order: 3;
}

.gpg-pdp-off {
	display: inline-block;
	margin-bottom: 10px;
	padding: 3px 10px;
	border-radius: 999px;
	background: var(--gpg-benefit-bg);
	color: var(--gpg-off);
	font-size: 0.75rem;
	font-weight: 700;
}

.gpg-pdp-shipping {
	display: flex;
	align-items: center;
	gap: 8px;
	margin: 6px 0 14px;
	color: var(--gpg-green);
	font-size: 0.8125rem;
	font-weight: 500;
}

.gpg-pdp-shipping svg {
	flex: none;
	width: 17px;
	height: 17px;
	fill: currentColor;
}

.gpg-pdp-tagline {
	margin: 14px 0 8px;
	color: var(--gpg-ink);
	font-size: 0.875rem;
	font-weight: 700;
	letter-spacing: 0.02em;
	text-transform: uppercase;
}

/* Add to cart */

.single-product .gpg-pdp-atc-icon {
	display: none;
}

.single-product form.cart button.single_add_to_cart_button {
	border-radius: 10px !important;
	background: var(--gpg-green) !important;
	color: #fff !important;
	font-weight: 600 !important;
	letter-spacing: 0.01em !important;
	text-transform: none !important;
}

.single-product form.cart button.single_add_to_cart_button:hover {
	background: #143b2f !important;
}

/* Accordions */

.gpg-pdp-accordions {
	/*
	 * Astra floats the gallery left and the summary right. Without clearing
	 * them this block starts alongside the floats and renders straight over
	 * the product title.
	 */
	clear: both;
	margin: 28px 0 0;
	padding-top: 28px;
	border-top: 1px solid var(--gpg-border);
}

.gpg-acc {
	border-bottom: 1px solid var(--gpg-border);
}

.gpg-acc__head {
	display: flex;
	align-items: center;
	justify-content: space-between;
	gap: 12px;
	padding: 16px 2px;
	color: var(--gpg-ink);
	cursor: pointer;
	font-size: 0.9375rem;
	font-weight: 600;
	list-style: none;
}

.gpg-acc__head::-webkit-details-marker {
	display: none;
}

/* A + that becomes a − when the panel is open. */
.gpg-acc__sign {
	position: relative;
	flex: none;
	width: 14px;
	height: 14px;
}

.gpg-acc__sign::before,
.gpg-acc__sign::after {
	position: absolute;
	top: 50%;
	left: 0;
	width: 14px;
	height: 2px;
	background: var(--gpg-green);
	content: "";
	transform: translateY(-50%);
	transition: transform 0.15s ease;
}

.gpg-acc__sign::after {
	transform: translateY(-50%) rotate(90deg);
}

.gpg-acc[open] .gpg-acc__sign::after {
	transform: translateY(-50%) rotate(0deg);
}

.gpg-acc__body {
	padding: 0 2px 18px;
	color: var(--gpg-muted);
	font-size: 0.875rem;
	line-height: 1.6;
}

.gpg-acc__body > *:first-child {
	margin-top: 0;
}

/* ====================================================== Footer ========= */
/*
 * The footer is Elementor template 2924 and already carries the right
 * content. These rules only bring the phone layout in line with the approved
 * design: contact and policy side by side, and the social block above the
 * copyright line.
 */

@media (max-width: 767px) {
	/*
	 * Elementor element ids, from footer template 2924:
	 *   922bbf8 top row   → 91c4109 contact | 405b7bb logo | 5daaed0 policy
	 *   138a019 lower row → 8bd3e7a copyright | ae74de7 follow us + social
	 */
	/* Elementor nests a container's children inside .e-con-inner. */
	.elementor-element-922bbf8 > .e-con-inner,
	.elementor-element-922bbf8 {
		display: flex;
		flex-wrap: wrap;
	}

	/*
	 * Elementor sizes containers with `width: var(--width)` and forces
	 * `.e-con.e-flex { --width: 100% }` at this breakpoint. Beating that needs
	 * both the custom property and a selector above its (0,2,0) specificity —
	 * a plain `width`, or a single-class selector, silently loses.
	 */
	.elementor-2924 .e-con.elementor-element-405b7bb {
		--width: 100%;
		order: -1;
	}

	.elementor-2924 .e-con.elementor-element-91c4109,
	.elementor-2924 .e-con.elementor-element-5daaed0 {
		--width: 50%;
		/* Flex items default to min-width:auto, which let the email address
		   overflow into the policy column instead of wrapping. */
		min-width: 0;
	}

	/* The support address is longer than half a phone screen. */
	.elementor-2924 .elementor-icon-list-text {
		overflow-wrap: anywhere;
		font-size: 0.75rem;
		line-height: 1.45;
	}

	.elementor-2924 .e-con.elementor-element-5daaed0 {
		padding-left: 16px;
		border-left: 1px solid rgba(255, 255, 255, 0.16);
	}

	/* Social block sits above the copyright line. */
	.elementor-element-138a019 > .e-con-inner,
	.elementor-element-138a019 {
		display: flex;
		flex-direction: column;
	}

	/* The heading's rule squeezed "FOLLOW US" onto two lines. */
	.elementor-element-ae74de7 .elementor-divider__text {
		white-space: nowrap;
	}

	.elementor-2924 .e-con.elementor-element-ae74de7 {
		order: -1;
	}
}

/* Keep the divider headings consistent with the rest of the site. */
.elementor-2924 .elementor-divider__text {
	letter-spacing: 0.1em;
	text-transform: uppercase;
}

/* ====================================================
   Countdown - Compact Single Row
==================================================== */

.gpg-countdown {
    width: 100%;
    margin: 12px 0 4px;
}

.gpg-countdown__inner {
    display: flex;
    flex-direction: column;
    align-items: center;
    gap: 10px;

    width: 100%;
    box-sizing: border-box;

    padding: 14px 10px;

    border: 1px solid #d7ead9;
    border-radius: 16px;
    background: var(--gpg-benefit-bg);

    text-align: center;
}

.gpg .gpg-countdown__eyebrow {
    margin: 0 0 2px;
    color: var(--gpg-gold);
    font-size: 0.6875rem;
    font-weight: 700;
    letter-spacing: 0.14em;
    text-transform: uppercase;
}

.gpg .gpg-countdown__title {
    margin: 0;
    color: var(--gpg-ink);
    font-size: 1.125rem;
    font-weight: 700;
    letter-spacing: 0.1em;
    line-height: 1.2;
    text-transform: uppercase;
}

.gpg .gpg-countdown__subtitle {
    margin: 0;
    color: var(--gpg-ink);
    font-size: 0.95rem;
    font-weight: 700;
    letter-spacing: 0.1em;
    line-height: 1.2;
    text-transform: uppercase;
}

.gpg .gpg-countdown__date {
    margin: 2px 0 0;
    color: var(--gpg-muted);
    font-size: 0.75rem;
}

/* Four countdown units - ALWAYS one row */
.gpg-countdown__units {
    display: flex;
    flex-wrap: nowrap;
    align-items: center;
    justify-content: center;

    width: 100%;
    max-width: 100%;

    gap: 8px;

    margin: 0;
    padding: 0;

    list-style: none;
}

.gpg-countdown__unit {
    flex: 1 1 0;
    min-width: 0;

    margin: 0;
    padding: 0;

    list-style: none;
}

/* Countdown circle */
.gpg-countdown__ring {
    display: block;

    width: 64px;
    height: 64px;

    max-width: 100%;

    margin: 0 auto;
    padding: 3px;

    box-sizing: border-box;

    border-radius: 50%;

    background:
        conic-gradient(
            var(--gpg-green) calc(var(--gpg-progress, 0) * 1%),
            rgba(27, 77, 62, 0.15) 0
        );
}

.gpg-countdown__disc {
    display: flex;
    flex-direction: column;
    align-items: center;
    justify-content: center;

    width: 100%;
    height: 100%;

    padding: 0;
    margin: 0;

    border-radius: 50%;
    background: #fff;
    color: var(--gpg-ink);

    box-sizing: border-box;
}

.gpg-countdown__value {
    display: block;

    margin: 0;
    padding: 0;

    font-size: 1.05rem;
    font-weight: 700;
    line-height: 1;

    text-align: center;

    font-variant-numeric: tabular-nums;
}

.gpg-countdown__label {
    display: block;

    margin: 2px 0 0;
    padding: 0;

    color: var(--gpg-muted);

    font-size: 0.5rem;
    font-weight: 400;
    line-height: 1;

    text-align: center;
}


/* ====================================================
   Mobile
==================================================== */

@media (max-width: 600px) {

    .gpg-countdown__inner {
        padding: 12px 6px;
        gap: 8px;
    }

    .gpg-countdown__units {
        gap: 4px;
    }

    .gpg-countdown__ring {
        width: 54px;
        height: 54px;
        padding: 3px;
    }

    .gpg-countdown__value {
        font-size: 0.95rem;
    }

    .gpg-countdown__label {
        font-size: 0.5rem;
    }

    .gpg .gpg-countdown__title {
        font-size: 0.9rem;
    }
    
    .gpg .gpg-countdown__subtitle {
        font-size: 0.8rem;
    }

    .gpg .gpg-countdown__date {
        font-size: 0.65rem;
    }
}


/* Very small phones */
@media (max-width: 360px) {

    .gpg-countdown__inner {
        padding-left: 4px;
        padding-right: 4px;
    }

    .gpg-countdown__units {
        gap: 2px;
    }

    .gpg-countdown__ring {
        width: 48px;
        height: 48px;
    }

    .gpg-countdown__value {
        font-size: 0.85rem;
    }

    .gpg-countdown__label {
        font-size: 0.45rem;
    }
}



/* ==========================================================
   GLOW PRODUCTS - COMPACT MOBILE PRODUCT CARDS
   2 products per row / minimum vertical spacing
========================================================== */

@media (max-width: 767px) {

    /* Product grid */
    .gpg-grid {
        grid-template-columns: repeat(2, minmax(0, 1fr)) !important;
        gap: 8px !important;
    }

    /* Card */
    .gpg-card {
        min-width: 0;
        border-radius: 10px;
    }

    /* Product image */
    .gpg-card__media img,
    .gpg-card__img {
        width: 100%;
        aspect-ratio: 1 / 1;
        object-fit: cover;
    }

    /* Sale badge */
    .gpg-badge {
        top: 5px;
        left: 5px;

        padding: 3px 6px;

        font-size: 8px;
        line-height: 1.2;
    }

    /* Wishlist */
    .gpg-wishlist {
        top: 5px;
        right: 5px;

        width: 24px;
        height: 24px;
    }

    .gpg-wishlist svg {
        width: 13px;
        height: 13px;
    }


    /* ======================================================
       Card Content
    ====================================================== */

    .gpg-card__body {
        display: flex;
        flex-direction: column;

        gap: 3px !important;

        padding: 7px 7px 8px !important;
    }

    /* Remove ALL theme paragraph spacing */
    .gpg .gpg-card .gpg-card__body > * {
        margin-top: 0 !important;
        margin-bottom: 0 !important;
    }


    /* Brand */
    .gpg-card__brand {
        font-size: 7px;
        line-height: 1.1;
    }


    /* Product title */
    .gpg .gpg-card__title {
        font-size: 10px !important;
        font-weight: 600;

        line-height: 1.15;

        margin: 0 !important;
    }

    .gpg-card__title a {
        display: -webkit-box;

        -webkit-line-clamp: 2;
        -webkit-box-orient: vertical;

        overflow: hidden;

        line-height: 1.15;
    }


    /* ======================================================
       Rating + Sizes
    ====================================================== */

    .gpg-card__meta {
        display: flex;

        align-items: center;
        justify-content: space-between;

        gap: 3px;

        font-size: 7px !important;
        line-height: 1.1;
    }

    .gpg-rating {
        gap: 2px;
    }

    .gpg-rating__star svg {
        width: 9px;
        height: 9px;
    }

    .gpg-rating__value {
        font-size: 7px;
        font-weight: 600;
    }

    .gpg-rating__count,
    .gpg-card__sizes {
        font-size: 6.5px;
    }


    /* ======================================================
       Benefit
    ====================================================== */

    .gpg-benefit {
        display: flex;

        align-items: center;

        width: 100%;
        max-width: 100%;

        gap: 3px;

        padding: 3px 5px;

        border-radius: 5px;

        font-size: 6.5px;
        font-weight: 600;
        line-height: 1.1;

        white-space: nowrap;
        overflow: hidden;
    }

    .gpg-benefit__icon svg {
        width: 10px;
        height: 10px;
        flex: 0 0 auto;
    }


    /* ======================================================
       Price Row
    ====================================================== */

    .gpg-card__price {
        display: flex;

        align-items: baseline;

        flex-wrap: nowrap;

        gap: 4px;

        width: 100%;

        white-space: nowrap;
    }

    .gpg-price {
        font-size: 12px !important;
        font-weight: 700;

        line-height: 1;
    }

    .gpg-price-was {
        font-size: 7px !important;
        line-height: 1;

        white-space: nowrap;
    }

    .gpg-price-off {
        font-size: 7px !important;
        font-weight: 700;

        line-height: 1;

        white-space: nowrap;
    }


    /* ======================================================
       Coupon
    ====================================================== */

    .gpg-coupon {
        font-size: 7px !important;
        line-height: 1.1;

        white-space: nowrap;
        overflow: hidden;

        text-overflow: ellipsis;
    }


    /* ======================================================
       Add To Cart
    ====================================================== */

    .gpg .gpg-card .gpg-card__body a.gpg-atc.button {
        display: flex;

        align-items: center;
        justify-content: center;

        width: 100%;

        min-height: 27px;

        margin-top: 2px !important;

        padding: 5px 4px !important;

        border-radius: 5px !important;

        font-size: 8px !important;
        font-weight: 600;

        line-height: 1;

        white-space: nowrap;
    }

    .gpg .gpg-atc svg {
        width: 11px;
        height: 11px;
    }
}



/* ------------------------------------------------- Card: quantity control --- */

.gpg .gpg-card .gpg-card__body a.gpg-atc.button.gpg-atc--incart {
	display: flex;
	align-items: center;
	justify-content: center;
	width: 100%;
	padding: 0 !important;
	min-height: 48px;

	background: #fff !important;
	border: 1px solid var(--gpg-green) !important;
	border-radius: 8px !important;
	color: var(--gpg-green) !important;

	text-decoration: none;
	cursor: default;
}

.gpg .gpg-card .gpg-card__body a.gpg-atc.button.gpg-atc--incart:hover,
.gpg .gpg-card .gpg-card__body a.gpg-atc.button.gpg-atc--incart:focus {
	background: #fff !important;
	border-color: var(--gpg-green) !important;
	color: var(--gpg-green) !important;
}


/* Hide normal cart icon in quantity mode */

.gpg .gpg-atc--incart > svg {
	display: none !important;
}


/* Quantity wrapper */

.gpg .gpg-qty {
	display: flex;
	align-items: center;
	justify-content: space-between;

	width: 100%;
	height: 46px;

	overflow: hidden;
}


/* Minus / Plus */

.gpg .gpg-qty__minus,
.gpg .gpg-qty__plus {
	display: flex;
	align-items: center;
	justify-content: center;

	flex: 0 0 48px;
	width: 48px;
	height: 46px;

	margin: 0;
	padding: 0;

	border: 0 !important;
	background: transparent !important;
	color: var(--gpg-green) !important;

	font-size: 24px;
	font-weight: 600;
	line-height: 1;

	cursor: pointer;

	box-shadow: none !important;

	transition:
		background 0.15s ease,
		color 0.15s ease;
}

.gpg .gpg-qty__minus:hover,
.gpg .gpg-qty__plus:hover {
	background: var(--gpg-benefit-bg) !important;
	color: var(--gpg-green-dark) !important;
}


/* Quantity number */

.gpg .gpg-qty__value {
	display: flex;
	align-items: center;
	justify-content: center;

	flex: 1;
	min-width: 0;
	height: 100%;

	color: var(--gpg-ink);

	font-size: 15px;
	font-weight: 700;
	line-height: 1;
	text-align: center;
}


/* Store API loading */

.gpg .gpg-atc.gpg-qty-loading {
	opacity: 0.65;
	pointer-events: none;
}


/* ------------------------------------------------- Mobile --- */

@media (max-width: 600px) {

	.gpg .gpg-card .gpg-card__body a.gpg-atc.button.gpg-atc--incart {
		min-height: 50px;
	}

	.gpg .gpg-qty {
		height: 48px;
	}

	.gpg .gpg-qty__minus,
	.gpg .gpg-qty__plus {
		flex: 0 0 52px;
		width: 52px;
		height: 48px;

		font-size: 26px;
	}

	.gpg .gpg-qty__value {
		font-size: 15px;
	}
}


/* =========================================================
 * DISCOVER BEAUTY SECTION
 * ========================================================= */

.gpg-discover-beauty {
	width: 100%;
	box-sizing: border-box;
	background: #f8f4eb;
	padding: 16px;
}

.gpg-discover-beauty__inner {
	width: 100%;
	max-width: 1200px;
	margin: 0 auto;

	display: grid;
	grid-template-columns: 1.1fr 0.9fr;
	align-items: center;

	gap: 48px;

	background: #ffffff;

	padding: 44px;

	box-sizing: border-box;
}


/* =========================================================
 * CONTENT
 * ========================================================= */

.gpg-discover-beauty__content {
	min-width: 0;
}

.gpg-discover-beauty__eyebrow {
	display: block;

	margin-bottom: 18px;

	color: #d8942d;

	font-size: 16px;
	line-height: 1.2;

	font-weight: 400;
}

.gpg-discover-beauty__title {
	margin: 0 0 12px;

	max-width: 650px;

	color: #073f3b;

	font-size: clamp(32px, 3vw, 42px);
	line-height: 1.18;

	font-weight: 700;

	text-transform: uppercase;
}

.gpg-discover-beauty__intro {
	max-width: 650px;

	color: #111111;

	font-size: 16px;
	line-height: 1.75;
}

.gpg-discover-beauty__intro p {
	margin: 0;
}


/* =========================================================
 * FEATURES
 * ========================================================= */

.gpg-discover-feature {
	display: grid;
	grid-template-columns: 42px 1fr;

	column-gap: 14px;

	margin-top: 24px;
}

.gpg-discover-feature__icon {
	width: 40px;
	height: 40px;

	display: flex;
	align-items: center;
	justify-content: center;

	color: #073f3b;

	font-size: 28px;
	line-height: 1;
}

.gpg-discover-feature__content h3 {
	margin: 0 0 5px;

	color: #073f3b;

	font-size: 18px;
	line-height: 1.35;

	font-weight: 700;
}

.gpg-discover-feature__content p {
	margin: 0;

	color: #111111;

	font-size: 15px;
	line-height: 1.7;
}


/* =========================================================
 * EXTRA CONTENT
 * ========================================================= */

.gpg-discover-extra {
	display: block;
}


/* =========================================================
 * IMAGE
 * ========================================================= */

.gpg-discover-beauty__visual {
	display: flex;
	align-items: center;
	justify-content: center;

	min-width: 0;
}

.gpg-discover-beauty__frame {
	position: relative;

	width: 100%;
	max-width: 450px;

	padding: 10px;

	border: 9px solid #d8cbb3;

	box-sizing: border-box;
}

.gpg-discover-beauty__frame::after {
	content: "";

	position: absolute;

	right: -20px;
	bottom: -20px;

	width: 100%;
	height: 100%;

	background: #d9d9d9;

	z-index: 0;
}

.gpg-discover-beauty__frame img {
	position: relative;

	z-index: 1;

	display: block;

	width: 100%;
	height: auto;

	object-fit: cover;
}


/* =========================================================
 * SHOP BUTTON
 * ========================================================= */

.gpg-discover-beauty__button {
	display: inline-flex;

	align-items: center;
	justify-content: center;

	margin-top: 24px;

	min-width: 140px;

	padding: 12px 28px;

	background: #629500;

	color: #ffffff !important;

	text-decoration: none;

	font-size: 12px;
	font-weight: 700;

	letter-spacing: 2px;

	text-transform: uppercase;
}


/* =========================================================
 * SHOW MORE
 * Hidden on desktop
 * ========================================================= */

.gpg-discover-more {
	display: none;
}


/* =========================================================
 * TABLET
 * ========================================================= */

@media (max-width: 900px) {

	.gpg-discover-beauty__inner {
		grid-template-columns: 1fr;

		gap: 30px;

		padding: 35px;
	}

	.gpg-discover-beauty__visual {
		order: -1;
	}

}


/* =========================================================
 * MOBILE
 * ========================================================= */

@media (max-width: 767px) {

	.gpg-discover-beauty {
		padding: 0;
	}

	.gpg-discover-beauty__inner {
		display: flex;
		flex-direction: column;

		gap: 22px;

		padding: 24px 20px;
	}


	/* IMAGE */

	.gpg-discover-beauty__visual {
		order: -1;

		width: 100%;
	}

	.gpg-discover-beauty__frame {
		width: 88%;

		max-width: 380px;

		padding: 6px;

		border-width: 6px;
	}

	.gpg-discover-beauty__frame::after {
		right: -12px;
		bottom: -12px;
	}


	/* TEXT */

	.gpg-discover-beauty__eyebrow {
		margin-bottom: 10px;

		font-size: 13px;
	}

	.gpg-discover-beauty__title {
		margin-bottom: 14px;

		font-size: 30px;
		line-height: 1.12;
	}

	.gpg-discover-beauty__intro {
		font-size: 15px;
		line-height: 1.65;
	}


	/* FEATURES */

	.gpg-discover-feature {
		grid-template-columns: 52px 1fr;

		column-gap: 12px;

		margin-top: 22px;
	}

	.gpg-discover-feature__icon {
		width: 48px;
		height: 48px;

		border-radius: 50%;

		background: #f1f3df;

		font-size: 24px;
	}

	.gpg-discover-feature__content h3 {
		font-size: 19px;
		line-height: 1.3;
	}

	.gpg-discover-feature__content p {
		font-size: 15px;
		line-height: 1.55;
	}


	/* =====================================================
	 * COLLAPSED CONTENT
	 * ===================================================== */

	.gpg-discover-extra {
		display: none;
	}

	.gpg-discover-extra.is-open {
		display: block;
	}


	/* =====================================================
	 * SHOW MORE
	 * ===================================================== */

	.gpg-discover-more {
		display: flex;

		width: 100%;

		align-items: center;
		justify-content: center;

		gap: 8px;

		margin-top: 14px;

		padding: 14px 18px;

		border: 1px solid #d8cbb3;

		background: #f8f4eb;

		color: #073f3b;

		font-size: 13px;
		font-weight: 700;

		letter-spacing: 1.5px;

		cursor: pointer;

		-webkit-appearance: none;
		appearance: none;
	}

	.gpg-discover-more__icon {
		font-size: 18px;

		transition: transform 0.3s ease;
	}

	.gpg-discover-more.is-open
	.gpg-discover-more__icon {
		transform: rotate(180deg);
	}


	/* SHOP BUTTON */

	.gpg-discover-beauty__button {
		width: 100%;

		box-sizing: border-box;

		margin-top: 20px;
	}

}


/* =========================================================
 * SIDE CART - MOBILE COMPACT SUMMARY
 * Keep product list prominent and minimize everything below it.
 * ========================================================= */

@media (max-width: 767px) {

	/* -----------------------------------------------------
	 * SIDE CART PANEL
	 * ----------------------------------------------------- */

	.moderncart-slide-out,
	.moderncart-slide-out-panel {
		font-size: 12px;
	}


	/* -----------------------------------------------------
	 * CART TOTAL / LOWER SECTION
	 * ----------------------------------------------------- */

	.moderncart-cart-total {
		padding: 0 !important;
		margin: 0 !important;
	}


	/* -----------------------------------------------------
	 * COUPON SECTION
	 * ----------------------------------------------------- */

	.gpg-mc-coupon,
	.moderncart-coupon,
	.moderncart-cart-coupon {
		margin: 0 !important;
		padding: 6px 10px !important;
		min-height: 0 !important;
	}

	.gpg-mc-coupon *,
	.moderncart-coupon *,
	.moderncart-cart-coupon * {
		line-height: 1.2;
	}

	/* Coupon heading */

	.gpg-mc-coupon button,
	.moderncart-coupon button {
		padding: 7px 8px !important;
		font-size: 12px !important;
	}


	/* -----------------------------------------------------
	 * DISCOUNT APPLIED
	 * ----------------------------------------------------- */

	.gpg-mc-applied {
		margin: 4px 8px 6px !important;

		padding: 7px 9px !important;

		border-radius: 8px !important;

		gap: 7px !important;
	}

	.gpg-mc-applied__icon svg {
		width: 14px !important;
		height: 14px !important;
	}

	.gpg-mc-applied__text {
		gap: 0 !important;
	}

	.gpg-mc-applied__text strong {
		font-size: 11px !important;
		line-height: 1.2 !important;
	}

	.gpg-mc-applied__text small {
		font-size: 9px !important;
		line-height: 1.2 !important;
	}


	/* -----------------------------------------------------
	 * SUBTOTAL / DISCOUNT / TOTAL
	 * ----------------------------------------------------- */

	.gpg-mc-totals {
		margin: 0 !important;
		padding: 0 10px !important;
	}

	.gpg-mc-row {
		padding: 4px 0 !important;

		font-size: 11px !important;

		line-height: 1.2 !important;
	}

	.gpg-mc-row__label,
	.gpg-mc-row__value {
		line-height: 1.2 !important;
	}


	/* Total row */

	.gpg-mc-row--total {
		margin-top: 3px !important;

		padding-top: 7px !important;

		font-size: 14px !important;
	}

	.gpg-mc-row--total .gpg-mc-row__value {
		font-size: 15px !important;
	}


	/* -----------------------------------------------------
	 * SAVINGS
	 * ----------------------------------------------------- */

	.gpg-mc-savings {
		margin: 5px 8px 3px !important;

		padding: 5px 8px !important;

		min-height: 0 !important;

		border-radius: 7px !important;

		gap: 5px !important;

		font-size: 10px !important;

		line-height: 1.2 !important;
	}

	.gpg-mc-savings svg {
		width: 12px !important;
		height: 12px !important;
	}


	/* -----------------------------------------------------
	 * CHECKOUT BUTTON
	 * ----------------------------------------------------- */

	.moderncart-slide-out .wc-proceed-to-checkout,
	.moderncart-slide-out-panel .wc-proceed-to-checkout {
		margin: 5px 8px !important;
		padding: 0 !important;
	}

	.moderncart-slide-out .wc-proceed-to-checkout .checkout-button,
	.moderncart-slide-out a.checkout-button {
		min-height: 42px !important;

		padding: 9px 12px !important;

		border-radius: 7px !important;

		font-size: 14px !important;

		line-height: 1.2 !important;
	}


	/* -----------------------------------------------------
	 * TRUST / BENEFIT ROW
	 * ----------------------------------------------------- */

	.gpg-mc-trust {
		gap: 4px !important;

		margin: 0 !important;

		padding: 6px 4px 2px !important;
	}

	.gpg-mc-trust li {
		gap: 2px !important;

		font-size: 8px !important;

		line-height: 1.1 !important;
	}

	.gpg-mc-trust__icon svg {
		width: 13px !important;
		height: 13px !important;
	}


	/* -----------------------------------------------------
	 * PRODUCT LIST
	 *
	 * Give the actual products more room.
	 * ----------------------------------------------------- */

	.moderncart-cart-item {
		padding-top: 6px !important;
		padding-bottom: 6px !important;
	}

	.moderncart-cart-item-image {
		flex: 0 0 64px !important;
		width: 64px !important;
	}

	.moderncart-cart-item-image img {
		width: 64px !important;
		height: 64px !important;

		object-fit: cover;

		border-radius: 7px !important;
	}


	/* Product name */

	.moderncart-cart-item-name,
	.moderncart-cart-item-title {
		font-size: 12px !important;

		line-height: 1.25 !important;
	}


	/* Quantity */

	.moderncart-cart-item-quantity,
	.moderncart-cart-item-qty {
		font-size: 11px !important;
	}


	/* Product price */

	.gpg-mc-item-price {
		font-size: 11px !important;
	}

	.gpg-mc-item-was {
		font-size: 9px !important;
	}

	.gpg-mc-item-off {
		font-size: 8px !important;

		padding: 1px 5px !important;
	}
}

/* =========================================================
 * GLOW SHOP GRID - FULL WIDTH / ALL SCREEN SIZES
 * ========================================================= */

/*
 * Make the Glow Product Grid use the complete available
 * width of its parent instead of inheriting a narrow content
 * width from Elementor/Astra.
 */

.gpg.gpg-section {
	width: 100% !important;
	max-width: none !important;

	margin-left: 0 !important;
	margin-right: 0 !important;

	box-sizing: border-box !important;
}


/* Make the actual grid occupy the complete section width */

.gpg.gpg-section .gpg-grid {
	width: 100% !important;
	max-width: none !important;

	margin-left: 0 !important;
	margin-right: 0 !important;

	box-sizing: border-box !important;
}


/* Cards must be allowed to shrink/grow with the grid */

.gpg.gpg-section .gpg-card {
	width: 100% !important;
	min-width: 0 !important;
	max-width: none !important;

	box-sizing: border-box !important;
}


/* Prevent product content from forcing a card wider */

.gpg.gpg-section .gpg-card__body,
.gpg.gpg-section .gpg-card__media,
.gpg.gpg-section .gpg-card__link {
	min-width: 0 !important;
	max-width: 100% !important;
	box-sizing: border-box !important;
}


/* =========================================================
 * DESKTOP
 * ========================================================= */

@media (min-width: 1025px) {

	.gpg.gpg-section {
		padding-left: 16px !important;
		padding-right: 16px !important;
	}

	.gpg.gpg-section .gpg-grid {
		grid-template-columns: repeat(
			var(--gpg-cols),
			minmax(0, 1fr)
		) !important;

		gap: var(--gpg-gap) !important;
	}
}


/* =========================================================
 * TABLET
 * ========================================================= */

@media (min-width: 768px) and (max-width: 1024px) {

	.gpg.gpg-section {
		padding-left: 14px !important;
		padding-right: 14px !important;
	}

	.gpg.gpg-section .gpg-grid {
		grid-template-columns: repeat(
			var(--gpg-cols-tablet),
			minmax(0, 1fr)
		) !important;

		gap: 14px !important;
	}

	.gpg.gpg-section .gpg-card {
		min-width: 0 !important;
	}
}


/* =========================================================
 * MOBILE
 * ========================================================= */

@media (max-width: 767px) {

	.gpg.gpg-section {
		width: 100% !important;
		max-width: 100% !important;

		padding-left: 10px !important;
		padding-right: 10px !important;

		margin-left: 0 !important;
		margin-right: 0 !important;
	}

	/*
	 * Always use the full available mobile width.
	 *
	 * 2 columns:
	 * 360px phone  → roughly 164px/card
	 * 390px phone  → roughly 179px/card
	 * 430px phone  → roughly 199px/card
	 */

	.gpg.gpg-section .gpg-grid {
		display: grid !important;

		width: 100% !important;
		max-width: 100% !important;

		grid-template-columns:
			repeat(2, minmax(0, 1fr)) !important;

		gap: 10px !important;

		margin: 0 !important;
		padding: 0 !important;
	}

	.gpg.gpg-section .gpg-card {
		width: 100% !important;
		min-width: 0 !important;
		max-width: 100% !important;

		border-radius: 12px !important;
	}

	/*
	 * Product image always follows the card width.
	 */

	.gpg.gpg-section .gpg-card__media {
		width: 100% !important;
	}

	.gpg.gpg-section .gpg-card__media img,
	.gpg.gpg-section .gpg-card__img {
		width: 100% !important;
		height: auto !important;

		aspect-ratio: 1 / 1 !important;

		object-fit: cover !important;
	}


	/* Product content */

	.gpg.gpg-section .gpg-card__body {
		width: 100% !important;
		min-width: 0 !important;

		padding: 8px 8px 9px !important;
	}


	/* Product title */

	.gpg.gpg-section .gpg-card__title {
		width: 100% !important;

		font-size: 12px !important;
		line-height: 1.2 !important;

		overflow: hidden;

		display: -webkit-box;
		-webkit-line-clamp: 2;
		-webkit-box-orient: vertical;
	}


	/* Price */

	.gpg.gpg-section .gpg-card__price {
		display: flex !important;
		align-items: center !important;
		flex-wrap: wrap !important;

		gap: 3px !important;

		width: 100% !important;

		margin: 4px 0 !important;
	}

	.gpg.gpg-section .gpg-price {
		font-size: 13px !important;
		font-weight: 700 !important;
	}

	.gpg.gpg-section .gpg-price-was,
	.gpg.gpg-section .gpg-price-off {
		font-size: 9px !important;
	}


	/* Benefit text */

	.gpg.gpg-section .gpg-benefit {
		max-width: 100% !important;

		font-size: 8px !important;

		padding: 3px 5px !important;

		white-space: nowrap;

		overflow: hidden;
		text-overflow: ellipsis;
	}


	/* Coupon */

	.gpg.gpg-section .gpg-coupon {
		max-width: 100% !important;

		font-size: 8px !important;

		white-space: nowrap;

		overflow: hidden;
		text-overflow: ellipsis;
	}


	/* Add to Cart */

	.gpg.gpg-section .gpg-card .gpg-card__body a.gpg-atc.button {
		display: flex !important;

		width: 100% !important;
		max-width: 100% !important;

		min-height: 32px !important;

		align-items: center !important;
		justify-content: center !important;

		gap: 5px !important;

		padding: 7px 5px !important;

		border-radius: 6px !important;

		font-size: 9px !important;
		line-height: 1 !important;

		white-space: nowrap !important;
	}
}


/* =========================================================
 * VERY SMALL PHONES
 * ========================================================= */

@media (max-width: 340px) {

	.gpg.gpg-section {
		padding-left: 7px !important;
		padding-right: 7px !important;
	}

	.gpg.gpg-section .gpg-grid {
		grid-template-columns:
			repeat(2, minmax(0, 1fr)) !important;

		gap: 7px !important;
	}

	.gpg.gpg-section .gpg-card__body {
		padding: 7px 6px 8px !important;
	}

	.gpg.gpg-section .gpg-card__title {
		font-size: 11px !important;
	}

	.gpg.gpg-section .gpg-price {
		font-size: 12px !important;
	}

	.gpg.gpg-section .gpg-card .gpg-card__body a.gpg-atc.button {
		min-height: 30px !important;

		padding: 6px 4px !important;

		font-size: 8px !important;
	}
}


/* =========================================================
 * EXTRA SMALL PHONES - 2 COLUMNS STILL FIT
 * ========================================================= */

@media (max-width: 300px) {

	.gpg.gpg-section {
		padding-left: 5px !important;
		padding-right: 5px !important;
	}

	.gpg.gpg-section .gpg-grid {
		gap: 6px !important;
	}

	.gpg.gpg-section .gpg-card__body {
		padding: 6px !important;
	}

	.gpg.gpg-section .gpg-card__title {
		font-size: 10px !important;
	}

	.gpg.gpg-section .gpg-price {
		font-size: 11px !important;
	}

	.gpg.gpg-section .gpg-card .gpg-card__body a.gpg-atc.button {
		min-height: 28px !important;

		padding: 5px 3px !important;

		font-size: 7px !important;
	}
}

/* =========================================================
   GLOW PRODUCT GRID
   ADD TO CART + QUANTITY CONTROL
   ========================================================= */

/* Main cart button */
.gpg .gpg-card .gpg-atc.button {
    width: 100% !important;
    min-width: 0 !important;

    height: 58px !important;
    min-height: 58px !important;

    margin: 12px 0 0 !important;
    padding: 0 14px !important;

    display: flex !important;
    align-items: center !important;
    justify-content: center !important;

    box-sizing: border-box !important;

    background: #073f32 !important;
    color: #ffffff !important;

    border: 0 !important;
    border-radius: 0 !important;

    text-align: center !important;
    line-height: 1 !important;

    font-size: 15px !important;
    font-weight: 600 !important;

    cursor: pointer !important;

    overflow: hidden !important;
}


/* Add To Cart text */
.gpg .gpg-card .gpg-atc__label {
    width: 100% !important;

    display: flex !important;
    align-items: center !important;
    justify-content: center !important;

    margin: 0 !important;
    padding: 0 !important;

    color: #ffffff !important;

    text-align: center !important;
    line-height: 1.2 !important;

    white-space: nowrap !important;
}


/* Remove unwanted WooCommerce/button pseudo-elements */
.gpg .gpg-card .gpg-atc.button::before,
.gpg .gpg-card .gpg-atc.button::after {
    display: none !important;
    content: none !important;
}


/* =========================================================
   QUANTITY CONTROL
   ========================================================= */

.gpg .gpg-card .gpg-atc.gpg-atc--incart {
    padding: 0 !important;

    display: flex !important;
    align-items: center !important;
    justify-content: center !important;

    height: 58px !important;
    min-height: 58px !important;

    background: #073f32 !important;

    overflow: hidden !important;
}


/* Quantity wrapper */
.gpg .gpg-card .gpg-qty {
    width: 100% !important;
    height: 100% !important;

    display: grid !important;
    grid-template-columns: 1fr 1fr 1fr !important;

    align-items: center !important;
    justify-items: center !important;

    margin: 0 !important;
    padding: 0 !important;

    color: #ffffff !important;
}


/* Minus / Plus buttons */
.gpg .gpg-card .gpg-qty__minus,
.gpg .gpg-card .gpg-qty__plus {
    width: 100% !important;
    height: 100% !important;

    min-width: 0 !important;
    min-height: 58px !important;

    margin: 0 !important;
    padding: 0 !important;

    display: flex !important;
    align-items: center !important;
    justify-content: center !important;

    background: transparent !important;
    color: #ffffff !important;

    border: 0 !important;
    border-radius: 0 !important;

    font-family: inherit !important;
    font-size: 26px !important;
    font-weight: 400 !important;

    line-height: 1 !important;

    text-align: center !important;

    cursor: pointer !important;

    appearance: none !important;
    -webkit-appearance: none !important;
}


/* Quantity number */
.gpg .gpg-card .gpg-qty__value {
    width: 100% !important;
    height: 100% !important;

    display: flex !important;
    align-items: center !important;
    justify-content: center !important;

    margin: 0 !important;
    padding: 0 !important;

    color: #ffffff !important;

    font-size: 20px !important;
    font-weight: 600 !important;

    line-height: 1 !important;
    text-align: center !important;
}


/* Visual separators */
.gpg .gpg-card .gpg-qty__minus {
    border-right: 1px solid rgba(255,255,255,0.18) !important;
}

.gpg .gpg-card .gpg-qty__plus {
    border-left: 1px solid rgba(255,255,255,0.18) !important;
}


/* =========================================================
   BUTTON HOVER / ACTIVE
   ========================================================= */

.gpg .gpg-card .gpg-atc.button:hover {
    background: #073f32 !important;
    color: #ffffff !important;
}

.gpg .gpg-card .gpg-qty__minus:hover,
.gpg .gpg-card .gpg-qty__plus:hover {
    background: rgba(255,255,255,0.08) !important;
    color: #ffffff !important;
}

.gpg .gpg-card .gpg-qty__minus:active,
.gpg .gpg-card .gpg-qty__plus:active {
    background: rgba(255,255,255,0.14) !important;
}


/* =========================================================
   CARD BODY
   Keeps button aligned at bottom
   ========================================================= */

.gpg .gpg-card {
    height: 100% !important;
}

.gpg .gpg-card__body {
    display: flex !important;
    flex-direction: column !important;
    height: 100% !important;
}


/* Push cart button to bottom of equal-height cards */
.gpg .gpg-card .gpg-atc {
    margin-top: auto !important;
}


/* =========================================================
   MOBILE
   ========================================================= */

@media (max-width: 767px) {

    .gpg .gpg-card .gpg-atc.button,
    .gpg .gpg-card .gpg-atc.gpg-atc--incart {
        height: 58px !important;
        min-height: 58px !important;
    }

    .gpg .gpg-card .gpg-atc__label {
        font-size: 14px !important;
        letter-spacing: 2px !important;
    }

    .gpg .gpg-card .gpg-qty__minus,
    .gpg .gpg-card .gpg-qty__plus {
        min-height: 58px !important;
        font-size: 27px !important;
    }

    .gpg .gpg-card .gpg-qty__value {
        font-size: 20px !important;
    }
}

.gpg .gpg-card .gpg-price-was {
    position: relative !important;
    text-decoration: none !important;
    opacity: 0.65 !important;
}

.gpg .gpg-card .gpg-price-was::after {
    content: "" !important;

    position: absolute !important;
    left: 0 !important;
    right: 0 !important;
    top: 40% !important;

    height: 1.5px !important;

    background: currentColor !important;

    transform: translateY(-50%) !important;

    pointer-events: none !important;
}

/* =========================================================
 * GLOW PRODUCT GRID — COMPACT DESKTOP CARDS
 * ========================================================= */

@media (min-width: 1025px) {

    /* Keep the product section from becoming excessively wide */
    .gpg.gpg-section .gpg-grid {
        width: 100% !important;
        max-width: 1320px !important;
        margin-left: auto !important;
        margin-right: auto !important;

        grid-template-columns: repeat(4, minmax(0, 1fr)) !important;

        gap: 14px !important;
    }

    /* Compact card */
    .gpg.gpg-section .gpg-card {
        width: 100% !important;
        max-width: 100% !important;
        min-width: 0 !important;
    }

    /* Slightly smaller card content */
    .gpg.gpg-section .gpg-card__body {
        padding: 10px 10px 12px !important;
        gap: 5px !important;
    }

    /* Product title */
    .gpg.gpg-section .gpg-card__title {
        font-size: 13px !important;
        line-height: 1.25 !important;
    }

    /* Price */
    .gpg.gpg-section .gpg-price {
        font-size: 17px !important;
    }

    .gpg.gpg-section .gpg-price-was,
    .gpg.gpg-section .gpg-price-off {
        font-size: 11px !important;
    }

    /* Discount text */
    .gpg.gpg-section .gpg-discount-summary {
        font-size: 11px !important;
    }

    .gpg.gpg-section .gpg-discount-percent,
    .gpg.gpg-section .gpg-discount-save,
    .gpg.gpg-section .gpg-discount-save .woocommerce-Price-amount,
    .gpg.gpg-section .gpg-discount-save .amount {
        font-size: 11px !important;
    }

    /* Add to cart */
    .gpg.gpg-section .gpg-card .gpg-atc.button,
    .gpg.gpg-section .gpg-card .gpg-atc.gpg-atc--incart {
        height: 42px !important;
        min-height: 42px !important;
    }



////////////////// Extra Code /////////////////////

    .gpg.gpg-section .gpg-card .gpg-atc__label {
        font-size: 11px !important;
        letter-spacing: 1.5px !important;
    }
}

/* =========================================================
   GLOW CATEGORIES — LARGER DESKTOP VERSION
   Desktop only — mobile remains unchanged
========================================================= */

@media (min-width: 1025px) {

    /* Category row */
    .gpg.gpg-section .gpg-chips {
        gap: 14px !important;
        padding-top: 8px !important;
        padding-bottom: 10px !important;
    }

    /* Each category */
    .gpg.gpg-section .gpg-chips__item {
        min-width: 0 !important;
    }

    .gpg.gpg-section .gpg-chip {
        font-size: 11px !important;
        font-weight: 600 !important;
        line-height: 1.25 !important;
    }

    /* Larger circular icon */
    .gpg.gpg-section .gpg-chip__icon {
        width: 56px !important;
        height: 56px !important;

        margin: 0 auto 8px !important;

        border-width: 1px !important;
    }

    /* Larger category icon itself */
    .gpg.gpg-section .gpg-chip__icon svg {
        width: 24px !important;
        height: 24px !important;
    }

    /* Category name */
    .gpg.gpg-section .gpg-chip__label {
        font-size: 11px !important;
        font-weight: 600 !important;
        line-height: 1.25 !important;

        white-space: nowrap !important;
    }
}

/* =========================================================
   GLOW — USP + COUNTDOWN + VIEW ALL
   FINAL RESPONSIVE OVERRIDES
========================================================= */


/* =========================================================
   1. DESKTOP USP STRIP
   Actual classes:
   .gpg-usps
   .gpg-usp
   .gpg-usp__icon
   .gpg-usp__text
========================================================= */

@media (min-width: 1025px) {

    /* Keep all 4 USP items together in the center */
    .gpg-usps {
        width: 100% !important;
        max-width: 1200px !important;

        margin-left: auto !important;
        margin-right: auto !important;

        display: flex !important;
        align-items: center !important;
        justify-content: center !important;

        gap: 65px !important;

        padding: 12px 0 !important;

        overflow: visible !important;
        box-sizing: border-box !important;
    }


    /* Each USP should NOT stretch across 25% of screen */
    .gpg-usp {
        flex: 0 0 auto !important;

        width: auto !important;
        min-width: 0 !important;

        display: flex !important;
        align-items: center !important;
        justify-content: center !important;

        gap: 12px !important;

        padding: 8px 10px !important;

        font-size: 13px !important;
        font-weight: 700 !important;

        line-height: 1.3 !important;

        white-space: nowrap !important;

        box-sizing: border-box !important;
    }


    /* Larger USP circle */
    .gpg-usp__icon {
        flex: 0 0 56px !important;

        width: 56px !important;
        height: 56px !important;

        min-width: 56px !important;
        min-height: 56px !important;

        display: flex !important;
        align-items: center !important;
        justify-content: center !important;

        border-radius: 50% !important;
    }


    /* Larger USP icon */
    .gpg-usp__icon svg {
        width: 28px !important;
        height: 28px !important;
    }


    /* Larger USP text */
    .gpg-usp__text {
        font-size: 13px !important;
        font-weight: 700 !important;

        line-height: 1.3 !important;

        white-space: nowrap !important;
    }
}


/* =========================================================
   2. LARGE DESKTOP
========================================================= */

@media (min-width: 1400px) {

    .gpg-usps {
        max-width: 1250px !important;
        gap: 80px !important;
    }

    .gpg-usp {
        gap: 14px !important;
    }

    .gpg-usp__icon {
        width: 60px !important;
        height: 60px !important;

        flex-basis: 60px !important;
        min-width: 60px !important;
    }

    .gpg-usp__icon svg {
        width: 30px !important;
        height: 30px !important;
    }

    .gpg-usp__text {
        font-size: 14px !important;
    }
}


/* =========================================================
   3. DESKTOP COUNTDOWN
========================================================= */

@media (min-width: 1025px) {

    .gpg-countdown__units {
        width: 100% !important;

        max-width: 850px !important;

        margin-left: auto !important;
        margin-right: auto !important;

        display: flex !important;

        align-items: center !important;
        justify-content: center !important;

        gap: 55px !important;
    }


    .gpg-countdown__unit {
        flex: 0 0 120px !important;

        width: 120px !important;

        min-width: 120px !important;
    }


    /* Larger countdown circles */
    .gpg-countdown__ring {
        width: 76px !important;
        height: 76px !important;

        margin-left: auto !important;
        margin-right: auto !important;

        padding: 4px !important;
    }


    .gpg-countdown__value {
        font-size: 1.15rem !important;
        font-weight: 700 !important;
    }


    .gpg-countdown__label {
        font-size: 0.55rem !important;
    }
}


/* =========================================================
   4. BESTSELLERS — VIEW ALL
   IMPORTANT:
   Do NOT use .gpg.gpg-section before the selector.
========================================================= */

/* Desktop */
@media (min-width: 768px) {

    .gpg-heading__link {
        display: inline-flex !important;

        align-items: center !important;
        justify-content: center !important;

        gap: 6px !important;

        font-size: 13px !important;

        font-weight: 700 !important;

        line-height: 1.2 !important;

        color: var(--gpg-ink) !important;

        text-decoration: none !important;

        white-space: nowrap !important;

        margin-bottom: 3px !important;
    }


    .gpg-heading__link svg {
        width: 13px !important;
        height: 13px !important;
    }
}


/* =========================================================
   5. MOBILE VIEW ALL
========================================================= */

@media (max-width: 767px) {

    .gpg-heading__link {
        display: inline-flex !important;

        align-items: center !important;
        justify-content: center !important;

        gap: 4px !important;

        font-size: 10px !important;

        font-weight: 700 !important;

        line-height: 1.2 !important;

        white-space: nowrap !important;

        margin-bottom: 2px !important;
    }


    .gpg-heading__link svg {
        width: 11px !important;
        height: 11px !important;
    }
}


/* =========================================================
   6. VERY SMALL MOBILE
========================================================= */

@media (max-width: 360px) {

    .gpg-heading__link {
        font-size: 9px !important;
    }

    .gpg-heading__link svg {
        width: 10px !important;
        height: 10px !important;
    }
}


