/* ==========================================================================
   Elementy WooCommerce
   --------------------------------------------------------------------------
   Stylujemy własne klasy WooCommerce zamiast nadpisywać kilkanaście szablonów
   PHP. Mniej plików do pilnowania przy każdej aktualizacji wtyczki, a efekt
   ten sam — nadpisany szablon trzeba porównywać z oryginałem po każdym
   wydaniu Woo, arkusz stylów nie.
   ========================================================================== */

/* ——————————————————————————————————————————————— Pola formularzy */

.woocommerce input[type="text"],
.woocommerce input[type="email"],
.woocommerce input[type="tel"],
.woocommerce input[type="number"],
.woocommerce input[type="password"],
.woocommerce textarea,
.woocommerce select {
  width: 100%;
  min-height: 44px;
  padding: 10px 12px;
  border: 1px solid var(--cb-line-strong);
  border-radius: var(--cb-radius);
  font: inherit;
  color: var(--cb-ink);
  background: #fff;
}

.woocommerce textarea { min-height: 120px; }

.woocommerce input:focus,
.woocommerce textarea:focus,
.woocommerce select:focus {
  outline: none;
  border-color: var(--cb-brand-500);
  box-shadow: 0 0 0 3px rgba(0, 186, 242, .15);
}

.woocommerce label {
  display: block;
  font-size: var(--cb-fs-small);
  color: var(--cb-ink-muted);
  margin-bottom: 6px;
}

.woocommerce .required { color: var(--cb-err); border: 0; }
.woocommerce form .form-row { margin-bottom: 16px; padding: 0; }
.woocommerce .woocommerce-form__label-for-checkbox { display: flex; align-items: center; gap: 8px; }
.woocommerce .woocommerce-form__label-for-checkbox input { width: auto; min-height: 0; }

/* ——————————————————————————————————————————————— Przyciski */

.woocommerce a.button,
.woocommerce button.button,
.woocommerce input.button,
.woocommerce .button {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  gap: 8px;
  min-height: 44px;
  padding: 0 24px;
  border: 1px solid transparent;
  border-radius: var(--cb-radius);
  background: var(--cb-accent);
  color: #fff;
  font: 700 var(--cb-fs-small)/1 var(--cb-font);
  letter-spacing: .06em;
  text-transform: uppercase;
  cursor: pointer;
  text-decoration: none;
  transition: background-color .12s ease;
}

.woocommerce a.button:hover,
.woocommerce button.button:hover,
.woocommerce input.button:hover,
.woocommerce .button:hover {
  background: var(--cb-accent-hover);
  color: #fff;
  text-decoration: none;
}

/* Akcje drugorzędne nie mogą konkurować kolorem z dodaniem do koszyka.
   Jeden kolor akcji na stronie — jeśli pojawi się w trzecim miejscu,
   przestaje cokolwiek znaczyć. */
.woocommerce .button.wc-backward,
.woocommerce .woocommerce-Button--previous {
  background: #fff;
  color: var(--cb-brand);
  border-color: var(--cb-brand);
}

.woocommerce .button.wc-backward:hover {
  background: var(--cb-brand-050);
  color: var(--cb-brand);
}

/* ——————————————————————————————————————————————— Logowanie */

.woocommerce-account:not(.logged-in) .woocommerce {
  max-width: 460px;
  margin: 48px auto;
}

.woocommerce form.login,
.woocommerce form.register {
  border: 1px solid var(--cb-line);
  border-radius: var(--cb-radius);
  padding: 32px;
  margin: 0;
}

.woocommerce form.login .button,
.woocommerce form.register .button { width: 100%; margin-top: 8px; }
.woocommerce form.login .woocommerce-form-login__rememberme { margin: 16px 0 0; }
.woocommerce-LostPassword { margin-top: 16px; font-size: var(--cb-fs-small); }

/* ——————————————————————————————————————————————— Panel klienta */

.woocommerce-account.logged-in .woocommerce {
  display: grid;
  grid-template-columns: 260px minmax(0, 1fr);
  gap: 40px;
}

.woocommerce-account .woocommerce-MyAccount-navigation { float: none; width: auto; }
.woocommerce-MyAccount-navigation ul { list-style: none; margin: 0; padding: 0; }
.woocommerce-MyAccount-navigation li { border-bottom: 1px solid var(--cb-line); }

.woocommerce-MyAccount-navigation a {
  display: block;
  padding: 14px 0;
  color: var(--cb-brand);
  font-weight: 700;
  text-transform: uppercase;
  font-size: var(--cb-fs-small);
  letter-spacing: .04em;
}

.woocommerce-MyAccount-navigation a:hover { color: var(--cb-brand-600); text-decoration: none; }
.woocommerce-MyAccount-navigation li.is-active a { color: var(--cb-accent); }
.woocommerce-MyAccount-content { float: none; width: auto; min-width: 0; }

/* ——————————————————————————————————————————————— Tabele */

.woocommerce table.shop_table {
  width: 100%;
  border-collapse: collapse;
  border: 0;
  border-radius: 0;
  margin: 0 0 32px;
}

.woocommerce table.shop_table th {
  text-align: left;
  padding: 0 12px 12px 0;
  font-size: var(--cb-fs-micro);
  font-weight: 400;
  text-transform: uppercase;
  letter-spacing: .06em;
  color: var(--cb-ink-muted);
  border-bottom: 1px solid var(--cb-line);
  background: transparent;
}

.woocommerce table.shop_table td {
  padding: 16px 12px 16px 0;
  border-top: 0;
  border-bottom: 1px solid var(--cb-line);
  vertical-align: middle;
}

.woocommerce table.shop_table tbody tr:hover td { background: var(--cb-brand-050); }

.woocommerce table.shop_table .woocommerce-orders-table__cell-order-number a {
  font-weight: 700;
  color: var(--cb-brand);
  text-decoration: underline;
}

/* ——————————————————————————————————————————————— Koszyk */

.woocommerce .cart_totals h2,
.woocommerce-checkout h3 { font-size: var(--cb-fs-h2); }
.woocommerce .cart-collaterals { margin-top: 32px; }

.woocommerce .quantity .qty {
  width: 72px;
  min-height: 42px;
  text-align: center;
  border: 1px solid var(--cb-line-strong);
  border-radius: var(--cb-radius);
}

.woocommerce a.remove {
  color: var(--cb-ink-muted);
  font-size: 20px;
  line-height: 1;
  width: 28px;
  height: 28px;
  display: grid;
  place-items: center;
}

.woocommerce a.remove:hover { color: var(--cb-err); background: none; }
.woocommerce .cart .product-price,
.woocommerce .cart .product-subtotal { font-weight: 700; }

/* ——————————————————————————————————————————————— Kasa */

.woocommerce-checkout #payment {
  background: var(--cb-surface-alt);
  border: 1px solid var(--cb-line);
  border-radius: var(--cb-radius);
  padding: 24px;
}

.woocommerce-checkout #payment ul.payment_methods { padding: 0; border: 0; list-style: none; }
.woocommerce-checkout #payment div.payment_box { background: #fff; border: 1px solid var(--cb-line); }
.woocommerce-checkout #payment div.payment_box::before { display: none; }
.woocommerce #place_order { width: 100%; min-height: 52px; font-size: var(--cb-fs-body); }

/* ——————————————————————————————————————————————— Karta produktu */

.single-product div.product {
  display: grid;
  grid-template-columns: minmax(0, 1fr) minmax(0, 1fr);
  gap: 48px;
}

.single-product div.product .product_title { grid-column: 1 / -1; }
.single-product .woocommerce-product-gallery { float: none; width: auto; }
.single-product .summary { float: none; width: auto; margin: 0; }
.single-product .woocommerce-tabs { grid-column: 1 / -1; }

.single-product .woocommerce-tabs ul.tabs {
  padding: 0;
  margin: 0 0 24px;
  list-style: none;
  display: flex;
  gap: 24px;
  border-bottom: 1px solid var(--cb-line);
}

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

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

.single-product .woocommerce-tabs ul.tabs li a {
  padding: 12px 0;
  font-weight: 700;
  text-transform: uppercase;
  font-size: var(--cb-fs-small);
  letter-spacing: .04em;
  color: var(--cb-ink-muted);
}

.single-product .woocommerce-tabs ul.tabs li.active a {
  color: var(--cb-brand);
  box-shadow: inset 0 -2px 0 var(--cb-accent);
}

@media (max-width: 859px) {
  .woocommerce-account.logged-in .woocommerce { grid-template-columns: minmax(0, 1fr); gap: 24px; }
  .single-product div.product { grid-template-columns: minmax(0, 1fr); gap: 24px; }
}
