main.vt-main { margin: 50px 0; }

/* === Globalne przyciski, jednolite w całym serwisie === */
.vt-btn--primary {
  background: var(--vt-primary);
  border: 1px solid var(--vt-primary);
  color: #fff;
  transition: all ease 0.3s;
  cursor: pointer;
}
.vt-btn--primary:hover {
  background: transparent;
  border: 1px solid var(--vt-primary);
  color: var(--vt-primary);
}
.vt-btn--outline {
  border: 1px solid var(--vt-primary);
  color: var(--vt-primary);
  background: transparent;
  transition: all ease 0.3s;
}

/* GRID */
.vt-grid--2 {
  display: grid;
  grid-template-columns: 1.1fr 1fr;
  gap: 2rem;
}
@media (max-width: 1024px) {
  .vt-grid--2 { grid-template-columns: 1fr; }
}

/* Grid: upewnijmy się, że sticky działa w gridzie */
.vt-product { align-items: start; } /* ważne */

/* Domyślnie: sticky bez własnego scrolla */
.vt-product__media {
  position: sticky;
  top: 1.5rem;
  align-self: start;
  /* brak max-height, brak overflow → dopasowanie do kontentu */
}

/* Gdy JS wykryje, że kolumna za wysoka → wyłącz sticky */
.vt-product__media.no-sticky {
  position: static;
}

/* Mobile – zawsze zwykły flow */
@media (max-width: 1024px) {
  .vt-product__media { position: static; }
}

/* Bezpieczniki: przodkowie nie mogą ubijać sticky */
.vt-container, .vt-grid, .vt-product { overflow: visible; }



/* Główne zdjęcie */
.vt-product__image-link { display:block; }
.vt-product__image {
  width: 100%; height: auto;
  display: block;
  border-radius: 16px;
  background: #f6f7f8;
  object-fit: cover;
}

/* Miniatury pod głównym */
.vt-thumbs {
  margin-top: .75rem;
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  gap: .5rem;
}
@media (max-width:640px){ .vt-thumbs{ grid-template-columns: repeat(3, 1fr);} }
.vt-thumb {
  display:block; border:1px solid #eee; border-radius:10px; overflow:hidden;
  transition: transform .12s ease, box-shadow .12s ease, border-color .12s ease;
}
.vt-thumb__img { width:100%; aspect-ratio:1/1; object-fit:cover; display:block; }
.vt-thumb:hover { transform: translateY(-1px); box-shadow: 0 2px 10px rgba(0,0,0,.06); }
.vt-thumb.is-active { border-color:#111; }

/* Prawa kolumna */
h1.vt-product__title { font-size: clamp(1.4rem, 1.1rem + 1vw, 2rem); margin:0 0 .25rem; }
.vt-product__price { font-weight:700; font-size:1.25rem; margin-bottom:1rem; }
.vt-product__shortdesc { color:#555; line-height:1.6; margin-bottom:1rem; }
.vt-product__cart .quantity input { max-width: 84px; }
.vt-product__cart .single_add_to_cart_button { border-radius:999px; padding:.9rem 1.5rem; font-weight:600; }

/* Osobny blok podobnych produktów */
.vt-related-wrap {
  margin-top: 3rem;
  padding: 3rem 0;
}
.vt-related__title {
  text-align:center; font-size:1.2rem; font-weight:600; margin-bottom:1.5rem;
  text-transform: uppercase; letter-spacing:.02em; color:#333;
}
.vt-related ul.products {
  display:grid !important;
  grid-template-columns: repeat(auto-fill, minmax(250px, 1fr));
  gap: 1.25rem; margin:0; padding:0; list-style:none;
}
.vt-related ul.products li.product {
  background:#fff; border-radius:14px; padding:1.1rem;
  box-shadow:0 2px 8px rgba(0,0,0,.05);
  transition:transform .15s ease, box-shadow .15s ease;
}
.vt-related ul.products li.product:hover {
  transform: translateY(-3px); box-shadow:0 4px 14px rgba(0,0,0,.08);
}

/* === Ilość i przycisk koszyka === */
.vt-product__cart form.cart {
  display: flex;
  align-items: center;
  gap: 0.75rem;
  flex-wrap: wrap;
  justify-content: center;
}

/* Wrapper liczby sztuk */
.vt-qty {
  display: inline-flex;
  align-items: center;
  border: 1px solid #ddd;
  border-radius: 999px;
  background: #fff;
  overflow: hidden;
  height: 50px;
}

/* Guziki +/- */
.vt-qty__btn {
  width: 30px;
  height: 50px;
  border: 0;
  background: transparent;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  font-weight: 700;
  font-size: 16px;
  line-height: 1;
  cursor: pointer;
  user-select: none;
  color: #333;
}
.vt-qty__btn:hover { background: #f6f7f8; }

/* Pole ilości */
.vt-qty input.qty {
  width: 50px;
  height: 50px;
  border: 0;
  text-align: center;
  font-weight: 600;
  background: transparent;
  outline: none;
  -moz-appearance: textfield;
}
.vt-qty input.qty::-webkit-outer-spin-button,
.vt-qty input.qty::-webkit-inner-spin-button { -webkit-appearance: none; margin: 0; }

.vt-product__description {
  color: #444;
  line-height: 1.8;
  font-size: 1rem;
  margin-bottom: 1.5rem;
}

.vt-product__description h2,
.vt-product__description h3 {
  margin-top: 1.5rem;
  font-weight: 600;
}

.vt-product__description img {
  max-width: 100%;
  height: auto;
  border-radius: 12px;
  margin: 1rem 0;
}

/* Chipsy nad przyciskiem */
.vt-product__chips {
  display: flex;
  flex-wrap: wrap;
  gap: .5rem;
  margin-bottom: 1rem;
  justify-content: center;
}

.vt-chip {
  display: inline-flex;
  align-items: center;
  gap: .4em;
  padding: 0 .75rem;
  height: 28px;
  font-size: .85rem;
  font-weight: 500;
  border-radius: 999px;
  border: 1px solid var(--vt-primary);
  color: var(--vt-primary);
  background: transparent;
  line-height: 1;
  user-select: none;
  text-transform: capitalize;
}

.vt-chip--brand {
  background: var(--vt-primary);
  color: #fff;
}

.vt-chip--color {
  background: rgba(0,0,0,0); /* lekki kontur, bez wypełnienia */
}

/* Mała kropka wskazująca kolor (uniwersalna, bez mapy HEX) */
.vt-chip__dot {
  width: 10px;
  height: 10px;
  border-radius: 50%;
  border: 1px solid currentColor;
  display: none;
}

.vt-chip--storage {
  background: var(--vt-primary);
  color: #fff;
  border: 1px solid var(--vt-primary);
  font-weight: 600;
}


/* Gdybyś kiedyś mapował nazwy kolorów na HEX-y, wystarczy nadpisać background .vt-chip__dot inline-stylem */

/* ===========================================
   VT Pro Styles Upgrade
   =========================================== */
.vt-product__summary {
  background: linear-gradient(180deg, #ffffff, #f8fbff);
  border: 1px solid var(--vt-border, #d3ddeb);
  border-radius: 18px;
  box-shadow: 0 14px 34px rgba(15, 26, 42, 0.08);
  padding: clamp(18px, 2vw, 26px);
}

.vt-product__price {
  color: var(--vt-primary);
  font-size: clamp(1.3rem, 1.1rem + 0.6vw, 1.7rem);
}

.vt-product__cart form.cart {
  justify-content: center;
}

.vt-product__cart .single_add_to_cart_button {
  min-height: 50px;
  padding-inline: 1.6rem;
}

.vt-qty {
  border-color: var(--vt-border, #d3ddeb);
}

.vt-qty__btn:hover {
  background: color-mix(in srgb, var(--vt-primary) 10%, #fff);
  color: var(--vt-primary);
}

.vt-related-wrap {
  border-top: 1px solid color-mix(in srgb, var(--vt-border, #d3ddeb) 88%, #fff);
}

.vt-related ul.products li.product {
  border: 1px solid var(--vt-border, #d3ddeb);
  box-shadow: 0 10px 26px rgba(15, 26, 42, 0.08);
}

@media (max-width: 767.98px) {
  .vt-related ul.products li.product .vt-product__link {
    align-items: center;
  }

  .vt-related ul.products li.product .vt-product__media {
    width: 100%;
    display: flex;
    justify-content: center;
  }

  .vt-related ul.products li.product .vt-product__img {
    width: auto;
    max-width: 100%;
    margin-inline: auto;
  }
}
