/*
 * Girls Secret — mobile UI v4 (Midnight Rose glass)
 * --------------------------------------------------------------
 * 1. Glass tokens + shared glass button
 * 2. Top bar: animated call + WhatsApp icon
 * 3. Hero (phones): Brilliant Rejuv art, one-line title, review CTA, floating previews, offer cards
 * 4. Feature boxes in one row (phones)
 * 5. Carousels: categories + customer reviews, review viewer
 * 6. Bottom tab bar + menu sheet
 * 7. Social drawer
 * 8. Reduced motion
 * Everything that changes layout is scoped to phones (max-width: 767px) unless noted.
 */

/* ============ 1. Glass ============ */
:root {
	--gs-glass-bg: rgba(42, 18, 34, .62);
	--gs-glass-bg-solid: rgba(42, 18, 34, .96);
	--gs-glass-light: rgba(255, 255, 255, .14);
	--gs-glass-border: rgba(255, 255, 255, .22);
	--gs-glass-shadow: 0 10px 30px rgba(28, 11, 23, .28), inset 0 1px 0 rgba(255, 255, 255, .18);
	--gs-wa-green: #25d366;
	--gs-tabbar-h: 62px;
	--gs-tabbar-gap: 10px;
	/* Room the fixed tab bar takes at the bottom of the page. */
	--gs-tabbar-space: calc(var(--gs-tabbar-h) + var(--gs-tabbar-gap) * 2 + env(safe-area-inset-bottom));
}

.gs-glass-btn {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	width: 38px;
	height: 38px;
	padding: 0 !important; /* Astra pads every button. */
	border-radius: 50%;
	border: 1px solid rgba(255, 255, 255, .7);
	background: rgba(255, 255, 255, .78);
	color: var(--gs-plum-800);
	box-shadow: 0 6px 18px rgba(42, 18, 34, .16), inset 0 1px 0 #fff;
	cursor: pointer;
	transition: transform var(--gs-ease), background var(--gs-ease), opacity var(--gs-ease);
}
.gs-glass-btn svg { width: 20px; height: 20px; }
.gs-glass-btn:hover, .gs-glass-btn:focus-visible { background: #fff; color: var(--gs-pink-600); }
.gs-glass-btn:active { transform: scale(.94); }
@supports ((-webkit-backdrop-filter: blur(1px)) or (backdrop-filter: blur(1px))) {
	.gs-glass-btn { background: rgba(255, 255, 255, .55); -webkit-backdrop-filter: blur(10px) saturate(1.4); backdrop-filter: blur(10px) saturate(1.4); }
}

/* ============ 2. Top bar ============ */
.gs-topbar-contact { display: inline-flex; flex-wrap: wrap; align-items: center; justify-content: center; gap: 4px 6px; }
.gs-topbar a.gs-topbar-call {
	display: inline-flex; align-items: center; gap: 5px; color: #fff; font-weight: 700; text-decoration: none; white-space: nowrap;
}
.gs-topbar-call__icon {
	display: inline-flex; align-items: center; justify-content: center; width: 20px; height: 20px; border-radius: 50%;
	background: rgba(248, 187, 208, .18); color: var(--gs-blush);
	animation: gs-call-tap 2.8s ease-in-out infinite;
}
.gs-topbar-call__icon svg { width: 12px; height: 12px; }
.gs-topbar a.gs-topbar-wa {
	display: inline-flex; align-items: center; justify-content: center; width: 22px; height: 22px; margin-left: 4px;
	border-radius: 50%; background: var(--gs-wa-green); color: #fff; text-decoration: none;
	animation: gs-wa-nudge 3.2s ease-in-out infinite;
}
.gs-topbar a.gs-topbar-wa svg { width: 14px; height: 14px; }
.gs-topbar a.gs-topbar-wa:hover { color: #fff; filter: brightness(1.08); }
/* One gentle tap (scale + ring), then ~2s rest. */
@keyframes gs-call-tap {
	0%, 30%, 100% { transform: none; box-shadow: 0 0 0 0 rgba(248, 187, 208, 0); }
	8% { transform: scale(1.18) rotate(-12deg); box-shadow: 0 0 0 4px rgba(248, 187, 208, .28); }
	16% { transform: scale(1) rotate(8deg); }
	24% { transform: rotate(0); box-shadow: 0 0 0 7px rgba(248, 187, 208, 0); }
}
@keyframes gs-wa-nudge {
	0%, 34%, 100% { transform: none; box-shadow: 0 0 0 0 rgba(37, 211, 102, 0); }
	10% { transform: scale(1.14); box-shadow: 0 0 0 4px rgba(37, 211, 102, .3); }
	20% { transform: scale(.96); }
	28% { transform: scale(1); box-shadow: 0 0 0 7px rgba(37, 211, 102, 0); }
}

/* ============ 3. Hero (phones) ============ */
.gs-review-cta-wrap { display: none; }

@media (max-width: 767px) {
	body .elementor .e-con.gs-hero { --padding-top: 12px; --padding-bottom: 20px; --gap: 6px; --row-gap: 6px; }
	.gs-hero-lead { display: none !important; }
	.gs-hero-eyebrow .elementor-heading-title { font-size: 11px; letter-spacing: .14em; }
	.gs-hero-title .elementor-heading-title {
		white-space: nowrap;
		font-size: clamp(19px, 7.2vw, 30px) !important;
		letter-spacing: -.005em;
		line-height: 1.2 !important;
	}

	/* Product art: Brilliant Rejuv on top, the two offer cards side by side below it. */
	.gs-hero-art.gs-hero-art--has-mobile {
		display: grid;
		grid-template-columns: 1fr 1fr;
		gap: 8px;
		max-width: 400px;
		aspect-ratio: auto;
		padding-top: 4px;
	}
	.gs-hero-art--has-mobile .gs-hero-art__main--desktop { display: none; }
	.gs-hero-art--has-mobile .gs-hero-art__glow { inset: 0 18% 22%; }
	.gs-hero-art--has-mobile .gs-hero-art__ring { inset: -4% 14% 18%; }
	.gs-hero-art--has-mobile .gs-hero-art__main--mobile {
		position: relative; left: auto; top: auto; grid-column: 1 / -1; justify-self: center;
		width: min(62%, 230px); aspect-ratio: 1 / 1; border-radius: 22px; transform: none;
		box-shadow: 0 22px 48px rgba(0, 0, 0, .42), 0 0 0 1px rgba(255, 255, 255, .14);
		animation: gs-up .7s cubic-bezier(.2, .7, .2, 1) .05s both;
	}
	/* Square product photo shown whole: no crop, no distortion. */
	.gs-hero-art--has-mobile .gs-hero-art__main--mobile img { object-fit: contain; background: #fff; }
	.gs-hero-art--has-mobile .gs-hero-art__card {
		position: relative; left: auto; right: auto; top: auto; bottom: auto; max-width: none; min-width: 0;
		margin-top: -14px; padding: 6px 8px 6px 6px;
		background: rgba(255, 255, 255, .9);
		border: 1px solid rgba(255, 255, 255, .7);
		box-shadow: 0 12px 28px rgba(0, 0, 0, .3);
	}
	@supports ((-webkit-backdrop-filter: blur(1px)) or (backdrop-filter: blur(1px))) {
		.gs-hero-art--has-mobile .gs-hero-art__card { background: rgba(255, 255, 255, .8); -webkit-backdrop-filter: blur(12px) saturate(1.3); backdrop-filter: blur(12px) saturate(1.3); }
	}
	.gs-hero-art--has-mobile .gs-hero-art__card img { width: 36px; height: 36px; flex-basis: 36px; }
	.gs-hero-art--has-mobile .gs-hero-art__info b { font-size: 13px; white-space: nowrap; }
	.gs-hero-art--has-mobile .gs-hero-art__info small { font-size: 10.5px; }
	.gs-hero-art--has-mobile .gs-hero-art__card .gs-badge { top: -9px; right: -4px; font-size: 10.5px; }
	/* Offer cards glide in from opposite sides, starting translucent. */
	.gs-hero-art--has-mobile .gs-hero-art__card--1 { animation: gs-from-left .75s cubic-bezier(.2, .7, .2, 1) .35s both; }
	.gs-hero-art--has-mobile .gs-hero-art__card--2 { animation: gs-from-right .75s cubic-bezier(.2, .7, .2, 1) .45s both; }

	/* Review CTA with the floating preview layer behind it. */
	.gs-review-cta-wrap {
		position: relative; display: flex; justify-content: center; align-items: center;
		min-height: 74px; margin: 2px -16px 0; padding: 12px 16px; overflow: hidden; isolation: isolate;
	}
	.gs-review-float { position: absolute; inset: 0; z-index: 0; overflow: hidden; pointer-events: none; contain: strict; }
	.gs-review-float img {
		position: absolute; left: 0; top: 0; width: 28px; height: 52px; object-fit: cover; object-position: top;
		border-radius: 6px; border: 1px solid rgba(255, 255, 255, .55); box-shadow: 0 6px 14px rgba(0, 0, 0, .3);
		opacity: 0; will-change: transform, opacity; pointer-events: none;
	}
	.gs-hero a.gs-review-cta {
		position: relative; z-index: 1; display: inline-flex; align-items: center; justify-content: center; gap: 8px;
		min-height: 48px; padding: 0 22px; border-radius: var(--gs-radius-pill);
		background: linear-gradient(135deg, rgba(255, 255, 255, .2), rgba(248, 187, 208, .12)), rgba(61, 24, 48, .92);
		border: 1px solid rgba(248, 187, 208, .5);
		box-shadow: 0 10px 26px rgba(0, 0, 0, .32), inset 0 1px 0 rgba(255, 255, 255, .25), 0 0 0 4px rgba(240, 98, 146, .1);
		color: #fff; font-family: var(--gs-font-display); font-size: 16px; font-weight: 600; white-space: nowrap; text-decoration: none;
		-webkit-tap-highlight-color: transparent;
	}
	@supports ((-webkit-backdrop-filter: blur(1px)) or (backdrop-filter: blur(1px))) {
		.gs-hero a.gs-review-cta { background: linear-gradient(135deg, rgba(255, 255, 255, .2), rgba(248, 187, 208, .1)), rgba(61, 24, 48, .55); -webkit-backdrop-filter: blur(14px) saturate(1.5); backdrop-filter: blur(14px) saturate(1.5); }
	}
	.gs-hero a.gs-review-cta:hover, .gs-hero a.gs-review-cta:focus-visible { color: #fff; border-color: var(--gs-blush); }
	.gs-review-cta__arrow { display: inline-block; color: var(--gs-blush); animation: gs-arrow-bob 2.4s ease-in-out infinite; }
	@keyframes gs-arrow-bob { 0%, 60%, 100% { transform: none; } 30% { transform: translateY(3px); } }

	/* Hero buttons: WhatsApp gets the wider share so its label stays on one line. */
	.gs-hero .gs-anim-4 { flex-wrap: nowrap !important; --gap: 8px; --column-gap: 8px; }
	.gs-hero .gs-anim-4 > .elementor-widget-button { --container-widget-width: auto; width: auto !important; min-width: 0; flex: 1 1 0; }
	.gs-hero .gs-anim-4 > .elementor-widget-button.gs-btn-outline-light { flex-grow: 1.5; }
	.gs-hero .gs-anim-4 .elementor-button { width: 100%; justify-content: center; white-space: nowrap; padding-left: 8px; padding-right: 8px; font-size: 14.5px; }
	.gs-hero .elementor-widget.gs-btn-outline-light .elementor-button {
		background: linear-gradient(135deg, rgba(255, 255, 255, .16), rgba(255, 255, 255, .05));
		border: 1px solid rgba(255, 255, 255, .38);
		box-shadow: inset 0 1px 0 rgba(255, 255, 255, .2), 0 8px 20px rgba(0, 0, 0, .2);
	}
	.gs-hero .elementor-widget.gs-btn-outline-light .elementor-button-icon,
	.gs-hero .elementor-widget.gs-btn-outline-light .elementor-button-icon i { color: var(--gs-wa-green); }
	.gs-hero .elementor-widget.gs-btn-outline-light .elementor-button-icon svg { fill: var(--gs-wa-green); width: 1.15em; height: 1.15em; }
	.gs-hero .elementor-button-content-wrapper { align-items: center; gap: 6px; }
}
@media (max-width: 359px) {
	.gs-hero .gs-anim-4 .elementor-button { font-size: 13px; padding-left: 6px; padding-right: 6px; }
	.gs-hero a.gs-review-cta { font-size: 15px; padding: 0 18px; }
}
@keyframes gs-from-left { from { opacity: .35; transform: translateX(-36px); } to { opacity: 1; transform: none; } }
@keyframes gs-from-right { from { opacity: .35; transform: translateX(36px); } to { opacity: 1; transform: none; } }

/* ============ 4. Feature boxes: one row on phones ============ */
@media (max-width: 767px) {
	/* The strip is a boxed container: its items sit in .e-con-inner. */
	body .elementor .e-con.gs-trust-strip, .gs-trust-strip > .e-con-inner { flex-wrap: nowrap !important; --gap: 6px; --column-gap: 6px; --row-gap: 6px; gap: 6px !important; }
	.gs-trust-strip .gs-trust.elementor-widget {
		--container-widget-width: auto; width: auto !important; min-width: 0; flex: 1 1 0;
		padding: 10px 4px 9px !important; border-radius: 14px;
		background: linear-gradient(160deg, #fff, #fff6f9) !important;
	}
	.gs-trust-strip .gs-trust .elementor-icon-box-wrapper { display: flex; flex-direction: column !important; align-items: center; text-align: center !important; gap: 6px; }
	.gs-trust-strip .gs-trust .elementor-icon-box-icon { margin: 0 !important; display: flex; }
	.gs-trust-strip .gs-trust .elementor-icon {
		padding: 8px !important; font-size: 16px !important; border-radius: 12px !important;
		background: linear-gradient(145deg, rgba(255, 255, 255, .95), rgba(248, 187, 208, .45)) !important;
		border: 1px solid rgba(240, 98, 146, .22);
		box-shadow: 0 6px 14px rgba(194, 24, 91, .14), inset 0 1px 0 #fff;
		color: var(--gs-plum-800) !important; fill: var(--gs-plum-800) !important;
	}
	.gs-trust-strip .gs-trust .elementor-icon svg { width: 16px; height: 16px; fill: var(--gs-plum-800); }
	.gs-trust-strip .gs-trust .elementor-icon-box-title { font-size: 11px !important; line-height: 1.3 !important; margin: 0; overflow-wrap: anywhere; }
	.gs-trust-strip .gs-trust .elementor-icon-box-description { display: none; }
}
@media (max-width: 340px) {
	.gs-trust-strip .gs-trust .elementor-icon-box-title { font-size: 10px !important; }
}

/* Section titles fit one line on phones: the "view all" link moves up beside the eyebrow so the title gets the full width. */
@media (max-width: 767px) {
	.gs-section-head { position: relative; }
	.gs-section-head > .elementor-widget.gs-view-all { position: absolute; top: -4px; right: 0; }
	.gs-head-title .elementor-heading-title { white-space: nowrap; font-size: clamp(15px, 5.3vw, 21px) !important; }
}

/* ============ 5. Carousels ============ */
.gs-carousel { position: relative; }
.gs-carousel__btn { display: none; }
.gs-carousel__track { scrollbar-width: none; overscroll-behavior-x: contain; }
.gs-carousel__track::-webkit-scrollbar { display: none; }

/* Categories: one row with a left arrow before the first category (phones). */
@media (max-width: 767px) {
	.gs-cat-carousel .gs-cat-tiles { padding: 4px 4px 6px 44px !important; scroll-padding-left: 44px; -webkit-overflow-scrolling: touch; }
	.gs-cat-carousel .gs-carousel__btn { display: inline-flex; position: absolute; top: 38%; z-index: 2; width: 34px; height: 34px; transform: translateY(-50%); }
	.gs-cat-carousel .gs-carousel__btn:active { transform: translateY(-50%) scale(.94); }
	.gs-cat-carousel .gs-carousel__prev { left: 0; }
	.gs-cat-carousel .gs-carousel__next { right: 0; }
	.gs-cat-carousel .gs-cat-tiles a.gs-cat-tile { background: linear-gradient(170deg, #fff, #fff7fa); }
}

/* Customer reviews. */
.gs-reviews { position: relative; padding: 4px 0 8px; scroll-margin-top: 76px; }
.gs-reviews__head { text-align: center; max-width: 620px; margin: 0 auto 18px; }
.gs-reviews__eyebrow { margin: 0 0 4px; color: var(--gs-pink-600); font-size: 13px; font-weight: 600; letter-spacing: .04em; }
.gs-reviews .gs-reviews__title { margin: 0; color: var(--gs-ink); font-family: var(--gs-font-display); font-size: 30px; font-weight: 700; line-height: 1.2; }
.gs-reviews__sub { margin: 6px 0 0; color: var(--gs-muted); font-size: 13.5px; line-height: 1.5; }
.gs-reviews__carousel {
	padding: 18px 0;
	border-radius: 26px;
	background: radial-gradient(420px 220px at 15% 0%, rgba(240, 98, 146, .22), transparent 70%), var(--gs-gradient-plum);
	box-shadow: var(--gs-shadow-lg);
}
.gs-reviews__track {
	display: flex; gap: 14px; margin: 0; padding: 4px 56px; list-style: none;
	overflow-x: auto; -webkit-overflow-scrolling: touch;
}
.gs-review-card { flex: 0 0 200px; margin: 0; }
.gs-review-card button.gs-review-card__open {
	display: block; width: 100%; padding: 6px !important; border-radius: 20px; cursor: zoom-in;
	border: 1px solid rgba(255, 255, 255, .22);
	background: linear-gradient(160deg, rgba(255, 255, 255, .2), rgba(255, 255, 255, .06));
	box-shadow: 0 14px 30px rgba(0, 0, 0, .3), inset 0 1px 0 rgba(255, 255, 255, .25);
	transition: transform .25s ease, border-color .25s ease;
}
.gs-review-card button.gs-review-card__open:hover, .gs-review-card button.gs-review-card__open:focus-visible { transform: translateY(-3px); border-color: var(--gs-blush); background: linear-gradient(160deg, rgba(255, 255, 255, .26), rgba(255, 255, 255, .08)); }
.gs-review-card img {
	display: block; width: 100%; height: auto; aspect-ratio: 9 / 16; object-fit: cover; object-position: top;
	border-radius: 14px;
	/* Shimmer while the image genuinely loads; the image covers it once decoded. */
	background: linear-gradient(100deg, #3d1830 30%, #5a2a49 50%, #3d1830 70%) 0 0 / 300% 100%;
	animation: gs-shimmer 1.4s linear infinite;
}
.gs-review-card img.is-loaded { animation: none; background: #fff; }
.gs-review-card--empty { height: 356px; border-radius: 20px; background: rgba(255, 255, 255, .08); border: 1px dashed rgba(255, 255, 255, .25); }
@keyframes gs-shimmer { to { background-position: -300% 0; } }
.gs-reviews .gs-carousel__btn { display: inline-flex; position: absolute; top: 50%; z-index: 2; transform: translateY(-50%); }
.gs-reviews .gs-carousel__btn:active { transform: translateY(-50%) scale(.94); }
.gs-reviews .gs-carousel__prev { left: 10px; }
.gs-reviews .gs-carousel__next { right: 10px; }
@media (max-width: 767px) {
	.gs-reviews .gs-reviews__title { font-size: 22px; }
	.gs-reviews__sub { font-size: 12.5px; }
	.gs-reviews__carousel { padding: 14px 0; border-radius: 22px; }
	.gs-reviews__track { gap: 10px; padding: 2px 46px; }
	.gs-review-card { flex-basis: 156px; }
	.gs-review-card button.gs-review-card__open { padding: 5px !important; border-radius: 16px; }
	.gs-review-card img { border-radius: 12px; }
	.gs-reviews .gs-carousel__btn { width: 34px; height: 34px; }
	.gs-reviews .gs-carousel__prev { left: 6px; }
	.gs-reviews .gs-carousel__next { right: 6px; }
}

/* Full-size review viewer. */
.gs-review-viewer {
	width: min(92vw, 460px); max-height: 92vh; padding: 0; border: 0; border-radius: 18px; overflow: visible;
	background: transparent;
}
.gs-review-viewer::backdrop { background: rgba(28, 11, 23, .78); -webkit-backdrop-filter: blur(6px); backdrop-filter: blur(6px); }
.gs-review-viewer img { display: block; width: 100%; max-height: 88vh; object-fit: contain; border-radius: 18px; background: #fff; }
.gs-review-viewer .gs-review-viewer__close { position: absolute; top: -14px; right: -10px; }
.gs-review-viewer[open] { animation: gs-fade .2s ease; }

/* Anchored sections clear the sticky header. */
#gs-offers { scroll-margin-top: 70px; }

/* ============ 6. Bottom tab bar + menu sheet (phones) ============ */
.gs-tabbar, .gs-menu-sheet, .gs-social { display: none; }

@media (max-width: 767px) {
	/* The new tab bar replaces the Elementor footer bar (which also held Call/WhatsApp). */
	.gs-bottom-nav { display: none !important; }
	body.gs-mobile-ui { padding-bottom: var(--gs-tabbar-space) !important; }
	body.gs-mobile-ui.gs-has-buybar { padding-bottom: calc(66px + env(safe-area-inset-bottom)) !important; }

	.gs-mobile-ui .gs-tabbar {
		position: fixed; left: 12px; right: 12px; bottom: calc(var(--gs-tabbar-gap) + env(safe-area-inset-bottom)); z-index: 998;
		display: grid; grid-template-columns: 1fr 1fr 74px 2fr; align-items: center;
		height: var(--gs-tabbar-h); padding: 0 6px;
		border-radius: 22px;
		background: var(--gs-glass-bg-solid);
		border: 1px solid rgba(255, 255, 255, .14);
		box-shadow: var(--gs-glass-shadow);
	}
	@supports ((-webkit-backdrop-filter: blur(1px)) or (backdrop-filter: blur(1px))) {
		.gs-mobile-ui .gs-tabbar { background: var(--gs-glass-bg); -webkit-backdrop-filter: blur(18px) saturate(1.6); backdrop-filter: blur(18px) saturate(1.6); }
	}
	/* Product pages keep their buy bar instead. */
	.gs-mobile-ui.gs-has-buybar .gs-tabbar { display: none; }
	/* Astra scroll-to-top button sits above the bar. */
	.gs-mobile-ui #ast-scroll-top { bottom: calc(var(--gs-tabbar-space) + 8px) !important; }
	.gs-mobile-ui.gs-has-buybar #ast-scroll-top { bottom: calc(66px + env(safe-area-inset-bottom) + 8px) !important; }

	.gs-tabbar .gs-tab {
		position: relative; display: flex; flex-direction: column; align-items: center; justify-content: center; gap: 3px;
		height: 100%; min-width: 0; padding: 0 !important; margin: 0; border: 0; border-radius: 16px; background: none;
		color: var(--gs-on-plum); font-family: var(--gs-font); font-size: 11px; font-weight: 600; line-height: 1.1;
		text-decoration: none; cursor: pointer; -webkit-tap-highlight-color: transparent;
		transition: color .2s ease;
	}
	.gs-tabbar .gs-tab__icon { display: inline-flex; width: 24px; height: 24px; transition: transform .25s cubic-bezier(.2, .7, .2, 1); }
	.gs-tabbar .gs-tab__icon svg { width: 100%; height: 100%; }
	.gs-tabbar .gs-tab:hover, .gs-tabbar .gs-tab:focus-visible { color: #fff; background: none; }
	.gs-tabbar .gs-tab:active .gs-tab__icon { transform: scale(.88); }
	.gs-tabbar .gs-tab.is-active { color: #fff; }
	.gs-tabbar .gs-tab.is-active::after {
		content: ""; position: absolute; bottom: 6px; width: 18px; height: 3px; border-radius: 3px;
		background: linear-gradient(90deg, #f8bbd0, #f06292);
	}
	.gs-tabbar .gs-tab--menu { justify-self: center; width: 74px; }

	/* Home: raised transparent glass square in the centre. */
	.gs-tabbar .gs-tab--home { gap: 0; overflow: visible; }
	.gs-tabbar .gs-tab--home .gs-tab__icon {
		width: 54px; height: 54px; padding: 14px; margin-top: -26px; border-radius: 18px;
		background: linear-gradient(145deg, rgba(255, 255, 255, .3), rgba(248, 187, 208, .1)), rgba(61, 24, 48, .9);
		border: 1px solid rgba(255, 255, 255, .35);
		box-shadow: 0 12px 26px rgba(28, 11, 23, .45), inset 0 1px 0 rgba(255, 255, 255, .35);
		color: #fff;
	}
	@supports ((-webkit-backdrop-filter: blur(1px)) or (backdrop-filter: blur(1px))) {
		.gs-tabbar .gs-tab--home .gs-tab__icon { background: linear-gradient(145deg, rgba(255, 255, 255, .32), rgba(248, 187, 208, .12)), rgba(61, 24, 48, .5); -webkit-backdrop-filter: blur(14px); backdrop-filter: blur(14px); }
	}
	.gs-tabbar .gs-tab--home .gs-tab__label { margin-top: 3px; }
	.gs-tabbar .gs-tab--home.is-active::after { display: none; }
	.gs-tabbar .gs-tab--home.is-active .gs-tab__icon {
		background: linear-gradient(145deg, rgba(255, 255, 255, .35), rgba(240, 98, 146, .3)), rgba(194, 24, 91, .75);
		box-shadow: 0 12px 28px rgba(194, 24, 91, .45), inset 0 1px 0 rgba(255, 255, 255, .45), 0 0 0 4px rgba(248, 187, 208, .16);
	}

	/* Menu sheet. */
	.gs-mobile-ui .gs-menu-sheet { position: fixed; inset: 0; z-index: 1001; display: block; }
	.gs-mobile-ui .gs-menu-sheet[hidden] { display: none; }
	.gs-menu-sheet__backdrop { position: absolute; inset: 0; background: rgba(28, 11, 23, .5); animation: gs-fade .2s ease; }
	.gs-menu-sheet__panel {
		position: absolute; left: 12px; right: 12px; bottom: calc(var(--gs-tabbar-gap) + env(safe-area-inset-bottom));
		padding: 14px 14px 16px; border-radius: 24px;
		background: rgba(42, 18, 34, .97); border: 1px solid rgba(255, 255, 255, .16); box-shadow: 0 -10px 40px rgba(0, 0, 0, .35);
		animation: gs-sheet-up .28s cubic-bezier(.2, .7, .2, 1);
	}
	@supports ((-webkit-backdrop-filter: blur(1px)) or (backdrop-filter: blur(1px))) {
		.gs-menu-sheet__backdrop { -webkit-backdrop-filter: blur(4px); backdrop-filter: blur(4px); }
		.gs-menu-sheet__panel { background: rgba(42, 18, 34, .78); -webkit-backdrop-filter: blur(22px) saturate(1.5); backdrop-filter: blur(22px) saturate(1.5); }
	}
	.gs-menu-sheet__head { display: flex; align-items: center; justify-content: space-between; margin: 0 2px 10px; }
	.gs-menu-sheet__title { margin: 0; color: #fff; font-family: var(--gs-font-display); font-size: 18px; font-weight: 700; }
	.gs-menu-sheet__close { width: 34px; height: 34px; background: rgba(255, 255, 255, .14); border-color: rgba(255, 255, 255, .25); color: #fff; box-shadow: none; }
	.gs-menu-sheet__close:hover, .gs-menu-sheet__close:focus-visible { background: rgba(255, 255, 255, .24); color: #fff; }
	.gs-menu-sheet__list { display: grid; grid-template-columns: 1fr 1fr; gap: 10px; margin: 0; padding: 0; list-style: none; }
	.gs-menu-sheet__list li { margin: 0; }
	.gs-menu-sheet a.gs-menu-sheet__link {
		position: relative; display: flex; align-items: center; gap: 10px; min-height: 56px; padding: 10px 12px;
		border-radius: 16px; border: 1px solid rgba(255, 255, 255, .14);
		background: linear-gradient(145deg, rgba(255, 255, 255, .12), rgba(255, 255, 255, .03));
		color: #fff; font-size: 15px; font-weight: 600; text-decoration: none;
		transition: background .2s ease, border-color .2s ease;
	}
	.gs-menu-sheet a.gs-menu-sheet__link:hover, .gs-menu-sheet a.gs-menu-sheet__link:focus-visible { background: rgba(255, 255, 255, .16); border-color: rgba(248, 187, 208, .5); color: #fff; }
	.gs-menu-sheet a.gs-menu-sheet__link.is-active { border-color: rgba(248, 187, 208, .6); background: linear-gradient(145deg, rgba(240, 98, 146, .3), rgba(255, 255, 255, .05)); }
	.gs-menu-sheet__icon {
		display: inline-flex; flex: 0 0 34px; width: 34px; height: 34px; padding: 7px; border-radius: 11px;
		background: rgba(248, 187, 208, .16); color: var(--gs-blush);
	}
	.gs-menu-sheet__icon svg { width: 100%; height: 100%; }
	.gs-menu-sheet .gs-cart-count {
		margin-left: auto; min-width: 22px; height: 22px; padding: 0 6px; border-radius: 11px;
		background: var(--gs-gradient-btn); color: #fff; font-size: 12px; line-height: 22px; text-align: center;
	}
	.gs-menu-sheet .gs-cart-count[hidden] { display: none; }
	html.gs-sheet-open { overflow: hidden; }
}
@keyframes gs-sheet-up { from { opacity: 0; transform: translateY(24px); } to { opacity: 1; transform: none; } }

/* ============ 7. Social drawer (phones) ============ */
@media (max-width: 767px) {
	.gs-mobile-ui .gs-social {
		position: fixed; right: 0; bottom: calc(var(--gs-tabbar-space) + 96px); z-index: 997;
		display: flex; align-items: center;
	}
	.gs-mobile-ui.gs-has-buybar .gs-social { bottom: calc(66px + env(safe-area-inset-bottom) + 96px); }
	.gs-social button.gs-social__toggle {
		position: relative; z-index: 2; display: inline-flex; align-items: center; justify-content: center;
		width: 26px; height: 50px; padding: 0 !important; margin: 0; border-radius: 14px 0 0 14px;
		border: 1px solid rgba(255, 255, 255, .25); border-right: 0;
		background: var(--gs-glass-bg-solid); color: #fff; box-shadow: -6px 8px 22px rgba(28, 11, 23, .3);
		cursor: pointer; -webkit-tap-highlight-color: transparent;
	}
	.gs-social button.gs-social__toggle::before { content: ""; position: absolute; inset: -6px -2px -6px -12px; } /* 48px+ tap target */
	.gs-social button.gs-social__toggle svg { width: 20px; height: 20px; transition: transform .3s cubic-bezier(.2, .7, .2, 1); }
	.gs-social[data-open="true"] button.gs-social__toggle svg { transform: rotate(180deg); }
	.gs-social__panel {
		position: absolute; right: 26px; bottom: -40px; display: flex; flex-direction: column; gap: 10px; padding: 10px;
		border-radius: 22px; border: 1px solid rgba(255, 255, 255, .22);
		background: var(--gs-glass-bg-solid); box-shadow: var(--gs-glass-shadow);
		opacity: 0; visibility: hidden; transform: translateX(16px) scale(.96); transform-origin: right center;
		transition: opacity .22s ease, transform .3s cubic-bezier(.2, .7, .2, 1), visibility 0s linear .3s;
	}
	@supports ((-webkit-backdrop-filter: blur(1px)) or (backdrop-filter: blur(1px))) {
		.gs-social button.gs-social__toggle, .gs-social__panel { background: var(--gs-glass-bg); -webkit-backdrop-filter: blur(16px) saturate(1.5); backdrop-filter: blur(16px) saturate(1.5); }
	}
	.gs-social[data-open="true"] .gs-social__panel { opacity: 1; visibility: visible; transform: none; transition-delay: 0s; }
	.gs-social a.gs-social__link {
		display: inline-flex; align-items: center; justify-content: center; width: 46px; height: 46px; border-radius: 50%;
		text-decoration: none; box-shadow: 0 6px 16px rgba(0, 0, 0, .25), inset 0 1px 0 rgba(255, 255, 255, .3);
		transition: transform .2s ease;
	}
	.gs-social a.gs-social__link:active { transform: scale(.92); }
	.gs-social a.gs-social__link svg { width: 26px; height: 26px; }
	.gs-social a.gs-social__link--wa { background: var(--gs-wa-green); color: #fff; }
	.gs-social a.gs-social__link--msgr { background: #fff; }
	.gs-social a.gs-social__link--msgr svg { width: 28px; height: 28px; }
	.gs-social a.gs-social__link--call { background: var(--gs-gradient-btn); color: #fff; }
	.gs-social a.gs-social__link--call svg { width: 22px; height: 22px; }
	.gs-social a.gs-social__link:hover, .gs-social a.gs-social__link:focus-visible { color: #fff; }
}

/* ============ 8. Reduced motion ============ */
@media (prefers-reduced-motion: reduce) {
	.gs-topbar-call__icon, .gs-topbar a.gs-topbar-wa, .gs-review-cta__arrow,
	.gs-hero-art--has-mobile .gs-hero-art__main--mobile, .gs-hero-art--has-mobile .gs-hero-art__card,
	.gs-menu-sheet__backdrop, .gs-menu-sheet__panel, .gs-review-viewer[open], .gs-review-card img { animation: none !important; }
	.gs-review-float { display: none; }
	.gs-social__panel, .gs-social button.gs-social__toggle svg { transition: none; }
}
