/* ==========================================================================
   Koszyk, zamówienie i konto klienta.

   Duża część znaczników pochodzi wprost z WooCommerce (podsumowanie, metody
   płatności, formularze adresowe), dlatego celujemy w jego klasy zamiast
   przepisywać kolejne szablony. Mniej plików do pilnowania przy aktualizacji.
   ========================================================================== */

/* Nagłówek stron sklepowych stoi poza białą kartą — karty ma dopiero treść. */
/* Wcięcie równe paddingowi kart: na stronach treści tytuł stoi w karcie, więc jego
   tekst zaczyna się od wewnętrznego marginesu. Bez wcięcia „Koszyk" przyklejał się
   do krawędzi kontenera i odstawał od reszty serwisu. */
.avm-sklep__h1{font-size:clamp(28px,3.4vw,38px);font-weight:800;margin:6px 0 16px;padding-inline:26px;letter-spacing:-.02em}

/* Wiersz „Kraj" przy sprzedaży do jednego kraju — klasę dokłada AVM_Woo::kraj_bez_wyboru().
   !important, bo `display:block` na `.form-row` dają arkusze WooCommerce i Flexible
   Checkout Fields o wyższej specyficzności. */
p.form-row.avm-pole-ukryte{display:none !important}

/* ——— pasek etapów ——— */
.avm-kroki{
  display:flex;align-items:center;gap:10px;flex-wrap:wrap;
  background:#fff;border-radius:var(--avm-radius);padding:16px 20px;margin-bottom:16px;
}
.avm-kroki__krok{display:flex;align-items:center;gap:10px;font-size:14px;font-weight:600}
.avm-kroki__krok + .avm-kroki__krok{padding-left:10px}
.avm-kroki__krok + .avm-kroki__krok::before{
  content:"";width:26px;height:1px;background:var(--avm-lin);margin-right:10px;
}
.avm-kroki__nr{
  display:flex;align-items:center;justify-content:center;
  width:26px;height:26px;border-radius:50%;font-size:12.5px;font-weight:800;
  background:var(--avm-bg);color:var(--avm-mut);
}
.avm-kroki__krok--biezacy .avm-kroki__nr{background:var(--avm-ko);color:#fff}
.avm-kroki__krok--zrobiony .avm-kroki__nr{background:var(--avm-zi);color:#fff}
.avm-kroki__krok--przyszly{color:var(--avm-mut);font-weight:500}

/* ——— układ koszyka ——— */
.avm-koszyk__uklad{display:grid;grid-template-columns:minmax(0,1fr) 360px;gap:16px;align-items:start}
.avm-koszyk__lista,.avm-koszyk__bok > .cart-collaterals{
  background:#fff;border-radius:var(--avm-radius);padding:8px 22px 22px;
}
.avm-koszyk__bok > .cart-collaterals{padding:22px;position:sticky;top:16px}

/* ——— pozycja koszyka ——— */
.avm-poz{
  display:grid;grid-template-columns:84px minmax(0,1fr) auto auto 28px;
  gap:16px;align-items:center;padding:18px 0;border-bottom:1px solid var(--avm-lin);
}
.avm-poz:last-of-type{border-bottom:0}
.avm-poz__im{
  display:flex;align-items:center;justify-content:center;
  aspect-ratio:1/1;min-height:0;padding:6px;
  background:#fff;border:1px solid var(--avm-lin);border-radius:9px;
}
.avm-poz__im img{
  max-width:100%;max-height:100%;width:auto;height:auto;
  object-fit:contain;mix-blend-mode:multiply;
}
.avm-poz__kat{display:block;font-size:11px;text-transform:uppercase;letter-spacing:.06em;color:var(--avm-mut)}
.avm-poz__t{display:block;font-size:15px;font-weight:600;margin-top:3px;line-height:1.35}
.avm-poz__jedn{display:block;margin-top:5px;font-size:13px;color:var(--avm-mut)}
.avm-poz__jedn .woocommerce-Price-amount{font-size:inherit;color:inherit}

.avm-poz__ile input[type="number"]{
  width:74px;height:44px;padding:0 8px;text-align:center;
  border:1px solid var(--avm-lin);border-radius:9px;font-size:15px;font-weight:600;
}
.avm-poz__suma{font-size:17px;font-weight:800;white-space:nowrap;letter-spacing:-.02em}
.avm-poz__suma .woocommerce-Price-amount{font-size:inherit;font-weight:inherit}
.avm-poz__usun{
  display:flex;align-items:center;justify-content:center;
  width:28px;height:28px;border-radius:50%;font-size:19px;line-height:1;
  color:var(--avm-mut);background:var(--avm-bg);
}
.avm-poz__usun:hover{background:var(--avm-cz);color:#fff}

/* ——— kupon i aktualizacja ——— */
.avm-koszyk__akcje{
  display:flex;align-items:center;gap:12px;flex-wrap:wrap;
  padding-top:18px;border-top:1px solid var(--avm-lin);
}
.avm-kupon{display:flex;gap:8px;flex:1 1 320px}
.avm-kupon input[type="text"]{
  flex:1 1 auto;min-width:0;height:44px;padding:0 13px;
  border:1px solid var(--avm-lin);border-radius:9px;font-size:14.5px;outline:0;
}
.avm-kupon input:focus{border-color:var(--avm-ko)}

/* Selektory z nazwą elementu i !important — paleta Blocksy wchodzi
   w `button[type="submit"]` stylem inline. */
.avm-kupon button.button,
.avm-koszyk button.avm-koszyk__odswiez{
  height:44px;padding:0 18px;border:0;cursor:pointer;border-radius:9px;
  font-size:14px;font-weight:700;
  background:var(--avm-bg) !important;color:var(--avm-tx) !important;
}
.avm-kupon button.button:hover,
.avm-koszyk button.avm-koszyk__odswiez:hover{background:#e5e7eb !important}

/* ——— podsumowanie ——— */
/* WooCommerce nadaje `.cart_totals` szerokość 48% i float — w kolumnie gridu
   rozpychało to stronę w poziomie. */
.avm-koszyk__bok{min-width:0}
.avm-koszyk__bok .cart-collaterals,
.avm-koszyk__bok .cart_totals{width:100% !important;float:none !important;margin:0}
.avm-koszyk__hsuma{font-size:18px;font-weight:800;margin:0 0 14px}
.avm-koszyk__bok .cart_totals > h2{display:none}
.cart_totals h2,.avm-zam__karta h3{font-size:18px;font-weight:800;margin:0 0 14px}
.cart_totals table,.woocommerce-checkout-review-order-table{
  width:100%;border-collapse:collapse;font-size:14.5px;
}
.cart_totals th,.cart_totals td,
.woocommerce-checkout-review-order-table th,
.woocommerce-checkout-review-order-table td{
  padding:11px 0;border-bottom:1px solid var(--avm-lin);text-align:left;vertical-align:top;
}
.cart_totals th,.woocommerce-checkout-review-order-table th{font-weight:600;color:var(--avm-mut)}
.cart_totals td,.woocommerce-checkout-review-order-table td{text-align:right;font-weight:600}
.cart_totals .order-total td,.woocommerce-checkout-review-order-table .order-total td{
  font-size:21px;font-weight:800;color:var(--avm-ko);letter-spacing:-.02em;
}
.cart_totals .order-total td .woocommerce-Price-amount{font-size:inherit;font-weight:inherit;color:inherit}
/* Dopisek o VAT dziedziczył 21 px i kolor kwoty, a w wąskiej kolumnie łamał się
   w środku, obok ceny. To informacja pomocnicza — osobna linia, drobnym drukiem. */
.cart_totals .order-total small.includes_tax,
.woocommerce-checkout-review-order-table .order-total small.includes_tax{
  display:block;margin-top:2px;font-size:12.5px;line-height:1.4;font-weight:500;letter-spacing:0;
  white-space:nowrap;color:var(--avm-mut);
}
.cart_totals .order-total small.includes_tax .woocommerce-Price-amount,
.woocommerce-checkout-review-order-table .order-total small.includes_tax .woocommerce-Price-amount{
  font-size:inherit;font-weight:inherit;color:inherit;
}
.cart_totals ul#shipping_method{list-style:none;margin:0;padding:0;text-align:right}
.cart_totals ul#shipping_method li{margin-bottom:6px}
.woocommerce-shipping-destination{font-size:12.5px;color:var(--avm-mut);font-weight:400}

.wc-proceed-to-checkout{margin-top:16px}
.wc-proceed-to-checkout a.checkout-button{
  display:flex;align-items:center;justify-content:center;
  height:52px;border-radius:9px;
  background:var(--avm-ko) !important;color:#fff !important;
  font-size:15.5px;font-weight:700;
}
.wc-proceed-to-checkout a.checkout-button:hover{background:var(--avm-ko-d) !important}

.avm-koszyk__atuty{list-style:none;margin:16px 0 0;padding:0}
.avm-koszyk__atuty li{
  display:flex;gap:11px;align-items:flex-start;
  font-size:13.5px;color:var(--avm-mut);padding:7px 0;
}
.avm-koszyk__atuty i{color:var(--avm-ko);width:17px;text-align:center;margin-top:2px}
.avm-koszyk__atuty a{color:var(--avm-tx);font-weight:700}

/* ——— pusty koszyk ——— */
/* Uwaga: `.avm-pusty__dzialy` i `.avm-pusty__akcje` są w base.css — używa ich
   też strona 404 i wyniki wyszukiwania, które nie ładują tego arkusza. */
.avm-pusty{background:#fff;border-radius:var(--avm-radius);padding:56px 26px;text-align:center}
.avm-pusty__ikona{font-size:38px;color:var(--avm-lin);margin-bottom:16px}
.avm-pusty h2{font-size:24px;font-weight:800;margin:0 0 10px}
.avm-pusty p{max-width:60ch;margin:0 auto 22px;color:var(--avm-mut);line-height:1.65}
.woocommerce-cart .return-to-shop{display:none}
/* Hak `woocommerce_cart_is_empty` wypisuje komunikat „Twój koszyk jest pusty" — tuż
   nad naszym nagłówkiem o tej samej treści. Haka nie zdejmujemy, bo wpinają się
   w niego wtyczki; chowamy tylko sam komunikat WooCommerce. */
.avm-pusty .wc-empty-cart-message,.avm-pusty .cart-empty{display:none}

/* ——— zamówienie ——— */
.avm-zam__uklad{display:grid;grid-template-columns:minmax(0,1fr) 400px;gap:16px;align-items:start}
.avm-zam__karta{background:#fff;border-radius:var(--avm-radius);padding:26px}
.avm-zam__bok .avm-zam__karta{position:sticky;top:16px}
.avm-zam h3,.avm-zam .woocommerce-billing-fields h3,
.avm-zam .woocommerce-shipping-fields h3,
.avm-zam .woocommerce-additional-fields h3{font-size:18px;font-weight:800;margin:0 0 16px}
.avm-zam .woocommerce-shipping-fields,
.avm-zam .woocommerce-additional-fields{margin-top:26px;padding-top:22px;border-top:1px solid var(--avm-lin)}

.avm-zam .form-row{margin:0 0 14px;padding:0}
.avm-zam .form-row label{display:block;margin-bottom:6px;font-size:13px;font-weight:600}
.avm-zam .required{color:var(--avm-cz);text-decoration:none}
.avm-zam input[type="text"],.avm-zam input[type="email"],.avm-zam input[type="tel"],
.avm-zam input[type="password"],.avm-zam select,.avm-zam .select2-selection{
  width:100%;height:46px;padding:0 13px;background:#fff;
  border:1px solid var(--avm-lin) !important;border-radius:9px !important;
  font-size:14.5px;outline:0;
}
.avm-zam textarea{
  width:100%;min-height:96px;padding:12px 13px;background:#fff;
  border:1px solid var(--avm-lin);border-radius:9px;font-size:14.5px;outline:0;resize:vertical;
}
.avm-zam input:focus,.avm-zam select:focus,.avm-zam textarea:focus{
  border-color:var(--avm-ko) !important;box-shadow:0 0 0 3px rgba(37,99,235,.16);
}
/* Sklep wysyła tylko do Polski — WooCommerce robi wtedy z pola kraju
   jednoopcyjny select udający tekst (bez ramki, paddingu i szerokości), a reguła
   wyżej oddawała mu samą ramkę: wychodziła ciasna pigułka „Polska". Pokazujemy
   go jak zablokowane pole. Selektor musi przebić `.woocommerce form .form-row …`. */
form.avm-zam .form-row select.country_to_state--single{
  width:100%;height:46px;line-height:44px;padding:0 13px;
  background:var(--avm-bg);color:var(--avm-tx);font-weight:600;
}
.avm-zam .select2-selection__rendered{line-height:44px !important;padding-left:0 !important}
.avm-zam .select2-selection__arrow{height:44px !important}

/* Dwie kolumny dla pól, które w adresie naturalnie stoją obok siebie. */
@media (min-width:720px){
  .avm-zam .form-row-first,.avm-zam .form-row-last{width:calc(50% - 7px);float:none;display:inline-block;vertical-align:top}
  .avm-zam .form-row-first{margin-right:10px}
}

.avm-zam .woocommerce-checkout-payment{margin-top:18px}
/* WooCommerce daje sekcji płatności fioletowe tło, a liście padding i linię —
   razem z naszą ramką pozycji wychodziły trzy zagnieżdżone ramki. */
.woocommerce-checkout .avm-zam #payment{background:transparent;border-radius:0}
.woocommerce-checkout .avm-zam #payment ul.payment_methods{padding:0;border-bottom:0}
.woocommerce-checkout .avm-zam #payment div.form-row{padding:0}
.avm-zam ul.wc_payment_methods{list-style:none;margin:0 0 16px;padding:0}
/* Brak metod płatności: w `li` siedzi sam komunikat, bez ramki pozycji. */
.avm-zam ul.wc_payment_methods li:has(> .woocommerce-info){border:0;padding:0}
.avm-zam #payment .woocommerce-info{background:var(--avm-bg);margin:0}
.avm-zam ul.wc_payment_methods li{
  border:1px solid var(--avm-lin);border-radius:10px;padding:14px;margin-bottom:9px;
}
.avm-zam ul.wc_payment_methods label{font-weight:600;font-size:14.5px;cursor:pointer}
.avm-zam .payment_box{
  margin-top:10px;padding:12px;background:var(--avm-bg);border-radius:8px;
  font-size:13.5px;color:var(--avm-mut);
}
.avm-zam .payment_box p:last-child{margin-bottom:0}

.avm-zam button#place_order{
  width:100%;height:54px;border:0;cursor:pointer;border-radius:9px;
  background:var(--avm-ko) !important;color:#fff !important;
  font-size:16px;font-weight:700;
}
.avm-zam button#place_order:hover{background:var(--avm-ko-d) !important}
.avm-zam .woocommerce-terms-and-conditions-wrapper{margin-bottom:14px;font-size:13px}

/* Zwykły blok zamiast flexa: flex robił z każdego kawałka tekstu osobny element
   i przecinek po numerze telefonu spadał do nowej linii. */
.avm-zam__pomoc{
  display:block;margin-top:14px;padding-inline:4px;font-size:13.5px;line-height:1.6;color:var(--avm-mut);
}
.avm-zam__pomoc i{color:var(--avm-ko);margin-right:7px}
.avm-zam__pomoc a{font-weight:700;color:var(--avm-tx)}

/* Nota o prywatności i tekst kuponu dziedziczyły kolor po komunikatach
   WooCommerce — na białej karcie wychodziły brązowe. */
.avm-zam .woocommerce-privacy-policy-text,
.avm-zam .woocommerce-privacy-policy-text p{
  font-size:12.5px;line-height:1.55;color:var(--avm-mut);margin:14px 0 0;
}
.avm-zam .woocommerce-privacy-policy-text a{color:var(--avm-ko);text-decoration:underline}
.woocommerce-form-coupon-toggle .woocommerce-info{font-size:14px}

/* Komunikaty WooCommerce są w base.css — pokazują się też na listingu i karcie produktu. */

/* ——— konto klienta ——— */
.woocommerce-account .woocommerce{display:grid;grid-template-columns:250px minmax(0,1fr);gap:16px;align-items:start}
.woocommerce-MyAccount-navigation{background:#fff;border-radius:var(--avm-radius);padding:14px}
.woocommerce-MyAccount-navigation ul{list-style:none;margin:0;padding:0}
.woocommerce-MyAccount-navigation li a{display:block;padding:11px 14px;border-radius:8px;font-size:14.5px;font-weight:600}
.woocommerce-MyAccount-navigation li.is-active a,
.woocommerce-MyAccount-navigation li a:hover{background:var(--avm-bg)}
.woocommerce-MyAccount-navigation li.is-active a{color:var(--avm-ko)}
.woocommerce-MyAccount-content{background:#fff;border-radius:var(--avm-radius);padding:26px}
.woocommerce-MyAccount-content table{width:100%;border-collapse:collapse;font-size:14px}
.woocommerce-MyAccount-content th,.woocommerce-MyAccount-content td{
  padding:11px 10px 11px 0;border-bottom:1px solid var(--avm-lin);text-align:left;
}

/* ——— logowanie i rejestracja ———
   Formularz przychodzi z WooCommerce jako wąski blok wyśrodkowany na pustej
   stronie. Dajemy mu białą kartę, własne pola i sensowną szerokość, żeby nie
   wyglądał na wklejony z innego serwisu. */
/* Niezalogowany nie ma menu konta, a siatka `250px 1fr` z reguły wyżej zostawała:
   nagłówek „Logowanie" wpadał do wąskiej lewej kolumny, a formularz do prawej —
   wyglądało to na rozjechane. Bez menu to zwykły blok, a nagłówek ma wcięcie jak
   tytuł strony i tekst w karcie formularza (26 px, na telefonie 20 px). */
.woocommerce-account:not(.logged-in) .woocommerce{display:block}
.woocommerce-account .woocommerce > h2,
.woocommerce-form-login-toggle + .woocommerce > h2{margin:0 0 16px;padding-inline:26px;font-size:19px;font-weight:800}

.woocommerce-form-login,.woocommerce-form-register{
  background:#fff;border-radius:var(--avm-radius);padding:26px;
  max-width:460px;margin:0;
}
.woocommerce-form-login .form-row,
.woocommerce-form-register .form-row{margin:0 0 16px;padding:0}
.woocommerce-form-login label,
.woocommerce-form-register label{
  display:block;margin-bottom:6px;font-size:13.5px;font-weight:600;
}
.woocommerce-form-login .required,
.woocommerce-form-register .required{color:var(--avm-cz);text-decoration:none}
.woocommerce-form-login input[type="text"],.woocommerce-form-login input[type="password"],
.woocommerce-form-login input[type="email"],.woocommerce-form-register input{
  width:100%;height:48px;padding:0 14px;font-size:14.5px;
  border:1px solid var(--avm-lin);border-radius:9px;outline:0;background:#fff;
}
.woocommerce-form-login input:focus,.woocommerce-form-register input:focus{
  border-color:var(--avm-ko);box-shadow:0 0 0 3px rgba(37,99,235,.16);
}
.woocommerce-form-login .password-input,
.woocommerce-form-register .password-input{display:block;position:relative}
.woocommerce-form-login .show-password-input,
.woocommerce-form-register .show-password-input{
  position:absolute;right:14px;top:50%;transform:translateY(-50%);cursor:pointer;color:var(--avm-mut);
}
/* Selektor z nazwą elementu i !important — paleta wchodzi w button[type=submit]. */
.woocommerce-form-login button.button,
.woocommerce-form-register button.button{
  width:100%;height:50px;padding:0 24px;border:0 !important;cursor:pointer;
  border-radius:9px !important;margin-top:4px;
  background:var(--avm-ko) !important;color:#fff !important;
  font-size:15.5px !important;font-weight:700 !important;
}
.woocommerce-form-login button.button:hover,
.woocommerce-form-register button.button:hover{background:var(--avm-ko-d) !important}
.woocommerce-form-login .woocommerce-form-login__rememberme{
  display:flex;align-items:center;gap:9px;margin:0 0 16px;font-size:13.5px;color:var(--avm-mut);
}
.woocommerce-form-login .woocommerce-form-login__rememberme input{width:auto;height:auto}
.woocommerce-LostPassword{margin:14px 0 0;font-size:13.5px}
.woocommerce-LostPassword a{color:var(--avm-ko);font-weight:600}

@media (max-width:1100px){
  .avm-koszyk__uklad,.avm-zam__uklad{grid-template-columns:1fr}
  .avm-koszyk__bok > .cart-collaterals,.avm-zam__bok .avm-zam__karta{position:static}
  .woocommerce-account .woocommerce{grid-template-columns:1fr}
}
@media (max-width:640px){
  .avm-sklep__h1{padding-inline:20px}
  .woocommerce-account .woocommerce > h2{padding-inline:20px}
  .woocommerce-form-login,.woocommerce-form-register{padding:20px}

  /* Trzecia kolumna `auto`, nie 28 px: w drugim wierszu stoi w niej kwota pozycji,
     która przy stałych 28 px wychodziła poza ekran. */
  .avm-poz{
    grid-template-columns:64px minmax(0,1fr) auto;
    grid-template-areas:"im opis usun" "im ile suma";
    gap:10px 12px;
  }
  .avm-poz__im{grid-area:im;align-self:start}
  .avm-poz__opis{grid-area:opis}
  .avm-poz__ile{grid-area:ile}
  .avm-poz__suma{grid-area:suma;text-align:right}
  .avm-poz__usun{grid-area:usun;justify-self:end;align-self:start}
  .avm-koszyk__lista{padding:4px 18px 18px}
  .avm-koszyk__bok > .cart-collaterals{padding:20px}
  .avm-kupon{flex-basis:100%}
  .avm-koszyk button.avm-koszyk__odswiez{width:100%}

  /* Pasek etapów w jednym wierszu: podpis tylko przy bieżącym kroku. Z podpisem
     „Koszyk" przy zrobionym kroku trzeci numer spadał do osobnej linii. */
  .avm-kroki{flex-wrap:nowrap;gap:8px;padding:12px 16px}
  .avm-kroki__krok{gap:8px;white-space:nowrap}
  .avm-kroki__krok + .avm-kroki__krok{padding-left:0}
  .avm-kroki__krok + .avm-kroki__krok::before{width:18px;margin-right:0}
  .avm-kroki__krok:not(.avm-kroki__krok--biezacy) .avm-kroki__et{display:none}

  .avm-zam__karta{padding:20px}

  /* Podsumowania: kwota łączna w 21 px łamała się razem z etykietą na trzy linie. */
  .cart_totals .order-total td,.woocommerce-checkout-review-order-table .order-total td{font-size:19px}
}
