/* Shop layout */

body.gnsc-shop-enhanced {
  --gnsc-shop-surface-1: #0f1b33;
  --gnsc-shop-surface-2: #0b1220;
  --gnsc-shop-surface-3: rgba(9, 18, 34, 0.92);
  --gnsc-shop-border-soft: rgba(112, 141, 194, 0.18);
  --gnsc-shop-border-strong: var(--gnsc-shop-card-border, #22365e);
  --gnsc-shop-text-main: #f8fbff;
  --gnsc-shop-text-soft: #b9c6de;
  --gnsc-shop-price: #ffffff;
  --gnsc-shop-accent: #5ea7ff;
  --gnsc-shop-accent-strong: #356dff;
  --gnsc-shop-shadow-soft: 0 24px 46px rgba(2, 8, 20, 0.16);
  --gnsc-shop-page-gutter: clamp(12px, 1.7vw, 28px);
  --gnsc-shop-page-max: min(1920px, calc(100vw - 12px));
  --gnsc-shop-content-pad: clamp(14px, 1.45vw, 22px);
  --gnsc-shop-dock-offset: 0px;
}

body.gnsc-shop-enhanced.gnsc-shop-mode-light {
  --gnsc-shop-surface-1: #ffffff;
  --gnsc-shop-surface-2: #f7faff;
  --gnsc-shop-surface-3: rgba(255, 255, 255, 0.95);
  --gnsc-shop-border-soft: rgba(30, 64, 175, 0.12);
  --gnsc-shop-border-strong: rgba(37, 99, 235, 0.18);
  --gnsc-shop-text-main: #0f172a;
  --gnsc-shop-text-soft: #475569;
  --gnsc-shop-price: #0f172a;
  --gnsc-shop-accent: #2563eb;
  --gnsc-shop-accent-strong: #1d4ed8;
  --gnsc-shop-shadow-soft: 0 18px 36px rgba(15, 23, 42, 0.08);
}

body.gnsc-shop-enhanced .site-main--shop {
  padding-inline: 0;
}

body.gnsc-shop-enhanced .site-main--shop > .container {
  width: min(calc(100% - (var(--gnsc-shop-page-gutter) * 2)), var(--gnsc-shop-page-max));
  max-width: none;
}

body.gnsc-shop-enhanced .site-main--shop .content-grid,
body.gnsc-shop-enhanced .site-main--shop .content-grid--full,
body.gnsc-shop-enhanced .site-main--shop .content-column--shop,
body.gnsc-shop-enhanced .gnsc-shop-shell-wrap,
body.gnsc-shop-enhanced .gnsc-shop-shell,
body.gnsc-shop-enhanced .gnsc-shop-shell__content {
  width: 100%;
  max-width: none;
  min-width: 0;
}

body.gnsc-shop-enhanced .site-main--shop .content-grid,
body.gnsc-shop-enhanced .site-main--shop .content-grid--full {
  display: block;
}

body.gnsc-shop-enhanced .site-main--shop .content-column--shop {
  padding: var(--gnsc-shop-content-pad);
  padding-left: calc(var(--gnsc-shop-content-pad) + var(--gnsc-shop-dock-offset));
  border-radius: clamp(20px, 2.1vw, 30px);
  transition: padding-left .26s ease, padding .26s ease;
}

body.gnsc-shop-enhanced.gnsc-shop-nav-desktop.gnsc-shop-nav-roomy.gnsc-shop-nav-expanded .site-main--shop .content-column--shop {
  padding-left: calc(var(--gnsc-shop-content-pad) + var(--gnsc-shop-dock-offset));
}

body.gnsc-shop-enhanced .gnsc-shop-shell__content {
  isolation: isolate;
}

body.gnsc-shop-enhanced .woocommerce ul.products.gnsc-shop-grid,
body.gnsc-shop-enhanced.woocommerce-page ul.products.gnsc-shop-grid {
  display: grid;
  grid-template-columns: var(--gnsc-shop-grid-template, repeat(4, minmax(0, 1fr)));
  gap: clamp(14px, 1.4vw, 22px);
  width: 100%;
  margin: 0 0 12px;
  padding: 0;
  list-style: none;
  align-content: start;
}

body.gnsc-shop-enhanced .woocommerce ul.products.gnsc-shop-grid::before,
body.gnsc-shop-enhanced .woocommerce ul.products.gnsc-shop-grid::after,
body.gnsc-shop-enhanced.woocommerce-page ul.products.gnsc-shop-grid::before,
body.gnsc-shop-enhanced.woocommerce-page ul.products.gnsc-shop-grid::after {
  display: none;
}

body.gnsc-shop-enhanced .woocommerce ul.products.gnsc-shop-grid li.product,
body.gnsc-shop-enhanced.woocommerce-page ul.products.gnsc-shop-grid li.product {
  float: none;
  width: auto;
  margin: 0;
  min-width: 0;
}

body.gnsc-shop-enhanced.gnsc-shop-auto-cards .woocommerce ul.products.gnsc-shop-grid,
body.gnsc-shop-enhanced.gnsc-shop-auto-cards.woocommerce-page ul.products.gnsc-shop-grid {
  grid-template-columns: var(--gnsc-shop-grid-template, repeat(4, minmax(0, 1fr)));
}

body.gnsc-shop-enhanced.gnsc-shop-manual-cards .woocommerce ul.products.gnsc-shop-grid,
body.gnsc-shop-enhanced.gnsc-shop-manual-cards.woocommerce-page ul.products.gnsc-shop-grid {
  grid-template-columns: repeat(var(--gnsc-shop-columns, 4), minmax(min(100%, var(--gnsc-shop-card-min, 180px)), 1fr));
}

body.gnsc-shop-enhanced .woocommerce ul.products.gnsc-shop-grid li.product .woocommerce-loop-product__link {
  display: flex;
  flex-direction: column;
  min-height: 100%;
  text-decoration: none;
}

body.gnsc-shop-enhanced .woocommerce ul.products.gnsc-shop-grid li.product a img {
  width: 100%;
  max-width: 100%;
  display: block;
  aspect-ratio: 100 / var(--gnsc-shop-image-ratio, 100);
  object-fit: cover;
  border-radius: var(--gnsc-shop-image-radius, 18px);
  margin: 0 0 12px;
}

body.gnsc-shop-enhanced .woocommerce ul.products.gnsc-shop-grid li.product .price {
  font-size: var(--gnsc-shop-price-size, 16px);
}

body.gnsc-shop-enhanced .woocommerce .gnsc-product-card__actions {
  display: grid;
  grid-template-columns: minmax(0, 1fr) minmax(0, 1fr);
  gap: 10px;
  width: 100%;
}

body.gnsc-shop-enhanced .woocommerce .gnsc-product-card__actions .button,
body.gnsc-shop-enhanced .woocommerce .gnsc-product-card__actions a.button {
  width: 100%;
  margin: 0;
  min-height: var(--gnsc-shop-button-height, 42px);
  font-size: var(--gnsc-shop-button-text-size, 15px);
  line-height: 1.1;
}

body.gnsc-shop-enhanced .woocommerce .woocommerce-result-count,
body.gnsc-shop-enhanced .woocommerce .woocommerce-ordering {
  margin: 0;
}

body.gnsc-shop-enhanced .woocommerce .woocommerce-ordering select {
  min-height: 46px;
  border-radius: 14px;
  border: 1px solid var(--gnsc-shop-border-strong);
  background: var(--gnsc-shop-surface-1);
  color: var(--gnsc-shop-text-main);
  padding: 10px 42px 10px 14px;
  box-shadow: none;
}

body.gnsc-shop-enhanced.gnsc-shop-mode-light .woocommerce .woocommerce-ordering select {
  background: #ffffff;
}

body.gnsc-shop-enhanced .woocommerce nav.woocommerce-pagination {
  margin-top: 28px;
}

body.gnsc-shop-enhanced .woocommerce nav.woocommerce-pagination ul {
  border: 0;
  display: inline-flex;
  flex-wrap: wrap;
  gap: 8px;
  padding: 0;
  margin: 0;
}

body.gnsc-shop-enhanced .woocommerce nav.woocommerce-pagination ul li {
  border: 0;
  float: none;
  overflow: visible;
}

body.gnsc-shop-enhanced .woocommerce nav.woocommerce-pagination ul li a,
body.gnsc-shop-enhanced .woocommerce nav.woocommerce-pagination ul li span {
  min-width: 42px;
  min-height: 42px;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  padding: 8px 14px;
  border-radius: 999px;
  border: 1px solid var(--gnsc-shop-border-strong);
  background: var(--gnsc-shop-surface-1);
  color: var(--gnsc-shop-text-main);
}

body.gnsc-shop-enhanced .woocommerce nav.woocommerce-pagination ul li span.current,
body.gnsc-shop-enhanced .woocommerce nav.woocommerce-pagination ul li a:hover {
  background: linear-gradient(135deg, var(--gnsc-shop-accent), var(--gnsc-shop-accent-strong));
  border-color: transparent;
  color: #ffffff;
}

@media (min-width: 1380px) {
  body.gnsc-shop-enhanced {
    --gnsc-shop-page-max: min(2100px, calc(100vw - 14px));
  }
}

@media (min-width: 1700px) {
  body.gnsc-shop-enhanced {
    --gnsc-shop-page-max: min(2400px, calc(100vw - 18px));
  }
}

@media (max-width: 1024px) {
  body.gnsc-shop-enhanced .site-main--shop .content-column--shop {
    padding-left: var(--gnsc-shop-content-pad);
  }

  body.gnsc-shop-enhanced .woocommerce ul.products.gnsc-shop-grid,
  body.gnsc-shop-enhanced.woocommerce-page ul.products.gnsc-shop-grid {
    grid-template-columns: repeat(var(--gnsc-shop-columns-md, 3), minmax(0, 1fr));
  }
}

@media (max-width: 767px) {
  body.gnsc-shop-enhanced {
    --gnsc-shop-page-gutter: 10px;
    --gnsc-shop-content-pad: 12px;
  }

  body.gnsc-shop-enhanced .woocommerce ul.products.gnsc-shop-grid,
  body.gnsc-shop-enhanced.woocommerce-page ul.products.gnsc-shop-grid {
    grid-template-columns: minmax(0, 1fr);
    gap: 14px;
  }

  body.gnsc-shop-enhanced .woocommerce .gnsc-product-card__actions {
    grid-template-columns: minmax(0, 1fr);
  }
}

/* === Full-width shop alignment refinement === */
body.gnsc-shop-enhanced {
  --gnsc-shop-page-max: min(2400px, calc(100vw - 12px));
}

body.gnsc-shop-enhanced .site-main--shop .content-column--shop {
  padding-left: var(--gnsc-shop-content-pad);
}

body.gnsc-shop-enhanced.gnsc-shop-nav-desktop.gnsc-shop-nav-expanded .site-main--shop > .container {
  width: calc(100% - var(--gnsc-shop-layout-offset, 0px) - 24px);
  margin-left: calc(var(--gnsc-shop-layout-offset, 0px) + 12px);
  margin-right: 12px;
  max-width: none;
}

body.gnsc-shop-enhanced .woocommerce ul.products.gnsc-shop-grid,
body.gnsc-shop-enhanced.woocommerce-page ul.products.gnsc-shop-grid {
  grid-template-columns: var(--gnsc-shop-grid-template, repeat(var(--gnsc-shop-columns, 4), minmax(min(100%, var(--gnsc-shop-card-min, 180px)), 1fr)));
}

@media (min-width: 1700px) {
  body.gnsc-shop-enhanced {
    --gnsc-shop-page-max: min(2800px, calc(100vw - 14px));
  }
}

@media (max-width: 1120px) {
  body.gnsc-shop-enhanced .site-main--shop > .container,
  body.gnsc-shop-enhanced.gnsc-shop-nav-expanded .site-main--shop > .container {
    width: min(calc(100% - 20px), var(--gnsc-shop-page-max));
    margin-left: auto;
    margin-right: auto;
  }
}


/* === Light mode contrast tuning for shop surface === */
body.gnsc-shop-enhanced.gnsc-shop-mode-light {
  --gnsc-shop-surface-1: #ffffff;
  --gnsc-shop-surface-2: #f6faff;
  --gnsc-shop-surface-3: rgba(249, 252, 255, 0.99);
  --gnsc-shop-border-soft: rgba(79, 107, 160, 0.14);
  --gnsc-shop-border-strong: rgba(66, 99, 165, 0.20);
  --gnsc-shop-text-main: #10213f;
  --gnsc-shop-text-soft: #566c91;
  --gnsc-shop-price: #08152c;
  --gnsc-shop-accent: #2f6ff5;
  --gnsc-shop-accent-strong: #2458d8;
  --gnsc-shop-shadow-soft: 0 16px 34px rgba(20, 42, 86, 0.09);
}

body.gnsc-shop-enhanced.gnsc-shop-mode-light .woocommerce .woocommerce-ordering select {
  border-color: rgba(66, 99, 165, 0.20);
  color: #10213f;
  box-shadow: inset 0 1px 0 rgba(20, 42, 86, 0.03);
}

body.gnsc-shop-enhanced.gnsc-shop-mode-light .woocommerce nav.woocommerce-pagination ul li a,
body.gnsc-shop-enhanced.gnsc-shop-mode-light .woocommerce nav.woocommerce-pagination ul li span {
  background: #ffffff;
  color: #10213f;
  border-color: rgba(66, 99, 165, 0.18);
}


/* === Responsive grid and zoom-resilience refinement === */
body.gnsc-shop-enhanced .site-main--shop,
body.gnsc-shop-enhanced .site-main--shop > .container,
body.gnsc-shop-enhanced .content-column--shop {
  min-width: 0;
}

body.gnsc-shop-enhanced .woocommerce ul.products.gnsc-shop-grid,
body.gnsc-shop-enhanced.woocommerce-page ul.products.gnsc-shop-grid {
  min-width: 0;
}

body.gnsc-shop-enhanced .woocommerce ul.products.gnsc-shop-grid li.product,
body.gnsc-shop-enhanced.woocommerce-page ul.products.gnsc-shop-grid li.product {
  min-width: 0;
}

@media (max-width: 991px) {
  body.gnsc-shop-enhanced {
    --gnsc-shop-page-gutter: 10px;
    --gnsc-shop-content-pad: 12px;
  }

  body.gnsc-shop-enhanced .site-main--shop > .container,
  body.gnsc-shop-enhanced.gnsc-shop-nav-expanded .site-main--shop > .container,
  body.gnsc-shop-enhanced.gnsc-shop-nav-desktop.gnsc-shop-nav-expanded .site-main--shop > .container {
    width: calc(100% - 16px);
    margin-inline: auto;
    max-width: none;
  }

  body.gnsc-shop-enhanced .site-main--shop .content-column--shop {
    padding: 12px;
    padding-left: 12px;
    border-radius: 18px;
  }

  body.gnsc-shop-enhanced .woocommerce ul.products.gnsc-shop-grid,
  body.gnsc-shop-enhanced.woocommerce-page ul.products.gnsc-shop-grid,
  body.gnsc-shop-enhanced.gnsc-shop-auto-cards .woocommerce ul.products.gnsc-shop-grid,
  body.gnsc-shop-enhanced.gnsc-shop-auto-cards.woocommerce-page ul.products.gnsc-shop-grid,
  body.gnsc-shop-enhanced.gnsc-shop-manual-cards .woocommerce ul.products.gnsc-shop-grid,
  body.gnsc-shop-enhanced.gnsc-shop-manual-cards.woocommerce-page ul.products.gnsc-shop-grid {
    grid-template-columns: repeat(2, minmax(0, 1fr)) !important;
    gap: 14px;
  }
}

@media (max-width: 640px) {
  body.gnsc-shop-enhanced {
    --gnsc-shop-page-gutter: 8px;
    --gnsc-shop-content-pad: 10px;
  }

  body.gnsc-shop-enhanced .site-main--shop > .container,
  body.gnsc-shop-enhanced.gnsc-shop-nav-expanded .site-main--shop > .container,
  body.gnsc-shop-enhanced.gnsc-shop-nav-desktop.gnsc-shop-nav-expanded .site-main--shop > .container {
    width: calc(100% - 12px);
  }

  body.gnsc-shop-enhanced .site-main--shop .content-column--shop {
    padding: 10px;
    border-radius: 16px;
  }

  body.gnsc-shop-enhanced .woocommerce ul.products.gnsc-shop-grid,
  body.gnsc-shop-enhanced.woocommerce-page ul.products.gnsc-shop-grid,
  body.gnsc-shop-enhanced.gnsc-shop-auto-cards .woocommerce ul.products.gnsc-shop-grid,
  body.gnsc-shop-enhanced.gnsc-shop-auto-cards.woocommerce-page ul.products.gnsc-shop-grid,
  body.gnsc-shop-enhanced.gnsc-shop-manual-cards .woocommerce ul.products.gnsc-shop-grid,
  body.gnsc-shop-enhanced.gnsc-shop-manual-cards.woocommerce-page ul.products.gnsc-shop-grid {
    grid-template-columns: minmax(0, 1fr) !important;
    gap: 12px;
  }
}


/* === Auto-fit layout tuning across zoom and device widths === */
body.gnsc-shop-enhanced .site-main--shop > .container,
body.gnsc-shop-enhanced.gnsc-shop-nav-expanded .site-main--shop > .container,
body.gnsc-shop-enhanced.gnsc-shop-nav-desktop.gnsc-shop-nav-expanded .site-main--shop > .container,
body.gnsc-shop-enhanced.gnsc-shop-nav-collapsed .site-main--shop > .container {
  width: min(calc(100vw - (var(--gnsc-shop-page-gutter) * 2)), var(--gnsc-shop-page-max)) !important;
  margin-inline: auto !important;
  max-width: none !important;
}

body.gnsc-shop-enhanced .site-main--shop .content-column--shop {
  padding-left: var(--gnsc-shop-content-pad) !important;
}

body.gnsc-shop-enhanced .woocommerce ul.products.gnsc-shop-grid,
body.gnsc-shop-enhanced.woocommerce-page ul.products.gnsc-shop-grid,
body.gnsc-shop-enhanced.gnsc-shop-auto-cards .woocommerce ul.products.gnsc-shop-grid,
body.gnsc-shop-enhanced.gnsc-shop-manual-cards .woocommerce ul.products.gnsc-shop-grid {
  grid-template-columns: repeat(var(--gnsc-shop-columns, 4), minmax(0, 1fr));
}

@media (max-width: 1180px) {
  body.gnsc-shop-enhanced .woocommerce ul.products.gnsc-shop-grid,
  body.gnsc-shop-enhanced.woocommerce-page ul.products.gnsc-shop-grid,
  body.gnsc-shop-enhanced.gnsc-shop-auto-cards .woocommerce ul.products.gnsc-shop-grid,
  body.gnsc-shop-enhanced.gnsc-shop-manual-cards .woocommerce ul.products.gnsc-shop-grid {
    grid-template-columns: repeat(3, minmax(0, 1fr)) !important;
  }
}

@media (max-width: 900px) {
  body.gnsc-shop-enhanced {
    --gnsc-shop-page-gutter: 10px;
    --gnsc-shop-content-pad: 12px;
  }

  body.gnsc-shop-enhanced .woocommerce ul.products.gnsc-shop-grid,
  body.gnsc-shop-enhanced.woocommerce-page ul.products.gnsc-shop-grid,
  body.gnsc-shop-enhanced.gnsc-shop-auto-cards .woocommerce ul.products.gnsc-shop-grid,
  body.gnsc-shop-enhanced.gnsc-shop-manual-cards .woocommerce ul.products.gnsc-shop-grid {
    grid-template-columns: repeat(2, minmax(0, 1fr)) !important;
    gap: 14px !important;
  }
}

@media (max-width: 560px) {
  body.gnsc-shop-enhanced {
    --gnsc-shop-page-gutter: 8px;
    --gnsc-shop-content-pad: 10px;
    --gnsc-shop-page-max: calc(100vw - 16px);
  }

  body.gnsc-shop-enhanced .site-main--shop .content-column--shop {
    padding: 10px !important;
    border-radius: 16px;
  }

  body.gnsc-shop-enhanced .woocommerce ul.products.gnsc-shop-grid,
  body.gnsc-shop-enhanced.woocommerce-page ul.products.gnsc-shop-grid,
  body.gnsc-shop-enhanced.gnsc-shop-auto-cards .woocommerce ul.products.gnsc-shop-grid,
  body.gnsc-shop-enhanced.gnsc-shop-manual-cards .woocommerce ul.products.gnsc-shop-grid {
    grid-template-columns: minmax(0, 1fr) !important;
    gap: 12px !important;
  }
}


/* === Mobile-first final tuning: grid fit and single product flow === */
@media (max-width: 767px) {
  body.gnsc-shop-enhanced,
  body.gnsc-shop-enhanced .woocommerce,
  body.gnsc-shop-enhanced .site-main--shop,
  body.gnsc-shop-enhanced .site-main--shop .content-column--shop {
    min-width: 0;
  }

  body.gnsc-shop-enhanced .woocommerce ul.products.gnsc-shop-grid,
  body.gnsc-shop-enhanced.woocommerce-page ul.products.gnsc-shop-grid,
  body.gnsc-shop-enhanced.gnsc-shop-auto-cards .woocommerce ul.products.gnsc-shop-grid,
  body.gnsc-shop-enhanced.gnsc-shop-manual-cards .woocommerce ul.products.gnsc-shop-grid {
    grid-template-columns: minmax(0, 1fr);
    gap: 14px;
  }

  body.single-product .woocommerce div.product,
  body.single-product .woocommerce div.product div.images,
  body.single-product .woocommerce div.product div.summary,
  body.single-product .woocommerce div.product .woocommerce-product-gallery,
  body.single-product .woocommerce div.product .summary,
  body.single-product .woocommerce-tabs,
  body.single-product .related.products {
    float: none;
    width: 100%;
    max-width: 100%;
    min-width: 0;
    margin-left: 0;
    margin-right: 0;
  }

  body.single-product .woocommerce div.product div.images,
  body.single-product .woocommerce div.product div.summary {
    margin-bottom: 16px;
  }
}

@media (min-width: 420px) and (max-width: 767px) {
  body.gnsc-shop-enhanced .woocommerce ul.products.gnsc-shop-grid,
  body.gnsc-shop-enhanced.woocommerce-page ul.products.gnsc-shop-grid,
  body.gnsc-shop-enhanced.gnsc-shop-auto-cards .woocommerce ul.products.gnsc-shop-grid,
  body.gnsc-shop-enhanced.gnsc-shop-manual-cards .woocommerce ul.products.gnsc-shop-grid {
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }
}


/* === Desktop-only smart slide for shop container === */
@media (min-width: 1121px) {
  body.gnsc-shop-enhanced.gnsc-shop-nav-desktop .site-main--shop > .container {
    transition: width .32s ease, margin-left .32s ease, margin-right .32s ease;
  }

  body.gnsc-shop-enhanced.gnsc-shop-nav-desktop.gnsc-shop-nav-expanded .site-main--shop > .container {
    width: calc(100vw - var(--gnsc-shop-layout-offset, 0px) - (var(--gnsc-shop-page-gutter) * 2)) !important;
    max-width: none !important;
    margin-left: calc(var(--gnsc-shop-layout-offset, 0px) + var(--gnsc-shop-page-gutter)) !important;
    margin-right: var(--gnsc-shop-page-gutter) !important;
  }

  body.gnsc-shop-enhanced.gnsc-shop-nav-desktop.gnsc-shop-nav-expanded .site-main--shop .content-column--shop {
    padding-left: max(var(--gnsc-shop-content-pad), 14px) !important;
  }
}
