/*
 * GPTV Shop UI
 * WooCommerce shop + WCFM creator store + single product
 * Keep this stylesheet after Astra, WooCommerce and WCFM public styles.
 */

/* =========================================================
   1. Design tokens and safe base
   ========================================================= */

:where(
  .gptv-shop-page,
  .gptv-wcfm-store-page,
  .gptv-product-page,
  body.woocommerce-shop,
  body.post-type-archive-product,
  body.single-product
),
#wcfmmp-store,
.gptv-product-grid,
.gptv-product-card {
  --gptv-shop-bg: #090d12;
  --gptv-shop-panel: #101720;
  --gptv-shop-panel-2: #141d27;
  --gptv-shop-field: #0c1219;
  --gptv-shop-border: rgba(255, 255, 255, 0.1);
  --gptv-shop-border-hover: rgba(152, 145, 240, 0.46);
  --gptv-shop-text: #f7f8fb;
  --gptv-shop-muted: rgba(247, 248, 251, 0.68);
  --gptv-shop-dim: rgba(247, 248, 251, 0.46);
  --gptv-shop-accent: #5e56ff;
  --gptv-shop-accent-hover: #7b74ff;
  --gptv-shop-accent-soft: rgba(94, 86, 255, 0.16);
  --gptv-shop-pink: #ff6b9d;
  --gptv-shop-success: #55d69e;
  --gptv-shop-danger: #ff6f7d;
  --gptv-shop-radius: 24px;
  --gptv-shop-radius-sm: 15px;
  --gptv-shop-shadow: 0 24px 70px rgba(0, 0, 0, 0.3);
  --gptv-shop-transition: 180ms ease;
}

:where(
    .gptv-shop-page,
    .gptv-wcfm-store-page,
    .gptv-product-page,
    body.woocommerce-shop,
    body.post-type-archive-product,
    body.single-product
  )
  *,
#wcfmmp-store *,
.gptv-product-grid *,
.gptv-product-card * {
  box-sizing: border-box;
}

:where(
    .gptv-shop-page,
    .gptv-wcfm-store-page,
    .gptv-product-page,
    body.woocommerce-shop,
    body.post-type-archive-product,
    body.single-product
  )
  .site-content {
  min-height: 70vh;
  background: var(--gptv-shop-bg);
  color: var(--gptv-shop-text);
}

:where(.gptv-shop-page, .gptv-wcfm-store-page, .gptv-product-page)
  .site-content
  > .ast-container,
:where(
    body.woocommerce-shop,
    body.post-type-archive-product,
    body.single-product
  )
  .site-content
  > .ast-container {
  display: block;
  width: 100%;
  max-width: 1280px;
  padding-inline: 24px;
}

:where(
    .gptv-shop-page,
    .gptv-wcfm-store-page,
    .gptv-product-page,
    body.woocommerce-shop,
    body.post-type-archive-product,
    body.single-product
  )
  #primary {
  float: none;
  width: 100%;
  margin: 0;
  padding: 32px 0 80px;
  border: 0;
}

:where(
    .gptv-shop-page,
    .gptv-wcfm-store-page,
    .gptv-product-page,
    body.woocommerce-shop,
    body.post-type-archive-product,
    body.single-product
  )
  :is(a, button, input, select, textarea):focus-visible,
#wcfmmp-store :is(a, button, input, select, textarea):focus-visible,
.gptv-product-card :is(a, button):focus-visible {
  outline: 2px solid var(--gptv-shop-accent-hover);
  outline-offset: 3px;
}

/* Fallback when the custom WCFM body class is not present. */
@supports selector(body:has(#wcfmmp-store)) {
  body:has(#wcfmmp-store) .site-content {
    min-height: 70vh;
    background: #090d12;
    color: #f7f8fb;
  }

  body:has(#wcfmmp-store) .site-content > .ast-container {
    display: block;
    width: 100%;
    max-width: 1280px;
    padding-inline: 24px;
  }

  body:has(#wcfmmp-store) #primary {
    float: none;
    width: 100%;
    margin: 0;
    padding: 32px 0 80px;
    border: 0;
  }
}

/* =========================================================
   2. Shared GPTV product cards
   ========================================================= */

.gptv-product-grid {
  display: grid;
  grid-template-columns: repeat(4, minmax(0, 1fr));
  gap: 20px;
  width: 100%;
  margin: 0;
}

.gptv-product-grid--feed {
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: 14px;
  overflow: visible;
  overscroll-behavior-x: contain;
  padding: 0;
  scrollbar-color: rgba(255, 255, 255, 0.18) transparent;
  scrollbar-width: thin;
}

.gptv-product-grid--feed::-webkit-scrollbar {
  height: 4px;
}

.gptv-product-grid--feed::-webkit-scrollbar-thumb {
  border-radius: 999px;
  background: rgba(255, 255, 255, 0.18);
}

.gptv-product-card {
  position: relative;
  display: flex;
  min-width: 0;
  height: 100%;
  overflow: hidden;
  flex-direction: column;
  border: 1px solid var(--gptv-shop-border);
  border-radius: 20px;
  background:
    linear-gradient(180deg, rgba(255, 255, 255, 0.035), transparent 42%),
    var(--gptv-shop-panel);
  color: var(--gptv-shop-text);
  text-decoration: none !important;
  box-shadow: 0 18px 44px rgba(0, 0, 0, 0.22);
  isolation: isolate;
  transition:
    border-color var(--gptv-shop-transition),
    box-shadow var(--gptv-shop-transition);
}

.gptv-product-card:hover,
.gptv-product-card:focus-within {
  border-color: var(--gptv-shop-border-hover);
  box-shadow:
    0 24px 62px rgba(0, 0, 0, 0.34),
    0 0 30px rgba(94, 86, 255, 0.13);
}

.gptv-product-card--feed {
  min-width: 0;
  border-radius: 16px;
}

.gptv-product-card__media {
  position: relative;
  display: block;
  width: 100%;
  overflow: hidden;
  aspect-ratio: 1 / 1;
  background:
    radial-gradient(
      circle at 24% 15%,
      rgba(94, 86, 255, 0.24),
      transparent 45%
    ),
    var(--gptv-shop-panel-2);
  color: inherit;
  text-decoration: none;
}

.gptv-product-card--feed .gptv-product-card__media {
  aspect-ratio: 1 / 1;
}

.gptv-product-card__image {
  display: block;
  width: 100%;
  height: 100% !important;
  margin: 0 !important;
  object-fit: cover;
  object-position: center;
}

div.gptv-product-card__image--placeholder {
  background:
    radial-gradient(
      circle at 22% 18%,
      rgba(152, 145, 240, 0.38),
      transparent 36%
    ),
    linear-gradient(145deg, rgba(94, 86, 255, 0.23), rgba(255, 107, 157, 0.11)),
    var(--gptv-shop-panel-2);
}

.gptv-product-card__badges {
  position: absolute;
  z-index: 2;
  top: 10px;
  right: 10px;
  left: 10px;
  display: flex;
  flex-wrap: wrap;
  gap: 6px;
  pointer-events: none;
}

.gptv-product-card__badges:empty {
  display: none;
}

.gptv-product-card__badge {
  display: inline-flex;
  align-items: center;
  min-height: 25px;
  padding: 0 9px;
  border: 1px solid rgba(255, 255, 255, 0.18);
  border-radius: 999px;
  background: rgba(9, 13, 18, 0.78);
  color: #fff;
  font-size: 11px;
  font-weight: 800;
  line-height: 1;
  backdrop-filter: blur(10px);
}

.gptv-product-card__badge--sale {
  background: rgba(94, 86, 255, 0.88);
}

.gptv-product-card__badge--stock {
  background: rgba(255, 107, 157, 0.88);
}

.gptv-product-card__content {
  display: flex;
  min-height: 166px;
  flex: 1 1 auto;
  flex-direction: column;
  gap: 9px;
  padding: 14px;
}

.gptv-product-card--feed .gptv-product-card__content {
  min-height: 96px;
  gap: 6px;
  padding: 10px;
}

.gptv-product-card__creator {
  display: inline-flex;
  align-items: center;
  min-width: 0;
  gap: 8px;
  color: var(--gptv-shop-muted) !important;
  font-size: 12px;
  font-weight: 700;
  line-height: 1.2;
  text-decoration: none !important;
  transition: color var(--gptv-shop-transition);
}

.gptv-product-card__creator:hover {
  color: var(--gptv-shop-text) !important;
}

.gptv-product-card__avatar,
.gptv-product-card__creator img {
  display: block;
  width: 26px !important;
  height: 26px !important;
  flex: 0 0 26px;
  margin: 0 !important;
  border: 1px solid rgba(255, 255, 255, 0.14);
  border-radius: 50%;
  object-fit: cover;
}

.gptv-product-card__creator span {
  overflow: hidden;
  text-overflow: ellipsis;
  white-space: nowrap;
}

.gptv-product-card__title {
  margin: 0 !important;
  color: var(--gptv-shop-text) !important;
  font-size: 15px !important;
  font-weight: 800 !important;
  line-height: 1.3 !important;
  text-transform: none !important;
}

.gptv-product-card__title a {
  display: -webkit-box;
  overflow: hidden;
  color: inherit !important;
  text-decoration: none !important;
  -webkit-box-orient: vertical;
  -webkit-line-clamp: 2;
}

.gptv-product-card__title-text {
  display: -webkit-box;
  overflow: hidden;
  color: inherit !important;
  text-decoration: none !important;
  -webkit-box-orient: vertical;
  -webkit-line-clamp: 2;
}

.gptv-product-card--feed .gptv-product-card__title {
  font-size: 12px !important;
  line-height: 1.25 !important;
}

.gptv-product-card__price {
  margin-top: auto;
  color: var(--gptv-shop-text);
  font-size: 15px;
  font-weight: 900;
  line-height: 1.35;
}

.gptv-product-card--feed .gptv-product-card__price {
  margin-top: auto;
  font-size: 12px;
  line-height: 1.2;
}

.gptv-product-card__price del {
  margin-right: 4px;
  color: var(--gptv-shop-dim) !important;
  font-size: 0.88em;
  font-weight: 600;
  opacity: 1;
}

.gptv-product-card__price ins {
  background: transparent;
  color: inherit;
  text-decoration: none;
}

.gptv-product-card__rating {
  display: flex;
  align-items: center;
  min-height: 16px;
  gap: 6px;
  color: var(--gptv-shop-muted);
  font-size: 11px;
  line-height: 1;
}

.gptv-product-card__rating.is-empty {
  visibility: hidden;
}

.gptv-product-card__rating .star-rating {
  float: none;
  width: 5.4em;
  height: 1em;
  margin: 0;
  color: var(--gptv-shop-accent-hover);
  font-size: 10px;
  line-height: 1;
}

.gptv-product-card__reviews {
  color: var(--gptv-shop-dim);
  font-size: 10px;
  font-weight: 800;
}

.gptv-product-card__actions {
  display: flex;
  align-items: center;
  gap: 8px;
  margin-top: 2px;
}

.gptv-product-card__button,
.gptv-product-card__profile {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  min-height: 36px;
  margin: 0 !important;
  border-radius: 11px;
  font-size: 12px;
  font-weight: 800;
  line-height: 1;
  text-align: center;
  text-decoration: none !important;
  transition:
    background-color var(--gptv-shop-transition),
    border-color var(--gptv-shop-transition),
    color var(--gptv-shop-transition),
    transform var(--gptv-shop-transition);
}

.gptv-product-card__button {
  flex: 1 1 auto;
  padding: 0 12px;
  border: 1px solid transparent;
  background: var(--gptv-shop-accent);
  color: #fff !important;
  box-shadow: 0 8px 22px rgba(94, 86, 255, 0.2);
}

.gptv-product-card__profile {
  flex: 0 0 auto;
  padding: 0 11px;
  border: 1px solid var(--gptv-shop-border);
  background: rgba(255, 255, 255, 0.045);
  color: var(--gptv-shop-muted) !important;
}

.gptv-product-card__button:hover {
  background: var(--gptv-shop-accent-hover);
  color: #fff !important;
}

.gptv-product-card__profile:hover {
  border-color: var(--gptv-shop-border-hover);
  background: rgba(255, 255, 255, 0.075);
  color: #fff !important;
}

.gptv-product-empty {
  width: 100%;
  margin: 0 0 20px;
  padding: 20px;
  border: 1px solid var(--gptv-shop-border, rgba(255, 255, 255, 0.1));
  border-radius: 18px;
  background: var(--gptv-shop-panel, #101720);
  color: var(--gptv-shop-muted, rgba(255, 255, 255, 0.68));
  font-size: 14px;
  line-height: 1.55;
}

/* =========================================================
   3. Global shop /shop
   ========================================================= */

:where(.gptv-shop-page, body.woocommerce-shop, body.post-type-archive-product)
  .ast-woocommerce-container {
  width: 100%;
  color: var(--gptv-shop-muted);
}

:where(.gptv-shop-page, body.woocommerce-shop, body.post-type-archive-product)
  .woocommerce-breadcrumb,
:where(.gptv-shop-page, body.woocommerce-shop, body.post-type-archive-product)
  .woocommerce-products-header__title {
  display: none;
}

.gptv-shop-hero,
.gptv-store-header {
  position: relative;
  overflow: hidden;
  border: 1px solid var(--gptv-shop-border, rgba(255, 255, 255, 0.1));
  background:
    radial-gradient(
      circle at 82% 15%,
      rgba(255, 107, 157, 0.13),
      transparent 31%
    ),
    radial-gradient(
      circle at 12% 120%,
      rgba(94, 86, 255, 0.34),
      transparent 44%
    ),
    linear-gradient(135deg, #151d29, #0f151e 72%);
  color: var(--gptv-shop-text, #f7f8fb);
  box-shadow: var(--gptv-shop-shadow, 0 24px 70px rgba(0, 0, 0, 0.3));
}

.gptv-shop-hero {
  min-height: 176px;
  margin: 0 0 28px;
  padding: 34px;
  border-radius: 26px;
}

.gptv-shop-hero::after {
  position: absolute;
  top: -52px;
  right: 5%;
  width: 170px;
  height: 170px;
  border: 1px solid rgba(255, 255, 255, 0.09);
  border-radius: 42px;
  background: rgba(255, 255, 255, 0.025);
  content: "";
  pointer-events: none;
  transform: rotate(22deg);
}

.gptv-shop-hero__kicker,
.gptv-store-header__kicker {
  display: block;
  margin: 0 0 9px;
  color: var(--gptv-shop-muted, rgba(255, 255, 255, 0.68));
  font-size: 11px;
  font-weight: 900;
  letter-spacing: 0.12em;
  line-height: 1.2;
  text-transform: uppercase;
}

.gptv-shop-hero h1,
.gptv-store-header h1 {
  position: relative;
  z-index: 1;
  margin: 0 !important;
  color: var(--gptv-shop-text, #f7f8fb) !important;
  font-size: clamp(30px, 4vw, 44px) !important;
  font-weight: 900 !important;
  letter-spacing: -0.035em;
  line-height: 1.04 !important;
  text-transform: none !important;
}

.gptv-shop-hero p,
.gptv-store-header p {
  position: relative;
  z-index: 1;
  max-width: 650px;
  margin: 11px 0 0 !important;
  padding: 0 !important;
  color: var(--gptv-shop-muted, rgba(255, 255, 255, 0.68)) !important;
  font-size: 15px;
  line-height: 1.55;
}

.gptv-shop-hero__actions,
.gptv-product-header-actions {
  position: relative;
  z-index: 2;
  display: flex;
  justify-content: flex-end;
}

.gptv-shop-hero__actions .gptv-cart-link {
  margin-bottom: 14px !important;
}

.gptv-product-header-actions .gptv-cart-link {
  margin-bottom: 16px !important;
}

.gptv-cart-link-fragment:not(:empty) {
  display: inline-flex;
}

.gptv-cart-link-fragment:empty {
  display: none;
}

.gptv-cart-link {
  gap: 8px;
  white-space: nowrap;
}

.gptv-cart-link__icon {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  font-size: 17px;
  line-height: 1;
}

.gptv-cart-link__count {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  min-width: 22px;
  height: 22px;
  padding: 0 7px;
  border-radius: 999px;
  background: rgba(255, 255, 255, 0.16);
  color: #fff;
  font-size: 12px;
  font-weight: 900;
  line-height: 1;
}

:where(.gptv-shop-page, body.woocommerce-shop, body.post-type-archive-product)
  .woocommerce-notices-wrapper:not(:empty) {
  margin-bottom: 18px;
}

:where(.gptv-shop-page, body.woocommerce-shop, body.post-type-archive-product)
  .woocommerce-result-count {
  float: left;
  margin: 13px 0 22px;
  color: var(--gptv-shop-dim);
  font-size: 13px;
  font-weight: 700;
  line-height: 46px;
}

:where(.gptv-shop-page, body.woocommerce-shop, body.post-type-archive-product)
  .woocommerce-ordering {
  float: right;
  margin: 13px 0 22px;
}

:where(.gptv-shop-page, body.woocommerce-shop, body.post-type-archive-product)
  .woocommerce-ordering
  select {
  min-width: 230px;
  min-height: 46px;
  margin: 0;
  padding: 0 42px 0 14px;
  border: 1px solid var(--gptv-shop-border);
  border-radius: 13px;
  background-color: var(--gptv-shop-panel);
  color: var(--gptv-shop-text);
  box-shadow: none;
  font-size: 13px;
  font-weight: 700;
}

:where(.gptv-shop-page, body.woocommerce-shop, body.post-type-archive-product)
  .woocommerce-ordering
  select:focus {
  border-color: var(--gptv-shop-accent-hover);
  outline: 0;
  box-shadow: 0 0 0 3px rgba(152, 145, 240, 0.15);
}

:where(.gptv-shop-page, body.woocommerce-shop, body.post-type-archive-product)
  .woocommerce
  ul.products {
  display: grid !important;
  clear: both;
  grid-template-columns: repeat(4, minmax(0, 1fr));
  gap: 20px;
  width: 100%;
  margin: 0 !important;
  padding: 0;
}

:where(.gptv-shop-page, body.woocommerce-shop, body.post-type-archive-product)
  .woocommerce
  ul.products::before,
:where(.gptv-shop-page, body.woocommerce-shop, body.post-type-archive-product)
  .woocommerce
  ul.products::after {
  display: none !important;
  content: none !important;
}

:where(.gptv-shop-page, body.woocommerce-shop, body.post-type-archive-product)
  .woocommerce
  ul.products
  li.product {
  display: block;
  float: none !important;
  width: auto !important;
  min-width: 0;
  margin: 0 !important;
  padding: 0 !important;
  border: 0;
  background: transparent;
}

:where(.gptv-shop-page, body.woocommerce-shop, body.post-type-archive-product)
  .woocommerce
  ul.products
  li.product
  .astra-shop-thumbnail-wrap {
  position: static;
  display: block;
  height: 100%;
}

/* Remove the duplicate Astra/WCFM card output; the GPTV article remains. */
:where(.gptv-shop-page, body.woocommerce-shop, body.post-type-archive-product)
  .woocommerce
  ul.products
  li.product
  :is(
    .astra-shop-summary-wrap,
    .ast-on-card-button,
    .wcfmmp_sold_by_container
  ) {
  display: none !important;
}

.astra-shop-summary-wrap,
.wcfmmp_sold_by_container {
  display: none !important;
}


:where(.gptv-shop-page, body.woocommerce-shop, body.post-type-archive-product)
  .woocommerce
  nav.woocommerce-pagination {
  clear: both;
  margin: 34px 0 0;
}

:where(.gptv-shop-page, body.woocommerce-shop, body.post-type-archive-product)
  .woocommerce
  nav.woocommerce-pagination
  ul {
  display: flex;
  justify-content: center;
  gap: 8px;
  margin: 0;
  border: 0;
}

:where(.gptv-shop-page, body.woocommerce-shop, body.post-type-archive-product)
  .woocommerce
  nav.woocommerce-pagination
  ul
  li {
  border: 0;
}

:where(.gptv-shop-page, body.woocommerce-shop, body.post-type-archive-product)
  .woocommerce
  nav.woocommerce-pagination
  :is(a, span) {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  min-width: 42px;
  min-height: 42px;
  padding: 0 10px;
  border: 1px solid var(--gptv-shop-border);
  border-radius: 12px;
  background: var(--gptv-shop-panel);
  color: var(--gptv-shop-muted);
  font-weight: 800;
  line-height: 1;
}

:where(.gptv-shop-page, body.woocommerce-shop, body.post-type-archive-product)
  .woocommerce
  nav.woocommerce-pagination
  :is(a:hover, span.current) {
  border-color: var(--gptv-shop-accent);
  background: var(--gptv-shop-accent);
  color: #fff;
}

/* =========================================================
   4. WCFM public creator store /store/{user}
   ========================================================= */

#wcfmmp-store,
#wcfmmp-store #wcfmmp-store-content,
#wcfmmp-store .wcfmmp-store-page-wrap {
  width: 100% !important;
  max-width: none !important;
  margin: 0 !important;
  padding: 30px 0px !important;
  border: 0 !important;
  background: transparent !important;
  color: var(--gptv-shop-muted) !important;
  box-shadow: none !important;
}

/* Keep WCFM's dynamic banner image. Only its duplicated store header is hidden. */
#wcfmmp-store
  :is(
    #wcfm_store_header,
    .wcfmmp-store-info,
    .wcfmmp-store-banner,
    .wcfmmp-store-tabs
  ) {
  display: none !important;
}

#wcfmmp-store .wcfm_banner_area {
  position: relative;
  z-index: 1;
  display: block !important;
  width: 100%;
  overflow: hidden;
  margin: 0 !important;
  padding: 0 !important;
  border: 1px solid var(--gptv-shop-border) !important;
  border-radius: 26px !important;
  background: var(--gptv-shop-panel-2);
  box-shadow: var(--gptv-shop-shadow);
}

#wcfmmp-store .wcfm_banner_area .banner_area {
  width: 100% !important;
  margin: 0 !important;
}

/*
 * WCFM places the real, store-specific banner on .banner_img.
 * Do not declare background-image here: it must remain controlled by WCFM.
 */
#wcfmmp-store .wcfm_banner_area .banner_img {
  position: relative;
  display: block !important;
  width: 100% !important;
  overflow: hidden;
  margin: 0 !important;
  background-position: center !important;
  background-repeat: no-repeat !important;
  background-size: cover !important;
}

#wcfmmp-store .wcfm_banner_area .banner_img img {
  width: 100% !important;
  height: 100% !important;
  margin: 0 !important;
  object-fit: cover;
  object-position: center;
}

/* The creator data already appears in the GPTV card below the banner. */
#wcfmmp-store .wcfm_banner_area .banner_text {
  display: none !important;
}

#wcfmmp-store section.gptv-store-header {
  position: relative;
  z-index: 2;
  display: block !important;
  width: calc(100% - 32px);
  overflow: hidden;
  margin: -58px 16px 26px !important;
  padding: 0 !important;
  border-radius: 22px;
  background: rgba(16, 23, 32, 0.96);
  box-shadow: 0 22px 62px rgba(0, 0, 0, 0.38);
  backdrop-filter: blur(14px);
}

.gptv-store-header__cover {
  display: none;
}

.gptv-store-header__inner {
  position: relative;
  display: grid;
  grid-template-columns: auto minmax(0, 1fr) auto;
  gap: 20px;
  align-items: center;
  margin: 0;
  padding: 22px 24px;
}

.gptv-store-header__avatar {
  position: relative;
  z-index: 2;
  display: block;
  width: 104px;
  height: 104px;
  overflow: hidden;
  flex: 0 0 104px;
  border: 4px solid var(--gptv-shop-panel);
  border-radius: 50%;
  background: var(--gptv-shop-panel-2);
  box-shadow: 0 12px 30px rgba(0, 0, 0, 0.28);
}

.gptv-store-header__avatar img {
  display: block;
  width: 100% !important;
  height: 100% !important;
  margin: 0 !important;
  border-radius: inherit;
  object-fit: cover;
}

.gptv-store-header__copy {
  min-width: 0;
  padding-top: 0;
}

.gptv-store-header__copy h1 {
  overflow: hidden;
  font-size: clamp(28px, 3.4vw, 38px) !important;
  text-overflow: ellipsis;
}

.gptv-store-header__username {
  display: inline-flex;
  margin-top: 5px;
  color: var(--gptv-shop-muted) !important;
  font-size: 14px;
  font-weight: 700;
  text-decoration: none !important;
}

.gptv-store-header__username:hover {
  color: #fff !important;
}

.gptv-store-header__stats,
.gptv-store-header__actions {
  display: flex;
  flex-wrap: wrap;
  gap: 9px;
}

.gptv-store-header__stats {
  margin-top: 15px;
}

.gptv-store-header__stats span {
  display: inline-flex;
  align-items: center;
  min-height: 34px;
  gap: 5px;
  padding: 0 12px;
  border: 1px solid var(--gptv-shop-border);
  border-radius: 999px;
  background: rgba(255, 255, 255, 0.045);
  color: var(--gptv-shop-muted);
  font-size: 12px;
  font-weight: 700;
  line-height: 1;
}

.gptv-store-header__stats strong {
  color: var(--gptv-shop-text);
  font-weight: 900;
}

.gptv-store-header__actions {
  justify-content: flex-end;
  padding-bottom: 5px;
}

.gptv-store-header__actions > .gptv-cart-link-fragment:not(:empty) {
  display: inline-flex;
}

.gptv-store-header__button {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  min-height: 42px;
  margin: 0 !important;
  padding: 0 16px !important;
  border: 1px solid var(--gptv-shop-border) !important;
  border-radius: 13px !important;
  background: rgba(255, 255, 255, 0.055) !important;
  color: #fff !important;
  cursor: pointer;
  font: inherit;
  font-size: 13px;
  font-weight: 800;
  line-height: 1;
  text-decoration: none !important;
  transition:
    background-color var(--gptv-shop-transition),
    border-color var(--gptv-shop-transition),
    transform var(--gptv-shop-transition);
}

.gptv-store-header__button:hover,
.gptv-store-header__button--follow {
  border-color: var(--gptv-shop-accent) !important;
  background: var(--gptv-shop-accent) !important;
}

.gptv-store-header__button--follow.is-following {
  border-color: var(--gptv-shop-border) !important;
  background: rgba(255, 255, 255, 0.075) !important;
}

#wcfmmp-store .body_area {
  display: grid !important;
  grid-template-columns: minmax(0, 1fr) 280px;
  grid-template-areas: "products sidebar";
  gap: 24px;
  width: 100% !important;
  margin: 0 !important;
  padding: 0 !important;
}

#wcfmmp-store .body_area::before,
#wcfmmp-store .body_area::after {
  display: none !important;
  content: none !important;
}

#wcfmmp-store .body_area > .right_side {
  grid-area: products;
}

#wcfmmp-store .body_area > .left_sidebar {
  grid-area: sidebar;
}

#wcfmmp-store .body_area > :is(.right_side, .left_sidebar) {
  float: none !important;
  width: auto !important;
  min-width: 0;
  height: auto !important;
  margin: 0 !important;
  padding: 0 !important;
  border: 0 !important;
  background: transparent !important;
}

#wcfmmp-store .body_area > .spacer {
  display: none !important;
}

#wcfmmp-store
  :is(
    .tab_area,
    .product_area,
    .products-wrapper,
    #products,
    #products-wrapper
  ) {
  float: none !important;
  width: 100% !important;
  min-width: 0;
  margin-right: 0 !important;
  margin-left: 0 !important;
}

#wcfmmp-store .tab_links_area {
  width: 100%;
  margin: 0 0 22px !important;
}

#wcfmmp-store .tab_area ul.tab_links {
  display: flex !important;
  float: none !important;
  width: 100% !important;
  flex-wrap: wrap;
  gap: 8px;
  margin: 0 !important;
  padding: 0 !important;
  border: 0 !important;
  background: transparent !important;
}

#wcfmmp-store .tab_area ul.tab_links::before,
#wcfmmp-store .tab_area ul.tab_links::after {
  display: none !important;
  content: none !important;
}

#wcfmmp-store .tab_area ul.tab_links li,
#wcfmmp-store .tab_area ul.tab_links li.active {
  float: none !important;
  width: auto !important;
  margin: 0 !important;
  padding: 0 !important;
  border: 0 !important;
  background: transparent !important;
  list-style: none !important;
}

#wcfmmp-store .tab_area ul.tab_links li::after {
  display: none !important;
}

#wcfmmp-store .tab_area ul.tab_links li a {
  display: inline-flex !important;
  align-items: center;
  min-height: 40px;
  padding: 0 14px !important;
  border: 1px solid var(--gptv-shop-border) !important;
  border-radius: 999px;
  background: rgba(255, 255, 255, 0.045) !important;
  color: var(--gptv-shop-muted) !important;
  font-size: 12px !important;
  font-weight: 800 !important;
  letter-spacing: 0;
  line-height: 1 !important;
  text-decoration: none !important;
  text-transform: none !important;
}

#wcfmmp-store .tab_area ul.tab_links li:is(.active, :hover) a {
  border-color: var(--gptv-shop-accent) !important;
  background: var(--gptv-shop-accent) !important;
  color: #fff !important;
}

#wcfmmp-store .woocommerce-result-count {
  float: left !important;
  margin: 0 0 20px !important;
  color: var(--gptv-shop-dim) !important;
  font-size: 13px;
  font-weight: 700;
  line-height: 46px;
}

#wcfmmp-store .woocommerce-ordering {
  float: right !important;
  margin: 0 0 20px !important;
}

#wcfmmp-store .woocommerce-ordering select,
#wcfmmp-store input[type="email"],
#wcfmmp-store input[type="search"],
#wcfmmp-store input[type="text"],
#wcfmmp-store select,
#wcfmmp-store textarea {
  width: 100%;
  min-height: 46px;
  margin: 0;
  padding: 0 14px;
  border: 1px solid var(--gptv-shop-border) !important;
  border-radius: 13px !important;
  background: var(--gptv-shop-field) !important;
  color: var(--gptv-shop-text) !important;
  box-shadow: none !important;
  font: inherit;
  font-size: 13px;
}

#wcfmmp-store .woocommerce-ordering select {
  min-width: 230px;
  padding-right: 42px;
}

#wcfmmp-store textarea {
  min-height: 120px;
  padding-top: 12px;
  padding-bottom: 12px;
  resize: vertical;
}

#wcfmmp-store :is(input, select, textarea)::placeholder {
  color: var(--gptv-shop-dim);
  opacity: 1;
}

#wcfmmp-store :is(input, select, textarea):focus {
  border-color: var(--gptv-shop-accent-hover) !important;
  outline: 0;
  box-shadow: 0 0 0 3px rgba(152, 145, 240, 0.15) !important;
}

#wcfmmp-store ul.products {
  display: grid !important;
  clear: both;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: 18px;
  width: 100%;
  margin: 0 !important;
  padding: 0 !important;
}

#wcfmmp-store ul.products::before,
#wcfmmp-store ul.products::after {
  display: none !important;
  content: none !important;
}

#wcfmmp-store ul.products li.product {
  display: block;
  float: none !important;
  width: auto !important;
  min-width: 0;
  margin: 0 !important;
  padding: 0 !important;
  border: 0 !important;
  background: transparent !important;
}

#wcfmmp-store ul.products li.product .astra-shop-thumbnail-wrap {
  position: static;
  display: block;
  height: 100%;
}

#wcfmmp-store
  ul.products
  li.product
  :is(
    .astra-shop-summary-wrap,
    .ast-on-card-button,
    .wcfmmp_sold_by_container
  ) {
  display: none !important;
}

#wcfmmp-store .left_sidebar {
  align-self: start;
}

#wcfmmp-store .left_sidebar .widget {
  width: 100%;
  margin: 0 0 18px !important;
  padding: 18px !important;
  border: 1px solid var(--gptv-shop-border) !important;
  border-radius: 18px !important;
  background: var(--gptv-shop-panel) !important;
  color: var(--gptv-shop-muted) !important;
  box-shadow: none !important;
}

#wcfmmp-store .left_sidebar .sidebar_heading {
  margin: 0 0 12px !important;
  padding: 0 !important;
  border: 0 !important;
  background: transparent !important;
}

#wcfmmp-store .left_sidebar :is(.sidebar_heading h4, .widget-title) {
  margin: 0 !important;
  color: var(--gptv-shop-text) !important;
  font-size: 15px !important;
  font-weight: 900 !important;
  line-height: 1.25 !important;
  text-transform: none !important;
}

#wcfmmp-store .woocommerce-product-search {
  display: grid;
  gap: 10px;
}

#wcfmmp-store .woocommerce-product-search button {
  display: inline-flex !important;
  align-items: center;
  justify-content: center;
  width: 100%;
  min-height: 44px;
  margin: 0 !important;
  padding: 0 14px !important;
  border: 1px solid var(--gptv-shop-accent) !important;
  border-radius: 12px !important;
  background: var(--gptv-shop-accent) !important;
  color: #fff !important;
  cursor: pointer;
  font: inherit;
  font-size: 13px;
  font-weight: 800;
  line-height: 1;
}

#wcfmmp-store .woocommerce-product-search button:hover {
  border-color: var(--gptv-shop-accent-hover) !important;
  background: var(--gptv-shop-accent-hover) !important;
}

#wcfmmp-store :is(.policies_area, .reviews_area, .wcfm_store_description) {
  display: block;
  width: 100%;
  margin: 0 !important;
  padding: 24px !important;
  border: 1px solid var(--gptv-shop-border) !important;
  border-radius: 22px !important;
  background: var(--gptv-shop-panel) !important;
  color: var(--gptv-shop-muted) !important;
  box-shadow: none !important;
}

#wcfmmp-store :is(.reviews_heading, .wcfm_policies_heading) {
  margin: 0 0 18px !important;
  padding: 0 0 14px !important;
  border-bottom: 1px solid var(--gptv-shop-border) !important;
  color: var(--gptv-shop-text) !important;
  font-size: 19px !important;
  font-weight: 900 !important;
  line-height: 1.25 !important;
  text-transform: none !important;
}

#wcfmmp-store :is(.policies_area, .reviews_area, .wcfm_store_description) p {
  color: var(--gptv-shop-muted) !important;
  line-height: 1.65;
}

#wcfmmp-store del {
  color: var(--gptv-shop-dim) !important;
  opacity: 1;
}

#wcfmmp-store ins {
  background: transparent;
  color: var(--gptv-shop-text);
}

/* =========================================================
   5. Single product /product/{slug}
   ========================================================= */

:where(.gptv-product-page, body.single-product) .ast-woocommerce-container {
  width: 100%;
  color: var(--gptv-shop-muted);
}

:where(.gptv-product-page, body.single-product)
  .woocommerce-notices-wrapper:not(:empty) {
  margin-bottom: 20px;
}

:where(.gptv-product-page, body.single-product)
  :is(.woocommerce-message, .woocommerce-info, .woocommerce-error) {
  margin: 0 0 18px;
  padding: 16px 18px 16px 48px;
  border: 1px solid rgba(152, 145, 240, 0.24);
  border-top: 1px solid rgba(152, 145, 240, 0.24);
  border-radius: 16px;
  background: var(--gptv-shop-panel);
  color: var(--gptv-shop-text);
}

:where(.gptv-product-page, body.single-product)
  :is(.woocommerce-message, .woocommerce-info, .woocommerce-error)::before {
  top: 16px;
  color: var(--gptv-shop-accent-hover);
}

:where(.gptv-product-page, body.single-product)
  :is(.woocommerce-message, .woocommerce-info, .woocommerce-error)
  a {
  color: #fff;
  font-weight: 800;
}

:where(.gptv-product-page, body.single-product) div.product {
  display: grid;
  grid-template-columns: minmax(320px, 0.92fr) minmax(0, 1.08fr);
  gap: 28px;
  align-items: start;
  margin: 0;
}

:where(.gptv-product-page, body.single-product) div.product::before,
:where(.gptv-product-page, body.single-product) div.product::after {
  display: none !important;
  content: none !important;
}

:where(.gptv-product-page, body.single-product)
  div.product
  > :is(.woocommerce-product-gallery, .summary, .woocommerce-tabs) {
  float: none !important;
  width: auto !important;
  min-width: 0;
  margin: 0 !important;
}

:where(.gptv-product-page, body.single-product)
  div.product
  > .woocommerce-product-gallery {
  position: sticky;
  overflow: hidden;
  border: 1px solid var(--gptv-shop-border);
  border-radius: var(--gptv-shop-radius);
  background: var(--gptv-shop-panel);
  box-shadow: var(--gptv-shop-shadow);
}

:where(.gptv-product-page, body.single-product)
  .woocommerce-product-gallery__wrapper,
:where(.gptv-product-page, body.single-product)
  .woocommerce-product-gallery__image,
:where(.gptv-product-page, body.single-product)
  .woocommerce-product-gallery__image--placeholder {
  margin: 0 !important;
  background: var(--gptv-shop-panel-2);
}

:where(.gptv-product-page, body.single-product)
  .woocommerce-product-gallery__image,
:where(.gptv-product-page, body.single-product)
  .woocommerce-product-gallery__image--placeholder {
  display: flex !important;
  align-items: center;
  justify-content: center;
  aspect-ratio: 1 / 1;
}

:where(.gptv-product-page, body.single-product)
  .woocommerce-product-gallery__image
  img,
:where(.gptv-product-page, body.single-product)
  .woocommerce-product-gallery__image--placeholder
  img {
  display: block;
  width: 100% !important;
  height: 100% !important;
  margin: 0 !important;
  object-fit: contain;
  object-position: center;
}

body.woocommerce-js.single-product
  div.product
  div.images
  .woocommerce-product-gallery__wrapper
  .zoomImg {
  background-color: transparent !important;
}

:where(.gptv-product-page, body.single-product)
  .woocommerce-product-gallery
  .flex-control-thumbs {
  display: grid;
  grid-template-columns: repeat(5, minmax(0, 1fr));
  gap: 8px;
  margin: 10px !important;
  padding: 0;
}

:where(.gptv-product-page, body.single-product)
  .woocommerce-product-gallery
  .flex-control-thumbs
  li {
  float: none !important;
  width: auto !important;
  overflow: hidden;
  border: 1px solid var(--gptv-shop-border);
  border-radius: 10px;
}

:where(.gptv-product-page, body.single-product)
  .woocommerce-product-gallery
  .woocommerce-product-gallery__trigger {
  top: 14px;
  right: 14px;
  border: 1px solid var(--gptv-shop-border);
  background: rgba(9, 13, 18, 0.76);
  color: #fff;
  backdrop-filter: blur(10px);
}

:where(.gptv-product-page, body.single-product) div.product > .summary {
  padding: 26px;
  border: 1px solid var(--gptv-shop-border);
  border-radius: var(--gptv-shop-radius);
  background:
    linear-gradient(180deg, rgba(255, 255, 255, 0.025), transparent 34%),
    var(--gptv-shop-panel);
  color: var(--gptv-shop-muted);
  box-shadow: var(--gptv-shop-shadow);
}

:where(.gptv-product-page, body.single-product) .woocommerce-breadcrumb {
  margin: 0 0 13px !important;
  color: var(--gptv-shop-dim) !important;
  font-size: 12px;
  font-weight: 650;
  line-height: 1.45;
}

:where(.gptv-product-page, body.single-product) .woocommerce-breadcrumb a {
  color: var(--gptv-shop-muted) !important;
  text-decoration: none !important;
}

:where(.gptv-product-page, body.single-product)
  .woocommerce-breadcrumb
  a:hover {
  color: #fff !important;
}

:where(.gptv-product-page, body.single-product) div.product .product_title {
  margin: 0 0 13px !important;
  color: var(--gptv-shop-text) !important;
  font-size: clamp(30px, 4vw, 42px) !important;
  font-weight: 900 !important;
  letter-spacing: -0.035em;
  line-height: 1.06 !important;
  text-transform: none !important;
}

:where(.gptv-product-page, body.single-product)
  div.product
  .single-product-category:empty {
  display: none;
}

:where(.gptv-product-page, body.single-product)
  div.product
  :is(p.price, span.price) {
  margin: 0 0 19px !important;
  color: var(--gptv-shop-text) !important;
  font-size: 25px !important;
  font-weight: 900 !important;
  line-height: 1.25;
}

:where(.gptv-product-page, body.single-product)
  div.product
  :is(p.price, span.price)
  del {
  margin-right: 7px;
  color: var(--gptv-shop-dim) !important;
  font-size: 0.72em;
  opacity: 1;
}

:where(.gptv-product-page, body.single-product)
  div.product
  :is(p.price, span.price)
  ins {
  background: transparent;
  color: inherit;
  text-decoration: none;
}

:where(.gptv-product-page, body.single-product) .woocommerce-product-rating {
  display: flex;
  align-items: center;
  gap: 8px;
  margin: 0 0 16px !important;
  color: var(--gptv-shop-muted);
  font-size: 13px;
}

:where(.gptv-product-page, body.single-product) :is(.star-rating, p.stars a) {
  color: var(--gptv-shop-accent-hover) !important;
}

:where(.gptv-product-page, body.single-product)
  .woocommerce-product-details__short-description {
  margin: 0 0 20px;
  color: var(--gptv-shop-muted);
  font-size: 15px;
  line-height: 1.65;
}

:where(.gptv-product-page, body.single-product)
  .woocommerce-product-details__short-description
  > :last-child {
  margin-bottom: 0;
}

:where(.gptv-product-page, body.single-product) div.product form.cart {
  display: flex;
  clear: both;
  flex-wrap: wrap;
  gap: 10px;
  align-items: center;
  margin: 0 0 20px !important;
  padding: 0;
}

:where(.gptv-product-page, body.single-product) div.product form.cart::before,
:where(.gptv-product-page, body.single-product) div.product form.cart::after {
  display: none !important;
  content: none !important;
}

:where(.gptv-product-page, body.single-product) div.product .quantity {
  float: none !important;
  margin: 0 !important;
}

:where(.gptv-product-page, body.single-product) div.product .quantity .qty {
  width: 82px;
  min-height: 50px;
  margin: 0;
  padding: 0 10px;
  border: 1px solid var(--gptv-shop-border);
  border-radius: 13px;
  background: var(--gptv-shop-field);
  color: var(--gptv-shop-text);
  box-shadow: none;
  font-size: 14px;
  font-weight: 800;
  text-align: center;
}

:where(.gptv-product-page, body.single-product)
  div.product
  :is(.single_add_to_cart_button, button.single_add_to_cart_button),
:where(.gptv-product-page, body.single-product) .wcfm_catalog_enquiry,
:where(.gptv-product-page, body.single-product) #review_form #submit {
  display: inline-flex !important;
  align-items: center;
  justify-content: center;
  min-height: 50px;
  margin: 0 !important;
  padding: 0 20px !important;
  border: 1px solid var(--gptv-shop-accent) !important;
  border-radius: 13px !important;
  background: var(--gptv-shop-accent) !important;
  color: #fff !important;
  cursor: pointer;
  font: inherit;
  font-size: 14px;
  font-weight: 900 !important;
  line-height: 1 !important;
  text-decoration: none !important;
  box-shadow: 0 10px 28px rgba(94, 86, 255, 0.23);
  transition:
    background-color var(--gptv-shop-transition),
    border-color var(--gptv-shop-transition),
    transform var(--gptv-shop-transition);
}

:where(.gptv-product-page, body.single-product)
  div.product
  .single_add_to_cart_button:hover,
:where(.gptv-product-page, body.single-product) .wcfm_catalog_enquiry:hover,
:where(.gptv-product-page, body.single-product) #review_form #submit:hover {
  border-color: var(--gptv-shop-accent-hover) !important;
  background: var(--gptv-shop-accent-hover) !important;
  color: #fff !important;
  transform: translateY(-1px);
}

:where(.gptv-product-page, body.single-product)
  div.product
  .single_add_to_cart_button.disabled {
  cursor: not-allowed;
  opacity: 0.48;
  transform: none;
}

:where(.gptv-product-page, body.single-product) div.product .stock {
  margin: 0 0 14px;
  color: var(--gptv-shop-success) !important;
  font-size: 13px;
  font-weight: 800;
}

:where(.gptv-product-page, body.single-product)
  div.product
  .stock.out-of-stock {
  color: var(--gptv-shop-danger) !important;
}

:where(.gptv-product-page, body.single-product) div.product table.variations {
  width: 100%;
  margin: 0 0 16px;
  border: 0;
}

:where(.gptv-product-page, body.single-product)
  div.product
  table.variations
  :is(th, td) {
  display: block;
  width: 100%;
  padding: 0 0 8px;
  border: 0;
  background: transparent;
  text-align: left;
}

:where(.gptv-product-page, body.single-product)
  div.product
  table.variations
  label {
  color: var(--gptv-shop-text);
  font-size: 13px;
  font-weight: 800;
}

:where(.gptv-product-page, body.single-product)
  div.product
  table.variations
  select {
  width: 100%;
  min-height: 48px;
  padding: 0 42px 0 14px;
  border: 1px solid var(--gptv-shop-border);
  border-radius: 13px;
  background: var(--gptv-shop-field);
  color: var(--gptv-shop-text);
  box-shadow: none;
}

:where(.gptv-product-page, body.single-product) .reset_variations {
  display: inline-flex;
  margin-top: 7px;
  color: var(--gptv-shop-accent-hover) !important;
  font-size: 12px;
  font-weight: 800;
  text-decoration: none !important;
}

:where(.gptv-product-page, body.single-product)
  .woocommerce-variation-add-to-cart {
  display: flex;
  flex-wrap: wrap;
  gap: 10px;
}

:where(.gptv-product-page, body.single-product) div.product .product_meta {
  margin: 20px 0 0 !important;
  padding: 0 !important;
  border: 0 !important;
  color: var(--gptv-shop-muted);
  font-size: 13px;
}

:where(.gptv-product-page, body.single-product)
  div.product
  .product_meta
  > span {
  display: block;
  margin-top: 6px;
}

:where(.gptv-product-page, body.single-product) div.product .product_meta a {
  color: var(--gptv-shop-accent-hover) !important;
  font-weight: 700;
  text-decoration: none !important;
}

:where(.gptv-product-page, body.single-product)
  .wcfmmp_sold_by_container_advanced {
  display: grid;
  grid-template-columns: auto minmax(0, 1fr);
  gap: 10px 12px;
  align-items: center;
  width: 100%;
  margin-top: 6px;
  padding: 15px;
  border: 1px solid var(--gptv-shop-border);
  border-radius: 16px;
  background: rgba(255, 255, 255, 0.035);
  color: var(--gptv-shop-muted);
}

:where(.gptv-product-page, body.single-product)
  .wcfmmp_sold_by_container_advanced
  .wcfmmp_sold_by_label {
  grid-column: 1 / -1;
  margin: 0;
  color: var(--gptv-shop-dim);
  font-size: 10px;
  font-weight: 900;
  letter-spacing: 0.12em;
  line-height: 1.2;
  text-transform: uppercase;
}

:where(.gptv-product-page, body.single-product) .wcfmmp_sold_by_container_left {
  float: none;
  width: auto;
  margin: 0;
}

:where(.gptv-product-page, body.single-product)
  .wcfmmp_sold_by_container_left
  img {
  display: block;
  width: 46px !important;
  height: 46px !important;
  margin: 0 !important;
  border: 1px solid var(--gptv-shop-border);
  border-radius: 50%;
  object-fit: cover;
}

:where(.gptv-product-page, body.single-product)
  .wcfmmp_sold_by_container_right {
  float: none;
  width: auto;
  min-width: 0;
  margin: 0;
}

:where(.gptv-product-page, body.single-product) .wcfmmp_sold_by_store a {
  color: var(--gptv-shop-text) !important;
  font-size: 14px;
  font-weight: 900;
  text-decoration: none !important;
}

:where(.gptv-product-page, body.single-product) .wcfmmp_sold_by_store a:hover {
  color: var(--gptv-shop-accent-hover) !important;
}

:where(.gptv-product-page, body.single-product) .wcfmmp-store-rating {
  margin-top: 2px;
  color: var(--gptv-shop-dim) !important;
  font-size: 11px;
}

:where(.gptv-product-page, body.single-product)
  .first-payment-date:has(small:empty) {
  display: none;
}

:where(.gptv-product-page, body.single-product)
  .wcfm_catalog_enquiry_button_wrapper {
  display: flex;
  margin-top: 12px;
}

:where(.gptv-product-page, body.single-product)
  .wcfm_catalog_enquiry_button_wrapper
  .wcfm-clearfix {
  display: none;
}

:where(.gptv-product-page, body.single-product) .wcfm_catalog_enquiry {
  width: 100%;
}

:where(.gptv-product-page, body.single-product)
  div.product
  > .woocommerce-tabs {
  grid-column: 1 / -1;
  margin-top: 2px !important;
  padding: 24px;
  border: 1px solid var(--gptv-shop-border);
  border-radius: var(--gptv-shop-radius);
  background: var(--gptv-shop-panel);
  color: var(--gptv-shop-muted);
  box-shadow: 0 20px 58px rgba(0, 0, 0, 0.22);
}

:where(.gptv-product-page, body.single-product) .woocommerce-tabs ul.tabs {
  display: flex;
  gap: 8px;
  overflow-x: auto;
  margin: 0 0 22px !important;
  padding: 0 0 2px !important;
  border: 0 !important;
  scrollbar-width: none;
}

:where(.gptv-product-page, body.single-product)
  .woocommerce-tabs
  ul.tabs::-webkit-scrollbar {
  display: none;
}

:where(.gptv-product-page, body.single-product)
  .woocommerce-tabs
  ul.tabs::before,
:where(.gptv-product-page, body.single-product)
  .woocommerce-tabs
  ul.tabs::after {
  display: none !important;
  content: none !important;
}

:where(.gptv-product-page, body.single-product) .woocommerce-tabs ul.tabs li {
  flex: 0 0 auto;
  margin: 0 !important;
  padding: 0 !important;
  border: 0 !important;
  border-radius: 999px !important;
  background: transparent !important;
}

:where(.gptv-product-page, body.single-product)
  .woocommerce-tabs
  ul.tabs
  li::before,
:where(.gptv-product-page, body.single-product)
  .woocommerce-tabs
  ul.tabs
  li::after {
  display: none !important;
  content: none !important;
}

:where(.gptv-product-page, body.single-product) .woocommerce-tabs ul.tabs li a {
  display: inline-flex !important;
  align-items: center;
  min-height: 40px;
  padding: 0 14px !important;
  border: 1px solid var(--gptv-shop-border);
  border-radius: 999px;
  background: rgba(255, 255, 255, 0.045);
  color: var(--gptv-shop-muted) !important;
  font-size: 12px;
  font-weight: 800 !important;
  line-height: 1;
  text-decoration: none !important;
  white-space: nowrap;
}

:where(.gptv-product-page, body.single-product)
  .woocommerce-tabs
  ul.tabs
  li:is(.active, :hover)
  a {
  border-color: var(--gptv-shop-accent);
  background: var(--gptv-shop-accent);
  color: #fff !important;
}

:where(.gptv-product-page, body.single-product)
  .woocommerce-tabs
  .woocommerce-Tabs-panel {
  margin: 0 !important;
  padding: 0 !important;
  border: 0 !important;
  background: transparent !important;
  color: var(--gptv-shop-muted);
  line-height: 1.65;
}

:where(.gptv-product-page, body.single-product)
  .woocommerce-tabs
  .woocommerce-Tabs-panel
  > :last-child {
  margin-bottom: 0;
}

:where(.gptv-product-page, body.single-product)
  :is(
    .woocommerce-Tabs-panel h2,
    .woocommerce-Reviews-title,
    .comment-reply-title,
    .wcfm-enquiries-heading
  ) {
  margin: 0 0 16px !important;
  color: var(--gptv-shop-text) !important;
  font-size: 20px !important;
  font-weight: 900 !important;
  line-height: 1.25 !important;
  text-transform: none !important;
}

:where(.gptv-product-page, body.single-product)
  :is(
    .woocommerce-Tabs-panel p,
    .woocommerce-noreviews,
    .wcfm-noenquiries,
    #reviews
  ) {
  color: var(--gptv-shop-muted) !important;
}

:where(.gptv-product-page, body.single-product)
  table.woocommerce-product-attributes {
  overflow: hidden;
  border: 1px solid var(--gptv-shop-border);
  border-radius: 14px;
}

:where(.gptv-product-page, body.single-product)
  table.woocommerce-product-attributes
  :is(th, td) {
  padding: 12px 14px;
  border-color: var(--gptv-shop-border);
  background: transparent;
  color: var(--gptv-shop-muted);
}

:where(.gptv-product-page, body.single-product) #review_form_wrapper {
  margin-top: 24px;
  padding-top: 22px;
  border-top: 1px solid var(--gptv-shop-border);
}

:where(.gptv-product-page, body.single-product) #review_form label {
  display: inline-block;
  margin-bottom: 7px;
  color: var(--gptv-shop-muted) !important;
  font-size: 13px;
  font-weight: 800;
}

:where(.gptv-product-page, body.single-product) #review_form .required {
  color: var(--gptv-shop-pink);
}

:where(.gptv-product-page, body.single-product)
  #review_form
  :is(textarea, input[type="text"], input[type="email"]) {
  width: 100%;
  margin: 0;
  padding: 12px 14px;
  border: 1px solid var(--gptv-shop-border);
  border-radius: 13px;
  background: var(--gptv-shop-field);
  color: var(--gptv-shop-text);
  box-shadow: none;
}

:where(.gptv-product-page, body.single-product) #review_form textarea {
  min-height: 150px;
  resize: vertical;
}

:where(.gptv-product-page, body.single-product)
  #review_form
  :is(textarea, input):focus {
  border-color: var(--gptv-shop-accent-hover);
  outline: 0;
  box-shadow: 0 0 0 3px rgba(152, 145, 240, 0.15);
}

:where(.gptv-product-page, body.single-product) #review_form .form-submit {
  margin: 16px 0 0;
}

:where(.gptv-product-page, body.single-product)
  :is(.related.products, .up-sells.products) {
  margin-top: 34px;
}

:where(.gptv-product-page, body.single-product)
  :is(.related.products, .up-sells.products)
  > h2 {
  margin: 0 0 18px;
  color: var(--gptv-shop-text);
  font-size: 23px;
  font-weight: 900;
}

/* =========================================================
   6. Responsive
   ========================================================= */

@media (max-width: 1120px) {
  .gptv-product-grid,
  :where(.gptv-shop-page, body.woocommerce-shop, body.post-type-archive-product)
    .woocommerce
    ul.products {
    grid-template-columns: repeat(3, minmax(0, 1fr));
  }

  #wcfmmp-store ul.products {
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }
}

@media (max-width: 920px) {
  #wcfmmp-store .body_area {
    grid-template-columns: minmax(0, 1fr);
    grid-template-areas:
      "products"
      "sidebar";
  }

  #wcfmmp-store .left_sidebar {
    position: static;
  }

  #wcfmmp-store .left_sidebar .widget {
    max-width: none;
  }

  :where(.gptv-product-page, body.single-product) div.product {
    grid-template-columns: minmax(280px, 0.9fr) minmax(0, 1.1fr);
    gap: 20px;
  }
}

@media (max-width: 780px) {
  :where(
      .gptv-shop-page,
      .gptv-wcfm-store-page,
      .gptv-product-page,
      body.woocommerce-shop,
      body.post-type-archive-product,
      body.single-product
    )
    .site-content
    > .ast-container {
    padding-inline: 14px;
  }

  :where(
      .gptv-shop-page,
      .gptv-wcfm-store-page,
      .gptv-product-page,
      body.woocommerce-shop,
      body.post-type-archive-product,
      body.single-product
    )
    #primary {
    padding: 20px 0 56px;
  }

  @supports selector(body:has(#wcfmmp-store)) {
    body:has(#wcfmmp-store) .site-content > .ast-container {
      padding-inline: 14px;
    }

    body:has(#wcfmmp-store) #primary {
      padding: 20px 0 56px;
    }
  }

  .gptv-product-grid,
  :where(.gptv-shop-page, body.woocommerce-shop, body.post-type-archive-product)
    .woocommerce
    ul.products {
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 12px;
  }

  .gptv-product-card__content {
    min-height: 158px;
    padding: 12px;
  }

  .gptv-product-card--feed {
    flex-basis: auto;
  }

  .gptv-shop-hero {
    min-height: 0;
    margin-bottom: 22px;
    padding: 25px 22px;
    border-radius: 21px;
  }

  .gptv-shop-hero::after {
    right: -52px;
  }

  .gptv-store-header__inner {
    grid-template-columns: auto minmax(0, 1fr);
    gap: 16px;
    padding: 20px;
  }

  .gptv-store-header__actions {
    grid-column: 1 / -1;
    justify-content: flex-start;
    padding: 0;
  }

  :where(.gptv-product-page, body.single-product) div.product {
    grid-template-columns: 1fr;
  }

  :where(.gptv-product-page, body.single-product)
    div.product
    > .woocommerce-product-gallery {
    position: relative;
    top: auto;
  }

  :where(.gptv-product-page, body.single-product)
    div.product
    > :is(.summary, .woocommerce-tabs) {
    padding: 20px;
    border-radius: 20px;
  }
}

@media (max-width: 620px) {
  :where(.gptv-shop-page, body.woocommerce-shop, body.post-type-archive-product)
    .woocommerce-result-count,
  #wcfmmp-store .woocommerce-result-count {
    float: none !important;
    margin: 0 0 10px !important;
    line-height: 1.4;
  }

  :where(.gptv-shop-page, body.woocommerce-shop, body.post-type-archive-product)
    .woocommerce-ordering,
  #wcfmmp-store .woocommerce-ordering {
    float: none !important;
    width: 100%;
    margin: 0 0 18px !important;
  }

  :where(.gptv-shop-page, body.woocommerce-shop, body.post-type-archive-product)
    .woocommerce-ordering
    select,
  #wcfmmp-store .woocommerce-ordering select {
    width: 100%;
    min-width: 0;
  }

  #wcfmmp-store section.gptv-store-header {
    width: calc(100% - 20px);
    margin: -38px 10px 22px !important;
    border-radius: 18px;
  }

  #wcfmmp-store .wcfm_banner_area {
    border-radius: 21px !important;
  }

  .gptv-store-header__inner {
    grid-template-columns: 1fr;
    gap: 11px;
    margin: 0;
    padding: 18px;
  }

  .gptv-store-header__avatar {
    width: 90px;
    height: 90px;
  }

  .gptv-store-header__copy {
    padding-top: 0;
  }

  .gptv-store-header__actions {
    grid-column: auto;
  }

  #wcfmmp-store .tab_area ul.tab_links {
    flex-wrap: nowrap;
    overflow-x: auto;
    padding-bottom: 3px !important;
    scrollbar-width: none;
  }

  #wcfmmp-store .tab_area ul.tab_links::-webkit-scrollbar {
    display: none;
  }

  #wcfmmp-store ul.products {
    gap: 12px;
  }

  :where(.gptv-product-page, body.single-product) div.product form.cart {
    align-items: stretch;
    flex-direction: column;
  }

  :where(.gptv-product-page, body.single-product)
    div.product
    :is(.quantity, .quantity .qty, .single_add_to_cart_button),
  :where(.gptv-product-page, body.single-product)
    .woocommerce-variation-add-to-cart {
    width: 100%;
  }
}

@media (max-width: 480px) {
  .gptv-product-grid:not(.gptv-product-grid--feed),
  :where(.gptv-shop-page, body.woocommerce-shop, body.post-type-archive-product)
    .woocommerce
    ul.products,
  #wcfmmp-store ul.products {
    grid-template-columns: 1fr;
  }

  .gptv-product-card--feed {
    flex-basis: auto;
  }

  .gptv-product-card__actions {
    align-items: stretch;
  }

  .gptv-product-card__button {
    min-width: 0;
  }

  .gptv-shop-hero p {
    font-size: 14px;
  }

  .gptv-store-header__button {
    flex: 1 1 calc(50% - 5px);
  }

  .gptv-store-header__actions > .gptv-cart-link-fragment:not(:empty) {
    flex: 1 1 calc(50% - 5px);
  }

  .gptv-store-header__actions .gptv-cart-link {
    width: 100%;
  }

  :where(.gptv-product-page, body.single-product)
    div.product
    > :is(.summary, .woocommerce-tabs) {
    padding: 17px;
  }
}

@media (prefers-reduced-motion: reduce) {
  .gptv-product-card,
  .gptv-product-card__button,
  .gptv-product-card__profile,
  .gptv-store-header__button,
  :where(.gptv-product-page, body.single-product)
    div.product
    .single_add_to_cart_button {
    scroll-behavior: auto;
    transition: none !important;
  }

  .gptv-product-card:hover,
  .gptv-product-card:focus-within {
    transform: none;
  }
}
