.product-visual.has-image {
  background: #fff;
  padding: 12px;
}

.product-visual.has-image::before {
  display: none;
}

.product-visual.has-image img {
  display: block;
  width: 100%;
  height: 100%;
  object-fit: contain;
}

.product-visual.has-image .product-index {
  z-index: 1;
  padding: 5px 7px;
  border-radius: 3px;
  background: rgba(255, 255, 255, .92);
}

.dialog-visual.has-image {
  background: #fff;
  padding: 28px;
}

.dialog-visual.has-image img {
  display: block;
  width: 100%;
  height: 100%;
  max-height: 430px;
  object-fit: contain;
}

.cart-item-visual.has-image {
  background: #fff;
  padding: 4px;
}

.cart-item-visual.has-image img {
  display: block;
  width: 100%;
  height: 100%;
  object-fit: contain;
}

html {
  scroll-behavior: smooth;
  overscroll-behavior-y: none;
  touch-action: pan-y;
}

body {
  -webkit-overflow-scrolling: touch;
}

.product-price strong,
.dialog-price strong,
.cart-total strong,
#checkoutTotal {
  color: #d71920;
}

.product-name {
  margin-bottom: 10px;
}

.product-price {
  padding-top: 9px;
}

.product-price-stack { min-height:55px; padding-top:8px; border-top:1px solid var(--line); display:flex; flex-direction:column; align-items:flex-start; justify-content:flex-end; gap:1px; }
.original-price { position:relative; display:inline-block; color:#161616; font:600 13px/1.25 "DM Sans",sans-serif; text-decoration:none; white-space:nowrap; }
.original-price::after { content:""; position:absolute; left:-2px; right:-2px; top:50%; height:1.5px; background:#161616; transform:rotate(-8deg); transform-origin:center; }
.reseller-price { color:#d71920; font:800 22px/1.12 Manrope,sans-serif; white-space:nowrap; }
.card-actions { display:grid; grid-template-columns:auto minmax(0,1fr); gap:8px; margin-top:12px; }
.mini-quantity { display:grid; grid-template-columns:34px 30px 34px; min-height:42px; border:1px solid var(--line); background:#fff; }
.mini-quantity button { border:0; background:transparent; color:var(--ink); font:800 18px/1 Manrope,sans-serif; cursor:pointer; }
.mini-quantity output { display:grid; place-items:center; font:700 13px/1 Manrope,sans-serif; }
.card-add-button { min-width:0; min-height:42px; border:0; padding:8px 10px; display:inline-flex; align-items:center; justify-content:center; gap:6px; background:#ed1c24; color:#fff; font:800 12px/1.15 "DM Sans",sans-serif; cursor:pointer; box-shadow:0 5px 14px rgba(215,25,32,.2); }
.card-add-button:hover,.card-add-button:focus-visible { background:#c91017; }
.card-add-button svg { flex:0 0 auto; width:19px; height:19px; fill:none; stroke:currentColor; stroke-width:1.8; }
.pagination { margin-top:28px; display:flex; align-items:center; justify-content:center; gap:16px; }
.pagination[hidden] { display:none; }
.pagination button { min-height:44px; padding:0 18px; border:1px solid var(--ink); background:var(--ink); color:#fff; font:700 13px "DM Sans",sans-serif; cursor:pointer; }
.pagination button:disabled { border-color:var(--line); background:transparent; color:var(--muted); cursor:not-allowed; }
.pagination span { color:var(--muted); font-size:13px; font-weight:700; }
.dialog-price > div { display:flex; flex-direction:column; align-items:flex-end; gap:2px; }

.cart-flyer {
  position: fixed;
  z-index: 100;
  width: 72px;
  height: 72px;
  overflow: hidden;
  display: grid;
  place-items: center;
  border-radius: 14px;
  background: #fff;
  box-shadow: 0 12px 32px rgba(18, 52, 47, .28);
  color: var(--ink);
  font: 800 22px Manrope, sans-serif;
  pointer-events: none;
}

.cart-flyer img {
  width: 100%;
  height: 100%;
  object-fit: contain;
}

.cart-bump {
  animation: cart-bump .38s ease;
}

.quick-contact {
  position: fixed;
  right: 14px;
  bottom: 18px;
  z-index: 17;
  display: grid;
  gap: 9px;
}

.quick-contact-button {
  width: 44px;
  height: 44px;
  display: grid;
  place-items: center;
  border: 2px solid #fff;
  border-radius: 50%;
  color: #fff;
  text-decoration: none;
  box-shadow: 0 7px 20px rgba(18, 52, 47, .24);
  transition: transform .2s ease, box-shadow .2s ease;
}

.quick-contact-button:hover,
.quick-contact-button:focus-visible {
  transform: translateY(-2px);
  box-shadow: 0 9px 24px rgba(18, 52, 47, .3);
}

.quick-contact-button.whatsapp { background: #25d366; }
.quick-contact-button.line { background: #06c755; }
.quick-contact-button span { font: 800 11px/1 Manrope, sans-serif; letter-spacing: -.02em; }
.quick-contact-button.line span { font-size: 9px; }

@keyframes cart-bump {
  50% { transform: scale(1.14); }
}

@media (max-width: 720px) {
  .site-header {
    position: sticky;
    top: 0;
    height: 64px;
  }

  .header-actions .cart-button {
    position: relative;
    right: auto;
    bottom: auto;
    z-index: auto;
    width: 48px;
    height: 42px;
    justify-content: center;
    border: 1px solid var(--ink);
    border-radius: 0;
    background: var(--paper);
    color: var(--ink);
    box-shadow: 0 4px 14px rgba(18, 52, 47, .14);
  }

  .header-actions .cart-button b {
    position: absolute;
    top: -4px;
    right: -4px;
    border: 2px solid var(--paper);
    background: var(--ink);
    color: #fff;
  }

  .header-actions .cart-button svg {
    width: 22px;
    height: 22px;
  }

  .product-body {
    padding: 9px 11px 11px;
  }

  .product-category {
    margin-bottom: 3px;
    font-size: 10px;
  }

  .product-name {
    min-height: 33px;
    margin-bottom: 4px;
    font-size: 13px;
    line-height: 1.25;
    display: -webkit-box;
    -webkit-line-clamp: 2;
    -webkit-box-orient: vertical;
    overflow: hidden;
  }

  .product-price {
    padding-top: 4px;
    border-top: 0;
  }

  .product-price span {
    display: none;
  }

  .product-price strong {
    margin-top: 0;
    font-size: 17px;
    line-height: 1.15;
  }

  .product-visual {
    aspect-ratio: 1 / 1;
  }

  .product-visual.has-image {
    padding: 7px;
  }

  .product-price-stack { min-height:49px; padding-top:5px; }
  .original-price { font-size:11px; }
  .reseller-price { font-size:18px; }
  .card-actions { grid-template-columns:1fr; gap:6px; margin-top:8px; }
  .mini-quantity { grid-template-columns:1fr 34px 1fr; min-height:36px; }
  .card-add-button { min-height:39px; font-size:11px; }
  .pagination { gap:8px; }
  .pagination button { min-height:42px; padding:0 12px; }

  .dialog-content h2 {
    margin-bottom: 16px;
  }

  .quick-contact {
    right: 10px;
    bottom: max(14px, env(safe-area-inset-bottom));
    gap: 7px;
  }

  .quick-contact-button {
    width: 40px;
    height: 40px;
  }
}

@media (max-width: 390px) {
  .product-grid { grid-template-columns:repeat(2,minmax(0,1fr)); }
  .product-visual { aspect-ratio:1/1; }
  .product-name { min-height:33px; }
}

@media (prefers-reduced-motion: reduce) {
  html { scroll-behavior: auto; }
  .cart-bump { animation: none; }
}
