/*
 * Shop1 WooCommerce Styles
 * Design tokens and component styles — ported from INCRMAD demo
 * Scoped under .shop1-single-product / .shop1-product-archive
 */

/* GeneratePress loads Inter 100-600 only, while this stylesheet uses
   700/800/900 everywhere -> browsers render synthetic faux-bold.
   Load the real weights. Better long-term: add 700/800/900 to the
   GeneratePress typography font setting so this @import can be removed.
   @import must precede all other rules in this file. */
/* ===== Design Tokens ===== */
:root {
  --shop1-navy: #071b46;
  --shop1-orange: #ff4b18;
  --shop1-text: #101b37;
  --shop1-muted: #69738a;
  --shop1-line: #e7ebf2;
  --shop1-soft: #f7f9fc;
  --shop1-surface: #fff;
  --shop1-content: 1320px;
  --shop1-page-pad: 40px;
  --shop1-radius: 12px;
  --shop1-shadow: 0 10px 32px rgb(15 31 65 / 8%);
}

/* ===== Neutralize GeneratePress container on WooCommerce pages ===== */
/* Use body.woocommerce-page (WooCommerce native) as primary selector — more reliable than custom body classes. */
body.woocommerce-page .inside-article,
body.woocommerce-page .entry-content,
body.woocommerce-page.one-container .site-content,
body.woocommerce-page.separate-containers .inside-article {
  padding: 0 !important;
}

body.woocommerce-page .site.grid-container,
body.woocommerce-page .site-content {
  max-width: 100% !important;
  padding-left: 0 !important;
  padding-right: 0 !important;
}
body.woocommerce-page .site-main,
body.woocommerce-page article {
  margin: 0 !important;
}
body.woocommerce-page #primary {
  width: 100% !important;
  max-width: 100% !important;
}

/* Force single-column layout: hide GP sidebar and expand content area */
body.woocommerce-page .widget-area,
body.woocommerce-page .sidebar,
body.woocommerce-page .gp-sidebar,
body.woocommerce-page aside[role="complementary"] {
  display: none !important;
}
body.woocommerce-page .content-area {
  width: 100% !important;
  max-width: 100% !important;
  flex: 1 0 100% !important;
  flex-basis: 100% !important;
}
/* Override GP flex/grid sidebar layouts */
body.woocommerce-page .site-content {
  display: block !important;
}
body.woocommerce-page .site-content .content-area,
body.woocommerce-page .site-content .widget-area {
  float: none !important;
}
/* Remove GP CSS variable constraints on content width */
body.woocommerce-page {
  --content-width: 100% !important;
  --sidebar-width: 0% !important;
}

/* Keep transactional pages readable while WooCommerce Blocks manages the inner columns. */
body.woocommerce-cart .site-content,
body.woocommerce-checkout .site-content {
  width: min(var(--shop1-content), calc(100% - var(--shop1-page-pad) * 2));
  max-width: var(--shop1-content) !important;
  margin-inline: auto;
  padding: 56px 0 80px !important;
}

/* GeneratePress makes wide blocks extend beyond the entry content. Keep cart and
   checkout blocks inside their centered transaction container. */
body.woocommerce-cart .entry-content .alignwide,
body.woocommerce-cart .entry-content .alignfull,
body.woocommerce-checkout .entry-content .alignwide,
body.woocommerce-checkout .entry-content .alignfull {
  width: 100% !important;
  max-width: 100% !important;
  margin-inline: 0 !important;
  box-sizing: border-box;
}

/* Keep custom body-class rules as fallback */
/* .shop1-single-product .inside-article,
.shop1-product-archive .inside-article,
.shop1-single-product .entry-content,
.shop1-product-archive .entry-content {
  padding: 0 !important;
} */
.shop1-single-product .site.grid-container,
.shop1-product-archive .site.grid-container,
.shop1-single-product .site-content,
.shop1-product-archive .site-content {
  max-width: 100% !important;
  padding: 0 !important;
}
.shop1-single-product .site-main,
.shop1-product-archive .site-main,
.shop1-single-product article,
.shop1-product-archive article {
  margin: 0 !important;
}
.shop1-single-product #primary,
.shop1-product-archive #primary {
  width: 100%;
}

/* ===== Base Utilities ===== */
.shop1-container {
  width: min(var(--shop1-content), calc(100% - var(--shop1-page-pad) * 2));
  margin-inline: auto;
}
.shop1-product-container {
  padding-top: 22px;
  padding-bottom: 60px;
}
.shop1-eyebrow {
  display: inline-block;
  color: var(--shop1-orange);
  font-size: 12px;
  font-weight: 900;
  letter-spacing: 0.13em;
  text-transform: uppercase;
}
.shop1-single-product .page-header,
.shop1-single-product .entry-header,
.shop1-product-archive .page-header,
.shop1-product-archive .entry-header,
.shop1-product-archive .woocommerce-breadcrumb {
  display: none;
}

/* Keep WooCommerce's semantic breadcrumb, aligned with the product content. */
.shop1-single-product .woocommerce-breadcrumb {
  width: min(var(--shop1-content), calc(100% - var(--shop1-page-pad) * 2));
  margin: 22px auto 0;
  color: var(--shop1-muted);
  font-size: 12px;
  font-weight: 600;
  line-height: 1.5;
}
.shop1-single-product .woocommerce-breadcrumb a {
  color: var(--shop1-muted);
  text-decoration: none;
  transition: color 0.15s ease;
}
.shop1-single-product .woocommerce-breadcrumb a:hover,
.shop1-single-product .woocommerce-breadcrumb a:focus-visible {
  color: var(--shop1-orange);
}

/* ===== Store Benefits ===== */
.shop1-store-benefits {
  background: #0a2b58;
  color: #fff;
  border-bottom: none;
}
.shop1-store-benefits__grid {
  min-height: 56px;
  display: grid;
  grid-template-columns: repeat(4, 1fr);
}
.shop1-store-benefit {
  min-width: 0;
  padding: 9px 20px;
  display: flex;
  align-items: center;
  justify-content: center;
  gap: 10px;
  border-right: 1px solid rgba(255, 255, 255, 0.12);
}
.shop1-store-benefit:first-child {
  padding-left: 0;
}
.shop1-store-benefit:last-child {
  border-right: 0;
  padding-right: 0;
}
.shop1-store-benefit svg {
  width: 27px;
  height: 27px;
  flex: 0 0 auto;
}
.shop1-store-benefit span {
  display: flex;
  flex-direction: column;
}
.shop1-store-benefit strong {
  font-size: 11px;
  line-height: 1.25;
}
.shop1-store-benefit small {
  margin-top: 2px;
  color: #cbd6e5;
  font-size: 10px;
}

/* ===== Archive Hero ===== */
.shop1-archive-hero {
  overflow: hidden;
  background: linear-gradient(110deg, #fff 0%, #fff 45%, #fff3ee 76%, #f5f8fc 100%);
}
.shop1-archive-hero__grid {
  min-height: 336px;
  display: grid;
  grid-template-columns: minmax(0, 1.03fr) minmax(340px, 0.97fr);
  align-items: stretch;
}
.shop1-archive-hero__content {
  padding: 48px 54px 45px 0;
  align-self: center;
}
.shop1-archive-hero h1 {
  max-width: 660px;
  margin: 10px 0 14px;
  color: var(--shop1-navy);
  font-size: clamp(39px, 4.2vw, 56px);
  line-height: 0.98;
  letter-spacing: -0.045em;
}
.shop1-archive-hero p,
.shop1-archive-hero__description {
  max-width: 610px;
  margin: 0;
  color: #53617a;
  font-size: 17px;
  line-height: 1.55;
}
.shop1-archive-hero__actions {
  display: flex;
  gap: 12px;
  margin-top: 24px;
}
.shop1-archive-hero__visual {
  display: grid;
  place-items: center;
  min-height: 260px;
}
.shop1-archive-hero__visual span,
.shop1-archive-hero__device {
  width: min(390px, 86%);
  height: 250px;
  border-radius: 82px 98px 76px 86px;
  background: linear-gradient(145deg, #202326 0%, #050506 60%, #121416 100%);
  box-shadow: inset 0 0 36px rgba(255, 255, 255, 0.08), 0 34px 56px rgba(8, 12, 19, 0.34);
  transform: rotate(-10deg);
}
.shop1-archive-hero__visual::before {
  content: "";
  position: absolute;
  width: 420px;
  height: 420px;
  border-radius: 50%;
  background: radial-gradient(circle, rgba(255, 84, 28, 0.2), rgba(255, 84, 28, 0) 68%);
}

/* ===== Collection Tabs ===== */
.shop1-collection-tabs {
  border-top: 1px solid #f0f2f6;
  border-bottom: 1px solid var(--shop1-line);
  background: #fff;
}
.shop1-collection-tabs__inner {
  min-height: 67px;
  display: flex;
  align-items: center;
  gap: 10px;
  overflow-x: auto;
  scrollbar-width: none;
}
.shop1-collection-tabs__inner::-webkit-scrollbar {
  display: none;
}
.shop1-collection-tabs a {
  white-space: nowrap;
  padding: 10px 17px;
  border: 1px solid var(--shop1-line);
  border-radius: 999px;
  color: var(--shop1-navy);
  font-size: 12px;
  font-weight: 850;
}
.shop1-collection-tabs a.is-active {
  background: var(--shop1-navy);
  color: #fff;
  border-color: var(--shop1-navy);
}

/* ===== Archive Layout ===== */
.shop1-archive-content {
  padding: 34px 0 50px;
  background: #fbfcfe;
}
.shop1-archive-layout {
  display: grid !important;
  grid-template-columns: 232px minmax(0, 1fr) !important;
  gap: 28px !important;
  align-items: start !important;
}
.shop1-product-archive {
  min-width: 0;
}

/* ===== Filter Sidebar ===== */
.shop1-filter-sidebar {
  position: sticky;
  top: 20px;
  padding: 20px;
  border: 1px solid var(--shop1-line);
  border-radius: var(--shop1-radius);
  background: #fff;
  box-shadow: var(--shop1-shadow);
}
.shop1-filter-sidebar__header {
  padding-bottom: 15px;
  border-bottom: 1px solid var(--shop1-line);
}
.shop1-filter-sidebar__header h2 {
  margin: 0;
  color: var(--shop1-navy);
  font-size: 18px;
  line-height: 1.25;
  letter-spacing: -0.015em;
}
.shop1-filter-sidebar__empty {
  margin: 16px 0 0;
  color: var(--shop1-muted);
  font-size: 12px;
}
.shop1-filter-sidebar fieldset {
  margin: 18px 0 0;
  padding: 17px 0 0;
  border: 0;
  border-top: 1px solid var(--shop1-line);
}
.shop1-filter-sidebar legend {
  padding: 0;
  margin-bottom: 10px;
  color: var(--shop1-navy);
  font-size: 13px;
  font-weight: 900;
}
.shop1-filter-sidebar label {
  margin: 9px 0;
  display: grid;
  grid-template-columns: 16px minmax(0, 1fr) auto;
  gap: 9px;
  align-items: center;
  color: #44516a;
  font-size: 12px;
  cursor: pointer;
}
.shop1-filter-sidebar input[type="checkbox"] {
  width: 15px;
  height: 15px;
  margin: 0;
  accent-color: var(--shop1-orange);
}
.shop1-filter-sidebar em {
  color: #929eb1;
  font-style: normal;
}
/* WooCommerce widget compatibility inside filter sidebar */
.shop1-filter-sidebar .widget {
  margin-top: 18px;
  padding-top: 17px;
  border-top: 1px solid var(--shop1-line);
}
.shop1-filter-sidebar .widget:first-child {
  margin-top: 0;
  padding-top: 0;
  border-top: 0;
}
.shop1-filter-sidebar .widget-title {
  margin: 0 0 10px;
  color: var(--shop1-navy);
  font-size: 13px;
  font-weight: 900;
}
.shop1-filter-sidebar ul {
  list-style: none;
  margin: 0;
  padding: 0;
}
.shop1-filter-sidebar ul li {
  margin: 9px 0;
  display: flex;
  align-items: center;
  gap: 9px;
  color: #44516a;
  font-size: 12px;
}
.shop1-filter-sidebar ul li a {
  color: #44516a;
  text-decoration: none;
}
.shop1-filter-sidebar ul li .count {
  margin-left: auto;
  color: #929eb1;
  font-size: 11px;
}
.shop1-filter-sidebar .woocommerce-widget-layered-nav-list__item {
  display: flex;
  align-items: center;
  gap: 9px;
}

/* WooCommerce Blocks filter widgets use their own headings and controls. */
.shop1-filter-sidebar :where(.wp-block-heading) {
  margin: 0 0 11px !important;
  color: var(--shop1-navy);
  font-size: 14px !important;
  font-weight: 850;
  line-height: 1.3;
  letter-spacing: -0.01em;
}

/* Combined "Product Filters" block (woocommerce/product-filters) sections */
.shop1-filter-sidebar .widget_block {
  margin-top: 14px;
  padding-top: 0;
  border-top: 0;
}
.shop1-filter-sidebar .wc-block-product-filters {
  font-size: 13px;
  color: #44516a;
}
.shop1-filter-sidebar .wc-block-product-filters__open-overlay {
  display: none !important;
}
/* Hide the redundant inner "Filters" H2 title — the sidebar widget already
   provides a "Filter Products" heading, and each filter section has its own
   H3 title (Price, Rating, ...). Only the H2 is hidden; section H3s remain. */
.shop1-filter-sidebar .wc-block-product-filters__overlay-content > h2.wp-block-heading {
  display: none;
}
.shop1-filter-sidebar :where(
  .wp-block-woocommerce-product-filter-price,
  .wp-block-woocommerce-product-filter-taxonomy,
  .wp-block-woocommerce-product-filter-status,
  .wp-block-woocommerce-product-filter-rating,
  .wp-block-woocommerce-product-filter-attribute
) {
  margin: 0 !important;
  padding: 17px 0;
  border-top: 1px solid var(--shop1-line) !important;
}
/* When no filter is active, the active-filters block carries the [hidden]
   attribute and sits immediately before the first filter section. Strip that
   section's top border so there's no orphan separator line at the very top
   of the sidebar (the "Filter Products" heading already delimits it). */
.shop1-filter-sidebar .wp-block-woocommerce-product-filter-active[hidden]
  + :where(
    .wp-block-woocommerce-product-filter-price,
    .wp-block-woocommerce-product-filter-taxonomy,
    .wp-block-woocommerce-product-filter-status,
    .wp-block-woocommerce-product-filter-rating,
    .wp-block-woocommerce-product-filter-attribute
  ) {
  border-top: 0 !important;
}
.shop1-filter-sidebar :where(
  .wp-block-woocommerce-product-filter-price,
  .wp-block-woocommerce-product-filter-taxonomy,
  .wp-block-woocommerce-product-filter-status,
  .wp-block-woocommerce-product-filter-rating,
  .wp-block-woocommerce-product-filter-attribute
) fieldset {
  margin: 0;
  padding: 0;
  border-top: 0;
}

/* Active filters (chips) — filtered state */
.shop1-filter-sidebar .wp-block-woocommerce-product-filter-active {
  margin: 0 !important;
  padding: 2px 0 4px;
  border-top: 0 !important;
}
.shop1-filter-sidebar .wc-block-product-filter-removable-chips__items {
  display: flex;
  flex-wrap: wrap;
  gap: 8px;
  margin: 0;
  padding: 0;
  list-style: none;
}
.shop1-filter-sidebar .wc-block-product-filter-removable-chips__item {
  display: inline-flex;
  align-items: center;
  gap: 2px;
  margin: 0;
  padding: 4px 5px 4px 12px;
  border: 1px solid #ffd9c9;
  border-radius: 999px;
  background: #fff4ef;
  color: var(--shop1-navy);
  font-size: 12px;
  line-height: 1.3;
}
.shop1-filter-sidebar .wc-block-product-filter-removable-chips__label {
  color: var(--shop1-navy);
  font-size: 12px;
  font-weight: 700;
}
.shop1-filter-sidebar .wc-block-product-filter-removable-chips__remove {
  display: grid;
  place-items: center;
  width: 18px;
  height: 18px;
  padding: 0;
  border: 0;
  border-radius: 50%;
  background: transparent;
  color: #b08574 !important;
  cursor: pointer;
  transition: color 0.15s ease, background 0.15s ease;
}
.shop1-filter-sidebar .wc-block-product-filter-removable-chips__remove:hover,
.shop1-filter-sidebar .wc-block-product-filter-removable-chips__remove:focus-visible {
  color: var(--shop1-orange) !important;
  background: #ffe4d8;
}
.shop1-filter-sidebar .wc-block-product-filter-removable-chips__remove svg {
  width: 12px;
  height: 12px;
}
.shop1-filter-sidebar .wp-block-woocommerce-product-filter-clear-button {
  margin-top: 10px;
}
.shop1-filter-sidebar .wp-block-woocommerce-product-filter-clear-button .wp-block-button__link {
  display: inline-flex;
  align-items: center;
  min-height: 0;
  padding: 6px 14px !important;
  border: 1px solid var(--shop1-line) !important;
  border-radius: 999px !important;
  background: #fff !important;
  color: var(--shop1-navy) !important;
  font-size: 12px !important;
  font-weight: 800 !important;
  line-height: 1.4;
  letter-spacing: 0.03em;
  text-transform: uppercase;
  cursor: pointer;
  transition: border-color 0.15s ease, color 0.15s ease;
}
.shop1-filter-sidebar .wp-block-woocommerce-product-filter-clear-button .wp-block-button__link:hover,
.shop1-filter-sidebar .wp-block-woocommerce-product-filter-clear-button .wp-block-button__link:focus-visible {
  border-color: var(--shop1-orange) !important;
  color: var(--shop1-orange) !important;
}

/* Price filter */
.shop1-filter-sidebar .wc-block-product-filter-price-slider__range {
  height: 4px;
  margin: 15px 0 14px;
  border-radius: 999px;
  background: #dfe4ec !important;
}
.shop1-filter-sidebar .wc-block-product-filter-price-slider__range .range-bar {
  height: 4px;
  border-radius: 999px;
  background: var(--shop1-orange) !important;
}
.shop1-filter-sidebar .wc-block-product-filter-price-slider__range input[type="range"]::-webkit-slider-thumb {
  -webkit-appearance: none !important;
  appearance: none !important;
  width: 14px !important;
  height: 14px !important;
  border: 2px solid var(--shop1-orange) !important;
  border-radius: 50%;
  background: #fff !important;
  box-shadow: 0 1px 4px rgb(7 27 70 / 16%);
  cursor: grab;
  pointer-events: auto !important;
}
.shop1-filter-sidebar .wc-block-product-filter-price-slider__range input[type="range"]::-moz-range-thumb {
  width: 14px !important;
  height: 14px !important;
  border: 2px solid var(--shop1-orange) !important;
  border-radius: 50%;
  background: #fff !important;
  box-shadow: 0 1px 4px rgb(7 27 70 / 16%);
  cursor: grab;
  pointer-events: auto !important;
}
.shop1-filter-sidebar .wc-block-product-filter-price-slider__range input[type="range"]:hover::-webkit-slider-thumb,
.shop1-filter-sidebar .wc-block-product-filter-price-slider__range input[type="range"]:focus::-webkit-slider-thumb {
  border-color: var(--shop1-orange) !important;
  background: var(--shop1-orange) !important;
}
.shop1-filter-sidebar .wc-block-product-filter-price-slider__range input[type="range"]:hover::-moz-range-thumb,
.shop1-filter-sidebar .wc-block-product-filter-price-slider__range input[type="range"]:focus::-moz-range-thumb {
  border-color: var(--shop1-orange) !important;
  background: var(--shop1-orange) !important;
}
.shop1-filter-sidebar .wc-block-product-filter-price-slider__content {
  gap: 10px;
}
.shop1-filter-sidebar .wc-block-product-filter-price-slider__left input,
.shop1-filter-sidebar .wc-block-product-filter-price-slider__right input {
  box-sizing: border-box;
  width: 72px !important;
  max-width: 72px !important;
  height: 36px !important;
  min-height: 36px !important;
  padding: 7px 9px !important;
  border: 1px solid var(--shop1-line) !important;
  border-radius: 7px !important;
  background: var(--shop1-soft) !important;
  color: var(--shop1-navy) !important;
  font-size: 12px !important;
  font-weight: 700;
  line-height: 1.2;
}
.shop1-filter-sidebar .wc-block-product-filter-price-slider__left input:focus,
.shop1-filter-sidebar .wc-block-product-filter-price-slider__right input:focus {
  border-color: var(--shop1-orange) !important;
  outline: 2px solid rgb(255 75 24 / 12%);
  outline-offset: 0;
}

/* Attribute, category and stock options */
.shop1-filter-sidebar .wc-block-product-filter-checkbox-list__item {
  margin: 9px 0;
}
.shop1-filter-sidebar .wc-block-product-filter-checkbox-list__label {
  display: flex;
  align-items: center;
  gap: 9px;
  margin: 0;
  color: #44516a;
  cursor: pointer;
}
.shop1-filter-sidebar .wc-block-product-filter-checkbox-list__text-wrapper,
.shop1-filter-sidebar .wc-block-product-filter-checkbox-list__text {
  color: #44516a;
  font-size: 13px;
  line-height: 1.4;
}
.shop1-filter-sidebar .wc-block-product-filter-checkbox-list__input-wrapper {
  position: relative;
  display: inline-flex;
  flex: 0 0 auto;
}
.shop1-filter-sidebar .wc-block-product-filter-checkbox-list__input {
  appearance: none !important;
  -webkit-appearance: none !important;
  width: 15px;
  height: 15px;
  min-width: 15px;
  min-height: 15px;
  margin: 0;
  border: 1px solid #c6cedd !important;
  border-radius: 4px;
  background: #fff !important;
  cursor: pointer;
  transition: border-color 0.15s ease, background 0.15s ease;
}
.shop1-filter-sidebar .wc-block-product-filter-checkbox-list__input:hover:not(:checked):not(:disabled) {
  border-color: var(--shop1-orange) !important;
}
.shop1-filter-sidebar .wc-block-product-filter-checkbox-list__input:checked {
  border-color: var(--shop1-orange) !important;
  background: var(--shop1-orange) !important;
}
.shop1-filter-sidebar .wc-block-product-filter-checkbox-list__input:disabled {
  border-color: #e2e7ef !important;
  background: #f2f4f8 !important;
  cursor: not-allowed;
}
.shop1-filter-sidebar .wc-block-product-filter-checkbox-list__input:focus-visible {
  outline: 2px solid rgb(255 75 24 / 35%);
  outline-offset: 2px;
}
.shop1-filter-sidebar .wc-block-product-filter-checkbox-list__mark {
  position: absolute;
  inset: 0;
  margin: auto;
  width: 10px;
  height: 8px;
  color: #fff !important;
  pointer-events: none;
}

/* Drawer mode (<=900px): keep the block's own Apply footer visible and on-brand.
   WooCommerce hides it outside its <=782px overlay breakpoint. */
@media (max-width: 900px) {
  .shop1-filter-sidebar .wc-block-product-filters__overlay-footer {
    display: block !important;
    margin-top: 16px;
    padding: 16px 0 4px;
    border-top: 1px solid var(--shop1-line);
  }
  .shop1-filter-sidebar .wc-block-product-filters__apply {
    width: 100%;
    min-height: 44px;
    border: 0;
    border-radius: 7px;
    background: var(--shop1-orange) !important;
    color: #fff !important;
    font-size: 12px;
    font-weight: 900;
    text-transform: uppercase;
    cursor: pointer;
  }
  .shop1-filter-sidebar .wc-block-product-filters__apply:hover {
    background: #e83e0d !important;
  }
}
.shop1-price-slider {
  width: 100%;
  accent-color: var(--shop1-orange);
}
.shop1-price-values {
  display: flex;
  justify-content: space-between;
  margin-top: 8px;
  color: var(--shop1-muted);
  font-size: 12px;
}
.shop1-price-values strong {
  color: var(--shop1-navy);
}
.shop1-filter-apply {
  width: 100%;
  margin-top: 18px;
}
.shop1-filter-close {
  display: none;
}
.shop1-filter-open {
  display: none;
}
.shop1-filter-backdrop {
  position: fixed;
  inset: 0;
  z-index: 28;
  background: rgba(5, 17, 42, 0.45);
}

/* ===== Archive Header & Toolbar ===== */
.shop1-archive-header {
  display: flex;
  justify-content: space-between;
  align-items: end;
  gap: 20px;
  margin-bottom: 18px;
}
.shop1-archive-header h2 {
  margin: 5px 0 4px;
  color: var(--shop1-navy);
  font-size: 30px;
  letter-spacing: -0.025em;
}
.shop1-archive-header p {
  margin: 0;
  color: var(--shop1-muted);
  font-size: 14px;
}
.shop1-toolbar {
  min-height: 49px;
  margin-bottom: 17px;
  padding: 8px 12px;
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 16px;
  border: 1px solid var(--shop1-line);
  border-radius: 10px;
  background: #fff;
}
.shop1-toolbar .woocommerce-result-count {
  margin: 0;
  color: var(--shop1-muted);
  font-size: 12px;
  font-weight: 750;
}
.shop1-toolbar .woocommerce-ordering {
  position: relative;
  display: flex;
  align-items: center;
  gap: 9px;
  float: none;
  margin: 0;
  color: var(--shop1-muted);
  font-size: 12px;
  font-weight: 800;
}
.shop1-toolbar .woocommerce-ordering::after {
  content: "";
  position: absolute;
  top: 50%;
  right: 13px;
  width: 7px;
  height: 7px;
  border: 0 solid currentColor;
  border-right-width: 2px;
  border-bottom-width: 2px;
  color: var(--shop1-muted);
  font-family: inherit;
  pointer-events: none;
  transform: translateY(-65%) rotate(45deg);
}
.shop1-toolbar .woocommerce-ordering select {
  height: 34px;
  min-height: 34px;
  padding: 0 30px 0 11px;
  border: 1px solid var(--shop1-line);
  border-radius: 6px;
  color: var(--shop1-navy);
  background: #fff;
  font-size: 12px;
  font-weight: 750;
}

/* ===== Product Grid (loop) ===== */
/* High specificity to override WooCommerce defaults */
body.woocommerce-page .woocommerce ul.products,
body.woocommerce-page ul.products {
  height: auto !important;
  min-height: 0 !important;
  margin: 0 !important;
  padding: 0 !important;
  border: 0 !important;
  background: transparent !important;
  display: grid !important;
  grid-template-columns: repeat(3, minmax(0, 1fr)) !important;
  gap: 17px !important;
  list-style: none !important;
  clear: none !important;
  align-items: stretch !important;
}
body.woocommerce-page .woocommerce ul.products::before,
body.woocommerce-page .woocommerce ul.products::after,
body.woocommerce-page ul.products::before,
body.woocommerce-page ul.products::after {
  display: none !important;
  content: none !important;
}

/* ===== Product Card ===== */
/* Override WC default li.product styles comprehensively */
body.woocommerce-page .woocommerce ul.products li.product.shop1-product-card,
body.woocommerce-page ul.products li.product.shop1-product-card,
.shop1-product-card {
  position: relative;
  display: block !important;
  min-width: 0;
  float: none !important;
  clear: none !important;
  width: auto !important;
  margin: 0 !important;
  padding: 0 !important;
  overflow: hidden;
  border: 1px solid var(--shop1-line);
  border-radius: 14px;
  background: #fff;
  box-shadow: 0 7px 22px rgba(7, 27, 67, 0.055);
  transition: transform 0.2s ease, box-shadow 0.2s ease;
}
body.woocommerce-page .woocommerce ul.products li.product.shop1-product-card:hover,
body.woocommerce-page ul.products li.product.shop1-product-card:hover,
.shop1-product-card:hover {
  transform: translateY(-3px);
  box-shadow: 0 18px 46px rgba(7, 27, 67, 0.12);
}
.shop1-product-card {
  min-height: 351px;
}
.shop1-product-card__badge {
  position: absolute;
  top: 12px;
  left: 12px;
  z-index: 3;
  padding: 6px 10px;
  border-radius: 999px;
  background: #fff0e9;
  color: var(--shop1-orange);
  font-size: 10px;
  font-weight: 900;
}
/* Bumped specificity: WooCommerce core (.woocommerce ul.products li.product .onsale)
   and GeneratePress's sales-flash-overlay rule (loaded later) otherwise win. */
body.woocommerce-page .woocommerce ul.products li.product .onsale,
body.woocommerce-page ul.products li.product .onsale,
.shop1-product-card .onsale {
  position: absolute;
  top: 12px !important;
  right: auto !important;
  left: 12px !important;
  z-index: 3;
  min-height: 0;
  margin: 0 !important;
  padding: 6px 10px;
  border-radius: 999px;
  background: #fff0e9;
  color: var(--shop1-orange);
  font-size: 10px;
  font-weight: 900;
  line-height: 1;
  text-align: center;
}
.shop1-product-card__wishlist {
  position: absolute;
  top: 10px;
  right: 10px;
  z-index: 3;
  width: 34px;
  height: 34px;
  display: grid;
  place-items: center;
  border: 0;
  border-radius: 50%;
  background: #fff;
  color: var(--shop1-navy);
  box-shadow: 0 5px 14px rgba(7, 27, 67, 0.1);
  cursor: pointer;
}
.shop1-product-card__wishlist svg {
  width: 17px;
  height: 17px;
}
.shop1-product-card__wishlist.is-active {
  color: var(--shop1-orange);
}
.shop1-product-card__wishlist.is-active svg {
  fill: currentColor;
}
.shop1-product-card__link {
  display: block;
  margin-bottom: 0 !important;
}
.shop1-product-card__media {
  height: 184px;
  display: grid;
  place-items: center;
  background: linear-gradient(145deg, #fafbfd, #edf2f7);
  overflow: hidden;
}
/* High specificity to override WC default `height: auto` */
body.woocommerce-page .woocommerce ul.products li.product.shop1-product-card .shop1-product-card__media img,
.shop1-product-card__media img {
  width: 100% !important;
  height: auto !important;
  max-height: 184px !important;
  object-fit: contain !important;
  display: block;
}
.shop1-product-card__content {
  min-height: 165px;
  padding: 15px 15px 60px;
}
.shop1-product-card .woocommerce-loop-product__title,
.shop1-product-card__title {
  margin: 7px 0 6px;
  color: var(--shop1-navy);
  font-size: 17px;
  line-height: 1.2;
  font-weight: 900;
}
.shop1-product-card .star-rating {
  float: none;
  margin: 0 auto;
  font-size: 12px;
}
.shop1-product-card__excerpt {
  min-height: 38px;
  margin: 0;
  color: var(--shop1-muted);
  font-size: 12px;
  line-height: 1.45;
  overflow: hidden;
}
.shop1-product-card__footer {
  margin-top: 12px;
}
/* Bumped specificity: WooCommerce core (.woocommerce ul.products li.product .price)
   otherwise wins and shrinks the price to 0.857em. */
body.woocommerce-page .woocommerce ul.products li.product .price,
body.woocommerce-page ul.products li.product .price,
.shop1-product-card .price {
  font-size: 18px;
  color: var(--shop1-orange);
  font-weight: 900;
}
body.woocommerce-page .woocommerce ul.products li.product .price del,
body.woocommerce-page ul.products li.product .price del,
.shop1-product-card .price del {
  color: #9aa4b8;
  font-size: 14px;
  font-weight: 700;
}
body.woocommerce-page .woocommerce ul.products li.product .price ins,
body.woocommerce-page ul.products li.product .price ins,
.shop1-product-card .price ins {
  color: var(--shop1-orange);
  font-weight: 900;
  text-decoration: none;
}
/* Use !important on background to override GeneratePress .button */
.shop1-product-card__add {
  position: absolute;
  right: 14px;
  bottom: 14px;
  min-width: 74px;
  min-height: 34px;
  padding: 0 12px;
  border: 1px solid transparent;
  border-radius: 7px;
  background: var(--shop1-orange) !important;
  color: #fff !important;
  font-size: 12px;
  font-weight: 800;
  text-transform: uppercase;
  cursor: pointer;
  transition: 0.2s ease;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  gap: 6px;
}
body.woocommerce-page .woocommerce ul.products li.product.shop1-product-card .shop1-product-card__add,
body.woocommerce-page ul.products li.product.shop1-product-card .shop1-product-card__add {
  position: absolute;
  right: 14px;
  bottom: 14px;
  min-height: 34px;
  padding: 0 12px;
  margin: 0;
  border-radius: 7px;
  font-size: 12px;
  font-weight: 800;
  line-height: 1.2;
  display: inline-flex;
}
.shop1-product-card__add:hover {
  background: #e83e0d !important;
}
.shop1-product-card__add svg {
  width: 14px;
  height: 14px;
}
.shop1-product-card__placeholder {
  width: 126px;
  height: 110px;
  border-radius: 38px 44px 32px 38px;
  background: linear-gradient(145deg, #1d2023, #030304);
  box-shadow: inset 0 0 25px rgba(255, 255, 255, 0.08), 0 18px 28px rgba(0, 0, 0, 0.23);
  transform: rotate(-8deg);
}

/* ===== WooCommerce Pagination ===== */
.woocommerce-pagination {
  margin-top: 28px;
  display: flex;
  justify-content: center;
}
.woocommerce-pagination ul {
  display: flex;
  gap: 6px;
  margin: 0;
  padding: 0;
  list-style: none;
  border: none;
}
.woocommerce-pagination ul li {
  border: none;
  float: none;
}
.woocommerce-pagination ul li .page-numbers {
  min-width: 38px;
  height: 38px;
  display: grid;
  place-items: center;
  border: 1px solid var(--shop1-line);
  border-radius: 8px;
  color: var(--shop1-navy);
  font-size: 13px;
  font-weight: 800;
  text-decoration: none;
  transition: 0.2s ease;
}
.woocommerce-pagination ul li .page-numbers.current {
  background: var(--shop1-navy);
  color: #fff;
  border-color: var(--shop1-navy);
}
.woocommerce-pagination ul li .page-numbers:hover:not(.current) {
  background: var(--shop1-soft);
}

/* ===== Single Product: Page Background ===== */
.shop1-single-product .site-main {
  background: linear-gradient(#fff 0 48%, #fbfcfe 100%);
}

/* ===== Single Product: Main Layout ===== */
.shop1-single-product.woocommerce div.product {
  position: relative;
  display: grid;
  grid-template-columns: minmax(0, 1.04fr) minmax(420px, 0.96fr);
  gap: 58px;
  align-items: start;
}
.shop1-single-product.woocommerce div.product div.images,
.shop1-single-product.woocommerce div.product div.summary {
  float: none;
  width: auto;
  margin: 0;
}
.shop1-single-product.woocommerce div.product div.images {
  grid-column: 1;
  width: 100% !important;
  min-width: 0;
}
.shop1-single-product.woocommerce div.product div.summary {
  grid-column: 2;
  padding-top: 4px;
}

/* GP keeps the single-product sale flash in normal flow. As a direct child of
   our product grid it would otherwise consume a grid cell and shift both
   gallery and summary out of position. */
.shop1-single-product.woocommerce div.product > .onsale {
  position: absolute;
  top: 14px;
  left: 14px;
  right: auto;
  bottom: auto;
  z-index: 6;
  display: inline-flex;
  align-items: center;
  width: auto;
  min-width: 0;
  min-height: 0;
  margin: 0;
  padding: 7px 11px;
  border-radius: 999px;
  background: var(--shop1-orange);
  color: #fff;
  font-size: 12px;
  font-weight: 900;
  line-height: 1;
  text-transform: uppercase;
}
.shop1-single-product.woocommerce div.product:has(.flex-control-thumbs) > .onsale {
  left: 108px;
}

/* ===== Single Product: Gallery ===== */
.shop1-single-product .woocommerce-product-gallery {
  display: grid;
  grid-template-columns: minmax(0, 1fr);
  gap: 16px;
  min-width: 0;
}
.shop1-single-product .woocommerce-product-gallery:has(ol.flex-control-thumbs) {
  grid-template-columns: 78px minmax(0, 1fr);
}
.shop1-single-product .woocommerce-product-gallery .flex-viewport {
  grid-column: 2;
  grid-row: 1;
}
.shop1-single-product.woocommerce div.product div.images ol.flex-control-thumbs {
  grid-column: 1;
  grid-row: 1;
  display: flex;
  flex-direction: column;
  gap: 10px;
  margin: 0;
  padding: 0;
  list-style: none;
  width: 78px;
}
.shop1-single-product.woocommerce div.product div.images ol.flex-control-thumbs li {
  float: none;
  flex: 0 0 78px;
  width: 100%;
  max-width: none;
  padding: 0;
  margin: 0;
}
.shop1-single-product.woocommerce div.product div.images ol.flex-control-thumbs img {
  width: 78px;
  height: 76px;
  padding: 3px;
  border: 1px solid var(--shop1-line);
  border-radius: 9px;
  background: #fff;
  object-fit: cover;
  opacity: 1;
  transition: border 0.2s ease;
}
.shop1-single-product.woocommerce div.product div.images ol.flex-control-thumbs img.flex-active {
  border-color: var(--shop1-orange);
  box-shadow: 0 0 0 1px var(--shop1-orange);
}
/* Subtle hover affordance for non-active thumbnails */
.shop1-single-product.woocommerce div.product div.images ol.flex-control-thumbs img:not(.flex-active):hover {
  border-color: #c3ccd8;
}
.shop1-single-product .woocommerce-product-gallery .flex-viewport,
.shop1-single-product .woocommerce-product-gallery__image {
  height: 545px;
  border-radius: 14px;
  overflow: hidden;
}
/* Remove the gray gradient backdrop. A hairline border is anchored on the
   outermost box only (:has() guards against a doubled 2px line), so
   transparent PNGs don't look like they float. */
.shop1-single-product .woocommerce-product-gallery .flex-viewport,
.shop1-single-product .woocommerce-product-gallery:not(:has(.flex-viewport)) .woocommerce-product-gallery__image {
  background: transparent;
  border: 1px solid var(--shop1-line);
}
.shop1-single-product .woocommerce-product-gallery .woocommerce-product-gallery__image {
  background: transparent;
}
.shop1-single-product .woocommerce-product-gallery .flex-viewport .woocommerce-product-gallery__wrapper,
.shop1-single-product .woocommerce-product-gallery .flex-viewport .woocommerce-product-gallery__image {
  height: 100%;
}
.shop1-single-product.woocommerce div.product div.images .woocommerce-product-gallery__image a {
  width: 100%;
  height: 100%;
  display: flex;
  align-items: center;
  justify-content: center;
}
.shop1-single-product.woocommerce div.product div.images .woocommerce-product-gallery__image img {
  width: auto;
  height: auto;
  max-width: 100%;
  min-width: 0;
  border-radius: 14px;
  background: transparent;
  object-fit: contain;
  object-position: center;
  max-height: 100%;
}

/* Zoom trigger: proper hit target + hover state (WooCommerce renders a
   bare 1em icon by default). */
.shop1-single-product .woocommerce-product-gallery__trigger {
  position: absolute;
  top: 14px;
  right: 14px;
  z-index: 6;
  width: 40px;
  height: 40px;
  display: flex;
  align-items: center;
  justify-content: center;
  margin: 0;
  border-radius: 999px;
  background: #fff;
  border: 1px solid var(--shop1-line);
  text-indent: 0;
  transition: border-color 0.2s ease;
}
.shop1-single-product .woocommerce-product-gallery__trigger:hover {
  border-color: var(--shop1-navy);
}
.shop1-single-product .woocommerce-product-gallery__trigger img {
  width: 18px;
  height: 18px;
  object-fit: contain;
}

/* Accessibility: visible keyboard focus inside the gallery. */
.shop1-single-product .woocommerce-product-gallery a:focus-visible,
.shop1-single-product .woocommerce-product-gallery__trigger:focus-visible {
  outline: 2px solid var(--shop1-navy);
  outline-offset: 2px;
  border-radius: 4px;
}

/* Respect reduced-motion preference for gallery transitions. */
@media (prefers-reduced-motion: reduce) {
  .shop1-single-product .woocommerce-product-gallery * {
    transition: none !important;
  }
}

/* ===== Single Product: Title, Rating, Price ===== */
.shop1-single-product .product_title {
  margin: 0;
  color: var(--shop1-navy);
  font-size: clamp(30px, 2.4vw, 38px);
  line-height: 1.15;
  letter-spacing: -0.02em;
}
.shop1-single-product .woocommerce-product-rating {
  display: flex;
  align-items: center;
  gap: 10px;
  margin-top: 16px;
  font-size: 13px;
  font-weight: 700;
  color: #526079;
  line-height: 1;
}
.shop1-single-product .woocommerce-product-details__short-description p {
  max-width: 570px;
  margin: 18px 0 0;
  font-size: 16px;
  line-height: 1.65;
  color: #4c5870;
  font-weight: 400;
}
.shop1-single-product .price-row,
.shop1-single-product div.product p.price,
.shop1-single-product div.product span.price {
  display: flex;
  align-items: center;
  gap: 18px;
  margin: 20px 0;
  color: var(--shop1-navy);
  font-size: 30px;
  font-weight: 900;
}
.shop1-single-product .stock.in-stock {
  display: inline-flex;
  align-items: center;
  gap: 5px;
  color: #207a4e;
  font-size: 12px;
  font-weight: 800;
}
.shop1-single-product .stock.in-stock::before {
  content: "";
  display: none;
}
.shop1-single-product .stock svg {
  width: 17px;
  height: 17px;
}

/* ===== Single Product: Cart Form ===== */
.shop1-single-product div.product form.cart {
  display: grid;
  grid-template-columns: 136px 1fr 1fr;
  gap: 10px;
  margin: 0;
}
.shop1-single-product div.product form.cart .quantity {
  height: 46px;
  margin: 5px 0 0 0;
  border: 1px solid var(--shop1-line);
  border-radius: 7px;
  display: grid;
  grid-template-columns: 36px 1fr 36px;
  overflow: hidden;
  background: #fff;
}
.shop1-single-product div.product form.cart .quantity input {
  grid-column: 2;
  grid-row: 1;
  width: 100%;
  height: 100%;
  min-height: 0;
  min-width: 0;
  padding: 0;
  border: 0;
  text-align: center;
  font-weight: 800;
  -moz-appearance: textfield;
  color: var(--shop1-navy);
}
.shop1-single-product div.product form.cart .quantity input::-webkit-inner-spin-button {
  appearance: none;
}
.shop1-single-product div.product form.cart .button {
  min-height: 46px;
  padding: 0 22px;
  border-radius: 7px;
  background: var(--shop1-orange);
  color: #fff;
  font-size: 13px;
  font-weight: 800;
  text-transform: uppercase;
  transition: 0.2s ease;
  float: none;
}
.shop1-single-product div.product form.cart .button:hover {
  background: #e83e0d;
}

/* ===== Product Highlights ===== */
.shop1-product-highlights {
  list-style: none;
  margin: 0 0 22px;
  padding: 14px 0;
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  border-top: 1px solid var(--shop1-line);
  border-bottom: 1px solid var(--shop1-line);
}
.shop1-product-highlights li {
  display: flex;
  align-items: center;
  gap: 12px;
  min-width: 0;
  min-height: 54px;
  padding: 5px 16px;
}
.shop1-product-highlights li + li {
  border-left: 1px solid var(--shop1-line);
}
.shop1-product-highlights li::before {
  --shop1-highlight-icon: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cpath d='m5 12.5 4.2 4.2L19 7' fill='none' stroke='%23ff4b18' stroke-width='1.8' stroke-linecap='round' stroke-linejoin='round'/%3E%3C/svg%3E");
  content: "";
  box-sizing: border-box;
  width: 40px;
  height: 40px;
  padding: 9px;
  flex: 0 0 auto;
  border: 1px solid rgb(255 75 24 / 16%);
  border-radius: 12px;
  background-image: var(--shop1-highlight-icon), linear-gradient(145deg, #fff7f3, #ffede6);
  background-position: center, center;
  background-size: 22px 22px, 100% 100%;
  background-repeat: no-repeat;
  box-shadow: 0 5px 14px rgb(255 75 24 / 10%);
}
.shop1-product-highlights .shop1-highlight-icon--heat::before {
  --shop1-highlight-icon: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cg fill='none' stroke='%23ff4b18' stroke-width='1.7' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M13.5 2.8c.7 3.2-.9 4.5-2.4 6.2-1.3 1.5-2.4 3-1.2 5.4'/%3E%3Cpath d='M16.9 7.1c2.2 2.5 3.2 4.8 2.4 7.7A7.5 7.5 0 0 1 12 20.5a7.4 7.4 0 0 1-7.4-7.6c0-2.5 1.2-4.9 3.5-7.1-.1 3.1 1 4.6 2.1 5.7'/%3E%3C/g%3E%3C/svg%3E");
}
.shop1-product-highlights .shop1-highlight-icon--compression::before {
  --shop1-highlight-icon: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cg fill='none' stroke='%23ff4b18' stroke-width='1.8' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M3 8h6M6 5l3 3-3 3M21 8h-6m3-3-3 3 3 3M3 16h6m-3-3 3 3-3 3M21 16h-6m3-3-3 3 3 3M12 4v16'/%3E%3C/g%3E%3C/svg%3E");
}
.shop1-product-highlights .shop1-highlight-icon--circulation::before {
  --shop1-highlight-icon: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cg fill='none' stroke='%23ff4b18' stroke-width='1.7' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M20 7.5A8.5 8.5 0 0 0 5.4 5L3 7.5M3 3.5v4h4M4 16.5A8.5 8.5 0 0 0 18.6 19l2.4-2.5M21 20.5v-4h-4M8.5 12h2l1.1-2.2 1.6 4.4 1.1-2.2h1.2'/%3E%3C/g%3E%3C/svg%3E");
}
.shop1-product-highlights span {
  display: flex;
  flex-direction: column;
  min-width: 0;
}
.shop1-product-highlights strong {
  font-size: 13px;
  line-height: 1.25;
  color: var(--shop1-navy);
}
.shop1-product-highlights small {
  margin-top: 3px;
  font-size: 12px;
  color: var(--shop1-muted);
  font-weight: 600;
  line-height: 1.35;
}

/* ===== Product Trust Row ===== */
.shop1-product-trust {
  display: flex;
  flex-wrap: wrap;
  gap: 16px;
  margin-top: 18px;
  padding-bottom: 17px;
  border-bottom: 1px solid var(--shop1-line);
}
.shop1-product-trust span {
  display: inline-flex;
  align-items: center;
  gap: 6px;
  color: #566176;
  font-size: 12px;
  font-weight: 700;
}
.shop1-product-trust svg {
  width: 18px;
  height: 18px;
  color: var(--shop1-navy);
}

/* ===== Product Meta ===== */
.shop1-single-product div.product .product_meta {
  padding-top: 13px;
  color: var(--shop1-muted);
  font-size: 12px;
  line-height: 1.65;
}
.shop1-single-product .product_meta > span {
  display: block;
}
.shop1-single-product .product_meta > .tagged_as {
  display: none;
}
.shop1-single-product .product_meta strong {
  color: var(--shop1-navy);
}

/* ===== Section Styles (shared) ===== */
.shop1-product-section,
.shop1-product-panel,
.shop1-product-tabs-wrapper,
.shop1-comparison,
.shop1-archive-cta,
.shop1-single-product div.product .woocommerce-tabs,
.shop1-single-product div.product .related,
.shop1-single-product div.product .upsells {
  margin-top: 28px;
  border: 1px solid #edf0f5;
  border-radius: var(--shop1-radius);
  background: #fff;
  box-shadow: var(--shop1-shadow);
  grid-column: 1 / -1;
}
.shop1-product-section,
.shop1-product-panel {
  padding: 30px 40px;
}

/* ===== Section Headings ===== */
.shop1-section-heading {
  text-align: center;
}
.shop1-section-heading--left {
  text-align: left;
}
.shop1-section-heading p {
  margin: 0 0 7px;
  color: var(--shop1-orange);
  font-size: 12px;
  font-weight: 900;
  letter-spacing: 0.13em;
}
.shop1-section-heading h2 {
  margin: 0;
  color: var(--shop1-navy);
  font-size: 25px;
  line-height: 1.2;
}

/* ===== Experience Grid ===== */
.shop1-experience-grid {
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  margin-top: 25px;
}
.shop1-experience-grid article,
.shop1-experience-item {
  min-height: 82px;
  padding: 0 32px;
  display: flex;
  align-items: center;
  justify-content: center;
  gap: 18px;
  border-left: 1px solid var(--shop1-line);
}
.shop1-experience-grid article:first-child,
.shop1-experience-item:first-child {
  border-left: 0;
}
.shop1-experience-grid svg,
.shop1-experience-item svg {
  width: 38px;
  height: 38px;
  flex: 0 0 auto;
  color: var(--shop1-navy);
}
.shop1-experience-grid p,
.shop1-experience-item p {
  margin: 0;
  display: flex;
  flex-direction: column;
}
.shop1-experience-grid strong,
.shop1-experience-item strong {
  font-size: 14px;
  color: var(--shop1-navy);
}
.shop1-experience-grid span,
.shop1-experience-item span {
  margin-top: 4px;
  font-size: 12px;
  color: var(--shop1-muted);
  font-weight: 600;
}

/* ===== Product Panels (Why + How) ===== */
.shop1-product-panels {
  display: grid;
  grid-template-columns: 0.86fr 1.14fr;
  gap: 24px;
  margin-top: 28px;
}

/* GenerateBlocks marketing grids are direct children of WooCommerce's product
   grid. Keep the stable editor class full-width without coupling to a GB hash. */
.shop1-single-product.woocommerce div.product > .product-feature-grid {
  grid-column: 1 / -1;
  width: 100%;
  max-width: none;
}

.shop1-feature-list {
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  margin-top: 28px;
}
.shop1-feature-list > div,
.shop1-feature-item {
  min-height: 110px;
  padding: 10px 16px;
  display: flex;
  flex-direction: column;
  align-items: center;
  text-align: center;
  gap: 11px;
  border-left: 1px solid var(--shop1-line);
}
.shop1-feature-list > div:first-child,
.shop1-feature-item:first-child {
  border-left: 0;
}
.shop1-feature-list svg,
.shop1-feature-item svg {
  width: 37px;
  height: 37px;
  color: var(--shop1-orange);
}
.shop1-feature-list strong,
.shop1-feature-item strong {
  font-size: 13px;
  color: var(--shop1-navy);
}
.shop1-feature-list small,
.shop1-feature-item small {
  margin-top: 4px;
  color: var(--shop1-muted);
  font-size: 12px;
  line-height: 1.35;
  font-weight: 600;
}

/* ===== Steps ===== */
.shop1-steps {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 13px;
  margin: 21px 0 0;
  padding: 0;
  list-style: none;
}
.shop1-step {
  width: 30%;
  text-align: center;
  position: relative;
}
.shop1-step__number {
  position: absolute;
  left: -8px;
  top: -9px;
  width: 30px;
  height: 30px;
  border-radius: 50%;
  display: grid;
  place-items: center;
  background: var(--shop1-orange);
  color: #fff;
  font-size: 13px;
  font-weight: 900;
  z-index: 1;
}
.shop1-step img,
.shop1-step__image {
  width: 100%;
  height: 112px;
  border-radius: 8px;
  object-fit: cover;
  background: var(--shop1-soft);
}
.shop1-step strong,
.shop1-step__title {
  display: block;
  margin-top: 8px;
  color: var(--shop1-navy);
  font-size: 12px;
  line-height: 1.3;
}
.shop1-steps i {
  font-style: normal;
  color: var(--shop1-orange);
  font-size: 24px;
}

/* ===== WooCommerce Tabs (styled to match demo) ===== */
.shop1-single-product div.product .woocommerce-tabs {
  padding: 0;
  overflow: hidden;
}
.shop1-single-product div.product .woocommerce-Tabs-panel .woocommerce-Reviews-title {
  display: none;
}
.shop1-single-product div.product .woocommerce-tabs ul.tabs {
  margin: 0;
  padding: 0;
  border-bottom: 1px solid var(--shop1-line);
  background: #fbfcfe;
}
.shop1-single-product div.product .woocommerce-tabs ul.tabs::before,
.shop1-single-product div.product .woocommerce-tabs ul.tabs li::after,
.shop1-single-product div.product .woocommerce-tabs ul.tabs li::before {
  display: none;
}
.shop1-single-product div.product .woocommerce-tabs ul.tabs li {
  margin: 0;
  padding: 0;
  border: 0;
  border-right: 1px solid var(--shop1-line);
  border-radius: 0;
  background: transparent;
}
.shop1-single-product div.product .woocommerce-tabs ul.tabs li a {
  min-height: 54px;
  padding: 18px 26px;
  color: #687389;
  font-size: 12px;
  font-weight: 800;
}
.shop1-single-product div.product .woocommerce-tabs ul.tabs li.active {
  background: #fff;
  box-shadow: inset 0 -3px var(--shop1-orange);
}
.shop1-single-product div.product .woocommerce-tabs ul.tabs li.active a {
  color: var(--shop1-navy);
}
.shop1-single-product div.product .woocommerce-Tabs-panel {
  padding: 28px 34px !important;
  color: #4f5c73;
  font-size: 14px;
  line-height: 1.75;
}
.shop1-single-product div.product .woocommerce-Tabs-panel h2 {
  margin: 0 0 9px;
  color: var(--shop1-navy);
  font-size: 21px;
}

/* ===== Product FAQ ===== */
.shop1-single-product .shop1-faq-list {
  border-top: 1px solid var(--shop1-line);
}
.shop1-single-product .shop1-faq-item {
  border-bottom: 1px solid var(--shop1-line);
}
.shop1-single-product .shop1-faq-item summary {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 20px;
  padding: 18px 4px;
  color: var(--shop1-navy);
  font-weight: 800;
  line-height: 1.45;
  cursor: pointer;
  list-style: none;
}
.shop1-single-product .shop1-faq-item summary::-webkit-details-marker {
  display: none;
}
.shop1-single-product .shop1-faq-item summary:focus-visible {
  outline: 2px solid var(--shop1-orange);
  outline-offset: 3px;
}
.shop1-single-product .shop1-faq-item__icon {
  position: relative;
  flex: 0 0 18px;
  width: 18px;
  height: 18px;
}
.shop1-single-product .shop1-faq-item__icon::before,
.shop1-single-product .shop1-faq-item__icon::after {
  position: absolute;
  top: 50%;
  left: 50%;
  width: 14px;
  height: 2px;
  border-radius: 2px;
  background: var(--shop1-orange);
  content: "";
  transform: translate(-50%, -50%);
  transition: transform 180ms ease, opacity 180ms ease;
}
.shop1-single-product .shop1-faq-item__icon::after {
  transform: translate(-50%, -50%) rotate(90deg);
}
.shop1-single-product .shop1-faq-item[open] .shop1-faq-item__icon::after {
  opacity: 0;
  transform: translate(-50%, -50%) rotate(0deg);
}
.shop1-single-product .shop1-faq-item__answer {
  padding: 0 44px 18px 4px;
  color: #4f5c73;
}
.shop1-single-product .shop1-faq-item__answer > :first-child {
  margin-top: 0;
}
.shop1-single-product .shop1-faq-item__answer > :last-child {
  margin-bottom: 0;
}

/* ===== Testimonial Card ===== */
.shop1-product-panels--secondary {
  grid-template-columns: 0.82fr 1.18fr;
}
.shop1-testimonial-card {
  display: grid;
  grid-template-columns: 150px 1fr;
  align-items: center;
  gap: 28px;
}
.shop1-testimonial-card__image {
  width: 150px;
  height: 190px;
  object-fit: cover;
  border-radius: 9px;
}
.shop1-testimonial-card__stars {
  margin: 0 0 8px;
  color: var(--shop1-orange);
  letter-spacing: 2px;
  font-size: 16px;
}
.shop1-testimonial-card blockquote {
  margin: 0 0 14px;
  color: var(--shop1-navy);
  font-size: 17px;
  line-height: 1.5;
  font-weight: 800;
}
.shop1-testimonial-card strong {
  font-size: 12px;
  color: var(--shop1-navy);
}
.shop1-testimonial-card strong span {
  display: block;
  margin-top: 3px;
  color: var(--shop1-muted);
  font-size: 12px;
}

/* ===== Audience Grid ===== */
.shop1-audience-grid {
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  gap: 14px;
  margin-top: 18px;
}
.shop1-audience-grid figure {
  margin: 0;
}
.shop1-audience-grid img {
  width: 100%;
  height: 105px;
  object-fit: cover;
  border-radius: 8px;
}
.shop1-audience-grid figcaption {
  margin-top: 7px;
  text-align: center;
  color: var(--shop1-navy);
  font-size: 12px;
  font-weight: 800;
}

/* ===== Related Products ===== */
.shop1-single-product div.product .related,
.shop1-single-product div.product .upsells {
  padding: 30px 34px;
  display: block;
  height: auto;
  min-width: 0;
  align-items: initial;
}
.shop1-single-product .related > h2,
.shop1-single-product .upsells > h2 {
  margin: 0 0 24px;
  text-align: center;
  font-size: 25px;
  line-height: 1.2;
  color: var(--shop1-navy);
}
.shop1-single-product section.related.products {
  padding: 30px 34px;
}
.shop1-single-product section.related.products > ul.products,
.shop1-single-product section.upsells.products > ul.products {
  width: 100%;
}
.shop1-related-products__grid {
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  margin-top: 24px;
}
.shop1-related-product {
  min-height: 160px;
  padding: 10px 28px;
  display: grid;
  grid-template-columns: 125px 1fr;
  align-items: center;
  gap: 17px;
  border-left: 1px solid var(--shop1-line);
}
.shop1-related-product:first-child {
  border-left: 0;
}
.shop1-related-product__thumb {
  height: 125px;
  display: grid;
  place-items: center;
}
.shop1-related-product__thumb img {
  max-width: 120px;
  max-height: 115px;
  object-fit: contain;
}
.shop1-related-product__cat {
  margin: 0;
  color: var(--shop1-muted);
  font-size: 11px;
  font-weight: 800;
  letter-spacing: 0.1em;
}
.shop1-related-product h3 {
  margin: 4px 0;
  color: var(--shop1-navy);
  font-size: 14px;
}
.shop1-related-product .star-rating {
  display: block;
  font-size: 12px;
}
.shop1-related-product .price {
  display: block;
  margin: 5px 0 8px;
  color: var(--shop1-navy);
  font-size: 14px;
  font-weight: 800;
}
.shop1-related-product .button {
  min-height: 32px;
  padding: 0 13px;
  font-size: 12px;
}

/* ===== Comparison (archive) ===== */
.shop1-comparison {
  margin-top: 34px;
  padding: 24px;
}
.shop1-comparison header {
  text-align: center;
}
.shop1-comparison h2 {
  margin: 5px 0 18px;
  color: var(--shop1-navy);
  font-size: 25px;
}
.shop1-comparison__grid {
  display: grid;
  grid-template-columns: repeat(4, 1fr);
  gap: 12px;
}
.shop1-comparison article {
  padding: 18px 15px;
  border-radius: 12px;
  background: var(--shop1-soft);
  text-align: center;
}
.shop1-comparison article > span {
  color: var(--shop1-orange);
  font-size: 12px;
  font-weight: 900;
}
.shop1-comparison h3 {
  margin: 6px 0;
  color: var(--shop1-navy);
  font-size: 15px;
}
.shop1-comparison p {
  margin: 0;
  color: var(--shop1-muted);
  font-size: 12px;
  line-height: 1.45;
}

/* ===== Archive CTA ===== */
.shop1-archive-cta {
  margin-top: 44px;
  min-height: 96px;
  padding: 22px 28px;
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 28px;
  border-radius: 14px;
  background: linear-gradient(90deg, var(--shop1-navy), #0b2f63);
  color: #fff;
}
.shop1-archive-cta h2 {
  margin: 5px 0 0;
  font-size: 27px;
}
.shop1-archive-cta .button {
  min-height: 46px;
  padding: 0 22px;
  border-radius: 7px;
  background: var(--shop1-orange);
  color: #fff;
  font-size: 13px;
  font-weight: 800;
  text-transform: uppercase;
  text-decoration: none;
  display: inline-flex;
  align-items: center;
  white-space: nowrap;
}

/* ================================================================
   Responsive
   ================================================================ */

/* 1100px */
@media (max-width: 1100px) {
  :root {
    --shop1-page-pad: 28px;
  }
  .shop1-archive-hero__grid {
    grid-template-columns: minmax(0, 1fr) minmax(330px, 0.8fr);
  }
  .shop1-archive-hero__content {
    padding-right: 30px;
  }
  body.woocommerce-page .woocommerce ul.products,
  body.woocommerce-page ul.products,
  .shop1-product-panels {
    grid-template-columns: repeat(2, minmax(0, 1fr)) !important;
  }
  .shop1-product-panels {
    gap: 20px;
  }
  .shop1-single-product.woocommerce div.product {
    grid-template-columns: minmax(0, 1fr) minmax(390px, 0.9fr);
    gap: 36px;
  }
  .shop1-single-product .woocommerce-product-gallery .flex-viewport,
  .shop1-single-product .woocommerce-product-gallery__image {
    height: 470px;
  }
}

/* 900px */
@media (max-width: 900px) {
  .shop1-store-benefits__grid {
    grid-template-columns: repeat(2, 1fr);
  }
  .shop1-store-benefit {
    justify-content: flex-start;
    border-bottom: 1px solid rgba(255, 255, 255, 0.1);
  }
  .shop1-store-benefit:nth-child(2) {
    border-right: 0;
  }
  .shop1-product-highlights,
  .shop1-feature-list,
  .shop1-experience-grid,
  .shop1-comparison__grid {
    grid-template-columns: repeat(2, 1fr);
  }
  .shop1-product-highlights li:nth-child(odd) {
    border-left: 0;
  }
  .shop1-product-highlights li:nth-child(n + 3) {
    border-top: 1px solid var(--shop1-line);
  }
  .shop1-archive-hero__grid {
    grid-template-columns: 1fr;
  }
  .shop1-archive-hero__content {
    padding: 40px 0 28px;
  }
  .shop1-archive-hero__visual {
    min-height: 250px;
  }
  .shop1-archive-layout {
    grid-template-columns: 1fr !important;
    align-items: stretch !important;
  }
  .shop1-filter-sidebar {
    position: fixed;
    top: 0;
    left: 0;
    z-index: 30;
    width: min(360px, 88vw);
    height: 100dvh;
    border-radius: 0;
    transform: translateX(-105%);
    transition: transform 0.25s ease;
    overflow-y: auto;
  }
  .shop1-filter-sidebar.is-open {
    transform: translateX(0);
  }
  .shop1-filter-close,
  .shop1-filter-apply,
  .shop1-filter-open {
    display: inline-flex;
  }
  .shop1-filter-open {
    align-items: center;
    gap: 7px;
    border: 0;
    background: transparent;
    color: var(--shop1-navy);
    font-size: 12px;
    font-weight: 900;
    cursor: pointer;
  }
  .shop1-filter-open svg {
    width: 17px;
    height: 17px;
  }
  .shop1-filter-close {
    border: 0;
    background: transparent;
    font-size: 28px;
    line-height: 1;
    cursor: pointer;
  }
  body.shop1-filters-open {
    overflow: hidden;
  }
  .shop1-toolbar {
    justify-content: flex-start;
  }
  .shop1-toolbar .woocommerce-result-count {
    margin-right: auto;
  }
  .shop1-single-product.woocommerce div.product {
    grid-template-columns: 1fr;
  }
  .shop1-single-product.woocommerce div.product div.images,
  .shop1-single-product.woocommerce div.product div.summary {
    grid-column: 1;
  }
  .shop1-single-product .woocommerce-product-gallery .flex-viewport,
  .shop1-single-product .woocommerce-product-gallery__image {
    height: min(66vw, 520px);
  }
  .shop1-experience-grid article,
  .shop1-experience-item {
    justify-content: flex-start;
    border-left: 0;
    border-top: 1px solid var(--shop1-line);
    padding: 15px 10px;
  }
  .shop1-experience-grid article:first-child,
  .shop1-experience-item:first-child {
    border-top: 0;
  }
  .shop1-product-panels--secondary {
    grid-template-columns: 1fr;
  }
  .shop1-related-products__grid {
    grid-template-columns: 1fr;
  }
  .shop1-related-product {
    border-left: 0;
    border-top: 1px solid var(--shop1-line);
    grid-template-columns: 130px 1fr;
  }
  .shop1-related-product:first-child {
    border-top: 0;
  }
}

/* 680px */
@media (max-width: 680px) {
  :root {
    --shop1-page-pad: 18px;
  }
  .shop1-store-benefits {
    display: none;
  }
  .shop1-archive-hero h1 {
    font-size: 38px;
  }
  .shop1-archive-hero p,
  .shop1-archive-hero__description {
    font-size: 15px;
  }
  .shop1-archive-hero__visual {
    min-height: 215px;
  }
  .shop1-archive-hero__device,
  .shop1-archive-hero__visual span {
    transform: rotate(-8deg) scale(0.84);
  }
  body.woocommerce-page .woocommerce ul.products,
  body.woocommerce-page ul.products {
    grid-template-columns: 1fr !important;
  }
  .shop1-product-card {
    display: block !important;
    min-height: 178px;
  }
  body.woocommerce-page .woocommerce ul.products li.product.shop1-product-card .shop1-product-card__link,
  body.woocommerce-page ul.products li.product.shop1-product-card .shop1-product-card__link {
    display: grid;
    grid-template-columns: 128px minmax(0, 1fr);
    min-height: 178px;
  }
  .shop1-product-card__media {
    height: 100%;
    min-height: 178px;
  }
  .shop1-product-card__content {
    min-height: 178px;
    padding: 18px 14px 54px;
  }
  .shop1-product-card__badge,
  .shop1-product-card .onsale {
    top: 8px;
    left: 8px;
  }
  .shop1-product-card__wishlist {
    top: 9px;
    right: 9px;
  }
  .shop1-product-card__excerpt {
    min-height: auto;
  }
  .shop1-single-product.woocommerce div.product form.cart {
    grid-template-columns: 1fr;
  }
  .shop1-single-product .woocommerce-product-gallery {
    grid-template-columns: 1fr;
  }
  .shop1-single-product .woocommerce-product-gallery:has(ol.flex-control-thumbs) {
    grid-template-columns: 1fr;
  }
  .shop1-single-product.woocommerce div.product:has(.flex-control-thumbs) > .onsale {
    left: 12px;
  }
  .shop1-single-product .woocommerce-product-gallery .flex-viewport {
    grid-column: 1;
    grid-row: 1;
  }
  .shop1-single-product.woocommerce div.product div.images ol.flex-control-thumbs {
    grid-column: 1;
    grid-row: 2;
    order: 2;
    flex-direction: row;
    overflow-x: auto;
    width: 100%;
  }
  .shop1-single-product.woocommerce div.product div.images ol.flex-control-thumbs li {
    flex: 0 0 64px;
    width: 64px;
  }
  .shop1-single-product.woocommerce div.product div.images ol.flex-control-thumbs img {
    width: 64px;
    height: 62px;
  }
  .shop1-single-product .woocommerce-product-gallery .flex-viewport,
  .shop1-single-product .woocommerce-product-gallery__image {
    height: 92vw;
    max-height: 455px;
  }
  .shop1-product-section,
  .shop1-product-panel {
    padding: 24px 20px;
  }
  .shop1-section-heading h2 {
    font-size: 22px;
  }
  .shop1-product-highlights,
  .shop1-feature-list,
  .shop1-experience-grid,
  .shop1-comparison__grid {
    grid-template-columns: 1fr;
  }
  .shop1-product-highlights li,
  .shop1-feature-list > div,
  .shop1-feature-item,
  .shop1-experience-grid article,
  .shop1-experience-item {
    padding-left: 0;
    padding-right: 0;
    border-left: 0;
    border-top: 1px solid var(--shop1-line);
  }
  .shop1-product-highlights li:first-child,
  .shop1-feature-list > div:first-child,
  .shop1-feature-item:first-child,
  .shop1-experience-grid article:first-child,
  .shop1-experience-item:first-child {
    border-top: 0;
  }
  .shop1-product-highlights li {
    min-height: 58px;
    padding-top: 10px;
    padding-bottom: 10px;
  }
  .shop1-product-highlights li + li {
    border-left: 0;
  }
  .shop1-feature-list > div,
  .shop1-feature-item {
    flex-direction: row;
    text-align: left;
    justify-content: flex-start;
  }
  .shop1-steps {
    align-items: flex-start;
    gap: 5px;
  }
  .shop1-step {
    width: 31%;
  }
  .shop1-step img,
  .shop1-step__image {
    height: 82px;
  }
  .shop1-steps i {
    font-size: 18px;
    margin-top: 28px;
  }
  .shop1-testimonial-card {
    grid-template-columns: 95px 1fr;
    gap: 18px;
  }
  .shop1-testimonial-card__image {
    width: 95px;
    height: 130px;
  }
  .shop1-testimonial-card blockquote {
    font-size: 14px;
  }
  .shop1-audience-grid {
    gap: 8px;
  }
  .shop1-audience-grid img {
    height: 78px;
  }
  .shop1-related-product {
    grid-template-columns: 95px 1fr;
    padding-inline: 5px;
  }
  .shop1-related-product__thumb {
    height: 100px;
  }
  .shop1-product-trust {
    display: grid;
    grid-template-columns: 1fr;
  }
  .shop1-comparison {
    padding: 20px;
  }
  .shop1-archive-cta {
    align-items: flex-start;
    flex-direction: column;
  }
  .shop1-archive-cta h2 {
    font-size: 23px;
  }
  .shop1-single-product div.product .woocommerce-tabs ul.tabs {
    display: flex;
    flex-direction: row;
    flex-wrap: nowrap;
    overflow-x: auto;
    overflow-y: hidden;
    scrollbar-width: none;
    -webkit-overflow-scrolling: touch;
  }
  .shop1-single-product div.product .woocommerce-tabs ul.tabs::-webkit-scrollbar {
    display: none;
  }
  .shop1-single-product div.product .woocommerce-tabs ul.tabs li {
    float: none;
    flex: 0 0 auto;
    width: auto;
  }
  .shop1-single-product div.product .woocommerce-tabs ul.tabs li a {
    display: flex;
    align-items: center;
    white-space: nowrap;
    padding-inline: 18px;
  }
  .shop1-single-product div.product .woocommerce-Tabs-panel {
    padding: 22px 20px;
  }
  .shop1-toolbar {
    flex-wrap: wrap;
  }
  .shop1-toolbar .woocommerce-ordering {
    width: 100%;
    justify-content: space-between;
    border-top: 1px solid var(--shop1-line);
    padding-top: 8px;
  }
  .shop1-toolbar .woocommerce-ordering select {
    flex: 1;
  }
}

/* 430px */
@media (max-width: 430px) {
  body.woocommerce-page .woocommerce ul.products li.product.shop1-product-card .shop1-product-card__link,
  body.woocommerce-page ul.products li.product.shop1-product-card .shop1-product-card__link {
    grid-template-columns: 112px minmax(0, 1fr);
  }
  .shop1-product-card__title {
    font-size: 15px;
  }
  .shop1-product-card__excerpt {
    font-size: 11px;
  }
  body.woocommerce-page .woocommerce ul.products li.product.shop1-product-card .shop1-product-card__add,
  body.woocommerce-page ul.products li.product.shop1-product-card .shop1-product-card__add {
    width: auto;
    min-width: 0;
    padding: 0 9px;
    font-size: 10px;
  }
  .shop1-comparison__grid {
    grid-template-columns: 1fr;
  }
}

/* ===== Shared Buttons (.shop1-btn) ===== */
.shop1-btn {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  min-height: 46px;
  padding: 0 24px;
  border-radius: 7px;
  font-size: 12px;
  font-weight: 900;
  text-transform: uppercase;
  letter-spacing: 0.05em;
  text-decoration: none !important;
  cursor: pointer;
  transition: background 0.2s ease, color 0.2s ease, border-color 0.2s ease;
  white-space: nowrap;
}
.shop1-btn--primary {
  background: var(--shop1-orange);
  border: 2px solid var(--shop1-orange);
  color: #fff !important;
}
.shop1-btn--primary:hover {
  background: #e83e0d;
  border-color: #e83e0d;
}
.shop1-btn--outline {
  background: transparent;
  border: 2px solid var(--shop1-navy);
  color: var(--shop1-navy) !important;
}
.shop1-btn--outline:hover {
  background: var(--shop1-navy);
  color: #fff !important;
}

/* ===== Quantity Stepper (+/−) ===== */
.shop1-single-product div.product form.cart .quantity.shop1-qty-enhanced {
  grid-template-columns: 36px 1fr 36px;
  grid-template-rows: minmax(0, 1fr);
  grid-auto-rows: 0;
  align-items: stretch;
}
/* GeneratePress draws quantity controls with pseudo-elements. The enhanced
   control already contains accessible buttons, so suppress GP's duplicate UI. */
.shop1-single-product.do-quantity-buttons div.product form.cart .quantity.shop1-qty-enhanced::before,
.shop1-single-product.do-quantity-buttons div.product form.cart .quantity.shop1-qty-enhanced::after,
.shop1-single-product div.product.do-quantity-buttons form.cart .quantity.shop1-qty-enhanced::before,
.shop1-single-product div.product.do-quantity-buttons form.cart .quantity.shop1-qty-enhanced::after {
  content: none !important;
  display: none !important;
}
.shop1-qty-btn {
  display: grid;
  place-items: center;
  width: 100%;
  height: 100% !important;
  min-width: 0;
  min-height: 0 !important;
  padding: 0 !important;
  box-sizing: border-box;
  border: 0;
  background: transparent;
  color: var(--shop1-navy);
  font-size: 20px;
  font-weight: 400;
  line-height: 1;
  cursor: pointer;
  transition: background 0.15s ease;
}
.shop1-qty-btn--minus {
  grid-column: 1;
  grid-row: 1;
}
.shop1-qty-btn--plus {
  grid-column: 3;
  grid-row: 1;
}
.shop1-qty-btn:hover {
  background: var(--shop1-soft);
}

/* =========================
   Feature list
   ========================= */

.kdup-list {
  list-style: none;
  margin: 24px 0 0;
  padding: 0;
}

.kdup-list li {
  display: flex;
  align-items: center;
  gap: 12px;
  padding: 14px 0;
  border-top: 1px solid var(--line);

  color: var(--navy);
  font-size: 13px;
  font-weight: 700;
  line-height: 1.35;
}

.kdup-list li:last-child {
  border-bottom: 1px solid var(--line);
}

/* 相同的 check icon 用伪元素最合适 */
.kdup-list li::before {
  content: "";
  flex: 0 0 17px;
  width: 17px;
  height: 17px;

  background: var(--color-accent);

  -webkit-mask:
    url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cpath d='M20 6 9 17l-5-5' fill='none' stroke='%23000' stroke-width='2.2' stroke-linecap='round' stroke-linejoin='round'/%3E%3C/svg%3E")
    center / contain no-repeat;

  mask:
    url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cpath d='M20 6 9 17l-5-5' fill='none' stroke='%23000' stroke-width='2.2' stroke-linecap='round' stroke-linejoin='round'/%3E%3C/svg%3E")
    center / contain no-repeat;
}

/* =========================================================
   PRODUCT FEATURE GRID
   2 cards = 2 columns
   1 card  = full width
   ========================================================= */

.product-feature-grid {
  --kdup-navy: var(--navy, #102452);
  --kdup-line: var(--line, #edf0f5);
  --kdup-accent: var(--color-accent, #ff541c);

  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 24px;
}


/* =========================================================
   SINGLE CARD
   如果 product-feature-grid 里面只有一个 product-card，
   自动占满整行
   ========================================================= */

.product-feature-grid > .product-card:only-child {
  grid-column: 1 / -1;
}


/* =========================================================
   PEOPLE
   默认情况：双卡页面的 Ideal For 保持 2 列
   ========================================================= */

.kdup-people {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));

  margin-top: 24px;

  border-top: 1px solid var(--kdup-line);
  border-bottom: 1px solid var(--kdup-line);
}


.kdup-person {
  display: flex;
  align-items: center;
  gap: 12px;

  min-width: 0;
  padding: 20px 18px;
}


/* 左列 */
.kdup-person:nth-child(odd) {
  padding-left: 0;
  border-right: 1px solid var(--kdup-line);
}


/* 右列 */
.kdup-person:nth-child(even) {
  padding-right: 0;
}


/* 第二行开始加横线 */
.kdup-person:nth-child(n + 3) {
  border-top: 1px solid var(--kdup-line);
}


/* =========================================================
   SINGLE IDEAL-FOR CARD
   如果 how-card 是唯一一张卡片，则 people 变成 4 列
   ========================================================= */

.product-feature-grid > .how-card:only-child .kdup-people {
  grid-template-columns: repeat(4, minmax(0, 1fr));
}


/* 清除默认 2 列布局规则 */
.product-feature-grid > .how-card:only-child .kdup-person {
  padding: 22px 24px;
  border-top: 0;
  border-right: 0;
}


/* 第一项靠左 */
.product-feature-grid > .how-card:only-child .kdup-person:first-child {
  padding-left: 0;
}


/* 最后一项靠右 */
.product-feature-grid > .how-card:only-child .kdup-person:last-child {
  padding-right: 0;
}

/* 6 个 item 时第二行边缘对齐 */
.product-feature-grid > .how-card:only-child
.kdup-people:has(.kdup-person:nth-child(6):last-child)
.kdup-person:nth-child(5) {
  padding-left: 0;
}

.product-feature-grid > .how-card:only-child
.kdup-people:has(.kdup-person:nth-child(6):last-child)
.kdup-person:nth-child(6) {
  padding-right: 0;
}

/* 4 列之间的分隔线 */
.product-feature-grid > .how-card:only-child
.kdup-person:not(:last-child) {
  border-right: 1px solid var(--kdup-line);
}


/* =========================================================
   GB ICON
   ========================================================= */

.kdup-person__icon {
  display: grid;
  place-items: center;

  flex: 0 0 38px;
  width: 38px;
  height: 38px;

  margin: 0;

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

  color: var(--kdup-navy);
  background: #fff;
}


.kdup-person__icon .gb-shape {
  display: flex;
  align-items: center;
  justify-content: center;
}


.kdup-person__icon svg {
  display: block;
  width: 18px;
  height: 18px;
}


/* =========================================================
   LABEL
   ========================================================= */

.kdup-person__label {
  min-width: 0;
  margin: 0;

  color: var(--kdup-navy);
  font-size: 13px;
  font-weight: 700;
  line-height: 1.35;
}


/* =========================================================
   TABLET
   卡片统一改单列
   people 统一 2 × 2
   ========================================================= */

@media (max-width: 900px) {

  .product-feature-grid {
    grid-template-columns: 1fr;
  }


  .product-feature-grid > .how-card:only-child .kdup-people,
  .kdup-people {
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }


  .product-feature-grid > .how-card:only-child .kdup-person,
  .kdup-person {
    padding: 18px;
    border-top: 0;
    border-right: 0;
  }


  .product-feature-grid > .how-card:only-child
  .kdup-person:nth-child(odd),
  .kdup-person:nth-child(odd) {
    padding-left: 0;
    border-right: 1px solid var(--kdup-line);
  }


  .product-feature-grid > .how-card:only-child
  .kdup-person:nth-child(even),
  .kdup-person:nth-child(even) {
    padding-right: 0;
  }


  .product-feature-grid > .how-card:only-child
  .kdup-person:nth-child(n + 3),
  .kdup-person:nth-child(n + 3) {
    border-top: 1px solid var(--kdup-line);
  }
}


/* =========================================================
   MOBILE
   people 统一单列
   ========================================================= */

@media (max-width: 620px) {

  .product-feature-grid > .how-card:only-child .kdup-people,
  .kdup-people {
    grid-template-columns: 1fr;
  }


  .product-feature-grid > .how-card:only-child .kdup-person,
  .kdup-person {
    padding: 15px 0;

    border-top: 0;
    border-right: 0 !important;
  }


  .product-feature-grid > .how-card:only-child
  .kdup-person:not(:last-child),
  .kdup-person:not(:last-child) {
    border-bottom: 1px solid var(--kdup-line);
  }
}

/* =========================================================
   ONLY WHY CARD
   PC：列表自动变 2 列
   ========================================================= */

@media (min-width: 901px) {

  .product-feature-grid > .why-card:only-child .kdup-list {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }


  /*
   每个 item 改为左右两栏，
   默认左右保留一点内部间距
  */
  .product-feature-grid > .why-card:only-child .kdup-list li {
    padding: 16px 24px;
    border-bottom: 0;
  }


  /* 左列 */
  .product-feature-grid > .why-card:only-child
  .kdup-list li:nth-child(odd) {
    padding-left: 0;
    border-right: 1px solid var(--kdup-line);
  }


  /* 右列 */
  .product-feature-grid > .why-card:only-child
  .kdup-list li:nth-child(even) {
    padding-right: 0;
  }


  /* 第二行开始 */
  .product-feature-grid > .why-card:only-child
  .kdup-list li:nth-child(n + 3) {
    border-top: 1px solid var(--kdup-line);
  }

