/* GoBao Core – minimal, neutral defaults. Override any --gbp-* variable in Elementor
   (Site Settings > Custom CSS is Pro-only, so use Appearance > Customize > Additional CSS). */
:root {
	--gbp-color-dark: #0D0D0D;
	--gbp-color-tan: #DEB494;
	--gbp-color-cream: #F7F4EF;
	--gbp-color-text: var(--gbp-color-dark);
	--gbp-color-surface: var(--gbp-color-cream);
	--gbp-color-border: rgba(13, 13, 13, 0.12);
	--gbp-color-muted: rgba(13, 13, 13, 0.55);
	--gbp-font-heading: "Red Rose", Georgia, "Times New Roman", serif;
	--gbp-font-body: "Kumbh Sans", system-ui, -apple-system, "Segoe UI", Roboto, sans-serif;
	--gbp-radius: 12px;
	--gbp-gap: 1.5rem;
	--gbp-columns: 3;
	--gbp-card-min: 240px;
}

/* :where() keeps specificity at 0 so theme / Elementor styles always win. */
:where(.gbp-product, .gbp-products, .gbp-compare, .gbp-order-options) {
	font-family: var(--gbp-font-body);
	color: var(--gbp-color-text);
	box-sizing: border-box;
}
:where(.gbp-product, .gbp-products, .gbp-compare, .gbp-order-options) *,
:where(.gbp-product, .gbp-products, .gbp-compare, .gbp-order-options) *::before,
:where(.gbp-product, .gbp-products, .gbp-compare, .gbp-order-options) *::after { box-sizing: inherit; }

:where(.gbp-product__name, .gbp-product__section-title, .gbp-compare__product) {
	font-family: var(--gbp-font-heading);
	line-height: 1.15;
	margin: 0 0 .35em;
}

/* Product (shared) */
:where(.gbp-product) { display: flex; flex-direction: column; gap: 1rem; }
:where(.gbp-product__media) { margin: 0; }
:where(.gbp-product__image) { display: block; width: 100%; height: auto; border-radius: var(--gbp-radius); }
:where(.gbp-product__weight, .gbp-product__sku) { margin: 0 0 .5em; color: var(--gbp-color-muted); font-size: .95em; }
:where(.gbp-product__summary) { margin: 0; }
:where(.gbp-product__summary) > :last-child { margin-bottom: 0; }

/* Card */
:where(.gbp-product--card) { background: var(--gbp-color-surface); border-radius: var(--gbp-radius); padding: 1rem; height: 100%; }
:where(.gbp-product--card .gbp-product__body) { flex: 1 1 auto; }

/* Hero */
:where(.gbp-product--hero) { display: grid; grid-template-columns: 1fr; gap: var(--gbp-gap); align-items: center; }
@media (min-width: 768px) { :where(.gbp-product--hero) { grid-template-columns: 1fr 1fr; } }

/* Full */
:where(.gbp-product__gallery) { display: grid; grid-template-columns: repeat(auto-fit, minmax(200px, 1fr)); gap: 1rem; }
:where(.gbp-product__facts) { display: grid; grid-template-columns: repeat(auto-fit, minmax(140px, 1fr)); gap: .75rem; margin: 0; }
:where(.gbp-product__fact) { border-top: 2px solid var(--gbp-color-tan); padding-top: .5rem; }
:where(.gbp-product__fact-label) { font-size: .8em; text-transform: uppercase; letter-spacing: .06em; color: var(--gbp-color-muted); }
:where(.gbp-product__fact-value) { margin: 0; font-weight: 600; }
:where(.gbp-product__section) { border-top: 1px solid var(--gbp-color-border); padding-top: 1rem; }

/* Grid */
:where(.gbp-products) { display: grid; gap: var(--gbp-gap); grid-template-columns: repeat(auto-fill, minmax(var(--gbp-card-min), 1fr)); }
@media (min-width: 1024px) { :where(.gbp-products--card) { grid-template-columns: repeat(var(--gbp-columns), minmax(0, 1fr)); } }

/* Buttons */
:where(.gbp-button) {
	display: inline-block; padding: .75em 1.5em; border-radius: 999px; border: 2px solid var(--gbp-color-dark);
	font-family: var(--gbp-font-body); font-weight: 600; line-height: 1.2; text-align: center; text-decoration: none;
	transition: background-color .15s ease, color .15s ease;
}
:where(.gbp-button--primary) { background: var(--gbp-color-dark); color: var(--gbp-color-cream); }
:where(.gbp-button--primary:hover, .gbp-button--primary:focus-visible) { background: var(--gbp-color-tan); color: var(--gbp-color-dark); border-color: var(--gbp-color-tan); }
:where(.gbp-button--secondary) { background: transparent; color: var(--gbp-color-dark); }
:where(.gbp-button--secondary:hover, .gbp-button--secondary:focus-visible) { background: var(--gbp-color-dark); color: var(--gbp-color-cream); }

/* Order options */
:where(.gbp-order-options__list) { list-style: none; margin: 0; padding: 0; display: flex; flex-wrap: wrap; gap: .75rem; }

/* Compare */
:where(.gbp-compare) { overflow-x: auto; }
:where(.gbp-compare__table) { width: 100%; border-collapse: collapse; }
:where(.gbp-compare__table th, .gbp-compare__table td) { padding: .75rem 1rem; border-bottom: 1px solid var(--gbp-color-border); text-align: left; }
:where(.gbp-compare__table thead th) { border-bottom: 2px solid var(--gbp-color-tan); }
:where(.gbp-compare__label) { font-weight: 600; }
:where(.gbp-empty) { color: var(--gbp-color-muted); }

/* Visually hidden text (if the theme does not define it). */
:where(.gbp-compare, .gbp-product, .gbp-order-options) .screen-reader-text {
	position: absolute !important; width: 1px; height: 1px; padding: 0; margin: -1px; overflow: hidden;
	clip: rect(0, 0, 0, 0); white-space: nowrap; border: 0;
}

/* 1.2.0: minimal layout for components when the design system is switched off */
.gb-social, .gb-lang__list { display: flex; flex-wrap: wrap; gap: 8px; list-style: none; margin: 0; padding: 0; }
.gb-social__icon { width: 20px; height: 20px; }
.gb-video__play, .gb-video__frame, .gb-video__media { position: relative; display: block; width: 100%; aspect-ratio: 16 / 9; border: 0; padding: 0; overflow: hidden; background: #341747; color: #fff; cursor: pointer; }
.gb-video--tiktok .gb-video__play, .gb-video--tiktok .gb-video__frame { aspect-ratio: 9 / 16; max-width: 340px; }
.gb-video__poster { position: absolute; inset: 0; width: 100%; height: 100%; object-fit: cover; }
.gb-video__icon { position: absolute; left: 50%; top: 50%; transform: translate(-50%, -50%); }
:where(.gb-social, .gb-lang, .gb-reviews, .gb-nutrition, .gb-video, .gb-posts, .gb-post, .gbp-page__info) .screen-reader-text { position: absolute !important; width: 1px; height: 1px; margin: -1px; overflow: hidden; clip: rect(0, 0, 0, 0); white-space: nowrap; border: 0; padding: 0; }

/* 1.2.2: reviews + sample labels without the design system */
.gb-reviews__grid { display: grid; grid-template-columns: repeat(auto-fit, minmax(min(100%, 280px), 1fr)); gap: 20px; }
.gb-review { margin: 0; border: 1px solid rgba(52, 23, 71, .14); border-radius: 12px; overflow: hidden; background: #FFFDF8; }
.gb-review__media { position: relative; aspect-ratio: 4 / 3; overflow: hidden; }
.gb-review__photo { display: block; width: 100%; height: 100%; object-fit: cover; }
.gb-review__body { padding: 16px; }
.gb-review__media .gb-review__badge, .gb-video__badge { position: absolute; top: 10px; left: 10px; z-index: 2; }
.gb-video__wrap { position: relative; }
.gb-sample-badge { display: inline-block; padding: 3px 9px; border-radius: 999px; background: #EDBB45; color: #341747; font-size: 12px; font-weight: 700; text-transform: uppercase; letter-spacing: .05em; }
