/* ==========================================================================
   Full-Width Template Styles
   ========================================================================== */

/* Full width with horizontal padding */
.container-fluid {
  padding-left: 40px !important;
  padding-right: 40px !important;
  max-width: 100% !important;
}

/* Cart table full width */
.woocommerce-cart table.shop_table {
  width: 100% !important;
}

/* ==========================================================================
   Checkout Redesign — CSS Grid Layout
   Left: Express Checkout → OR → Billing → Payment/Place Order
   Right: Order Review (sticky)
   ========================================================================== */

/* Desktop: 2-column grid — left (checkout flow) + right (order review) */
.snw-checkout-redesign {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 24px;
  max-width: 1200px;
  margin: 0 auto;
}

/* Validation errors span the full width, pinned to the very top row */
.snw-checkout-redesign > .woocommerce-NoticeGroup {
  grid-column: 1 / -1;
  grid-row: 1;
}

/* Left column: Express → OR → Billing → Payment */
.snw-checkout-left {
  grid-column: 1 / 2;
  grid-row: 2;
  display: flex;
  flex-direction: column;
  gap: 24px;
}

/* Express Checkout wrapper */
.snw-express-checkout-wrapper {
  padding: 0;
}

.snw-express-checkout-wrapper .snw-section-title {
  font-family: "IBM Plex Sans", sans-serif;
  font-size: clamp(18px, 2vw, 22px);
  font-weight: 700;
  color: #0a2137;
  margin: 0 0 16px;
}

/* Hide Stripe's default "OR" separator — we have our own */
.snw-express-checkout-wrapper #wc-stripe-express-checkout-button-separator {
  display: none !important;
}

/* OR divider between express checkout and billing */
.snw-checkout-or-divider {
  display: flex;
  align-items: center;
  gap: 16px;
  color: #6b7c93;
  font-family: "IBM Plex Sans", sans-serif;
  font-size: 14px;
  font-weight: 600;
  text-transform: uppercase;
  letter-spacing: 0.5px;
}

.snw-checkout-or-divider::before,
.snw-checkout-or-divider::after {
  content: "";
  flex: 1;
  height: 1px;
  background: #d6e4f0;
}

/* Billing details */
.snw-checkout-redesign #customer_details {
  background: #fff;
  border-radius: 16px;
  padding: 24px;
  border: 1px solid #e2edf7;
}

/* Hide additional information (order notes) */
.snw-checkout-redesign .woocommerce-additional-fields {
  display: none !important;
}

/* Hide shipping col-2 inside col2-set */
.snw-checkout-redesign .col2-set .col-2 {
  display: none !important;
}

/* Payment wrapper */
.snw-checkout-payment-wrapper {
  background: linear-gradient(135deg, #edf6fa 0%, #f5faff 100%);
  border-radius: 16px;
  padding: 24px;
  border: 2px solid #d9e9f8;
}

.snw-checkout-payment-wrapper .woocommerce-checkout-payment {
  background-color: transparent !important;
  border-radius: 0 !important;
  padding: 0;
  width: 100%;
}

/* Hide express checkout inside payment area (already shown above) */
.snw-checkout-payment-wrapper #wc-stripe-express-checkout-element,
.snw-checkout-payment-wrapper #wc-stripe-express-checkout-button-separator {
  display: none !important;
}

/* Right column: Order review (sticky) */
.snw-checkout-redesign #order_review_heading {
  display: none;
}

.snw-checkout-redesign #order_review {
  grid-column: 2 / 3;
  grid-row: 2;
  position: sticky;
  top: 24px;
  align-self: start;
  background: #edf6fa;
  border-radius: 16px;
  padding: 24px;
  border: 1px solid #d9e9f8;
}

.snw-checkout-redesign #order_review .woocommerce-checkout-review-order-table {
  background: transparent !important;
  border: none !important;
  border-radius: 0 !important;
}

/* Place Order button */
.snw-checkout-redesign #place_order {
  background-color: #f67599 !important;
  color: #fff !important;
  border: none !important;
  border-radius: 500rem;
  font-family: "IBM Plex Sans", sans-serif;
  font-size: 18px;
  font-weight: 700;
  padding: 16px 32px;
  width: 100%;
  cursor: pointer;
  transition:
    background-color 0.25s,
    transform 0.15s;
  letter-spacing: 0.3px;
}

.snw-checkout-redesign #place_order:hover {
  background-color: #fb6f92 !important;
  transform: translateY(-1px);
}

.snw-checkout-redesign #place_order:active {
  transform: translateY(0);
}

/* ── Order Review Accordion ── */

/* Desktop: hide toggle button, always show content */
.snw-order-review-toggle {
  display: none;
}

.snw-order-review-content {
  display: block !important;
}

/* ── Responsive: Tablet (≤991px) ── */
@media (max-width: 991px) {
  .snw-checkout-redesign {
    grid-template-columns: 1fr;
    grid-template-rows: auto;
    gap: 20px;
  }

  .snw-checkout-redesign #order_review {
    grid-column: 1 / -1;
    grid-row: auto;
    position: static;
    order: 1;
  }

  .snw-checkout-left {
    grid-column: 1 / -1;
    order: 2;
  }

  /* Accordion: show toggle, collapse content */
  .snw-order-review-toggle {
    display: flex;
    align-items: center;
    justify-content: space-between;
    width: 100%;
    background: none;
    border: none;
    padding: 0;
    cursor: pointer;
    font-family: "IBM Plex Sans", sans-serif;
    font-size: clamp(16px, 2vw, 20px);
    font-weight: 700;
    color: #0a2137;
  }

  .snw-accordion-chevron {
    transition: transform 0.3s ease;
  }

  .snw-order-review-toggle[aria-expanded="true"] .snw-accordion-chevron {
    transform: rotate(180deg);
  }

  .snw-order-review-content {
    display: none !important;
    overflow: hidden;
  }

  .snw-order-review-content.snw-accordion-open {
    display: block !important;
    margin-top: 16px;
  }
}

/* ── Responsive: Mobile (≤768px) ── */
@media (max-width: 768px) {
  .container-fluid {
    padding-left: 16px !important;
    padding-right: 16px !important;
  }

  .snw-checkout-redesign {
    gap: 16px;
  }

  .snw-checkout-left {
    gap: 16px;
  }

  .snw-express-checkout-wrapper {
    padding: 16px;
    border-radius: 12px;
  }

  .snw-checkout-payment-wrapper {
    padding: 16px;
    border-radius: 12px;
  }

  .snw-checkout-redesign #order_review {
    padding: 16px;
    border-radius: 12px;
  }

  .snw-checkout-redesign #customer_details {
    padding: 16px;
    border-radius: 12px;
  }

  /* Payment methods — compact */
  .woocommerce-checkout #payment ul.payment_methods {
    padding: 12px !important;
    gap: 6px;
  }

  .woocommerce-checkout #payment ul.payment_methods li {
    padding: 12px;
  }

  .woocommerce-checkout #payment ul.payment_methods li label {
    font-size: 14px;
    gap: 8px;
  }

  .woocommerce-checkout #payment div.payment_box {
    padding: 10px;
  }

  .woocommerce-checkout #payment .place-order {
    padding: 12px !important;
  }

  .snw-checkout-redesign #place_order {
    font-size: 16px;
    padding: 14px 24px;
  }
}

/* ── Responsive: Small mobile (≤480px) ── */
@media (max-width: 480px) {
  .container-fluid {
    padding-left: 12px !important;
    padding-right: 12px !important;
  }

  .snw-express-checkout-wrapper {
    padding: 12px;
  }

  .snw-checkout-payment-wrapper {
    padding: 12px;
  }

  .snw-checkout-redesign #customer_details {
    padding: 12px;
  }

  .woocommerce-checkout #payment ul.payment_methods li label img {
    max-height: 20px;
  }

  .woocommerce-checkout #payment ul.payment_methods li input[type="radio"] {
    width: 16px;
    height: 16px;
  }
}

/* ==========================================================================
   WooCommerce Single Product Page Layout
   ========================================================================== */

/* Product page 2-column layout */
div.product {
  display: flex !important;
  flex-wrap: wrap;
  gap: 40px;
  align-items: flex-start;
  position: relative;
}

@media (max-width: 600px) {
  div.product {
    gap: 13px;
  }
}

/* Remove sale badge from flex flow */
div.product .onsale {
  position: absolute !important;
  top: 20px;
  left: 20px;
  z-index: 10;
}

/* Product gallery - left column */
div.product .woocommerce-product-gallery {
  flex: 0 0 48% !important;
  max-width: 48%;
  width: 48%;
}
@media (max-width: 1200px) {
  div.product .woocommerce-product-gallery {
    flex: 0 0 47% !important;
    max-width: 47%;
    width: 47%;
  }
}

@media (max-width: 768px) {
  div.product .woocommerce-product-gallery {
    flex: 0 0 100% !important;
    max-width: 100%;
    width: 100%;
  }
}

/* Gallery wrapper - horizontal thumbnail layout */
.woocommerce-product-gallery__wrapper {
  display: flex !important;
  flex-direction: row !important;
  flex-wrap: wrap !important;
  gap: 12px !important;
  align-items: flex-start !important;
}

@media (max-width: 768px) {
  .woocommerce-product-gallery__wrapper {
    justify-content: center;
  }
}

/* Main product image container */
.woocommerce-product-gallery__image:first-child {
  flex: 1 1 100% !important;
  width: 100% !important;
  margin-bottom: 12px !important;
}

/* Thumbnail images */
.woocommerce-product-gallery__image:not(:first-child) {
  flex: 0 0 calc(20% - 10px) !important;
  max-width: 90px !important;
}

.woocommerce-product-gallery__image:not(:first-child) img {
  cursor: pointer !important;
  opacity: 0.7 !important;
  transition:
    opacity 0.3s,
    border-color 0.3s;
  border: 3px solid transparent !important;
  border-radius: 8px;
  width: 100px !important;
  height: 100px !important;
  object-fit: cover;
}

.woocommerce-product-gallery__image:not(:first-child) img:hover {
  opacity: 1 !important;
  border-color: #418fde !important;
}

/* Product summary - right column */
div.product .summary {
  flex: 0 0 48% !important;
  max-width: 48%;
  width: 48%;
}
@media (max-width: 1200px) {
  div.product .summary {
    flex: 0 0 47% !important;
    max-width: 47%;
    width: 47%;
  }
}

@media (max-width: 768px) {
  div.product .summary {
    flex: 0 0 100% !important;
    max-width: 100%;
    width: 100%;
  }
  .woocommerce-product-gallery__image:not(:first-child) img {
    width: 48px !important;
    height: 48px !important;
  }
  .woocommerce-product-gallery__image:not(:first-child) {
    max-width: 37px !important;
  }
}

/* Ensure thumbnails are visible and horizontal */
.flex-control-thumbs,
ol.flex-control-nav.flex-control-thumbs {
  display: flex !important;
  flex-direction: row !important;
  flex-wrap: nowrap;
  gap: 12px;
  margin-top: 20px !important;
  list-style: none !important;
  padding: 0 !important;
  justify-content: center;
}

.flex-control-thumbs li {
  flex: 0 0 auto !important;
  width: 90px !important;
  margin: 0 !important;
}

.flex-control-thumbs img {
  cursor: pointer !important;
  opacity: 0.6 !important;
  transition:
    opacity 0.3s,
    border-color 0.3s;
  border: 3px solid transparent !important;
  border-radius: 12px !important;
  width: 100% !important;
  height: auto !important;
}

.flex-control-thumbs img:hover,
.flex-control-thumbs img.flex-active {
  opacity: 1 !important;
  border-color: #f67599 !important;
}

.woocommerce-product-gallery__image {
  background: #ebf5fd;
  border-radius: 5px;
  border: 1px solid #cee0f3;
  width: 100%;
  height: 345px;
  display: flex;
  align-items: center;
  justify-content: center;
}

@media (min-width: 600px) {
  .woocommerce-product-gallery__image {
    height: 480px;
  }
}

@media (min-width: 768px) {
  .woocommerce-product-gallery__image {
    height: 546px;
  }
}

/* Main product image styling */
.woocommerce-product-gallery__image img {
  width: 100%;
  height: 230px;
  aspect-ratio: 1 / 1;
  object-fit: contain;
  border-radius: 24px;
}

@media (min-width: 768px) {
  .woocommerce-product-gallery__image img {
    height: 370px;
  }
}

/* ==========================================================================
   Product Price Display
   ========================================================================== */

/* Hide main price when variation price is shown */
div.product p.price:not(.woocommerce-variation-price .price) {
  display: none !important;
}

/* Hide variation price on product detail page */
.woocommerce-variation-price {
  display: none !important;
}

/* Variation availability */
.woocommerce-variation-availability {
  margin-bottom: 1rem;
}

/* ==========================================================================
   Product Variations - Horizontal Grid Layout
   ========================================================================== */

/* Variation swatches container - horizontal grid */
.vsg-swatch-items-wrapper,
ul.vsg-swatch-items-wrapper {
  /* display: grid !important;
  grid-template-columns: repeat(4, 1fr) !important;
  gap: 12px !important;*/
  list-style: none !important;
  padding: 0 !important;
  margin: 15px 0 !important;
  display: flex !important;
  flex-wrap: wrap !important;
  gap: 12px !important;
}

.vsg-swatch-items-wrapper .vsg-swatch-item {
  flex: 1 1 20% !important;
}

.vsg-swatch-item-image {
  max-width: 100% !important;
  width: 100px;
  height: 128px !important;
  object-fit: contain;
  padding: 0;
}

@media (max-width: 1200px) {
  .vsg-swatch-item-image {
    height: auto !important;
  }
}

@media (max-width: 600px) {
  .vsg-swatch-item-image {
    padding: 1px;
  }
  .vsg-swatch-items-wrapper .vsg-swatch-item {
    flex: 0 1 31% !important;
  }
  .vsg-swatch-items-wrapper,
  ul.vsg-swatch-items-wrapper {
    justify-content: center;
  }
}

/* Individual variation item - card style */
.vsg-swatch-item {
  display: flex !important;
  flex-direction: column !important;
  align-items: center !important;
  justify-content: center !important;
  border: 1.5px solid #d9e9f8 !important;
  border-radius: 12px !important;
  cursor: pointer !important;
  transition: all 0.3s ease !important;
  background: #fff !important;
  list-style: none !important;
  text-align: center !important;
}

/* Hover effect */
.vsg-swatch-item:hover {
  border-color: #418fde !important;
  box-shadow: 0 2px 8px rgba(246, 117, 153, 0.2) !important;
  transform: translateY(-2px) !important;
}

/* Selected state */
.vsg-swatch-item-selected,
.vsg-swatch-item.selected {
  border: 4px solid #418fde !important;
  background: #d6e4f2 !important;
  box-shadow: 0 2px 8px rgba(246, 117, 153, 0.3) !important;
  position: relative;
}

.vsg-swatch-item-selected:before {
  position: absolute;
  top: -4px;
  left: -4px;
  content: "";
  width: 30px; /* matches SVG width */
  height: 29px; /* matches SVG height */
  display: inline-block;
  background-image: url('data:image/svg+xml;utf8,<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 30 29" fill="none"><path d="M0 12C0 5.37258 5.37258 0 12 0H29.995V17C29.995 23.6274 24.6224 29 17.995 29H0V12Z" fill="%23418FDE"/><path d="M14.2951 19C14.055 19 13.8269 18.8995 13.6588 18.7238L10.2611 15.1702C9.91296 14.8061 9.91296 14.2033 10.2611 13.8392C10.6093 13.4751 11.1856 13.4751 11.5338 13.8392L14.2951 16.7272L20.4662 10.2731C20.8144 9.90896 21.3907 9.90896 21.7389 10.2731C22.087 10.6373 22.087 11.24 21.7389 11.6041L14.9315 18.7238C14.7634 18.8995 14.5353 19 14.2951 19Z" fill="white"/></svg>');
  background-size: contain;
  background-repeat: no-repeat;
  background-position: center;
}

/* Variation text */
.vsg-swatch-item-wrapper {
  display: flex !important;
  flex-direction: column !important;
  align-items: center !important;
  width: 100% !important;
}

/* ==========================================================================
   WooCommerce Notices
   ========================================================================== */

/* Fix notices positioning - should be at top, not absolute */
.woocommerce-notices-wrapper {
  position: static !important;
  width: 100%;
  margin-bottom: 20px;
  z-index: 999;
}

/* Style the notices */
.woocommerce-message,
.woocommerce-error,
.woocommerce-info {
  padding: 15px 20px;
  margin-bottom: 15px;
  border-radius: 8px;
  border-left: 4px solid;
  padding-left: 50px;
}

.woocommerce-message {
  background: #f0f9ff;
  border-left-color: transparent;
  border-top-color: transparent;
  color: #0c4a6e;
  padding-left: 3.4rem;
}

.woocommerce-message::before {
  color: #f67599 !important;
}

.button.wc-forward {
  font-weight: 600;
  color: #0c4a6e;
}

.woocommerce-error {
  background: #fef2f2;
  border-left-color: #ef4444;
  color: #7f1d1d;
}

.woocommerce-info {
  background: #fef9e7;
  border-left-color: #f59e0b;
  color: #78350f;
}

/* ==========================================================================
   Subscription Selector
   ========================================================================== */

/* Subscription Selector - Brand styled */
.snw-subscription-selector {
  /* margin: 24px 0;
  padding: 20px;
  background: #fef5f8;
  border-radius: 12px;
  border: 2px solid #f9e0e8; */
}

.snw-subscription-options {
  display: flex;
  flex-direction: column;
  gap: 12px;
}

/* Option card */
.snw-subscription-option {
  display: flex;
  align-items: flex-start;
  padding: 16px;
  background: #fff;
  border: 2px solid #e0e0e0;
  border-radius: 12px;
  cursor: pointer;
  transition: all 0.3s ease;
  position: relative;
}

.snw-subscription-option:hover {
  border-color: #f67599;
  box-shadow: 0 2px 8px rgba(246, 117, 153, 0.2);
  transform: translateY(-2px);
}

.snw-subscription-option.selected {
  border-color: #f67599;
  background: #fff9fb;
  box-shadow: 0 2px 12px rgba(246, 117, 153, 0.25);
}

/* Hide default radio */
.snw-purchase-radio {
  position: absolute;
  opacity: 0;
  width: 0;
  height: 0;
}

/* Custom radio indicator */
.snw-subscription-option::before {
  content: "";
  width: 20px;
  height: 20px;
  border: 2px solid #d0d0d0;
  border-radius: 50%;
  margin-right: 12px;
  flex-shrink: 0;
  transition: all 0.2s;
  background: #fff;
}

.snw-subscription-option.selected::before {
  border-color: #f67599;
  background: #f67599;
  box-shadow: inset 0 0 0 4px #fff;
}

.snw-option-content {
  flex: 1;
}

.snw-option-header {
  display: flex;
  align-items: center;
  gap: 8px;
  margin-bottom: 8px;
}

.snw-option-title {
  font-size: 1.1rem;
  font-weight: 600;
  color: #0a2137;
}

.snw-savings-badge {
  background: #f67599;
  color: #fff;
  padding: 4px 12px;
  border-radius: 20px;
  font-size: 13px;
  font-weight: 600;
  letter-spacing: 0.3px;
  white-space: nowrap;
}

.snw-option-price {
  font-size: 1.3rem;
  font-weight: 600;
  color: #f67599;
  margin-bottom: 6px;
}

.snw-subscription-interval {
  font-size: 0.9rem;
  color: #6f8090;
  margin-bottom: 12px;
}

.snw-subscription-benefits {
  list-style: none;
  padding: 16px 20px;
  margin: 16px 0 0;
  background: #fff;
  border: 1px solid #ebf1f8;
  border-radius: 12px;
}

.snw-subscription-benefits li {
  display: flex;
  align-items: center;
  gap: 8px;
  font-size: 13px;
  color: #6f8090;
  margin-bottom: 8px;
}

.snw-subscription-benefits li:last-child {
  margin-bottom: 0;
}

.snw-subscription-benefits svg {
  color: #4caf50;
  flex-shrink: 0;
}

.snw-subscribe-btn {
  display: flex;
  gap: 16px;
}

@media (max-width: 1200px) {
  .snw-subscribe-btn {
    flex-direction: column-reverse;
  }
}

.snw-subscribe-btn .btn-light {
  box-shadow: 0 0px 2px 0px #ddd;
  transition: all 0.3s ease;
}

.snw-subscribe-btn .btn-light:hover {
  transform: translateY(-2px);
}

.snw-subscribe-btn button {
  flex: 1;
  min-width: 0;
  margin-top: 0;
}

/* Quantity selector (only for one off) */
.snw-quantity-wrapper {
  display: flex;
  align-items: center;
  gap: 10px;
  margin: 16px 0 12px 0;
}

.snw-quantity-wrapper label {
  font-size: 0.9rem;
  font-weight: 600;
  color: #0a2137;
  margin: 0;
}

.snw-quantity {
  width: 80px;
  padding: 8px 12px;
  border: 2px solid #e0e0e0;
  border-radius: 8px;
  font-size: 1rem;
  font-weight: 600;
  text-align: center;
}

.snw-quantity:focus {
  outline: none;
  border-color: #f67599;
}

/* Individual Add to Cart buttons */
.snw-add-to-cart-btn {
  width: 100%;
  margin-top: 12px;
  padding: 14px 24px !important;
  font-size: 1rem !important;
  font-weight: 700 !important;
  border-radius: 8px !important;
  cursor: pointer;
  transition: all 0.3s ease;
  border: none !important;
}

.snw-btn-onetime {
  background: #0a2137 !important;
  color: #fff !important;
}

.snw-btn-onetime:hover {
  background: #162d45 !important;
  transform: translateY(-2px);
  box-shadow: 0 4px 12px rgba(10, 33, 55, 0.3) !important;
}

.snw-btn-subscribe {
  background: #f67599 !important;
  color: #fff !important;
}

.snw-btn-subscribe:hover {
  background: #e45577 !important;
  transform: translateY(-2px);
  box-shadow: 0 4px 12px rgba(246, 117, 153, 0.4) !important;
}

/* Hide default WooCommerce quantity and add to cart when subscription selector is present */
.snw-subscription-selector ~ .quantity,
.snw-subscription-selector ~ .single_add_to_cart_button {
  display: none !important;
}

/* Subscription Selector Integration */
.snw-subscription-selector + .quantity,
.snw-subscription-selector + .single_add_to_cart_button {
  margin-top: 16px;
}

/* Hide default plugin UI to avoid conflicts */
.wps_sfw_subscription_wrapper {
  display: none !important;
}

/* ==========================================================================
   Accordion-Style Subscription Selector (YuMove Style)
   ========================================================================== */

/* Accordion Container */
.snw-accordion-options {
  display: flex;
  flex-direction: column;
  gap: 12px;
}

/* Accordion Item */
.snw-accordion-item {
  background: #edf6fa;
  border-radius: 12px;
  overflow: hidden;
  border: 3px solid transparent;
  transition: all 0.3s ease;
}

/* .snw-accordion-item:hover {
  border-color: #418fde;
  box-shadow: 0 2px 8px rgba(74, 144, 226, 0.15);
} */

.snw-accordion-item.active {
  border-color: #418fde;
  border: 3px solid #418fde;
  box-shadow: 0 4px 12px rgba(74, 144, 226, 0.2);
}

/* Accordion Header */
.snw-accordion-header {
  display: flex;
  align-items: center;
  padding: 20px;
  cursor: pointer;
  gap: 16px;
  transition: background 0.2s ease;
}

@media (max-width: 991px) {
  .snw-accordion-header {
    align-items: flex-start;
  }
}

.snw-accordion-header:hover {
  background: #f0f7ff;
}

.snw-accordion-item.active .snw-accordion-header {
  background: #f0f7ff;
}

/* Radio Indicator */
.snw-radio-indicator {
  width: 28px;
  height: 28px;
  border: 2px solid #d0d0d0;
  border-radius: 50%;
  flex-shrink: 0;
  transition: all 0.3s ease;
  position: relative;
  background: #fff;
}

.snw-radio-indicator.checked {
  border-color: #4a90e2;
  background: #4a90e2;
}

.snw-radio-indicator.checked::after {
  content: "";
  position: absolute;
  top: 50%;
  left: 50%;
  transform: translate(-50%, -50%);
  width: 10px;
  height: 10px;
  background: #fff;
  border-radius: 50%;
  width: 28px;
  height: 28px;
  display: inline-block;
  background-image: url('data:image/svg+xml;utf8,<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 28 28" fill="none"><rect width="28" height="28" rx="14" fill="%23418FDE"/><path d="M12.2951 18.5C12.055 18.5 11.8269 18.3995 11.6588 18.2238L8.26113 14.6702C7.91296 14.3061 7.91296 13.7033 8.26113 13.3392C8.6093 12.9751 9.18559 12.9751 9.53377 13.3392L12.2951 16.2272L18.4662 9.77311C18.8144 9.40896 19.3907 9.40896 19.7389 9.77311C20.087 10.1373 20.087 10.74 19.7389 11.1041L12.9315 18.2238C12.7634 18.3995 12.5353 18.5 12.2951 18.5Z" fill="white"/></svg>');
  background-size: contain;
}

/* Header Content */
.snw-header-content {
  flex: 1;
  display: flex;
  align-items: flex-start;
  justify-content: space-between;
  gap: 12px;
}

.snw-header-left {
  flex: 1;
  min-width: 0;
}

.snw-header-title {
  font-size: 20px;
  font-weight: 700;
  color: #0a2137;
}

.snw-header-subtitle {
  font-size: 13px;
  color: #6f8090;
  margin-top: 2px;
}

.snw-per-day {
  font-size: 15px;
  font-weight: 600;
  color: #0a2137;
  margin-top: 4px;
}

.snw-header-right {
  flex-shrink: 0;
  display: flex;
  flex-direction: column;
  align-items: flex-end;
  gap: 6px;
}

.snw-header-prices {
  display: flex;
  align-items: center;
  gap: 8px;
}

.snw-regular-price {
  font-size: 14px;
  color: #999;
}

.snw-header-price {
  font-size: 1.4rem;
  font-weight: 700;
  color: #0a2137;
}

@media (max-width: 576px) {
  .snw-accordion-header {
    padding: 14px;
    gap: 10px;
  }

  .snw-header-content {
    flex-direction: column;
    gap: 6px;
  }

  .snw-header-right {
    flex-direction: row;
    align-items: center;
    gap: 8px;
    flex-wrap: wrap;
  }

  .snw-header-title {
    font-size: 17px;
  }

  .snw-per-day {
    font-size: 13px;
    margin-top: 2px;
  }

  .snw-header-price {
    font-size: 1.15rem;
  }

  .snw-regular-price {
    font-size: 13px;
  }

  .snw-savings-badge {
    font-size: 12px;
    padding: 3px 10px;
  }

  .snw-radio-indicator {
    width: 24px;
    height: 24px;
  }

  .snw-radio-indicator.checked::after {
    width: 24px;
    height: 24px;
  }
}

/* Accordion Body */
.snw-accordion-body {
  display: none;
  padding: 0 20px;
}

.snw-accordion-body.active {
  display: block;
  padding-bottom: 20px;
  background-color: #f0f7ff;
}

.snw-accordion-details {
}

.snw-option-description {
  color: #6f8090;
  font-size: 13px;
  line-height: 1.6;
  margin-bottom: 16px;
}

.snw-delivery-interval {
  display: flex;
  align-items: center;
  font-size: 1rem;
  font-weight: 600;
  color: #0a2137;
  margin-bottom: 16px;
}

.snw-delivery-interval svg {
  color: #4a90e2;
}

/* Accordion Button */
.snw-accordion-btn {
  width: 100%;
  margin-top: 20px;
  padding: 16px 32px !important;
  font-size: 1.1rem !important;
  font-weight: 600 !important;
  background: #f67599 !important;
  color: #fff !important;
  border: none !important;
  border-radius: 500rem !important;
  cursor: pointer;
  transition: all 0.3s ease !important;
}

.snw-accordion-btn:hover {
  background: #e55a80 !important;
  transform: translateY(-2px);
  box-shadow: 0 4px 12px rgba(246, 117, 153, 0.4) !important;
}

/* ==========================================================================
   Ongoing Savings Breakdown
   ========================================================================== */

.snw-ongoing-savings {
  margin-top: 20px;
}

.snw-ongoing-savings__title {
  font-size: 18px;
  font-weight: 700;
  color: #0a2137;
  margin: 0 0 12px;
  font-family: "IBM Plex Sans", sans-serif;
}

.snw-ongoing-savings__table {
  background: #fff;
  border-radius: 12px;
  overflow: hidden;
  border: 1px solid #ebf1f8;
}

.snw-ongoing-savings__row {
  display: flex;
  align-items: center;
  justify-content: space-between;
  padding: 0 20px 11px;
  font-size: 15px;
  color: #0a2137;
}

.snw-ongoing-savings__row--current {
  background: #fff;
  padding-top: 11px;
}

.snw-ongoing-savings__label {
  flex: 1;
  min-width: 0;
}

.snw-ongoing-savings__prices {
  display: flex;
  align-items: center;
  gap: 10px;
  flex-shrink: 0;
}

.snw-ongoing-savings__prices del {
  color: #999;
  font-size: 14px;
  font-weight: 400;
}

.snw-ongoing-savings__prices del .woocommerce-Price-amount {
  color: #999;
  font-size: 14px;
}

.snw-ongoing-savings__prices strong {
  font-size: 17px;
  font-weight: 700;
  color: #0a2137;
}

.snw-ongoing-savings__prices strong .woocommerce-Price-amount {
  font-size: inherit;
  font-weight: inherit;
  color: inherit;
}

@media (max-width: 480px) {
  .snw-ongoing-savings__row {
    padding: 12px 16px;
    font-size: 14px;
  }

  .snw-ongoing-savings__prices strong {
    font-size: 15px;
  }

  .snw-ongoing-savings__prices del {
    font-size: 13px;
  }
}

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

/* Mobile product header (title + excerpt above gallery) — hidden on desktop */
.snw-mobile-product-header {
  display: none;
}

@media (max-width: 768px) {
  /* Show mobile header above gallery */
  .snw-mobile-product-header {
    display: block;
    flex: 0 0 100%;
    max-width: 100%;
    order: -1;
  }

  /* Hide title + excerpt inside summary on mobile (already shown above) */
  div.product .summary .product_title,
  div.product .summary .woocommerce-product-details__short-description {
    display: none;
  }

  /* Product layout - stack vertically on mobile */
  div.product {
    flex-direction: column;
  }

  div.product .woocommerce-product-gallery,
  div.product .summary {
    flex: 0 0 100%;
    max-width: 100%;
  }

  /* Variation swatches - 2 columns on mobile */
  .vsg-swatch-items-wrapper {
    grid-template-columns: repeat(2, 1fr) !important;
  }

  /* Subscription selector - tighter spacing */
  .snw-subscription-selector {
    padding: 16px 0;
  }

  .snw-subscription-option {
    padding: 12px;
  }
}

/* ==========================================================================
   Shop Page Styles
   ========================================================================== */

/* Product excerpt in shop loop */
.snw-product-excerpt {
  font-size: 16px;
  line-height: 1.5;
  color: #0a2137;
  margin-top: 2px;
  margin-bottom: 10px;
}

/* Custom price display in shop loop */
.snw-custom-price-wrapper {
  margin-top: 10px;
  margin-bottom: 22px;
}

.snw-from-price {
  font-size: clamp(14px, 2vw, 17px);
  font-weight: 500;
  color: #333;
  margin-bottom: 2px;
}

.snw-from-price em {
  font-style: normal;
}

.snw-from-price del {
  color: #aaa;
}

.snw-from-price del .woocommerce-Price-amount {
  color: #aaa;
  font-size: clamp(14px, 2vw, 17px);
}

.snw-sale-price {
  font-size: clamp(16px, 2.2vw, 20px);
  font-weight: 700;
  color: #c00;
}

.snw-sale-price .woocommerce-Price-amount {
  color: #000 !important;
  font-size: clamp(16px, 2.2vw, 20px);
  font-weight: 700;
}

.snw-discount-badge {
  font-size: clamp(12px, 1.6vw, 15px);
  font-weight: 600;
}

.page-product .snw-product-excerpt {
  display: none;
}

/* Hide WooCommerce default sorting dropdown */
.woocommerce-ordering {
  display: none !important;
}

/* --- Toolbar Layout --- */
.snw-toolbar-wrapper {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 20px;
  margin-bottom: 20px;
}

.woocommerce-result-count {
  margin: 0 !important;
}

/* --- Shop Filter Button --- */
.snw-filter-trigger {
  position: relative;
  display: inline-flex;
  align-items: center;
  gap: 8px;
  width: 54px;
  height: 54px;
  align-items: center;
  justify-content: center;
  border-radius: 500rem !important;
  background: #ebf5fd;
  border: none;
  border-radius: 8px;
  font-size: 0.95rem;
  font-weight: 500;
  cursor: pointer;
  transition: all 0.2s;
}

.snw-filter-trigger:hover {
  transform: translateY(-1px);
  box-shadow: 0 2px 6px 3px rgba(65, 143, 222, 0.3);
}

.snw-filter-trigger svg {
  width: 26px;
  height: 26px;
}

.snw-filter-trigger.has-active-filters {
  background: #f67599;
}

.snw-filter-trigger.has-active-filters:hover {
  background: #e55d84;
}

.snw-active-filter-count {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  min-width: 20px;
  height: 20px;
  padding: 0 6px;
  background: rgba(255, 255, 255, 0.3);
  border-radius: 10px;
  font-size: 0.8rem;
  font-weight: 600;
}

/* Loading state */
.products-loading {
  opacity: 0.5;
  pointer-events: none;
  position: relative;
}

.products-loading::after {
  content: "";
  position: absolute;
  top: 50%;
  left: 50%;
  width: 40px;
  height: 40px;
  margin: -20px 0 0 -20px;
  border: 4px solid #f3f3f3;
  border-top: 4px solid #418fde;
  border-radius: 50%;
  animation: spin 1s linear infinite;
}

@keyframes spin {
  0% {
    transform: rotate(0deg);
  }
  100% {
    transform: rotate(360deg);
  }
}

/* --- Image-Based Size Selection --- */
/* --- Filter Modal z-index --- */
.modal-filter.modal {
  z-index: 99999;
}
.modal-filter + .modal-backdrop,
.modal-backdrop {
  z-index: 99998;
}

/* --- Filter Modal: shared layout --- */
.modal-filter .modal-dialog {
  margin: 0;
  display: flex;
  flex-direction: column;
}
.modal-filter .modal-content {
  height: 100vh;
  border-radius: 0;
  border: none;
  display: flex;
  flex-direction: column;
}
.modal-filter .modal-body {
  flex: 1 1 auto;
  overflow-y: auto;
}
.modal-filter .filter-bottom-btn {
  flex-shrink: 0;
}

/* --- Filter Modal: Desktop — right sidebar covering full height --- */
@media (min-width: 769px) {
  .modal-filter .modal-dialog {
    position: fixed;
    right: 0;
    top: 0;
    bottom: 0;
    width: 420px;
    max-width: 420px;
    height: 100vh;
    transform: translateX(100%);
    transition: transform 0.3s ease;
  }
  .modal-filter.show .modal-dialog {
    transform: translateX(0);
  }
}

/* --- Filter Modal: Mobile — fullscreen --- */
@media (max-width: 768px) {
  .modal-filter .modal-dialog {
    width: 100%;
    max-width: 100%;
    height: 100vh;
  }
  .modal-filter .checkbox-wrapper {
    grid-template-columns: 1fr;
  }
  .size-image-wrapper {
    gap: 8px;
  }
  .size-option {
    min-width: 0;
    flex: 1 1 calc(25% - 8px);
    padding: 8px 4px;
  }
  .size-image,
  .size-placeholder {
    width: 48px;
    height: 48px;
  }
}

@media (max-width: 480px) {
  .size-option {
    flex: 1 1 calc(33.33% - 8px);
  }
  .size-image,
  .size-placeholder {
    width: 40px;
    height: 40px;
    font-size: 20px;
  }
}

/* --- Size Image Wrapper (weight tiers grid) --- */
.size-image-wrapper {
  display: flex;
  gap: 12px;
  flex-wrap: wrap;
  justify-content: center;
  padding: 16px 0;
}

.size-option {
  display: flex;
  flex-direction: column;
  align-items: center;
  gap: 6px;
  cursor: pointer;
  padding: 10px 8px;
  border: 2px solid #d9e9f8;
  border-radius: 12px;
  transition: all 0.2s ease;
  min-width: 0;
  flex: 1 1 calc(25% - 12px);
  max-width: 110px;
  background: #fff;
}

.size-option:hover {
  background: #ecf6ff;
  border-color: #438fdc;
}

.size-option.active {
  background: #ecf6ff;
  border: 2px solid #438fdc;
  position: relative;
  box-shadow: 0 0 0 2px rgba(67, 143, 220, 0.2);
}

.size-option.active::before {
  position: absolute;
  top: -1px;
  left: -1px;
  content: "";
  width: 26px;
  height: 25px;
  display: inline-block;
  background-image: url('data:image/svg+xml;utf8,<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 30 29" fill="none"><path d="M0 12C0 5.37258 5.37258 0 12 0H29.995V17C29.995 23.6274 24.6224 29 17.995 29H0V12Z" fill="%23438FDC"/><path d="M14.2951 19C14.055 19 13.8269 18.8995 13.6588 18.7238L10.2611 15.1702C9.91296 14.8061 9.91296 14.2033 10.2611 13.8392C10.6093 13.4751 11.1856 13.4751 11.5338 13.8392L14.2951 16.7272L20.4662 10.2731C20.8144 9.90896 21.3907 9.90896 21.7389 10.2731C22.087 10.6373 22.087 11.24 21.7389 11.6041L14.9315 18.7238C14.7634 18.8995 14.5353 19 14.2951 19Z" fill="white"/></svg>');
  background-size: contain;
  background-repeat: no-repeat;
  background-position: center;
  border-radius: 12px 0 0 0;
}

.size-image {
  width: 60px;
  height: 60px;
  object-fit: contain;
  border-radius: 8px;
}

.size-placeholder {
  width: 60px;
  height: 60px;
  display: flex;
  align-items: center;
  justify-content: center;
  background: #ecf6ff;
  border-radius: 8px;
  font-size: 28px;
  font-weight: 600;
  color: #438fdc;
}

.size-label {
  font-size: 0.8rem;
  font-weight: 500;
  color: #0a2137;
  text-align: center;
}

/* --- Filter Modal General Styles --- */
h3.modal-title {
  font-family: "IBM Plex Sans", sans-serif;
  font-weight: bold;
  font-size: 20px;
  color: #0a2137;
}

.modal-filter .modal-header .btn-close {
  position: absolute;
  right: 0;
  top: 0;
  transform: translate(-15px, 25px);
}

.modal-header-title {
  border-bottom: 1px solid #d9e9f8;
  padding-bottom: 20px;
  width: 100%;
}

.modal-filter .checkbox-wrapper {
  display: grid;
  grid-template-columns: repeat(2, 1fr);
  gap: 12px;
}

.modal-filter .checkbox-wrapper .form-check {
  margin-bottom: 0;
}

.modal-filter .accordion-item {
  border: none;
  background-color: #ffffff;
  margin-bottom: 8px;
  padding-left: 6px;
}

.modal-filter .accordion-button {
  background-color: #f5f5f5;
  color: #0a2137;
  font-weight: 600;
  padding: 14px 20px;
  border-radius: 8px;
}

.modal-filter .accordion-button:not(.collapsed) {
  background-color: #ecf6ff;
  color: #438fdc;
}

.modal-filter .form-check-input:checked {
  background-color: #438fdc;
  border-color: #438fdc;
}

/* Filter footer buttons */
.snw-btn-reset {
  background-color: #ecf6ff;
  color: #0a2137;
  font-weight: 600;
  border: none;
  border-radius: 500rem;
  padding: 12px 20px;
}
.snw-btn-reset:hover {
  background-color: #d9e9f8;
  color: #0a2137;
}
.snw-btn-apply {
  background-color: #f67599;
  color: #fff;
  font-weight: 600;
  border: none;
  border-radius: 500rem;
  padding: 12px 20px;
}
.snw-btn-apply:hover {
  background-color: #e55a80;
  color: #fff;
}

/* NEW CSS */
.products.columns-4 li {
  min-width: 0;
}

.size-woocommerce_thumbnail {
  width: 100px;
  aspect-ratio: 1 / 1;
  object-fit: contain;
  border-radius: 24px;
  height: 100px;
}

@media (min-width: 600px) {
  .size-woocommerce_thumbnail {
    width: 150px;
    height: 150px;
  }
}

@media (min-width: 1200px) {
  .size-woocommerce_thumbnail {
    width: 200px;
    height: 200px;
  }
}

h2.woocommerce-loop-product__title {
  margin-top: 16px;
  margin-bottom: 0;
  line-height: normal;
  font-weight: bold;
  color: #0a2137;
  font-size: clamp(18px, 2.5vw, 24px);
  font-family: "IBM Plex Sans", sans-serif;
  display: -webkit-box;
  -webkit-line-clamp: 2;
  -webkit-box-orient: vertical;
  overflow: hidden;
  transition: all 0.3s ease;
}

a.woocommerce-LoopProduct-link.woocommerce-loop-product__link:hover h2 {
  color: #418fde !important;
}

a.woocommerce-LoopProduct-link.woocommerce-loop-product__link
  .size-woocommerce_thumbnail {
  transition: all 0.3s ease;
}

a.woocommerce-LoopProduct-link.woocommerce-loop-product__link:hover
  .size-woocommerce_thumbnail {
  transform: scale(1.06);
}

.product .add_to_cart_button {
  background-color: #fb6f92;
  color: #fff;
  padding: clamp(12px, 2vw, 16px) clamp(16px, 3vw, 24px);
  font-size: 16px;
  font-weight: bold;
  width: 100%;
  text-align: center;
  border-radius: 500rem;
  display: block;
  transition: all 0.3s ease;
}

.product .add_to_cart_button:hover {
  background: #e55a80 !important;
  transform: translateY(-2px);
  box-shadow: 0 4px 12px rgba(246, 117, 153, 0.4) !important;
}

h1.product_title.entry-title {
  font-size: 32px !important;
  font-family: "IBM Plex Sans", sans-serif;
  font-weight: bold;
}

a.woocommerce-product-gallery__trigger {
  display: none;
}

table.variations .label {
  font-size: 22px !important;
}

table.variations .label label {
  font-weight: 700 !important;
  color: #0a2137 !important;
  font-size: 16px !important;
}

.woocommerce-tabs.wc-tabs-wrapper {
  width: 100%;
}

/* ---- Product Tabs → Accordion on md/sm screens ---- */
@media (max-width: 767px) {
  .woocommerce-tabs .wc-tabs {
    display: none !important;
  }

  .woocommerce-tabs .wc-tab {
    display: none !important;
  }

  .snw-tab-accordion {
    overflow: hidden;
    margin-bottom: 14px;
    border: 1px solid #dcecf3;
    border-radius: 4px;
    background-color: #edf6fa;
  }

  .snw-tab-accordion-header {
    display: flex;
    align-items: center;
    justify-content: space-between;
    padding: 16px 20px;
    font-size: 16px;
    font-weight: 700;
    color: #0a2137;
    cursor: pointer;
    user-select: none;
    transition:
      background-color 0.4s cubic-bezier(0.4, 0, 0.2, 1),
      color 0.4s cubic-bezier(0.4, 0, 0.2, 1);
  }

  .snw-tab-accordion-header .snw-tab-icon {
    display: inline-block;
    width: 10px;
    height: 10px;
    border: solid currentColor;
    border-width: 0 2px 2px 0;
    transform: rotate(45deg);
    transition: transform 0.4s cubic-bezier(0.4, 0, 0.2, 1);
    flex-shrink: 0;
  }

  .snw-tab-accordion.open .snw-tab-icon {
    transform: rotate(-135deg);
  }

  .snw-tab-accordion-body {
    padding: 16px 20px;
  }
}

@media (min-width: 768px) {
  .snw-tab-accordion {
    display: none !important;
  }
}

.cart_item .product-thumbnail img {
  width: 100px;
  height: auto;
  border-radius: 12px;
}

.cart_item .product-name a {
  font-size: clamp(14px, 2vw, 20px);
  font-weight: bold;
  color: #0a2137;
}

.cart .quantity {
  margin-bottom: 0 !important;
}

.woocommerce table.shop_table td {
  font-weight: bold;
  font-size: clamp(14px, 2vw, 20px);
}

.woocommerce .cart .button,
.woocommerce .cart input.button {
  background-color: #fb6f92;
  color: #fff !important;
  padding: clamp(12px, 2vw, 16px) clamp(16px, 3vw, 24px) !important;
  font-size: 16px;
  font-weight: bold;
  border-radius: 500rem;
}

.woocommerce .cart .button:hover {
  background-color: #fb6f92;
  color: #fff;
}

.cart .button:disabled[disabled]:hover {
  background-color: #fb6f92 !important;
  color: #fff;
  padding: clamp(12px, 2vw, 16px) clamp(16px, 3vw, 24px);
  font-size: 16px;
  font-weight: bold;
  border-radius: 500rem;
}

.checkout-button {
  background-color: #fb6f92 !important;
  color: #fff;
  padding: clamp(12px, 2vw, 16px) clamp(16px, 3vw, 24px) !important;
  font-size: 16px;
  font-weight: bold;
  border-radius: 500rem !important;
}

.checkout_coupon .button {
  background-color: #fb6f92 !important;
  color: #fff !important;
  padding: clamp(12px, 2vw, 16px) clamp(16px, 3vw, 24px) !important;
  font-size: 16px;
  font-weight: bold;
  border-radius: 500rem !important;
}

.woocommerce-checkout-payment .button {
  background-color: #fb6f92 !important;
  color: #fff !important;
  padding: clamp(12px, 2vw, 16px) clamp(16px, 3vw, 24px) !important;
  font-size: 16px;
  font-weight: bold;
  border-radius: 500rem !important;
}

.accordion-body .size-image-wrapper .size-option {
  flex: 1 1 calc(25% - 12px);
}

.modal-filter .accordion-body {
  padding: 0;
}

.modal-filter .accordion .accordion-header .accordion-button {
  font-size: 16px;
  font-family: "IBM Plex Sans", sans-serif;
  font-weight: 600;
  color: #0a2137;
}

.snw-custom-cart {
  display: grid;
  grid-template-columns: 60% 40%;
  gap: 20px;
}

.snw-custom-cart > :nth-child(3) {
  grid-column: 1 / -1;
}

.snw-custom-cart .cart-collaterals {
  width: 100%;
  flex-direction: column;
  display: flex;
}

.snw-cart-totals {
  width: 100% !important;
}

@media (max-width: 768px) {
  .snw-custom-cart {
    grid-template-columns: 1fr; /* 1 column */
  }

  .snw-custom-cart > :nth-child(3) {
    grid-column: auto; /* default, spans the only column */
  }

  .snw-custom-cart .cart-collaterals {
    width: 100%;
  }
}

.woocommerce ul.products::before {
  content: none !important;
  display: none !important;
}

/* Checkout CSS */
.page-checkout {
  background-color: #f9fcfe;
}

.coupon input {
  width: 210px !important;
  height: 45px;
  border: 1.6px solid #fb6f92 !important;
  padding-left: 18px;
  border-radius: 500rem !important;
}

.woocommerce form .form-row .input-text,
.woocommerce form .form-row select {
  font-size: 16px;
  padding-left: 14px;
  border: 1px solid #d9e9f8;
  border-radius: 8px;
}

.select2-selection {
  height: 52px !important;
  border: 1px solid #d9e9f8 !important;
  border-radius: 8px !important;
}

span.select2-selection__rendered {
  padding: 0.8em !important;
}

.woocommerce form .form-row .input-text:focus,
.woocommerce form .form-row select:focus {
  border-color: #fb6f92;
}

.woocommerce form .form-row .input-text:focus-visible,
.woocommerce form .form-row select:focus-visible {
  outline: none;
}

.woocommerce form .form-row label {
  font-size: 16px;
}

/* col2-set col-2 hidden via .snw-checkout-redesign rule */

/* .woocommerce-billing-fields__field-wrapper {
  display: grid;
  grid-template-columns: repeat(1, 1fr);
} */

span.select2-selection.select2-selection--single {
  height: 37px !important;
}

span.select2-selection__rendered {
  padding: 0.54em 14px !important;
  font-size: 16px !important;
}

.select2-dropdown {
  border: 1px solid #d9e9f8 !important;
  border-top: 0 !important;
}

.select2-results__option {
  font-size: 16px !important;
}

.select2-container--default
  .select2-results__option--highlighted[aria-selected],
.select2-container--default
  .select2-results__option--highlighted[data-selected] {
  background-color: #d9e9f8 !important;
  color: #333 !important;
}

/* .woocommerce-checkout {
  display: grid;
  grid-template-columns: 60% 40%;
  gap: 20px;
} */

/* .woocommerce-checkout > :nth-child(1),
.woocommerce-checkout > :nth-child(2),
.woocommerce-checkout > :nth-child(3) {
  grid-column: 1 / -1;
} */

p#wc-stripe-express-checkout-button-separator {
  margin-top: 0 !important;
}

/* @media (max-width: 768px) {
  .woocommerce-checkout {
    grid-template-columns: 1fr;
  }
} */

h3#order_review_heading {
  display: none;
}

.woocommerce-billing-fields h3 {
  font-family: "IBM Plex Sans", sans-serif;
  font-size: clamp(16px, 2vw, 24px);
  font-weight: bold;
}

.woocommerce-info {
  border: 0;
}

.woocommerce-shipping-fields h3 {
  font-family: "IBM Plex Sans", sans-serif;
  font-size: clamp(16px, 2vw, 24px);
  font-weight: bold;
  margin-bottom: 1.6rem;
}

.woocommerce-shipping-fields input {
  width: 18px;
  height: 18px;
}

.woocommerce-additional-fields h3 {
  font-family: "IBM Plex Sans", sans-serif;
  font-size: clamp(16px, 2vw, 24px);
  font-weight: bold;
}

/* col2-set col-2 hidden via .snw-checkout-redesign rule */

.woocommerce-checkout-payment {
  background-color: #edf6fa !important;
  border-radius: 12px !important;
}

/* ── Unified Checkout Payment Methods ── */

/* Express checkout (G Pay / Apple Pay / Link) inside payment area */
.woocommerce-checkout #payment #wc-stripe-express-checkout-element {
  margin: 0 !important;
  padding: 16px 16px 0;
  clear: none !important;
}

.woocommerce-checkout #payment #wc-stripe-express-checkout-button-separator {
  margin: 12px 16px 4px !important;
  font-size: 13px;
  color: #6b7c93;
  text-align: center;
}

/* Payment method list: card-style layout */
.woocommerce-checkout #payment ul.payment_methods {
  list-style: none !important;
  padding: 16px !important;
  margin: 0 !important;
  border: none !important;
  display: flex;
  flex-direction: column;
  gap: 8px;
}

.woocommerce-checkout #payment ul.payment_methods li {
  background: #fff;
  border: 1.5px solid #d6e4f0;
  border-radius: 10px;
  padding: 14px 16px;
  margin: 0 !important;
  transition:
    border-color 0.2s,
    box-shadow 0.2s;
}

.woocommerce-checkout #payment ul.payment_methods li:hover {
  border-color: #438fdc;
}

.woocommerce-checkout #payment ul.payment_methods li.snw-selected {
  border-color: #438fdc;
  box-shadow: 0 0 0 2px rgba(67, 143, 220, 0.15);
}

.woocommerce-checkout #payment ul.payment_methods li label {
  display: flex;
  align-items: center;
  gap: 10px;
  cursor: pointer;
  font-family: "IBM Plex Sans", sans-serif;
  font-weight: 500;
  color: #0a2137;
  font-size: 15px;
  margin: 0;
}

.woocommerce-checkout #payment ul.payment_methods li label img {
  max-height: 24px;
  width: auto;
}

.woocommerce-checkout #payment ul.payment_methods li input[type="radio"] {
  accent-color: #438fdc;
  margin: 0;
  width: 18px;
  height: 18px;
}

/* Payment box (card form, PayPal buttons etc.) */
.woocommerce-checkout #payment div.payment_box {
  background: #f8fbff !important;
  border-radius: 8px;
  margin-top: 10px;
  padding: 12px;
  border: 1px solid #e2edf7;
}

/* Hide PayPal gateway that's hidden by JS (reduce layout shift) */
.wc_payment_method.payment_method_ppcp-applepay,
.wc_payment_method.payment_method_ppcp-googlepay {
  transition: opacity 0.3s ease;
}

/* Loading skeleton for express checkout buttons */
.snw-express-loading {
  display: flex;
  gap: 10px;
  padding: 16px;
}

.snw-express-loading .snw-skeleton-btn {
  flex: 1;
  height: 44px;
  border-radius: 8px;
  background: linear-gradient(90deg, #e8eef4 25%, #f0f5fa 50%, #e8eef4 75%);
  background-size: 200% 100%;
  animation: snw-shimmer 1.5s ease-in-out infinite;
}

@keyframes snw-shimmer {
  0% {
    background-position: 200% 0;
  }
  100% {
    background-position: -200% 0;
  }
}

/* Place order button unified styling */
.woocommerce-checkout #payment .place-order {
  padding: 16px !important;
}

.woocommerce table.shop_table {
  background-color: #edf6fa !important;
  border-radius: 12px !important;
  border: none !important;
}

/* count css */
.counter {
  display: flex;
  align-items: center;
  background: #ffffff;
  border-radius: 100px;
  padding: 4px;
  border: 1.5px solid #d6e4f0;
  box-shadow: 0 2px 12px rgba(100, 140, 180, 0.08);
  width: 240px;
  height: 58.4px;
  justify-content: space-between;
}

.counter .btn.btn-minus {
  background-color: #edf6fa;
  border-radius: 500rem !important;
  width: 48px;
  height: 48px;
  padding: 0;
  display: flex;
  align-items: center;
  justify-content: center;
}

.counter .btn.btn-plus {
  background-color: #093664;
  border-radius: 500rem !important;
  width: 48px;
  height: 48px;
  padding: 0;
  display: flex;
  align-items: center;
  justify-content: center;
}

@media (max-width: 1200px) {
  .counter {
    width: 310px;
  }
}

@media (max-width: 768px) {
  .counter {
    height: auto;
    width: 210px;
  }
  .counter .btn.btn-plus,
  .counter .btn.btn-minus {
    width: 36px;
    height: 36px;
  }
  .counter_btn .snw-accordion-btn {
    height: 47px;
    padding: 0 !important;
  }
}

.counter .count {
  font-weight: 600;
}

.filter-bottom-btn button {
  font-family: "IBM Plex Sans", sans-serif;
  font-size: 16px;
  font-weight: 600;
}

/* ==========================================================================
   Cart – Custom Card Layout
   ========================================================================== */

/* ── Item list container ── */
.snw-cart-items {
  display: flex;
  flex-direction: column;
  gap: 12px;
}

/* ── Single item card ── */
.snw-cart-item {
  background: #f8fdff;
  border: 1px solid #d9e9f8;
  border-radius: 16px;
  padding: 20px;
}

/* ── Top row: thumb · info · price ── */
.snw-cart-item__header {
  display: flex;
  align-items: flex-start;
  gap: 14px;
}

/* Thumbnail */
.snw-cart-item__thumb {
  flex-shrink: 0;
  width: 78px;
  height: 78px;
  border-radius: 10px;
  overflow: hidden;
}

.snw-cart-item__thumb a {
  display: block;
  width: 100%;
  height: 100%;
}

.snw-cart-item__thumb img {
  width: 100%;
  height: 100%;
  object-fit: cover;
  display: block;
}

/* Name + meta */
.snw-cart-item__info {
  flex: 1;
  min-width: 0;
}

.snw-cart-item__name {
  font-size: 15px;
  font-weight: 600;
  color: #0c2340;
  line-height: 1.3;
  margin-bottom: 4px;
}

.snw-cart-item__name a {
  color: inherit;
  text-decoration: none;
}

.snw-cart-item__name a:hover {
  color: #418fde;
}

.snw-cart-item__meta {
  display: block;
  font-size: 13px;
  color: #6b7a8d;
  margin-top: 2px;
}

/* Price column */
.snw-cart-item__price-col {
  flex-shrink: 0;
  text-align: right;
}

.snw-cart-item__price {
  font-size: 16px;
  font-weight: 700;
  color: #0c2340;
  white-space: nowrap;
}

.snw-cart-item__price .woocommerce-Price-amount {
  font-size: inherit;
  font-weight: inherit;
  color: inherit;
}

.snw-cart-item__price-original {
  font-size: 13px;
  color: #9aaabb;
  text-decoration: line-through;
  margin-top: 2px;
}

.snw-cart-item__price-original .woocommerce-Price-amount {
  font-size: inherit;
  color: inherit;
}

/* ── Variation row ── */
.snw-cart-item__variation {
  display: flex;
  justify-content: space-between;
  align-items: center;
  margin-top: 14px;
  padding: 11px 14px;
  background: #f5f7fa;
  border-radius: 10px;
  font-size: 14px;
  color: #3d5166;
  cursor: default;
}

.snw-cart-item__variation svg {
  flex-shrink: 0;
  color: #9aaabb;
}

/* ── Actions row: remove · qty ── */
.snw-cart-item__actions {
  display: flex;
  justify-content: space-between;
  align-items: center;
  margin-top: 14px;
}

/* Remove / trash icon */
.snw-cart-remove {
  display: flex;
  align-items: center;
  justify-content: center;
  width: 38px;
  height: 38px;
  border-radius: 50%;
  background: #edf6fb;
  color: #083664;
  font-weight: bolder !important;
  text-decoration: none;
  transition:
    background 0.2s,
    color 0.2s;
}

.snw-cart-remove:hover {
  background: #fce9ef;
  color: #f67599;
}

/* ── Quantity counter ── */
.snw-cart-qty-counter {
  display: flex;
  align-items: center;
  background: #fff;
  border: 1.5px solid #d6e4f0;
  border-radius: 100px;
  padding: 4px;
  gap: 4px;
  height: 52px;
}

.snw-cart-qty-btn {
  display: flex;
  align-items: center;
  justify-content: center;
  width: 42px;
  height: 42px;
  border-radius: 50%;
  border: none;
  cursor: pointer;
  transition:
    background 0.2s,
    opacity 0.2s;
  flex-shrink: 0;
  padding: 0;
  background: transparent;
}

.snw-cart-qty-minus {
  background: #edf6fa;
  color: #093664;
}

.snw-cart-qty-minus:hover {
  background: #d6e4f0;
}

.snw-cart-qty-minus.is-disabled {
  opacity: 0.35;
  cursor: not-allowed;
}

.snw-cart-qty-plus {
  background: #093664;
  color: #fff;
}

.snw-cart-qty-plus:hover {
  background: #0d4a8a;
}

.snw-cart-qty-input {
  width: 40px;
  text-align: center;
  border: none;
  background: transparent;
  font-size: 15px;
  font-weight: 600;
  color: #0c2340;
  font-family: "IBM Plex Sans", sans-serif;
  -moz-appearance: textfield;
  appearance: textfield;
  padding: 0;
}

.snw-cart-qty-input::-webkit-inner-spin-button,
.snw-cart-qty-input::-webkit-outer-spin-button {
  -webkit-appearance: none;
  margin: 0;
}

/* ── Form footer (coupon + update cart) ── */
.snw-cart-form-footer {
  margin-top: 16px;
  display: flex;
  flex-wrap: wrap;
  gap: 10px;
  align-items: center;
}

.snw-cart-form-footer .coupon {
  display: flex;
  gap: 8px;
  flex-wrap: wrap;
  align-items: center;
}

/* Keep update-cart button functional but visually minimal */
.snw-update-cart-btn {
  font-size: 13px !important;
  padding: 8px 18px !important;
  background: #edf6fa !important;
  color: #093664 !important;
  border: 1px solid #d6e4f0 !important;
  border-radius: 8px !important;
}

/* ── Item loading state (while variation AJAX runs) ── */
.snw-cart-item--loading {
  opacity: 0.5;
  pointer-events: none;
  transition: opacity 0.2s;
}

/* ── Subscription meta label ── */
.snw-cart-item__meta-label {
  font-weight: 600;
  color: #3d5166;
}

/* ── Variation select row ── */
.snw-cart-item__variation-wrap {
  position: relative;
  margin-top: 14px;
}

.snw-cart-variation-select {
  width: 100%;
  appearance: none;
  -webkit-appearance: none;
  background: #fff;
  border: 1px solid #e2eaf2;
  border-radius: 10px;
  padding: 12px 42px 12px 16px;
  font-size: 14px;
  font-family: "IBM Plex Sans", sans-serif;
  color: #3d5166;
  cursor: pointer;
  outline: none;
  transition: border-color 0.2s;
}

.snw-cart-variation-select:focus {
  border-color: #418fde;
}

.snw-cart-variation-select:disabled {
  opacity: 0.5;
  cursor: not-allowed;
}

.snw-variation-chevron {
  position: absolute;
  right: 14px;
  top: 50%;
  transform: translateY(-50%);
  pointer-events: none;
  color: #9aaabb;
  display: flex;
  align-items: center;
}

/* ── Responsive (cart items) ── */
@media (max-width: 480px) {
  .snw-cart-item {
    padding: 16px;
  }

  .snw-cart-item__thumb {
    width: 64px;
    height: 64px;
  }

  .snw-cart-item__name {
    font-size: 14px;
  }

  .snw-cart-qty-counter {
    height: 46px;
  }

  .snw-cart-qty-btn {
    width: 36px;
    height: 36px;
  }
}

/* ==========================================================================
   Cart Totals – SNW Custom Card  (matches design image 2)
   ========================================================================== */

.snw-cart-totals {
  background: #edf6fa;
  border-radius: 20px;
  padding: 24px;
}

/* ── Total row ── */
.snw-totals__total-row {
  display: flex;
  justify-content: space-between;
  align-items: center;
  margin-bottom: 6px;
}

.snw-totals__total-label {
  font-size: 22px;
  font-weight: 700;
  color: #0c2340;
}

.snw-totals__total-value {
  font-size: 22px;
  font-weight: 700;
  color: #0c2340;
}

.snw-totals__total-value .woocommerce-Price-amount,
.snw-totals__total-value strong {
  font-size: inherit;
  font-weight: inherit;
  color: inherit;
}

/* ── Tax note ── */
.snw-totals__tax-note {
  font-size: 13px;
  color: #6b7a8d;
  margin: 0 0 10px;
}

/* ── Coupon row ── */
.snw-totals__coupon-row {
  display: flex;
  justify-content: space-between;
  font-size: 14px;
  color: #3d5166;
  margin-bottom: 8px;
}

/* ── Savings badge ── */
.snw-totals__savings {
  font-size: 16px;
  font-weight: 700;
  color: #f67599;
  margin-top: 10px;
  margin-bottom: 4px;
}

.snw-totals__savings .woocommerce-Price-amount {
  font-weight: inherit;
  color: inherit;
}

.snw-totals__recurring-note {
  font-size: 13px;
  color: #6b7a8d;
  margin: 0 0 12px;
}

/* ── Divider ── */
.snw-totals__divider {
  border: none;
  border-top: 1px solid #cddff0;
  margin: 16px 0;
}

/* ── Free delivery notice ──
.snw-totals__free-delivery {
  text-align: center;
  font-size: 14px;
  color: #418fde;
  margin-bottom: 16px;
}

.snw-totals__free-delivery strong {
  color: #418fde;
  font-weight: 700;
} */

/* ── Shipping row (when not free) ── */
.snw-totals__shipping {
  font-size: 14px;
  color: #3d5166;
  margin-bottom: 16px;
}

/* Hide "change address" link in cart shipping calculator */
.snw-totals__shipping .shipping-calculator-form,
.snw-totals__shipping .shipping-calculator-button {
  display: none !important;
}

/* ── Checkout button ── */
.snw-totals__checkout .checkout-button,
.snw-totals__checkout a.checkout-button {
  display: block;
  width: 100%;
  text-align: center;
  background: #f67599 !important;
  color: #fff !important;
  font-size: 16px !important;
  font-weight: 600 !important;
  padding: 18px 32px !important;
  border-radius: 500rem !important;
  border: none !important;
  text-decoration: none !important;
  transition:
    background 0.2s,
    transform 0.15s,
    box-shadow 0.2s !important;
  margin-bottom: 16px;
}

.snw-totals__checkout .checkout-button:hover,
.snw-totals__checkout a.checkout-button:hover {
  background: #e55a80 !important;
  transform: translateY(-1px);
  box-shadow: 0 6px 20px rgba(246, 117, 153, 0.35) !important;
}

/* ── Payment icons ── */
.snw-totals__payment-icons {
  display: flex;
  justify-content: center;
  align-items: center;
  gap: 8px;
  flex-wrap: wrap;
  margin-top: 4px;
}

.snw-payment-icon {
  height: 24px;
  width: auto;
  object-fit: contain;
}

/* ── Trust badges (rendered outside the card) ── */
.snw-trust-badges {
  display: flex;
  flex-direction: column;
  gap: 10px;
  margin-top: 20px;
  padding: 0 4px;
}

.snw-trust-badge {
  display: flex;
  align-items: center;
  justify-content: center;
  gap: 10px;
  font-size: 14px;
  color: #3d5166;
}

.snw-trust-badge svg {
  flex-shrink: 0;
}

/* ── Fee row ── */
.snw-totals__fee-row {
  display: flex;
  justify-content: space-between;
  font-size: 14px;
  color: #3d5166;
  margin-bottom: 8px;
}

/* ── Hide any default WC heading/table inside our totals card ── */
.snw-cart-totals > h2,
.snw-cart-totals > table {
  display: none;
}

/* ── Responsive ── */
@media (max-width: 480px) {
  .snw-cart-totals {
    padding: 18px;
  }

  .snw-totals__total-label,
  .snw-totals__total-value {
    font-size: 18px;
  }

  .snw-trust-badges {
    flex-direction: row;
    flex-wrap: wrap;
    gap: 12px;
  }
}

.page-cart #wc-stripe-express-checkout-element,
.page-cart .snw-cart-form-footer {
  display: none !important;
}

/* ══════════════════════════════════════════════
   Cart – Empty state
══════════════════════════════════════════════ */

.page-cart .woocommerce .snw-empty-cart {
  grid-column: 1 / -1;
}

.snw-empty-cart {
  display: flex;
  flex-direction: column;
  align-items: center;
  text-align: center;
  padding: 0 24px 56px;
}

.snw-empty-cart__icon {
  width: 140px;
  height: 140px;
  margin-bottom: 24px;
}

.snw-empty-cart__icon svg {
  width: 100%;
  height: 100%;
}

.snw-empty-cart__title {
  font-size: 24px;
  font-weight: 700;
  color: #0c2340;
  margin: 0 0 10px;
}

.snw-empty-cart__subtitle {
  font-size: 15px;
  color: #6b7a8d;
  max-width: 360px;
  line-height: 1.6;
  margin: 0 0 28px;
}

.snw-empty-cart__btn {
  display: inline-flex;
  align-items: center;
  gap: 8px;
  padding: 14px 32px;
  background: #418fde;
  color: #fff;
  font-size: 15px;
  font-weight: 700;
  text-decoration: none;
  border-radius: 50px;
  transition:
    background 0.2s ease,
    transform 0.15s ease;
}

.snw-empty-cart__btn:hover {
  background: #2e7ac8;
  color: #fff;
  transform: translateY(-1px);
}

/* ══════════════════════════════════════════════
   Cart – Free delivery notice (inside items list)
══════════════════════════════════════════════ */

/* .snw-cart-delivery-notice {
  display: none;
  align-items: center;
  justify-content: center;
  gap: 8px;
  background: #edf6fa;
  color: #418fde;
  font-size: 13px;
  padding: 12px 16px;
  border-radius: 12px;
  margin-top: 4px;
  text-align: center;
}

.snw-cart-delivery-notice strong {
  color: inherit;
} */

/* ══════════════════════════════════════════════
   Cart – Mobile sticky checkout bar
══════════════════════════════════════════════ */

/* Hidden on desktop */
.snw-mobile-footer {
  display: none;
}

@media (max-width: 767px) {
  /* Show delivery notice
  .snw-cart-delivery-notice {
    display: flex;
  } */

  /* Hide desktop cart-totals card — sticky bar takes over */
  .page-cart .cart-collaterals {
    display: none;
  }

  /* Push content up so it isn't hidden behind the sticky bar (any page) */
  body.snw-has-cart-footer {
    padding-bottom: 210px;
  }

  /* ── Sticky footer wrapper (trust badges + checkout bar) ── */
  .snw-mobile-footer {
    display: flex !important;
    flex-direction: column;
    position: fixed;
    bottom: 0;
    left: 0;
    right: 0;
    z-index: 1000;
    box-shadow: 0 -2px 20px rgba(0, 0, 0, 0.08);
  }

  /* ── Trust badges — above the bar ── */
  .snw-mobile-trust {
    display: flex;
    align-items: center;
    justify-content: center;
    gap: 8px;
    background: #edf6fa;
    padding: 10px 16px;
    font-size: 11px;
    color: #6b7a8d;
    flex-wrap: wrap;
    border-bottom: 1px solid #e8f3fb;
  }

  .snw-mobile-trust__item {
    display: inline-flex;
    align-items: center;
    gap: 4px;
  }

  .snw-mobile-trust__item svg {
    color: #418fde;
    flex-shrink: 0;
  }

  .snw-mobile-trust__sep {
    color: #cddff0;
    font-size: 14px;
    line-height: 1;
  }

  /* ── Checkout bar ── */
  .snw-mobile-bar {
    display: flex;
    flex-direction: column;
    gap: 10px;
    background: #fff;
    padding: 12px 16px;
    padding-bottom: max(16px, env(safe-area-inset-bottom));
  }

  /* ── Total row ── */
  .snw-mobile-bar__total {
    display: flex;
    justify-content: space-between;
    align-items: center;
    padding: 0 2px;
  }

  .snw-mobile-bar__total-label,
  .snw-mobile-bar__total-value {
    font-size: 20px;
    font-weight: 700;
    color: #0c2340;
    font-family: "IBM Plex Sans", sans-serif;
  }

  .snw-mobile-bar__total-value .woocommerce-Price-amount,
  .snw-mobile-bar__total-value strong {
    font-size: inherit;
    font-weight: inherit;
    color: inherit;
  }

  /* ── Checkout button ── */
  .snw-mobile-bar__checkout {
    display: block;
    width: 100%;
    text-align: center;
    background: #f67599;
    color: #fff !important;
    font-size: 16px;
    font-weight: 600;
    padding: 16px 24px;
    border-radius: 500rem;
    text-decoration: none !important;
    transition: background 0.2s;
  }

  .snw-mobile-bar__checkout:hover {
    background: #e55a80;
    color: #fff !important;
  }

  /* ── Shipping line ── */
  .snw-mobile-bar__shipping {
    display: flex;
    align-items: center;
    justify-content: center;
    gap: 6px;
    font-size: 13px;
    color: #3d5166;
    padding: 0 2px;
  }

  .snw-mobile-bar__shipping svg {
    color: #418fde;
    flex-shrink: 0;
  }

  /* ── View Cart secondary link ── */
  .snw-mobile-bar__view-cart {
    display: block;
    text-align: center;
    font-size: 14px;
    font-weight: 600;
    color: #0c2340;
    text-decoration: none;
    padding: 2px 0;
  }

  .snw-mobile-bar__view-cart:hover {
    color: #418fde;
  }
}

/* ══════════════════════════════════════════════
   Cart – Cross-sells (shop page product listing)
══════════════════════════════════════════════ */

.woocommerce-LoopProduct-link {
  position: relative;
}

span.onsale {
  position: absolute;
  left: 20px;
  top: 20px;
  color: #fff;
  background: #00b67a;
  width: 60px;
  height: 60px;
  display: flex;
  align-items: center;
  justify-content: center;
  border-radius: 500rem;
}

/* ORDER COMPLETED CSS */

.woocommerce-order p.woocommerce-notice {
  font-size: 34px;
  margin-bottom: 2rem;
}

.woocommerce ul.order_details {
  margin: 0 0 1em !important;
  background: #f1f1f1;
  padding: 0.8rem;
  border: 1px solid #e1e1e1;
  border-radius: 8px;
}

.woocommerce ul.order_details li {
  padding: 1rem;
}

.woocommerce-order-details {
  margin-top: 2.6rem !important;
}

.woocommerce-order-details header {
  position: relative !important;
}

.woocommerce-order-details header h2 {
  margin-bottom: 0.6rem !important;
}

.woocommerce header {
  position: relative !important;
}

.woocommerce-button {
  padding: 14px 24px !important;
  font-size: 1rem !important;
  font-weight: 700 !important;
  border-radius: 8px !important;
  cursor: pointer;
  transition: all 0.3s ease;
  border: none !important;
}

.woocommerce-button.change_payment_method {
  background-color: #fb6f92 !important;
  color: #fff !important;
  padding: clamp(12px, 2vw, 16px) clamp(16px, 3vw, 24px);
  font-size: 16px;
  font-weight: bold;
  text-align: center;
  border-radius: 500rem !important;
  display: block;
}

.woocommerce-button.button.view {
  background-color: #fb6f92 !important;
  color: #fff !important;
  padding: clamp(12px, 2vw, 16px) clamp(16px, 3vw, 24px);
  font-size: 16px;
  font-weight: bold;
  text-align: center;
  border-radius: 500rem !important;
  display: block;
}

.woocommerce table.shop_table {
  margin-bottom: 50px !important;
}

.woocommerce-customer-details address {
  margin: 0 0 1em !important;
  background: #f1f1f1;
  border: 1px solid #e1e1e1 !important;
  padding: 2rem !important;
}

.woocommerce-customer-details--phone {
  margin-top: 2rem;
}

.woocommerce-MyAccount-navigation ul {
  list-style: none;
  display: flex;
  flex-wrap: wrap;
  gap: 8px 16px;
  padding-left: 0;
  margin-bottom: 2rem;
  border-bottom: 1px solid #e1e1e1;
  padding-bottom: 1rem;
}

.woocommerce-MyAccount-navigation ul li {
  padding: 6px;
}

.woocommerce-MyAccount-navigation ul li a {
  font-weight: 600;
  color: #333;
  text-decoration: none;
  padding: 8px 4px;
  transition: color 0.2s;
}

.woocommerce-MyAccount-navigation ul li a:hover {
  color: #f67599;
}

.woocommerce-MyAccount-navigation-link.is-active a {
  border-bottom: 2px solid #f67599;
  color: #f67599 !important;
}

.woocommerce-MyAccount-navigation-link.woocommerce-MyAccount-navigation-link--customer-logout
  a {
  background-color: #fb6f92 !important;
  color: #fff !important;
  padding: 12px 24px;
  font-size: 16px;
  font-weight: bold;
  text-align: center;
  border-radius: 500rem;
  display: block;
}

/* My Account - Subscription Details Table */
.woocommerce-MyAccount-content table.shop_table {
  width: 100%;
  border-collapse: collapse;
  margin-bottom: 1.5rem;
}

.woocommerce-MyAccount-content table.shop_table th,
.woocommerce-MyAccount-content table.shop_table td {
  padding: 12px 16px;
  text-align: left;
  border-bottom: 1px solid #e1e1e1;
}

.woocommerce-MyAccount-content table.shop_table th {
  font-weight: 600;
  color: #0a2137;
  background: #f5f5f5;
}

.woocommerce-MyAccount-content table.shop_table tr:nth-child(even) td {
  background: #fafafa;
}

/* Subscription action buttons */
.woocommerce-MyAccount-content .subscription_details .button,
.woocommerce-MyAccount-content .order-actions .button {
  background-color: #f67599 !important;
  color: #fff !important;
  padding: 8px 20px;
  border-radius: 500rem;
  font-weight: 600;
  text-decoration: none;
  display: inline-block;
  border: none;
  transition: background-color 0.2s;
}

.woocommerce-MyAccount-content .subscription_details .button:hover,
.woocommerce-MyAccount-content .order-actions .button:hover {
  background-color: #e5607f !important;
}

.woocommerce-Address {
  background: #f1f1f1;
  border: 1px solid #e1e1e1 !important;
  padding: 2rem;
  border-radius: 5px;
}

.woocommerce-EditAccountForm .woocommerce-Button.button {
  background-color: #fb6f92 !important;
  color: #fff !important;
  padding: clamp(12px, 2vw, 16px) clamp(16px, 3vw, 24px) !important;
  font-size: 16px;
  font-weight: bold;
  text-align: center;
  border-radius: 500rem;
  margin-top: 2rem;
  display: block;
}

.woocommerce-Payment .woocommerce-Button.button,
.woocommerce-address-fields .button,
.snw-save-dog-data {
  background-color: #fb6f92 !important;
  color: #fff !important;
  padding: clamp(12px, 2vw, 16px) clamp(16px, 3vw, 24px) !important;
  font-size: 16px;
  font-weight: bold;
  text-align: center;
  border-radius: 500rem !important;
  display: block;
}

.woocommerce-address-fields .button {
  margin-top: 2rem !important;
}

.woocommerce .woocommerce-customer-details address {
  background: #f1f1f1;
  border: 1px solid #e1e1e1 !important;
  padding: 2rem;
  border-radius: 5px;
}

.snw-cross-sells .product .add_to_cart_button {
  background-color: #fb6f92;
  color: #fff;
  padding: clamp(12px, 2vw, 16px) clamp(16px, 3vw, 24px);
  font-size: 16px;
  font-weight: bold;
  width: 100%;
  text-align: center;
  border-radius: 500rem;
  display: block;
}

.snw-cross-sells .product .add_to_cart_button:hover {
  background-color: #fb6f92;
  color: #fff;
}

.woocommerce ul.products li.product strong {
  display: inline-block !important;
}

.snw-product-image-wrapper {
  background: #ebf5fd;
  border-radius: 5px;
  border: 1px solid #cee0f3;
  width: 100%;
  height: 188px;
  display: flex;
  align-items: center;
  justify-content: center;
}

@media (min-width: 600px) {
  .snw-product-image-wrapper {
    height: 260px;
  }
}

@media (min-width: 1200px) {
  .snw-product-image-wrapper {
    height: 352px;
  }
}

.products.columns-4 li {
  min-width: 0;
  display: flex;
  flex-direction: column;
  justify-content: space-between;
}

ul.woocommerce-error a {
  color: #222;
}

.wb_cptb_content h2 {
  margin-bottom: 2rem;
}

/* Product Tags on Single Product Page */
.snw-product-tags {
  display: flex;
  flex-wrap: wrap;
  gap: 8px;
  margin-bottom: 15px;
}

.snw-product-tag {
  background: #ecf6ff;
  color: #438fdc;
  padding: 4px 14px;
  border-radius: 20px;
  font-size: 13px;
  font-weight: 600;
  text-transform: uppercase;
  cursor: pointer;
}
