/* WooCommerce → shadcn design system (uses --token CSS variables) */

.woocommerce,
.woocommerce-page,
.woocommerce-account {
  --wc-panel-padding: 1rem;
  --wc-stack-gap: 0.75rem;
  --wc-stack-gap-sm: 0.5rem;
  color: hsl(var(--foreground));
}

.woocommerce a:not(.button):not(.gpl-product-add-to-cart):not(.add_to_cart_button):not(.added_to_cart) {
  color: hsl(var(--primary));
}

.woocommerce a:not(.button):not(.gpl-product-add-to-cart):not(.add_to_cart_button):not(.added_to_cart):hover {
  color: hsl(var(--primary) / 0.85);
}

/* Product cards — titles and thumbnails use foreground, not link primary */
.woocommerce ul.products li.product h2 a,
.woocommerce ul.products li.product > a:first-of-type,
.gpl-home-products ul.products li.product h2 a {
  color: hsl(var(--foreground)) !important;
  text-decoration: none;
}

.woocommerce ul.products li.product h2 a:hover,
.gpl-home-products ul.products li.product h2 a:hover {
  color: hsl(var(--foreground)) !important;
  text-decoration: underline;
}

/* Buttons */
.woocommerce .button,
.woocommerce button.button,
.woocommerce input.button,
.woocommerce a.button,
.woocommerce #respond input#submit,
.woocommerce .woocommerce-button,
.woocommerce a.button.wc-forward,
.woocommerce .checkout-button,
.woocommerce #place_order {
  display: inline-flex !important;
  align-items: center;
  justify-content: center;
  gap: 0.5rem;
  white-space: nowrap;
  border-radius: calc(var(--radius) - 2px) !important;
  font-size: 0.875rem !important;
  font-weight: 500 !important;
  line-height: 1.25rem !important;
  min-height: 2.25rem !important;
  padding: 0.5rem 1rem !important;
  border: 1px solid transparent !important;
  background-color: hsl(var(--primary)) !important;
  color: hsl(var(--primary-foreground)) !important;
  box-shadow: 0 1px 2px 0 rgb(0 0 0 / 0.05) !important;
  transition: background-color 0.15s ease, color 0.15s ease, border-color 0.15s ease !important;
  text-decoration: none !important;
}

.woocommerce .button:hover,
.woocommerce button.button:hover,
.woocommerce a.button:hover,
.woocommerce input.button:hover {
  background-color: hsl(var(--primary) / 0.9) !important;
  color: hsl(var(--primary-foreground)) !important;
}

.woocommerce .button.alt,
.woocommerce #place_order,
.woocommerce .checkout-button {
  background-color: hsl(var(--primary)) !important;
  color: hsl(var(--primary-foreground)) !important;
}

.woocommerce a.button.wc-backward,
.woocommerce .button.cancel,
.woocommerce .woocommerce-Button--secondary {
  background-color: hsl(var(--background)) !important;
  color: hsl(var(--foreground)) !important;
  border: 1px solid hsl(var(--input)) !important;
  box-shadow: 0 1px 2px 0 rgb(0 0 0 / 0.05) !important;
}

.woocommerce a.button.wc-backward:hover,
.woocommerce .button.cancel:hover {
  background-color: hsl(var(--accent)) !important;
  color: hsl(var(--accent-foreground)) !important;
}

/* Forms */
.woocommerce form .form-row label,
.woocommerce .woocommerce-form__label {
  display: block;
  margin-bottom: 0.5rem;
  font-size: 0.875rem;
  font-weight: 500;
  line-height: 1;
  color: hsl(var(--foreground));
}

/* Payment method labels are not form-row fields */
.woocommerce-checkout #payment ul.payment_methods > li > label,
.woocommerce-checkout #payment ul.wc_payment_methods > li > label {
  display: inline-flex !important;
  margin-bottom: 0 !important;
}

.woocommerce form .input-text,
.woocommerce form input[type="text"],
.woocommerce form input[type="email"],
.woocommerce form input[type="tel"],
.woocommerce form input[type="password"],
.woocommerce form input[type="number"],
.woocommerce form input[type="url"],
.woocommerce form input[type="search"],
.woocommerce form select,
.woocommerce form textarea,
.woocommerce .woocommerce-Input,
.woocommerce .select2-container--default .select2-selection--single {
  display: flex;
  width: 100%;
  min-height: 2.25rem;
  border-radius: calc(var(--radius) - 2px);
  border: 1px solid hsl(var(--input));
  background-color: hsl(var(--background));
  padding: 0.25rem 0.75rem;
  font-size: 0.875rem;
  line-height: 1.25rem;
  color: hsl(var(--foreground));
  box-shadow: 0 1px 2px 0 rgb(0 0 0 / 0.05);
  transition: box-shadow 0.15s ease, border-color 0.15s ease;
}

.woocommerce form textarea,
.woocommerce form .textarea {
  min-height: 5rem;
  padding-top: 0.5rem;
  padding-bottom: 0.5rem;
}

.woocommerce form .input-text:focus,
.woocommerce form input:focus,
.woocommerce form select:focus,
.woocommerce form textarea:focus {
  outline: none;
  border-color: hsl(var(--ring));
  box-shadow: 0 0 0 1px hsl(var(--ring));
}

.woocommerce form .form-row {
  margin-bottom: 1rem;
  padding: 0;
}

.woocommerce form .form-row-first,
.woocommerce form .form-row-last {
  width: 48%;
}

.woocommerce form .form-row-wide {
  width: 100%;
  clear: both;
}

.woocommerce form .required {
  color: hsl(var(--destructive));
  text-decoration: none;
}

/* Notices — woocommerce-notices-wrapper */
.woocommerce-notices-wrapper,
.gpl-wc-notices {
  display: block;
  width: 100%;
  max-width: 100%;
  margin: 0 0 var(--wc-stack-gap);
  padding: 0;
  clear: both;
}

.woocommerce-notices-wrapper:empty {
  display: none !important;
  margin: 0 !important;
}

.gpl-notices-stack {
  display: block;
  width: 100%;
  max-width: 100%;
  list-style: none;
  margin: 0;
  padding: 0;
}

.gpl-notices-stack > * + * {
  margin-top: 0.5rem;
}

.woocommerce-notices-wrapper .woocommerce-message,
.woocommerce-notices-wrapper .woocommerce-info,
.woocommerce-notices-wrapper .woocommerce-error,
.woocommerce-notices-wrapper .gpl-notices-stack > .woocommerce-message,
.woocommerce-notices-wrapper .gpl-notices-stack > .woocommerce-info,
.woocommerce-notices-wrapper .gpl-notices-stack > .woocommerce-error,
.woocommerce .woocommerce-NoticeGroup .woocommerce-message,
.woocommerce .woocommerce-NoticeGroup .woocommerce-error {
  display: block !important;
  width: 100% !important;
  max-width: 100% !important;
  list-style: none !important;
  margin: 0 !important;
  padding: 0 !important;
  border: none !important;
  background: transparent !important;
  background-image: none !important;
}

.woocommerce-notices-wrapper .woocommerce-message::before,
.woocommerce-notices-wrapper .woocommerce-info::before,
.woocommerce-notices-wrapper .woocommerce-error::before,
.woocommerce-notices-wrapper .woocommerce-error::after,
.woocommerce-notices-wrapper ul.woocommerce-error::before {
  content: none !important;
  display: none !important;
}

.woocommerce-notices-wrapper ul.woocommerce-error {
  display: block;
  width: 100%;
  margin: 0;
  padding: 0;
}

.woocommerce-notices-wrapper ul.woocommerce-error li {
  display: block;
  width: 100%;
  list-style: none !important;
  margin: 0 !important;
  padding: 0 !important;
}

.woocommerce-notices-wrapper ul.woocommerce-error li + li {
  margin-top: 0.5rem;
}

.woocommerce-notices-wrapper .gpl-notice {
  display: block;
  width: 100%;
  max-width: 100%;
  box-sizing: border-box;
}

/* Hide broken empty SVGs left after wc_kses_notice() strips inner markup */
.woocommerce-notices-wrapper .woocommerce-error svg:empty,
.woocommerce-notices-wrapper .woocommerce-message svg:empty,
.woocommerce-notices-wrapper .woocommerce-info svg:empty,
.woocommerce-notices-wrapper .gpl-notice svg:empty {
  display: none !important;
  width: 0 !important;
  height: 0 !important;
  margin: 0 !important;
  padding: 0 !important;
}

.woocommerce-notices-wrapper .gpl-notice svg {
  width: 1.25rem !important;
  height: 1.25rem !important;
  max-width: 1.25rem !important;
  max-height: 1.25rem !important;
  flex-shrink: 0;
}

/* CSS notice icons (not SVG — survives wc_kses_notice) */
.woocommerce-notices-wrapper .gpl-notice--has-icon::before {
  position: absolute;
  top: 0.875rem;
  left: 0.875rem;
  display: flex;
  align-items: center;
  justify-content: center;
  width: 1.25rem;
  height: 1.25rem;
  border-radius: 9999px;
  font-size: 0.6875rem;
  font-weight: 700;
  line-height: 1;
  pointer-events: none;
}

.woocommerce-notices-wrapper .gpl-notice--success.gpl-notice--has-icon::before {
  content: "✓";
  background-color: hsl(var(--success));
  color: hsl(var(--primary-foreground));
}

.woocommerce-notices-wrapper .gpl-notice--error.gpl-notice--has-icon::before {
  content: "!";
  background-color: hsl(var(--destructive));
  color: hsl(var(--destructive-foreground));
}

.woocommerce-notices-wrapper .gpl-notice--info.gpl-notice--has-icon::before {
  content: "i";
  font-style: italic;
  background-color: hsl(var(--info, 221 83% 53%));
  color: #fff;
}

.woocommerce-notices-wrapper .gpl-notice__content {
  display: block;
  width: 100%;
  max-width: 100%;
  overflow-wrap: break-word;
  word-wrap: break-word;
  word-break: normal;
}

.woocommerce-notices-wrapper .gpl-notice__content .button,
.woocommerce-notices-wrapper .woocommerce-message .button,
.woocommerce-notices-wrapper .woocommerce-error .button,
.woocommerce-notices-wrapper .gpl-notice__content a.button,
.woocommerce-notices-wrapper .gpl-notice__content a.wc-forward {
  float: none !important;
  display: inline !important;
  margin: 0 0 0 0.35rem !important;
  padding: 0 !important;
  min-height: 0 !important;
  background: transparent !important;
  border: none !important;
  box-shadow: none !important;
  font-size: inherit !important;
  font-weight: 600 !important;
  line-height: inherit !important;
  color: inherit !important;
  text-decoration: underline !important;
  vertical-align: baseline;
}

/* Tables — cart, checkout review, account orders */
.woocommerce table.shop_table {
  width: 100%;
  border-collapse: collapse;
  border: 1px solid hsl(var(--border));
  border-radius: var(--radius);
  overflow: hidden;
  font-size: 0.875rem;
}

.woocommerce table.shop_table th,
.woocommerce table.shop_table td {
  border-bottom: 1px solid hsl(var(--border));
  padding: var(--wc-stack-gap) var(--wc-panel-padding);
  vertical-align: middle;
}

.woocommerce table.shop_table th {
  background-color: hsl(var(--muted));
  font-weight: 600;
  text-align: left;
  color: hsl(var(--foreground));
}

.woocommerce table.shop_table tr:last-child td {
  border-bottom: none;
}

/* Cart / checkout — product thumbnails */
.woocommerce-cart table.cart .product-thumbnail,
.woocommerce-checkout-review-order-table .product-thumbnail {
  width: 4.5rem;
  max-width: 4.5rem;
  padding-right: 0.75rem !important;
}

.woocommerce-cart table.cart .product-thumbnail a,
.woocommerce-checkout-review-order-table .product-thumbnail a {
  display: block;
  line-height: 0;
}

.woocommerce table.shop_table .product-thumbnail img,
.woocommerce table.shop_table .product-thumbnail .gpl-cart-item-thumb,
.woocommerce-cart table.cart img.gpl-cart-item-thumb {
  display: block;
  width: 4rem !important;
  height: 4rem !important;
  max-width: 4rem !important;
  max-height: 4rem !important;
  object-fit: cover;
  border-radius: calc(var(--radius) - 4px);
  border: 1px solid hsl(var(--border));
  background-color: hsl(var(--muted) / 0.35);
}

/* Responsive cart — keep small thumbs visible (theme does not load WC smallscreen.css) */
@media (max-width: 768px) {
  .woocommerce-cart-form table.shop_table_responsive.cart tbody tr.woocommerce-cart-form__cart-item {
    display: grid;
    grid-template-columns: 4.5rem 1fr;
    grid-template-areas:
      'thumb name'
      'thumb price'
      'thumb quantity'
      'thumb subtotal'
      'remove remove';
    gap: 0.35rem 0.75rem;
    padding: 1rem;
    border-bottom: 1px solid hsl(var(--border));
  }

  .woocommerce-cart-form table.shop_table_responsive.cart tbody tr.woocommerce-cart-form__cart-item td {
    display: block;
    padding: 0 !important;
    border: none !important;
    text-align: left !important;
  }

  .woocommerce-cart-form table.shop_table_responsive.cart tbody tr.woocommerce-cart-form__cart-item td::before {
    display: block;
    float: none;
    margin-bottom: 0.15rem;
    font-size: 0.75rem;
    font-weight: 600;
    color: hsl(var(--muted-foreground));
  }

  .woocommerce-cart-form table.shop_table_responsive.cart .product-thumbnail {
    display: block !important;
    grid-area: thumb;
    width: auto !important;
    max-width: none !important;
  }

  .woocommerce-cart-form table.shop_table_responsive.cart .product-thumbnail::before {
    display: none !important;
  }

  .woocommerce-cart-form table.shop_table_responsive.cart .product-name {
    grid-area: name;
  }

  .woocommerce-cart-form table.shop_table_responsive.cart .product-price {
    grid-area: price;
  }

  .woocommerce-cart-form table.shop_table_responsive.cart .product-quantity {
    grid-area: quantity;
  }

  .woocommerce-cart-form table.shop_table_responsive.cart .product-subtotal {
    grid-area: subtotal;
  }

  .woocommerce-cart-form table.shop_table_responsive.cart .product-remove {
    grid-area: remove;
    text-align: right !important;
  }

  .woocommerce-cart-form table.shop_table_responsive.cart .product-remove::before {
    display: none !important;
  }
}

.woocommerce table.shop_table .product-remove a {
  display: inline-flex;
  height: 2rem;
  width: 2rem;
  align-items: center;
  justify-content: center;
  border-radius: calc(var(--radius) - 4px);
  color: hsl(var(--muted-foreground));
  font-size: 1.25rem;
  line-height: 1;
  text-decoration: none;
}

.woocommerce table.shop_table .product-remove a:hover {
  background-color: hsl(var(--destructive) / 0.1);
  color: hsl(var(--destructive));
}

.woocommerce .quantity .qty {
  max-width: 5rem;
  text-align: center;
}

/* Cart page — two columns: cart table 65%, totals 35% */
.woocommerce-cart .gpl-cart-layout {
  display: grid;
  gap: 2rem;
  align-items: start;
}

@media (min-width: 1024px) {
  .woocommerce-cart .gpl-cart-layout {
    grid-template-columns: 65fr 35fr;
    gap: 2.5rem;
  }
}

.woocommerce-cart .gpl-cart-main {
  min-width: 0;
  width: 100%;
}

.woocommerce-cart .gpl-cart-sidebar {
  width: 100%;
  min-width: 0;
}

.woocommerce-cart .gpl-cart-collaterals {
  margin-top: 0;
}

@media (min-width: 1024px) {
  .woocommerce-cart .gpl-cart-sidebar .cart_totals {
    position: sticky;
    top: 6rem;
  }
}

/* Cart totals / sidebar */
.woocommerce .cart-collaterals:not(.gpl-cart-collaterals),
.woocommerce .cart_totals,
.woocommerce-checkout-review-order-table {
  margin-top: 2rem;
}

.woocommerce-cart .gpl-cart-collaterals,
.woocommerce-cart .gpl-cart-collaterals .cart_totals {
  margin-top: 0;
}

.woocommerce .cart_totals {
  border: 1px solid hsl(var(--border));
  border-radius: var(--radius);
  padding: var(--wc-panel-padding);
  background-color: hsl(var(--card));
}

.woocommerce .cart_totals h2,
.woocommerce-checkout h3#order_review_heading {
  font-size: 1.25rem;
  font-weight: 600;
  margin-bottom: var(--wc-stack-gap);
}

/* Checkout — coupon toggle + form */
.woocommerce-checkout .woocommerce-form-coupon-toggle.gpl-checkout-coupon-toggle {
  margin: 0 0 var(--wc-stack-gap);
}

.woocommerce-checkout .gpl-checkout-coupon-toggle__text {
  margin: 0;
  font-size: 0.875rem;
  line-height: 1.5;
  color: hsl(var(--muted-foreground));
}

.woocommerce-checkout .gpl-checkout-coupon-toggle__text .showcoupon {
  margin-left: 0.25rem;
  font-weight: 500;
  color: hsl(var(--primary));
  text-decoration: underline;
  text-underline-offset: 4px;
}

.woocommerce-checkout .gpl-checkout-coupon-toggle__text .showcoupon:hover {
  color: hsl(var(--primary) / 0.85);
}

.woocommerce-checkout form.checkout_coupon.gpl-checkout-coupon,
.woocommerce-checkout form.woocommerce-form-coupon.gpl-checkout-coupon {
  margin: 0 0 var(--wc-stack-gap);
  padding: var(--wc-panel-padding);
  border: 1px solid hsl(var(--border));
  border-radius: var(--radius);
  background-color: hsl(var(--muted) / 0.2);
}

.woocommerce-checkout form.gpl-checkout-coupon .gpl-checkout-coupon__fields {
  display: flex;
  flex-wrap: wrap;
  align-items: stretch;
  gap: var(--wc-stack-gap-sm);
  width: 100%;
}

.woocommerce-checkout form.gpl-checkout-coupon .gpl-checkout-coupon__fields .input-text,
.woocommerce-checkout form.gpl-checkout-coupon .gpl-checkout-coupon__fields input[type="text"] {
  flex: 1 1 12rem;
  min-width: 0;
  width: auto !important;
  min-height: 2.25rem;
  margin: 0 !important;
  float: none !important;
  border: 1px solid hsl(var(--input)) !important;
  background-color: hsl(var(--background)) !important;
  box-shadow: 0 1px 2px 0 rgb(0 0 0 / 0.05) !important;
}

.woocommerce-checkout form.gpl-checkout-coupon .gpl-checkout-coupon__fields .input-text:focus,
.woocommerce-checkout form.gpl-checkout-coupon .gpl-checkout-coupon__fields input[type="text"]:focus {
  border-color: hsl(var(--ring)) !important;
  box-shadow: 0 0 0 1px hsl(var(--ring)) !important;
  outline: none;
}

.woocommerce-checkout form.gpl-checkout-coupon .gpl-checkout-coupon__fields button[name="apply_coupon"] {
  flex: 0 0 auto;
  margin: 0 !important;
  float: none !important;
  white-space: nowrap;
  background-color: hsl(var(--background)) !important;
  color: hsl(var(--foreground)) !important;
  border: 1px solid hsl(var(--input)) !important;
  box-shadow: 0 1px 2px 0 rgb(0 0 0 / 0.05) !important;
}

.woocommerce-checkout form.gpl-checkout-coupon .gpl-checkout-coupon__fields button[name="apply_coupon"]:hover {
  background-color: hsl(var(--accent)) !important;
  color: hsl(var(--accent-foreground)) !important;
}

.woocommerce-checkout form.checkout_coupon p.form-row,
.woocommerce-checkout form.checkout_coupon .clear {
  display: none !important;
}

/* Cart page — coupon, update cart */
.woocommerce-cart .woocommerce-cart-form .actions {
  padding: var(--wc-panel-padding) !important;
  background-color: hsl(var(--muted) / 0.25);
}

.woocommerce-cart .gpl-cart-actions {
  display: flex;
  flex-direction: column;
  gap: 1rem;
  width: 100%;
}

.woocommerce-cart .gpl-cart-coupon {
  display: flex;
  flex-direction: column;
  gap: 0.5rem;
  width: 100%;
}

.woocommerce-cart .gpl-cart-coupon__fields {
  display: flex;
  flex-wrap: wrap;
  align-items: stretch;
  gap: 0.5rem;
  width: 100%;
}

.woocommerce-cart .gpl-cart-coupon__fields .input-text,
.woocommerce-cart .gpl-cart-coupon__fields input[type="text"] {
  flex: 1 1 12rem;
  min-width: 0;
  width: auto !important;
  margin: 0 !important;
  float: none !important;
}

.woocommerce-cart .gpl-cart-coupon__fields button[name="apply_coupon"],
.woocommerce-cart .gpl-cart-actions__buttons button[name="update_cart"] {
  flex: 0 0 auto;
  float: none !important;
  margin: 0 !important;
  white-space: nowrap;
}

.woocommerce-cart .gpl-cart-coupon__fields button.button[name="apply_coupon"] {
  background-color: hsl(var(--background)) !important;
  color: hsl(var(--foreground)) !important;
  border: 1px solid hsl(var(--input)) !important;
  box-shadow: 0 1px 2px 0 rgb(0 0 0 / 0.05) !important;
}

.woocommerce-cart .gpl-cart-coupon__fields button.button[name="apply_coupon"]:hover {
  background-color: hsl(var(--accent)) !important;
  color: hsl(var(--accent-foreground)) !important;
}

.woocommerce-cart .gpl-cart-actions__buttons button.button[name="update_cart"] {
  background-color: hsl(var(--secondary)) !important;
  color: hsl(var(--secondary-foreground)) !important;
  border: 1px solid transparent !important;
  box-shadow: 0 1px 2px 0 rgb(0 0 0 / 0.05) !important;
}

.woocommerce-cart .gpl-cart-actions__buttons button.button[name="update_cart"]:hover {
  background-color: hsl(var(--secondary) / 0.8) !important;
  color: hsl(var(--secondary-foreground)) !important;
}

.woocommerce-cart .gpl-cart-actions__buttons {
  display: flex;
  flex-wrap: wrap;
  gap: 0.5rem;
}

.woocommerce-cart .coupon::before,
.woocommerce-cart .coupon::after,
.woocommerce-cart .actions::before,
.woocommerce-cart .actions::after {
  display: none !important;
  content: none !important;
}

.woocommerce-cart .cart-collaterals,
.woocommerce-cart .gpl-cart-collaterals {
  display: flex;
  flex-direction: column;
  gap: var(--wc-stack-gap);
  width: 100%;
  clear: none;
  float: none;
}

.woocommerce-cart .cart-collaterals .cart_totals,
.woocommerce-cart .gpl-cart-collaterals .cart_totals {
  float: none !important;
  width: 100% !important;
  max-width: 100%;
}

.woocommerce-cart .wc-proceed-to-checkout,
.woocommerce-cart .gpl-cart-proceed {
  display: flex;
  flex-direction: column;
  align-items: stretch;
  gap: var(--wc-stack-gap);
  margin-top: var(--wc-stack-gap);
  padding-top: 0;
}

.woocommerce-cart .wc-proceed-to-checkout > *,
.woocommerce-cart .gpl-cart-proceed > * {
  margin: 0 !important;
  float: none !important;
  width: 100%;
  max-width: 100%;
}

.woocommerce-cart .wc-proceed-to-checkout .ppc-button-wrapper,
.woocommerce-cart .gpl-cart-proceed .ppc-button-wrapper,
.woocommerce-cart .wc-proceed-to-checkout .ppcp-button-apm,
.woocommerce-cart .gpl-cart-proceed .ppcp-button-apm {
  margin-top: 0 !important;
}

.woocommerce-cart .wc-proceed-to-checkout .gpl-proceed-to-checkout,
.woocommerce-cart .wc-proceed-to-checkout .checkout-button {
  display: flex !important;
  align-items: center !important;
  justify-content: center !important;
  width: 100% !important;
  min-height: 3rem !important;
  padding: 0.75rem 1.5rem !important;
  font-size: 1rem !important;
  font-weight: 600 !important;
  letter-spacing: 0.025em;
  text-transform: uppercase;
  text-decoration: none !important;
  float: none !important;
}

.woocommerce-cart .wc-proceed-to-checkout .gpl-proceed-to-checkout:hover,
.woocommerce-cart .wc-proceed-to-checkout .checkout-button:hover {
  background-color: hsl(var(--primary) / 0.9) !important;
  color: hsl(var(--primary-foreground)) !important;
}

/* Checkout — two columns: billing left, order + payment right */
.woocommerce-checkout form.checkout.gpl-checkout .gpl-checkout-layout {
  display: grid;
  gap: 2rem;
  align-items: start;
}

@media (min-width: 1024px) {
  .woocommerce-checkout form.checkout.gpl-checkout .gpl-checkout-layout {
    grid-template-columns: minmax(0, 1fr) minmax(18rem, 26rem);
    gap: 2.5rem;
  }
}

.woocommerce-checkout .gpl-checkout-left,
.woocommerce-checkout .gpl-checkout-customer,
.woocommerce-checkout .gpl-checkout-customer .col-1,
.woocommerce-checkout .gpl-checkout-customer .col-2 {
  width: 100%;
  float: none;
  max-width: 100%;
}

.woocommerce-checkout .gpl-checkout-customer .woocommerce-billing-fields,
.woocommerce-checkout .gpl-checkout-customer .woocommerce-shipping-fields {
  margin-bottom: var(--wc-stack-gap);
}

.woocommerce-checkout .gpl-checkout-customer .woocommerce-billing-fields h3,
.woocommerce-checkout .gpl-checkout-customer .woocommerce-shipping-fields h3 {
  margin: 0 0 var(--wc-stack-gap);
  font-size: 1.25rem;
  font-weight: 600;
  letter-spacing: -0.025em;
}

.woocommerce-checkout .woocommerce-additional-fields,
.woocommerce-checkout .woocommerce-additional-fields__field-wrapper {
  display: none !important;
}

.woocommerce-checkout .gpl-checkout-right {
  width: 100%;
}

.woocommerce-checkout .gpl-checkout-order-card {
  border: 1px solid hsl(var(--border));
  border-radius: var(--radius);
  padding: var(--wc-panel-padding);
  background-color: hsl(var(--card));
  box-shadow: 0 1px 2px 0 rgb(0 0 0 / 0.05);
}

@media (min-width: 1024px) {
  .woocommerce-checkout .gpl-checkout-order-card {
    position: sticky;
    top: 6rem;
  }
}

.woocommerce-checkout .gpl-checkout-order-card #order_review_heading {
  margin: 0 0 var(--wc-stack-gap);
  padding: 0;
  font-size: 1.25rem;
  font-weight: 600;
}

.woocommerce-checkout .gpl-checkout-order-card #order_review {
  margin: 0;
  padding: 0;
  border: none;
  background: transparent;
}

.woocommerce-checkout .gpl-checkout-order-card #order_review_heading,
.woocommerce-checkout .gpl-checkout-order-card #order_review {
  margin-top: 0;
}

.woocommerce-checkout-review-order-table {
  margin-bottom: var(--wc-stack-gap);
}

.woocommerce-checkout-review-order-table th,
.woocommerce-checkout-review-order-table td {
  padding: var(--wc-stack-gap-sm) 0;
  border-bottom: 1px solid hsl(var(--border));
}

.woocommerce-checkout-review-order-table tr:last-child th,
.woocommerce-checkout-review-order-table tr:last-child td {
  border-bottom: none;
}

.woocommerce-checkout .gpl-checkout-order-card #payment {
  margin-top: 0;
  padding: var(--wc-stack-gap) 0 0;
  border: none;
  border-radius: 0;
  border-top: 1px solid hsl(var(--border));
  background: transparent;
  box-shadow: none;
}

.woocommerce-checkout .gpl-checkout-order-card #payment ul.payment_methods,
.woocommerce-checkout .gpl-checkout-order-card #payment ul.wc_payment_methods {
  margin: 0 !important;
  padding: 0 !important;
  border: none;
  list-style: none !important;
}

.woocommerce-checkout .gpl-checkout-order-card #payment ul.payment_methods > li,
.woocommerce-checkout .gpl-checkout-order-card #payment ul.wc_payment_methods > li,
.woocommerce-checkout .gpl-checkout-order-card #payment li.wc_payment_method {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  gap: var(--wc-stack-gap-sm);
  list-style: none !important;
  margin: 0;
  padding: 0;
  font-size: 0.875rem;
  line-height: 1.25rem;
  font-weight: 400;
  color: hsl(var(--foreground));
}

.woocommerce-checkout .gpl-checkout-order-card #payment ul.payment_methods > li + li,
.woocommerce-checkout .gpl-checkout-order-card #payment ul.wc_payment_methods > li + li {
  margin-top: var(--wc-stack-gap-sm);
}

/* Radio sits before label in WC markup — keep on one row */
.woocommerce-checkout .gpl-checkout-order-card #payment li.wc_payment_method > input[type="radio"],
.woocommerce-checkout .gpl-checkout-order-card #payment li.wc_payment_method > .input-radio {
  display: inline-block !important;
  width: 1rem !important;
  height: 1rem !important;
  min-width: 1rem;
  margin: 0 !important;
  flex-shrink: 0;
  order: 0;
  float: none !important;
  accent-color: hsl(var(--primary));
  vertical-align: middle;
}

.woocommerce-checkout .gpl-checkout-order-card #payment ul.payment_methods > li > label,
.woocommerce-checkout .gpl-checkout-order-card #payment ul.wc_payment_methods > li > label,
.woocommerce-checkout .gpl-checkout-order-card #payment li.wc_payment_method > label {
  display: inline-flex !important;
  align-items: center;
  flex: 1 1 auto;
  gap: 0.375rem;
  order: 1;
  margin: 0 !important;
  padding: 0;
  width: auto;
  float: none !important;
  font-family: inherit;
  font-size: 0.875rem !important;
  font-weight: 500 !important;
  line-height: 1.25rem !important;
  letter-spacing: normal;
  color: hsl(var(--foreground)) !important;
  text-transform: none;
  cursor: pointer;
}

.woocommerce-checkout .gpl-checkout-order-card #payment li.wc_payment_method > label img {
  margin: 0 !important;
  max-height: 1.25rem;
  width: auto;
  float: none !important;
  vertical-align: middle;
  box-shadow: none;
}

.woocommerce-checkout .gpl-checkout-order-card #payment li[class*="payment_method_ppcp"] > label img,
.woocommerce-checkout .gpl-checkout-order-card #payment li.payment_method_paypal > label img {
  max-height: 1.25rem;
  float: none !important;
}

.woocommerce-checkout .gpl-checkout-order-card #payment li.wc_payment_method > .payment_box {
  flex: 1 1 100%;
  width: 100%;
  order: 2;
  margin-top: var(--wc-stack-gap-sm);
}

.woocommerce-checkout .gpl-checkout-order-card #payment div.payment_box {
  margin: var(--wc-stack-gap-sm) 0 0;
  padding: var(--wc-stack-gap);
  font-size: 0.875rem;
  line-height: 1.5;
}

.woocommerce-checkout .gpl-checkout-order-card #payment div.form-row.place-order {
  display: flex;
  flex-direction: column;
  align-items: stretch;
  gap: var(--wc-stack-gap);
  padding: 0;
  margin: var(--wc-stack-gap) 0 0;
  clear: both;
  float: none;
  width: 100%;
}

.woocommerce-checkout .gpl-checkout-order-card #payment div.form-row.place-order::before,
.woocommerce-checkout .gpl-checkout-order-card #payment div.form-row.place-order::after {
  display: none !important;
  content: none !important;
}

.woocommerce-checkout .gpl-checkout-order-card #payment div.form-row.place-order > .form-row,
.woocommerce-checkout .gpl-checkout-order-card #payment div.form-row.place-order p.form-row,
.woocommerce-checkout .gpl-checkout-order-card #payment div.form-row.place-order .woocommerce-terms-and-conditions-wrapper,
.woocommerce-checkout .gpl-checkout-order-card #payment div.form-row.place-order .woocommerce-terms-and-conditions-wrapper .form-row {
  margin: 0 !important;
  padding: 0;
  width: 100%;
}

.woocommerce-checkout .gpl-checkout-order-card #payment div.form-row.place-order .woocommerce-terms-and-conditions-wrapper {
  font-size: 0.875rem;
  line-height: 1.5;
}

.woocommerce-checkout .gpl-checkout-order-card #payment div.form-row.place-order .woocommerce-terms-and-conditions-wrapper p {
  margin: 0 0 var(--wc-stack-gap-sm);
}

.woocommerce-checkout .gpl-checkout-order-card #payment div.form-row.place-order .woocommerce-terms-and-conditions-wrapper p:last-child {
  margin-bottom: 0;
}

.woocommerce-checkout .gpl-checkout-order-card #payment div.form-row.place-order .woocommerce-form__label-for-checkbox {
  display: flex;
  align-items: flex-start;
  gap: var(--wc-stack-gap-sm);
  margin: 0;
  font-weight: 400;
  line-height: 1.5;
  cursor: pointer;
}

.woocommerce-checkout .gpl-checkout-order-card #payment div.form-row.place-order .woocommerce-form__input-checkbox {
  margin: 0.2rem 0 0;
  flex-shrink: 0;
}

.woocommerce-checkout .gpl-checkout-order-card #payment #place_order,
.woocommerce-checkout .gpl-checkout-order-card #payment button#place_order {
  display: flex !important;
  align-items: center !important;
  justify-content: center !important;
  width: 100% !important;
  min-height: 3rem !important;
  margin: 0 0 var(--wc-stack-gap) !important;
  padding: 0.75rem 1.5rem !important;
  font-size: 1rem !important;
  font-weight: 600 !important;
  text-transform: uppercase;
  letter-spacing: 0.025em;
  float: none !important;
}

/* PayPal smart button after Proceed (cart totals sidebar + checkout) */
.woocommerce-checkout .gpl-checkout-order-card #payment + .ppc-button-wrapper,
.woocommerce-checkout .gpl-checkout-order-card .woocommerce-checkout-payment + .ppc-button-wrapper,
.woocommerce-checkout .gpl-checkout-order-card #order_review > .ppc-button-wrapper {
  display: block;
  width: 100%;
  max-width: 100%;
  margin-top: var(--wc-stack-gap) !important;
}

.woocommerce-checkout .gpl-checkout-order-card .ppc-button-wrapper .ppcp-button-apm,
.woocommerce-checkout .gpl-checkout-order-card #payment .place-order .ppcp-button-apm,
.woocommerce-checkout .gpl-checkout-order-card #payment .place-order [id^="ppc-button-"],
.woocommerce-checkout .gpl-checkout-order-card #payment .place-order .paypal-buttons {
  display: block;
  width: 100%;
  max-width: 100%;
  margin-top: 0 !important;
}

/* Mini-cart widget — proceed + PayPal */
.woocommerce.widget_shopping_cart .woocommerce-mini-cart__buttons,
.woocommerce .widget_shopping_cart .buttons {
  display: flex;
  flex-direction: column;
  align-items: stretch;
  gap: var(--wc-stack-gap);
}

.woocommerce.widget_shopping_cart .woocommerce-mini-cart__buttons > *,
.woocommerce .widget_shopping_cart .buttons > * {
  margin: 0 !important;
  float: none !important;
  width: 100%;
}

.woocommerce.widget_shopping_cart .ppcp-button-apm,
.woocommerce .widget_shopping_cart .ppcp-button-apm {
  margin-top: 0 !important;
}

.woocommerce-checkout .col2-set {
  display: block;
  gap: 0;
}

/* My Account */
.woocommerce-account .woocommerce-MyAccount-navigation {
  float: none;
  width: 100%;
  margin-bottom: 2rem;
}

@media (min-width: 768px) {
  .woocommerce-account .woocommerce {
    display: grid;
    grid-template-columns: 240px 1fr;
    gap: 2rem;
    align-items: start;
  }

  .woocommerce-account .woocommerce-MyAccount-navigation {
    margin-bottom: 0;
  }
}

.woocommerce-MyAccount-navigation ul {
  list-style: none;
  margin: 0;
  padding: 0;
  border: 1px solid hsl(var(--border));
  border-radius: var(--radius);
  overflow: hidden;
}

.woocommerce-MyAccount-navigation li {
  margin: 0;
  border-bottom: 1px solid hsl(var(--border));
}

.woocommerce-MyAccount-navigation li:last-child {
  border-bottom: none;
}

.woocommerce-MyAccount-navigation a {
  display: block;
  padding: 0.75rem 1rem;
  font-size: 0.875rem;
  font-weight: 500;
  color: hsl(var(--foreground));
  text-decoration: none;
  transition: background-color 0.15s ease;
}

.woocommerce-MyAccount-navigation li.is-active a,
.woocommerce-MyAccount-navigation a:hover {
  background-color: hsl(var(--accent));
  color: hsl(var(--accent-foreground));
}

.woocommerce-MyAccount-content {
  float: none;
  width: 100%;
}

.woocommerce-MyAccount-content .woocommerce-EditAccountForm fieldset {
  border: 1px solid hsl(var(--border));
  border-radius: var(--radius);
  padding: var(--wc-panel-padding);
  margin-top: var(--wc-stack-gap);
}

/* Login / register columns */
#customer_login.u-columns,
.woocommerce form.login,
.woocommerce form.register {
  max-width: 100%;
}

#customer_login .u-column1,
#customer_login .u-column2 {
  width: 100%;
  float: none;
}

@media (min-width: 768px) {
  #customer_login.u-columns {
    display: grid;
    grid-template-columns: 1fr 1fr;
    gap: 2rem;
  }
}

#customer_login h2 {
  font-size: 1.25rem;
  font-weight: 600;
  margin-bottom: 1rem;
}

.woocommerce form.login,
.woocommerce form.register {
  border: 1px solid hsl(var(--border));
  border-radius: var(--radius);
  padding: var(--wc-panel-padding);
  background-color: hsl(var(--card));
}

/* Single product — 35% gallery column, image centered in box */
.gpl-single-product-grid {
  width: 100%;
}

.gpl-product-gallery-media {
  position: relative;
  overflow: hidden;
}

.gpl-product-gallery-media > .onsale,
.gpl-product-gallery-media > .gpl-sale-badge {
  position: absolute;
  top: 1rem;
  left: 1rem;
  z-index: 30;
  pointer-events: none;
}

.gpl-product-gallery-card .woocommerce-product-gallery {
  position: relative;
  width: 100% !important;
  max-width: 100%;
  height: 100% !important;
  margin: 0 !important;
  float: none !important;
  opacity: 1 !important;
  z-index: 1;
}

.gpl-product-gallery-card .woocommerce-product-gallery__trigger,
.single-product .woocommerce-product-gallery__trigger {
  display: none !important;
  visibility: hidden !important;
  pointer-events: none !important;
}

.gpl-product-gallery-card .zoomImg {
  display: none !important;
}

.gpl-product-gallery-card .woocommerce-product-gallery__wrapper {
  position: relative;
  display: flex !important;
  align-items: center;
  justify-content: center;
  width: 100% !important;
  height: 100% !important;
  min-height: 100%;
  margin: 0 !important;
  padding: 1rem !important;
  transform: none !important;
  background-color: transparent;
  overflow: hidden;
  box-sizing: border-box;
}

.gpl-product-gallery-card .woocommerce-product-gallery__image,
.gpl-product-gallery-card .woocommerce-product-gallery__image a {
  display: flex !important;
  align-items: center;
  justify-content: center;
  width: 100% !important;
  height: 100% !important;
  margin: 0 !important;
  line-height: 0;
  position: static !important;
}

.gpl-product-gallery-card .woocommerce-product-gallery__image img {
  display: block !important;
  width: auto !important;
  height: auto !important;
  max-width: 100% !important;
  max-height: 100% !important;
  margin: 0 auto !important;
  object-fit: contain;
  object-position: center;
}

.gpl-product-gallery-card .woocommerce-product-gallery__wrapper::after {
  content: none !important;
  display: none !important;
}

.gpl-product-gallery-card .flex-control-thumbs {
  display: flex;
  flex-wrap: wrap;
  gap: 0.5rem;
  margin: 0 !important;
  padding: 0.75rem !important;
  list-style: none !important;
  border-top: 1px solid hsl(var(--border));
  background-color: hsl(var(--card));
}

.gpl-product-gallery-card .flex-control-thumbs li {
  float: none !important;
  width: calc(25% - 0.375rem) !important;
  margin: 0 !important;
  list-style: none !important;
}

.gpl-product-gallery-card .flex-control-thumbs li img {
  width: 100% !important;
  height: auto !important;
  aspect-ratio: 1 / 1;
  object-fit: cover;
  border-radius: calc(var(--radius) - 4px);
  border: 1px solid hsl(var(--border));
  opacity: 0.7;
  transition: opacity 0.15s ease, border-color 0.15s ease;
}

.gpl-product-gallery-card .flex-control-thumbs li img:hover,
.gpl-product-gallery-card .flex-control-thumbs li img.flex-active {
  opacity: 1;
  border-color: hsl(var(--primary));
}

.single-product .woocommerce-product-gallery,
.gpl-single-product .woocommerce-product-gallery {
  position: relative;
  margin: 0;
}

.gpl-single-product .onsale,
.gpl-single-product .gpl-sale-badge,
.single-product .woocommerce-product-gallery .onsale,
.gpl-product-gallery-card .onsale,
.gpl-product-gallery-card .gpl-sale-badge,
.gpl-product-gallery-media .onsale,
.gpl-product-gallery-media .gpl-sale-badge {
  position: absolute;
  top: 1rem;
  left: 1rem;
  z-index: 30;
  margin: 0;
  min-height: auto;
  min-width: auto;
  width: auto;
  height: auto;
  padding: 0.25rem 0.625rem;
  border-radius: calc(var(--radius) - 4px);
  font-size: 0.75rem;
  font-weight: 600;
  line-height: 1rem;
  text-transform: none;
  letter-spacing: normal;
  background-color: hsl(var(--destructive)) !important;
  color: hsl(var(--destructive-foreground)) !important;
  border: none;
}

.gpl-single-product form.cart.gpl-add-to-cart-form,
.single-product form.cart {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  gap: 1rem;
}

.gpl-single-product form.cart .quantity,
.single-product form.cart .quantity {
  display: flex;
  align-items: center;
  margin: 0;
}

.gpl-single-product form.cart .quantity .qty,
.single-product form.cart .quantity .qty {
  max-width: 4.5rem;
  text-align: center;
}

.gpl-single-product .single_add_to_cart_button,
.single-product form.cart .single_add_to_cart_button,
.woocommerce ul.products .add_to_cart_button,
.woocommerce ul.products li.product .gpl-product-card-actions > a,
.woocommerce ul.products li.product .gpl-product-card-actions > a.gpl-product-add-to-cart,
.gpl-home-products ul.products li.product .gpl-product-card-actions > a {
  display: inline-flex !important;
  align-items: center;
  justify-content: center;
  min-height: 2.5rem !important;
  padding: 0.5rem 1.5rem !important;
  border-radius: calc(var(--radius) - 2px) !important;
  border: 1px solid transparent !important;
  background-color: hsl(var(--primary)) !important;
  color: hsl(var(--primary-foreground)) !important;
  -webkit-text-fill-color: hsl(var(--primary-foreground)) !important;
  font-size: 0.875rem !important;
  font-weight: 500 !important;
  line-height: 1.25rem !important;
  box-shadow: 0 1px 2px 0 rgb(0 0 0 / 0.05) !important;
  cursor: pointer;
  text-decoration: none !important;
  text-transform: uppercase;
  letter-spacing: 0.025em;
}

.gpl-single-product .single_add_to_cart_button:hover,
.single-product form.cart .single_add_to_cart_button:hover,
.woocommerce ul.products li.product .gpl-product-card-actions > a:hover,
.gpl-home-products ul.products li.product .gpl-product-card-actions > a:hover {
  background-color: hsl(var(--primary) / 0.9) !important;
  color: hsl(var(--primary-foreground)) !important;
  -webkit-text-fill-color: hsl(var(--primary-foreground)) !important;
}

/* AJAX "View cart" link on product cards (injected after add to cart) */
.woocommerce ul.products li.product .gpl-product-card-actions a.added_to_cart,
.woocommerce ul.products li.product a.added_to_cart.wc-forward {
  display: flex !important;
  align-items: center !important;
  justify-content: center !important;
  width: 100% !important;
  margin: 0 !important;
  min-height: 2.25rem !important;
  padding: 0.5rem 1rem !important;
  border-radius: calc(var(--radius) - 2px) !important;
  border: 1px solid hsl(var(--input)) !important;
  background-color: hsl(var(--background)) !important;
  color: hsl(var(--foreground)) !important;
  font-size: 0.875rem !important;
  font-weight: 500 !important;
  line-height: 1.25rem !important;
  text-decoration: none !important;
  text-transform: none !important;
  letter-spacing: normal !important;
  box-shadow: 0 1px 2px 0 rgb(0 0 0 / 0.05) !important;
  transition: background-color 0.15s ease, color 0.15s ease, border-color 0.15s ease !important;
  float: none !important;
  outline: none !important;
}

.woocommerce ul.products li.product .gpl-product-card-actions a.added_to_cart:hover,
.woocommerce ul.products li.product a.added_to_cart.wc-forward:hover {
  background-color: hsl(var(--accent)) !important;
  color: hsl(var(--accent-foreground)) !important;
  border-color: hsl(var(--input)) !important;
}

.woocommerce ul.products li.product .gpl-product-card-actions a.added_to_cart:focus,
.woocommerce ul.products li.product .gpl-product-card-actions a.added_to_cart:focus-visible,
.woocommerce ul.products li.product a.added_to_cart.wc-forward:focus,
.woocommerce ul.products li.product a.added_to_cart.wc-forward:focus-visible {
  outline: none !important;
  box-shadow: 0 0 0 1px hsl(var(--ring)) !important;
}

.gpl-single-product .product_title {
  margin: 0;
}

.gpl-trust-badges {
  width: 100%;
  margin-top: 0;
  border-radius: calc(var(--radius) - 2px);
  overflow: hidden;
  background-color: hsl(var(--muted) / 0.35);
  padding: 0.75rem 1rem;
  border: 1px solid hsl(var(--border));
}

.gpl-trust-badges img {
  display: block;
  margin: 0 auto;
  max-height: 3.5rem;
  width: 100%;
  object-fit: contain;
}

.single-product .woocommerce-product-rating {
  margin-bottom: 0.5rem;
}

.single-product .price {
  font-size: 1.5rem;
  font-weight: 700;
  color: hsl(var(--foreground));
}

.single-product .woocommerce-product-details__short-description {
  color: hsl(var(--muted-foreground));
}

.single-product .woocommerce-tabs {
  margin-top: 3rem;
}

.single-product .woocommerce-tabs ul.tabs {
  display: flex;
  flex-wrap: wrap;
  gap: 0.25rem;
  list-style: none;
  margin: 0 0 1.5rem;
  padding: 0;
  border-bottom: 1px solid hsl(var(--border));
}

.single-product .woocommerce-tabs ul.tabs::before,
.single-product .woocommerce-tabs ul.tabs::after {
  display: none;
}

.single-product .woocommerce-tabs ul.tabs li {
  margin: 0;
  padding: 0;
  border: none;
  background: transparent;
}

.single-product .woocommerce-tabs ul.tabs li a {
  display: inline-flex;
  align-items: center;
  padding: 0.75rem 1rem;
  font-size: 0.875rem;
  font-weight: 500;
  color: hsl(var(--muted-foreground));
  text-decoration: none;
  border-bottom: 2px solid transparent;
  margin-bottom: -1px;
}

.single-product .woocommerce-tabs ul.tabs li.active a,
.single-product .woocommerce-tabs ul.tabs li.active a:hover,
.gpl-single-product .tabs li.active a {
  color: hsl(var(--foreground));
  border-bottom-color: hsl(var(--primary));
}

.single-product .woocommerce-tabs .woocommerce-Tabs-panel.wc-tab {
  display: none;
}

.single-product .woocommerce-tabs .woocommerce-Tabs-panel.wc-tab.active {
  display: block;
}

.single-product .woocommerce-Tabs-panel {
  padding: 0;
  border: none;
}

.single-product .woocommerce-Tabs-panel h2 {
  display: none;
}

.single-product section.related.products.gpl-related-products > h2 {
  margin: 0 0 1.5rem;
  font-size: 1.5rem;
  font-weight: 700;
  line-height: 1.25;
  letter-spacing: -0.025em;
  color: hsl(var(--foreground));
}

@media (min-width: 1024px) {
  .single-product section.related.products.gpl-related-products > h2 {
    font-size: 1.875rem;
  }
}

.single-product section.related.products .gpl-related-grid {
  grid-template-columns: repeat(2, minmax(0, 1fr));
}

@media (min-width: 1024px) {
  .single-product section.related.products .gpl-related-grid {
    grid-template-columns: repeat(4, minmax(0, 1fr));
  }
}

.single-product .product_meta {
  font-size: 0.875rem;
  color: hsl(var(--muted-foreground));
}

.single-product .product_meta > span {
  display: block;
  margin-bottom: 0.25rem;
}

.single-product .product_meta a {
  color: hsl(var(--foreground));
}

/* Pagination */
.woocommerce-pagination {
  margin-top: 2.5rem;
}

.woocommerce-pagination ul.page-numbers {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  justify-content: center;
  gap: 0.375rem;
  list-style: none;
  margin: 0;
  padding: 0;
}

.woocommerce-pagination ul.page-numbers li {
  margin: 0;
  list-style: none;
}

.woocommerce-pagination a.page-numbers,
.woocommerce-pagination span.page-numbers {
  display: inline-flex;
  min-height: 2.25rem;
  min-width: 2.25rem;
  align-items: center;
  justify-content: center;
  border-radius: calc(var(--radius) - 2px);
  border: 1px solid hsl(var(--input));
  padding: 0 0.75rem;
  font-size: 0.875rem;
  font-weight: 500;
  line-height: 1;
  text-decoration: none;
  color: hsl(var(--foreground));
  background: hsl(var(--background));
  transition: background-color 0.15s ease, color 0.15s ease, border-color 0.15s ease;
}

.woocommerce-pagination a.page-numbers:hover {
  background-color: hsl(var(--accent));
  color: hsl(var(--accent-foreground));
  border-color: hsl(var(--accent));
}

.woocommerce-pagination span.page-numbers.current {
  border-color: hsl(var(--primary));
  background-color: hsl(var(--primary));
  color: hsl(var(--primary-foreground));
}

.woocommerce-pagination span.page-numbers.dots {
  border-color: transparent;
  background: transparent;
}

/* Strip default WC notice icons globally (WooCommerce icon font) */
.woocommerce-info::before,
.woocommerce-info::after,
.woocommerce-message::before,
.woocommerce-message::after,
.woocommerce-error::before,
.woocommerce-error::after,
.woocommerce-notices-wrapper .woocommerce-error::before,
.woocommerce-notices-wrapper .woocommerce-message::before,
.woocommerce-notices-wrapper .woocommerce-info::before {
  content: none !important;
  display: none !important;
  width: 0 !important;
  height: 0 !important;
  margin: 0 !important;
  padding: 0 !important;
  background: none !important;
  font-size: 0 !important;
}

/* Payment methods — no list bullets (checkout card rules above set spacing) */
.woocommerce-checkout #payment ul.payment_methods,
.woocommerce-checkout #payment ul.wc_payment_methods {
  list-style: none !important;
  list-style-type: none !important;
}

.woocommerce-checkout #payment ul.payment_methods > li::marker,
.woocommerce-checkout #payment ul.wc_payment_methods > li::marker,
.woocommerce-checkout #payment ul.payment_methods > li::before,
.woocommerce-checkout #payment ul.wc_payment_methods > li::before {
  content: none !important;
  display: none !important;
}

.woocommerce-checkout .gpl-checkout-order-card #payment div.payment_box {
  background: hsl(var(--muted));
  color: hsl(var(--foreground));
  border-radius: calc(var(--radius) - 4px);
}

/* Widget / misc */
.woocommerce .star-rating {
  color: hsl(var(--warning));
}

/* Loop/archive default onsale hidden — theme cards use .gpl-sale-badge in template */
.woocommerce ul.products span.onsale {
  display: none;
}

.woocommerce .blockUI.blockOverlay {
  background: hsl(var(--background) / 0.6) !important;
}

/* ——— Site chrome (header search, breadcrumbs, shop toolbar) ——— */

/* Advanced Woo Search — match header height and design tokens */
.gpl-aws-search .aws-container,
.gpl-aws-search .aws-search-form {
  width: 100% !important;
  max-width: 100%;
}

.gpl-aws-search .aws-container .aws-search-form {
  height: 2.25rem !important;
  min-height: 2.25rem !important;
  align-items: stretch;
}

.gpl-aws-search .aws-container .aws-search-form .aws-search-field {
  height: 100% !important;
  min-height: 2.25rem !important;
  padding: 0.25rem 0.75rem !important;
  font-size: 0.875rem !important;
  line-height: 1.25rem !important;
  color: hsl(var(--foreground)) !important;
  background-color: hsl(var(--background)) !important;
  border: 1px solid hsl(var(--input)) !important;
  border-radius: calc(var(--radius) - 2px) !important;
  box-shadow: 0 1px 2px 0 rgb(0 0 0 / 0.05) !important;
}

.gpl-aws-search .aws-container .aws-search-form .aws-search-field:focus {
  outline: none !important;
  border-color: hsl(var(--ring)) !important;
  box-shadow: 0 0 0 1px hsl(var(--ring)) !important;
}

.gpl-aws-search .aws-container .aws-search-form .aws-search-btn,
.gpl-aws-search .aws-container .aws-search-form .aws-form-btn {
  display: none !important;
}

.gpl-aws-search .aws-container .aws-search-form .aws-search-clear {
  color: hsl(var(--muted-foreground)) !important;
}

.gpl-aws-search .aws-search-result {
  border: 1px solid hsl(var(--border)) !important;
  border-radius: var(--radius) !important;
  background: hsl(var(--popover)) !important;
  box-shadow: 0 4px 6px -1px rgb(0 0 0 / 0.1), 0 2px 4px -2px rgb(0 0 0 / 0.1) !important;
}

/* Breadcrumbs */
.gpl-breadcrumbs a {
  color: hsl(var(--muted-foreground));
  text-decoration: none;
  transition: color 0.15s ease;
}

.gpl-breadcrumbs a:hover {
  color: hsl(var(--foreground));
}

.gpl-breadcrumbs li:last-child,
.gpl-breadcrumbs .breadcrumb_last {
  color: hsl(var(--foreground));
  font-weight: 500;
}

/* Shop toolbar */
.gpl-shop-toolbar .woocommerce-ordering {
  margin: 0 !important;
  float: none !important;
}

.gpl-shop-toolbar form.woocommerce-ordering select.orderby {
  min-width: 12rem;
}

/* Page header */
.gpl-page-header h1 {
  margin: 0;
  color: hsl(var(--foreground));
}

/* Homepage product sections — hide any stray default loop output */
.gpl-home-products ul.products li.product > a.button,
.gpl-home-products ul.products li.product > a.add_to_cart_button:not(.gpl-product-add-to-cart) {
  display: none !important;
}

/* Category / promo cards outside .woocommerce — keep link colors neutral */
#shop-by-category a,
.gpl-home-products + section a:not(.button) {
  color: inherit;
}

/* Footer utility nav */
#colophon nav a {
  color: hsl(var(--muted-foreground));
  text-decoration: none;
  transition: color 0.15s ease;
}

#colophon nav a:hover {
  color: hsl(var(--foreground));
}

/* Select2 (checkout country) */
.select2-container--default .select2-selection--single {
  min-height: 2.25rem !important;
  border-color: hsl(var(--input)) !important;
}

.select2-container--default .select2-selection--single .select2-selection__rendered {
  line-height: 2rem !important;
  color: hsl(var(--foreground)) !important;
}

.select2-dropdown {
  border-color: hsl(var(--border)) !important;
  background: hsl(var(--popover)) !important;
}

.select2-results__option--highlighted[aria-selected] {
  background-color: hsl(var(--accent)) !important;
  color: hsl(var(--accent-foreground)) !important;
}
