/**
 * DENESIS - redesign checkoutu (koszyk / zamówienie)
 * Ładowany tylko na: checkout, order-confirmation, identity, cart, my-account,
 * authentication / registration i podstronach konta (stylesheets.tpl).
 * Zasada: tylko wygląd. Nie zmieniamy klas / id / data-* używanych przez
 * core.js PrestaShop, tpay, furgonetka (paczkomaty), eicaptcha, denesis/js/custom.js.
 */

body#checkout,
body#order-confirmation,
body#identity,
body#cart,
body#my-account,
body#authentication,
body#registration,
body#addresses,
body#address,
body#history,
body#order-detail,
body#discount,
body#order-slip,
body#order-follow,
body#module-psgdpr-gdpr,
body#password,
body#module-tpay-ordererror,
body#contact,
body#stores {
  --ck-accent: #f75533;
  --ck-accent-hover: #e2431f;
  --ck-accent-soft: #fff4f0;
  --ck-accent-ring: rgba(247, 85, 51, .18);
  --ck-text: #1f2328;
  --ck-muted: #6b7280;
  --ck-border: #e3e6ea;
  --ck-border-strong: #cfd4da;
  --ck-bg: #f5f6f8;
  --ck-card: #fff;
  --ck-success: #16a34a;
  --ck-radius: 12px;
  --ck-radius-sm: 8px;
  --ck-shadow: 0 1px 2px rgba(16, 24, 40, .04), 0 1px 3px rgba(16, 24, 40, .06);
}

/* ------------------------------------------------------------------
 * Layout
 * ---------------------------------------------------------------- */

body#checkout #wrapper,
body#order-confirmation #wrapper {
  background: var(--ck-bg);
  padding-top: 32px;
  padding-bottom: 48px;
}

body#checkout #wrapper > .container,
body#order-confirmation #wrapper > .container {
  max-width: 1200px;
  overflow: visible;      /* custom.css: overflow hidden blokował sticky */
  display: flow-root;
}

body#checkout #content > .row {
  display: flex;
  flex-wrap: wrap;
  align-items: flex-start;
}

@media (min-width: 768px) {
  body#checkout #content > .row > .col-md-4 {
    position: sticky;
    top: 96px;              /* pod przyklejonym nagłówkiem motywu (~78px) */
  }
}

body#checkout,
body#checkout #content {
  color: var(--ck-text);
}

/* ------------------------------------------------------------------
 * Pasek postępu (checkout-process.tpl): Koszyk ✓ - 1 - 2 - 3 - 4
 * Stan elementu bierzemy z klas sekcji kroków (:has), stąd zmienne:
 * reguły stanów ustawiają tylko --ck-dot*, --ck-line i --ck-label.
 * ---------------------------------------------------------------- */

body#checkout .ck-progress {
  display: flex;
  align-items: center;
  margin: 0 0 16px;
  padding: 0 4px;
  list-style: none;
  container-type: inline-size;
  counter-reset: ck-step;
}

body#checkout .ck-progress li {
  display: flex;
  flex: 1 1 auto;
  align-items: center;
  gap: 8px;
  min-width: 0;
  color: var(--ck-muted);
  font-size: 14px;
  font-weight: 600;
  white-space: nowrap;
  counter-increment: ck-step;
}

body#checkout .ck-progress li:last-child {
  flex: 0 0 auto;
}

body#checkout .ck-progress .ck-progress-cart {
  counter-increment: none;
}

/* kółko: numer kroku albo ✓ */
body#checkout .ck-progress li::before {
  content: var(--ck-dot, counter(ck-step));
  display: inline-flex;
  flex: 0 0 26px;
  align-items: center;
  justify-content: center;
  width: 26px;
  height: 26px;
  border-radius: 50%;
  background: var(--ck-dot-bg, #eef0f3);
  color: var(--ck-dot-fg, var(--ck-muted));
  font-family: var(--ck-dot-font, inherit);
  font-size: 13px;
  font-weight: 700;
}

/* kreska do następnego kroku */
body#checkout .ck-progress li:not(:last-child)::after {
  content: "";
  flex: 1 1 auto;
  min-width: 12px;
  height: 2px;
  margin-right: 8px;
  border-radius: 1px;
  background: var(--ck-line, var(--ck-border));
}

body#checkout .ck-progress li > * {
  overflow: hidden;
  text-overflow: ellipsis;
}

body#checkout .ck-progress-cart a {
  color: inherit;
  text-decoration: none;
}

body#checkout .ck-progress-cart a:hover {
  color: var(--ck-accent);
}

/* ukończone (jak w nagłówkach kroków: -complete bez -current) */
body#checkout .ck-progress .ck-progress-cart,
body#checkout:has(#checkout-personal-information-step.-complete:not(.-current)) .ck-progress [data-step="checkout-personal-information-step"],
body#checkout:has(#checkout-addresses-step.-complete:not(.-current)) .ck-progress [data-step="checkout-addresses-step"],
body#checkout:has(#checkout-delivery-step.-complete:not(.-current)) .ck-progress [data-step="checkout-delivery-step"],
body#checkout:has(#checkout-payment-step.-complete:not(.-current)) .ck-progress [data-step="checkout-payment-step"] {
  --ck-dot: "\f00c";
  --ck-dot-font: "Font Awesome 5 Pro";
  --ck-dot-bg: #e8f6ee;
  --ck-dot-fg: var(--ck-success);
  --ck-line: #a7dcbb;
  color: var(--ck-text);
}

/* bieżący */
body#checkout:has(#checkout-personal-information-step.-current) .ck-progress [data-step="checkout-personal-information-step"],
body#checkout:has(#checkout-addresses-step.-current) .ck-progress [data-step="checkout-addresses-step"],
body#checkout:has(#checkout-delivery-step.-current) .ck-progress [data-step="checkout-delivery-step"],
body#checkout:has(#checkout-payment-step.-current) .ck-progress [data-step="checkout-payment-step"] {
  --ck-dot-bg: var(--ck-accent);
  --ck-dot-fg: #fff;
  --ck-label: block;
  color: var(--ck-text);
}

/* za wąsko na wszystkie nazwy: same kółka, nazwa tylko przy bieżącym kroku */
@container (max-width: 640px) {
  body#checkout .ck-progress li {
    gap: 6px;
  }
  body#checkout .ck-progress li:not(:last-child)::after {
    min-width: 8px;
    margin-right: 6px;
  }
  body#checkout .ck-progress li > * {
    display: var(--ck-label, none);
  }
}

/* ------------------------------------------------------------------
 * Telefon: zwijane podsumowanie z kwotą nad krokami (checkout-process.tpl)
 * ---------------------------------------------------------------- */

body#checkout .ck-mobile-summary {
  display: none;
}

@media (max-width: 767px) {
  body#checkout .ck-mobile-summary {
    display: block;
    margin: 0 0 12px;
    border: 1px solid var(--ck-border);
    border-radius: var(--ck-radius);
    background: #fff;
    box-shadow: var(--ck-shadow);
  }

  body#checkout .ck-mobile-summary summary {
    display: flex;
    align-items: center;
    gap: 8px;
    padding: 14px 16px;
    color: var(--ck-accent);
    font-size: 14px;
    font-weight: 600;
    list-style: none;
    cursor: pointer;
  }

  body#checkout .ck-mobile-summary summary::-webkit-details-marker {
    display: none;
  }

  /* strzałka za tekstem, obrót po rozwinięciu */
  body#checkout .ck-mobile-summary .ck-ms-toggle::after {
    content: "";
    display: inline-block;
    width: 7px;
    height: 7px;
    margin: 0 0 3px 8px;
    border: solid currentColor;
    border-width: 0 2px 2px 0;
    transform: rotate(45deg);
    transition: transform .15s ease;
  }

  body#checkout .ck-mobile-summary[open] .ck-ms-toggle::after {
    margin-bottom: -2px;
    transform: rotate(-135deg);
  }

  body#checkout .ck-mobile-summary .ck-ms-total {
    margin-left: auto;
    color: var(--ck-text);
    font-size: 17px;
    font-weight: 700;
    white-space: nowrap;
  }

  body#checkout .ck-mobile-summary .ck-ms-body {
    padding: 4px 16px 14px;
    border-top: 1px solid var(--ck-border);
  }

  body#checkout .ck-mobile-summary .media-list {
    margin: 14px 0 0;
    padding: 0;
  }

  body#checkout .ck-mobile-summary .ck-ms-sum {
    display: flex;
    justify-content: space-between;
    gap: 12px;
    padding-top: 12px;
    border-top: 1px solid var(--ck-border);
    color: var(--ck-text);
    font-size: 15px;
    font-weight: 700;
  }

  body#checkout .ck-mobile-summary .ck-ms-more {
    display: inline-block;
    margin-top: 10px;
    color: var(--ck-accent);
    font-size: 13px;
    font-weight: 600;
  }
}

/* ------------------------------------------------------------------
 * Kroki (karty)
 * ---------------------------------------------------------------- */

body#checkout section.checkout-step {
  background: var(--ck-card);
  border: 1px solid var(--ck-border);
  border-radius: var(--ck-radius);
  box-shadow: var(--ck-shadow);
  padding: 0;
  margin-bottom: 12px;
}

body#checkout section.checkout-step .step-title {
  display: flex;
  align-items: center;
  gap: 12px;
  margin: 0;
  padding: 18px 24px;
  font-size: 17px;
  font-weight: 700;
  color: var(--ck-text);
  text-transform: none;
}

body#checkout section.checkout-step .step-number {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  flex: 0 0 28px;
  width: 28px;
  height: 28px;
  margin: 0;
  border-radius: 50%;
  background: #eef0f3;
  color: var(--ck-muted);
  font-size: 14px;
  font-weight: 700;
}

body#checkout section.checkout-step.-current .step-number {
  background: var(--ck-accent);
  color: #fff;
}

body#checkout section.checkout-step .step-title .done {
  display: none;
  align-items: center;
  justify-content: center;
  flex: 0 0 28px;
  width: 28px;
  height: 28px;
  margin: 0;
  padding: 0;
  border-radius: 50%;
  background: #e8f6ee;
  color: var(--ck-success);
  font-size: 18px;
}

body#checkout section.checkout-step.-complete:not(.-current) .step-title .done {
  display: inline-flex;
}

body#checkout section.checkout-step.-complete:not(.-current) .step-number {
  display: none;
}

/* theme nadpisywał display/padding numeru kroku */
body#checkout section.checkout-step .step-title .step-number {
  display: inline-flex !important;
  padding: 0 !important;
  line-height: 1;
}

body#checkout section.checkout-step.-complete:not(.-current) .step-title .step-number {
  display: none !important;
}

/* "edytuj" w nagłówku ukończonego kroku: pigułka jak Edytuj przy adresach */
body#checkout section.checkout-step .step-edit {
  align-items: center;
  gap: 4px;
  margin-left: auto;
  padding: 5px 10px;
  border-radius: var(--ck-radius-sm);
  background: var(--ck-accent-soft);
  color: var(--ck-accent) !important;
  font-size: 13px;
  font-weight: 600;
  line-height: 20px;
  text-transform: capitalize;
  transition: background-color .15s ease, color .15s ease;
}

/* widoczna jak w motywie: tylko w ukończonym kroku, który nie jest bieżący */
body#checkout section.checkout-step.-reachable.-complete:not(.-current) .step-edit {
  display: inline-flex;
  margin: 0 0 0 auto;     /* theme (telefon): margin-left 1.25rem przy tytule */
}

body#checkout section.checkout-step .step-title:hover .step-edit {
  background: #ffe4da;
  color: var(--ck-accent-hover) !important;
}

body#checkout section.checkout-step .step-edit .material-icons {
  font-size: 15px;
}

body#checkout section.checkout-step.-complete:not(.-current) {
  cursor: pointer;
}

body#checkout section.checkout-step:not(.-reachable) .step-title,
body#checkout section.checkout-step.-unreachable .step-title {
  color: #9aa1a9;
}

body#checkout section.checkout-step.-current {
  border-color: var(--ck-border-strong);
  box-shadow: 0 4px 16px rgba(16, 24, 40, .08);
}

body#checkout section.checkout-step.-current .step-title {
  padding-bottom: 6px;
}

body#checkout section.checkout-step .content {
  padding: 8px 24px 24px 64px;
}

@media (max-width: 767px) {
  body#checkout section.checkout-step .step-title {
    padding: 16px;
  }
  body#checkout section.checkout-step .content {
    padding: 4px 16px 20px;
  }
}

body#checkout section.checkout-step p,
body#checkout section.checkout-step label {
  color: var(--ck-text);
}

/* ------------------------------------------------------------------
 * Przyciski
 * ---------------------------------------------------------------- */

/* "Zapisz" - formularz adresu po zmianie kraju (AJAX) zamiast "Kontynuuj" */
body#checkout section.checkout-step button.continue,
:is(body#checkout section.checkout-step, body#address .page-content) .js-address-form .form-footer > .btn-primary,
body#checkout #payment-confirmation .btn {
  display: block;
  width: 100%;
  float: none !important;
  min-height: 52px;
  margin: 24px 0 0;
  padding: 14px 24px;
  border: 0;
  border-radius: 10px;
  background: var(--ck-accent);
  color: #fff;
  font-size: 16px;
  font-weight: 600;
  letter-spacing: .01em;
  text-transform: none;
  box-shadow: 0 1px 2px rgba(16, 24, 40, .08);
  animation: none;          /* .blink-me */
  transition: background-color .15s ease, box-shadow .15s ease;
}

body#checkout section.checkout-step button.continue:hover,
body#checkout section.checkout-step button.continue:focus,
:is(body#checkout section.checkout-step, body#address .page-content) .js-address-form .form-footer > .btn-primary:hover,
:is(body#checkout section.checkout-step, body#address .page-content) .js-address-form .form-footer > .btn-primary:focus,
body#checkout #payment-confirmation .btn:not(:disabled):hover {
  background: var(--ck-accent-hover);
  color: #fff;
}

body#checkout section.checkout-step button.continue:focus-visible,
:is(body#checkout section.checkout-step, body#address .page-content) .js-address-form .form-footer > .btn-primary:focus-visible,
body#checkout #payment-confirmation .btn:focus-visible {
  outline: none;
  box-shadow: 0 0 0 4px var(--ck-accent-ring);
}

body#checkout .btn:disabled,
body#checkout .btn.disabled {
  opacity: 1;
  background: #e7e9ec;
  color: #8a9199;
  box-shadow: none;
}

body#checkout .btn:disabled::before {
  content: none;            /* custom.css: '[ ! ] ' */
}

body#checkout section.checkout-step .form-footer {
  padding: 0;
  text-align: left;
}

/* Link-przycisk "Załóż konto w 20 sekund" */
body#checkout #passina.btn-primary {
  display: inline-flex;
  align-items: center;
  gap: 6px;
  width: auto;
  min-height: 0;
  margin: 10px 0 0;
  padding: 8px 14px;
  font-size: 14px;
  background: #fff;
  color: var(--ck-text);
  border: 1px solid var(--ck-border-strong);
  box-shadow: none;
}

body#checkout #passina.btn-primary:hover {
  border-color: var(--ck-text);
  background: #fff;
  color: var(--ck-text);
}

/* ------------------------------------------------------------------
 * Formularze: etykieta nad polem, pole na pełną szerokość
 * ---------------------------------------------------------------- */

:is(body#checkout section.checkout-step, body#address .page-content) .form-group.row {
  display: flex;
  flex-direction: column;
  margin: 0 0 16px;
}

:is(body#checkout section.checkout-step, body#address .page-content) .form-group.row > [class*="col-md-"] {
  width: 100%;
  max-width: 100%;
  flex: 0 0 auto;
  float: none;
  padding: 0;
}

:is(body#checkout section.checkout-step, body#address .page-content) .form-control-label {
  padding: 0 0 6px;
  text-align: left;
  font-size: 14px;
  font-weight: 600;
  color: var(--ck-text);
}

:is(body#checkout section.checkout-step, body#address .page-content) .form-control-label:empty {
  display: none;
}

:is(body#checkout section.checkout-step, body#address .page-content) .form-control-comment {
  padding-top: 4px !important;
  font-size: 13px;
  color: var(--ck-muted);
}

:is(body#checkout section.checkout-step, body#address .page-content) .form-control-comment:empty {
  display: none;
}

:is(body#checkout section.checkout-step, body#address .page-content, body#contact .contact-form) .form-control,
:is(body#checkout section.checkout-step, body#address .page-content, body#contact .contact-form) select.form-control,
body#checkout #delivery textarea {
  height: 48px;
  padding: 10px 14px;
  border: 1px solid var(--ck-border-strong);
  border-radius: var(--ck-radius-sm);
  background: #fff;
  color: var(--ck-text);
  font-size: 15px;
  box-shadow: none;
  transition: border-color .15s ease, box-shadow .15s ease;
}

body#checkout #delivery textarea {
  height: auto;
  min-height: 80px;
  width: 100%;
}

:is(body#checkout section.checkout-step, body#address .page-content, body#contact .contact-form) .form-control:focus,
body#checkout #delivery textarea:focus {
  outline: none;
  border-color: var(--ck-accent);
  box-shadow: 0 0 0 4px var(--ck-accent-ring);
}

/* lista rozwijana (Kraj): strzałka, bez niej wyglądała jak zwykłe pole */
:is(body#checkout section.checkout-step, body#address .page-content, body#contact .contact-form) select.form-control {
  padding-right: 40px;
  background: #fff url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='12' height='8' viewBox='0 0 12 8'%3E%3Cpath d='M1 1.5l5 5 5-5' fill='none' stroke='%236b7280' stroke-width='1.8' stroke-linecap='round' stroke-linejoin='round'/%3E%3C/svg%3E") no-repeat right 16px center / 12px 8px;
  appearance: none;
  cursor: pointer;
}

/* Błąd pola (_partials/form-errors.tpl): czerwona ramka + krótki tekst pod polem
 * zamiast migającego czerwonego bloku motywu (.alert-danger.blink-me) */
:is(body#checkout section.checkout-step, body#address .page-content) .has-error .form-control {
  border-color: #dc2626;
}

:is(body#checkout section.checkout-step, body#address .page-content) .has-error .form-control:focus {
  border-color: #dc2626;
  box-shadow: 0 0 0 4px rgba(220, 38, 38, .15);
}

:is(body#checkout section.checkout-step, body#address .page-content) .help-block {
  margin: 6px 0 0;
}

:is(body#checkout section.checkout-step, body#address .page-content) .help-block ul {
  margin: 0;
  padding: 0;
  list-style: none;
}

:is(body#checkout section.checkout-step, body#address .page-content) .help-block .alert-danger {
  display: flex;
  gap: 6px;
  margin: 0;
  padding: 0;
  border: 0;
  border-radius: 0;
  background: none;
  color: #b91c1c;
  font-size: 13px;
  font-weight: 500;
  line-height: 1.45;
  animation: none;
}

:is(body#checkout section.checkout-step, body#address .page-content) .help-block .alert-danger::before {
  content: "\f06a";
  flex: none;
  font-family: "Font Awesome 5 Pro";
  font-weight: 400;
}

/* Hasło: przycisk "Pokaż" jako element pola */
:is(body#checkout section.checkout-step, body#address .page-content) .input-group {
  display: flex;
  width: 100%;
}

:is(body#checkout section.checkout-step, body#address .page-content) .input-group .form-control {
  flex: 1 1 auto;
  width: 1%;
  min-width: 0;
  border-right: 0;
  border-radius: var(--ck-radius-sm) 0 0 var(--ck-radius-sm);
}

:is(body#checkout section.checkout-step, body#address .page-content) .input-group-btn {
  display: flex;
  width: auto;
}

:is(body#checkout section.checkout-step, body#address .page-content) .input-group-btn .btn {
  height: 48px;
  padding: 0 16px;
  border: 1px solid var(--ck-border-strong);
  border-left: 0;
  border-radius: 0 var(--ck-radius-sm) var(--ck-radius-sm) 0;
  background: #fff;
  color: var(--ck-muted);
  font-size: 13px;
  font-weight: 600;
  text-transform: none;
}

:is(body#checkout section.checkout-step, body#address .page-content) .input-group:focus-within .form-control,
:is(body#checkout section.checkout-step, body#address .page-content) .input-group:focus-within .input-group-btn .btn {
  border-color: var(--ck-accent);
}

/* Imię + Nazwisko obok siebie (formularz klienta) */
@media (min-width: 768px) {
  body#checkout #customer-form > section {
    display: grid;
    grid-template-columns: 1fr 1fr;
    column-gap: 16px;
  }
  body#checkout #customer-form > section > * {
    grid-column: 1 / -1;
  }
  body#checkout #customer-form > section > .form-group:has(input[name="firstname"]) {
    grid-column: 1;
  }
  body#checkout #customer-form > section > .form-group:has(input[name="lastname"]) {
    grid-column: 2;
  }
}

/* Radio / checkbox */
body#checkout .custom-radio {
  width: 20px;
  height: 20px;
  border: 2px solid var(--ck-border-strong);
  background: #fff;
  vertical-align: middle;
}

body#checkout .custom-radio input[type="radio"]:checked + span {
  background-color: var(--ck-accent);
}

body#checkout .custom-radio:has(input:checked) {
  border-color: var(--ck-accent);
}

body#checkout .custom-checkbox input[type="checkbox"] + span {
  width: 20px;
  height: 20px;
  border: 2px solid var(--ck-border-strong);
  border-radius: 5px;
  background: #fff;
}

body#checkout .custom-checkbox input[type="checkbox"]:checked + span {
  border-color: var(--ck-accent);
  background: var(--ck-accent);
  color: #fff;
}

body#checkout .custom-checkbox input[type="checkbox"]:checked + span .checkbox-checked {
  color: #fff;
  font-size: 16px;
  margin: 0;
}

body#checkout .custom-checkbox label {
  font-size: 14px;
  line-height: 1.5;
}

body#checkout .custom-checkbox em {
  display: block;
  margin-top: 2px;
  font-style: normal;
  font-size: 13px;
  color: var(--ck-muted);
}

body#checkout .radio-inline {
  margin-right: 20px;
  font-size: 15px;
}

/* pusta etykieta przed checkboxem (newsletter / RODO) */
:is(body#checkout section.checkout-step, body#address .page-content) .form-group.row:has(.custom-checkbox) > .form-control-label {
  display: none;
}

/* ------------------------------------------------------------------
 * Krok 1: "Czy masz już konto?" - 2 karty wyboru (personal-information.tpl);
 * linki to nadal zakładki Bootstrapa, stan z .nav-link.active
 * ---------------------------------------------------------------- */

body#checkout section.checkout-step .ck-account-question {
  margin: 8px 0 10px;
  color: var(--ck-text);
  font-size: 17px;
  font-weight: 700;
}

body#checkout section.checkout-step .nav-inline.ck-account-choice {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 12px;
  margin: 0 0 24px !important;
  padding: 0;
  background: none;
}

body#checkout section.checkout-step .ck-account-choice .nav-item {
  margin: 0;
}

body#checkout section.checkout-step .ck-account-choice .nav-item .nav-link {
  display: flex;
  align-items: flex-start;
  gap: 12px;
  height: 100%;
  margin: 0 !important;
  padding: 16px;
  border: 1.5px solid var(--ck-border-strong);
  border-radius: var(--ck-radius);
  background: #fff;
  color: var(--ck-text);
  text-align: left;
  box-shadow: none;
  cursor: pointer;
  transition: border-color .15s ease, background-color .15s ease;
}

body#checkout section.checkout-step .ck-account-choice .nav-item .nav-link:hover {
  border-color: var(--ck-text);
}

body#checkout section.checkout-step .ck-account-choice .nav-item .nav-link.active {
  border-color: var(--ck-accent);
  background: var(--ck-accent-soft);
  box-shadow: 0 0 0 3px var(--ck-accent-ring);
}

/* kółko wyboru jak przy przewoźnikach / płatnościach */
body#checkout section.checkout-step .ck-choice-radio {
  flex: 0 0 22px;
  width: 22px;
  height: 22px;
  margin-top: 1px;
  border: 2px solid var(--ck-border-strong);
  border-radius: 50%;
  background: #fff;
}

body#checkout section.checkout-step .nav-link.active .ck-choice-radio {
  border-color: var(--ck-accent);
  background: radial-gradient(circle, var(--ck-accent) 0 5px, #fff 6px);
}

body#checkout section.checkout-step .ck-choice-body {
  display: flex;
  flex-direction: column;
  gap: 4px;
  min-width: 0;
}

body#checkout section.checkout-step .ck-account-choice .ck-choice-title {
  color: var(--ck-text);
  font-size: 16px !important;
  font-weight: 700;
  line-height: 1.3;
}

body#checkout section.checkout-step .ck-account-choice .ck-choice-text {
  color: #4b5563;
  font-size: 14px !important;
  font-weight: 400;
  line-height: 1.45;
}

/* ikona po prawej (jak logo przewoźnika), na zaznaczonej karcie w kolorze akcentu */
body#checkout section.checkout-step .ck-choice-icon {
  display: inline-flex;
  flex: 0 0 40px;
  align-items: center;
  justify-content: center;
  width: 40px;
  height: 40px;
  margin-left: auto;
  border-radius: 50%;
  background: #f3f4f6;
  color: var(--ck-muted);
  font-size: 18px;
  transition: background-color .15s ease, color .15s ease;
}

body#checkout section.checkout-step .nav-link.active .ck-choice-icon {
  background: #fff;
  color: var(--ck-accent);
}

@media (max-width: 575px) {
  body#checkout section.checkout-step .nav-inline.ck-account-choice {
    grid-template-columns: 1fr;
    gap: 10px;
  }
}

body#checkout section.checkout-step .tab-content {
  border-top: 0 !important;
  padding: 0 !important;
}

body#checkout section.checkout-step .tab-content form > section {
  padding-top: 0;
}

/* formularz pod kartami wyboru konta: odstęp daje margin kart
 * (theme: #customer-form margin-top 25px, margin-left 5px - pola nie w linii z kartami) */
body#checkout section.checkout-step .ck-account-choice + .tab-content :is(#customer-form, #login-form) {
  margin-top: 0;
  margin-left: 0;
}

/* "Przypomnij hasło" jako zwykły link */
body#checkout section.checkout-step .forgot-password {
  position: static;
  margin: -6px 0 0;
  text-align: right;
}

body#checkout section.checkout-step .forgot-password a {
  padding: 0;
  background: none;
  border-radius: 0;
  color: var(--ck-accent);
  font-size: 14px;
  font-weight: 600;
}

/* Opcjonalne konto */
body#checkout .opcjonalnie-konto {
  margin: 4px 0 20px;
  padding: 14px 16px;
  border: 1px dashed var(--ck-border-strong);
  border-left: 1px dashed var(--ck-border-strong);
  border-radius: 10px;
  background: #fafbfc;
  font-size: 14px;
}

body#checkout .opcjonalnie-konto p {
  margin: 0;
}

body#checkout .opcjonalnie-konto #pass-give p {
  margin: 12px 0;
}

body#checkout .identity a,
body#checkout section.checkout-step .content p a {
  color: var(--ck-accent);
}


/* ------------------------------------------------------------------
 * Krok 1: zalogowany klient
 * ---------------------------------------------------------------- */

body#checkout .ck-account {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  gap: 14px;
  padding: 16px;
  border: 1px solid var(--ck-border);
  border-radius: var(--ck-radius);
  background: #fafbfc;
}

body#checkout .ck-account-avatar {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  flex: 0 0 44px;
  width: 44px;
  height: 44px;
  border-radius: 50%;
  background: var(--ck-accent-soft);
  color: var(--ck-accent);
  font-size: 16px;
  font-weight: 700;
}

body#checkout .ck-account-info {
  flex: 1 1 200px;
  min-width: 0;
}

body#checkout .ck-account .identity {
  display: flex;
  flex-direction: column;
  margin: 0;
  line-height: 1.4;
}

body#checkout .ck-account-label {
  font-size: 12px;
  color: var(--ck-muted);
}

body#checkout section.checkout-step .content .ck-account-name {
  color: var(--ck-text);
  font-size: 16px;
  font-weight: 700;
}

body#checkout .ck-account-email {
  overflow: hidden;
  text-overflow: ellipsis;
  font-size: 14px;
  color: var(--ck-muted);
}

/* Edytuj dane / Wyloguj się: pigułki jak Edytuj / Usuń przy adresach */
body#checkout .ck-account-actions {
  display: flex;
  gap: 6px;
  font-size: 13px;
  font-weight: 600;
}

body#checkout .ck-account-actions a {
  display: inline-flex;
  align-items: center;
  gap: 4px;
  padding: 5px 10px;
  border-radius: var(--ck-radius-sm);
  color: var(--ck-muted);
  text-decoration: none;
  transition: background-color .15s ease, color .15s ease;
}

body#checkout .ck-account-actions .ck-account-edit {
  background: var(--ck-accent-soft);
  color: var(--ck-accent);
}

body#checkout .ck-account-actions .ck-account-edit:hover {
  background: #ffe4da;
  color: var(--ck-accent-hover);
}

/* wylogowanie opróżnia koszyk - stonowane, czerwone dopiero po najechaniu */
body#checkout .ck-account-actions .ck-account-logout:hover {
  background: #fef2f2;
  color: #b91c1c;
}

body#checkout .ck-account-actions .material-icons {
  font-size: 15px;
}

body#checkout .ck-account-note {
  margin: 10px 0 0;
  color: var(--ck-muted);
}

@media (max-width: 575px) {
  body#checkout .ck-account-actions {
    flex: 1 1 100%;
    padding-left: 58px;
  }
}

/* ------------------------------------------------------------------
 * Krok 2: adresy
 * ---------------------------------------------------------------- */

body#checkout .js-address-form > form > p:first-child {
  margin-bottom: 16px;
  color: var(--ck-muted);
  font-size: 14px;
}

body#checkout .address-selector {
  display: grid;
  grid-template-columns: repeat(auto-fill, minmax(240px, 1fr));
  gap: 12px;
  margin: 0;
}

body#checkout .address-selector > p {
  grid-column: 1 / -1;
  margin: 0;
}

body#checkout section.checkout-step .address-item {
  display: flex;
  flex-direction: column;
  width: auto;
  max-width: none;
  float: none;
  margin: 0;
  border: 1.5px solid var(--ck-border);
  border-radius: var(--ck-radius);
  background: #fff;
  transition: border-color .15s ease, background-color .15s ease;
}

body#checkout section.checkout-step .address-item:hover {
  border-color: var(--ck-border-strong);
}

/* telefon: flex motywu (1 0 49%) zostawiał ostatni kafelek węższy */
@media (max-width: 575px) {
  body#checkout section.checkout-step .address-item {
    flex-basis: 100%;
  }
}

body#checkout section.checkout-step .address-item.selected,
body#checkout section.checkout-step .address-item:has(input:checked) {
  border-color: var(--ck-accent);
  background: var(--ck-accent-soft);
  box-shadow: 0 0 0 3px var(--ck-accent-ring);
}

body#checkout section.checkout-step .address-item header {
  flex: 1 1 auto;
  margin: 0;
  padding: 16px 16px 8px;
}

body#checkout section.checkout-step .address-item .radio-block {
  display: block;
  margin: 0;
  padding: 0;
  cursor: pointer;
}

body#checkout section.checkout-step .address-alias {
  display: inline-block;
  margin: 0 0 0 6px;
  font-size: 15px;
  font-weight: 700;
  color: var(--ck-text);
  vertical-align: middle;
}

body#checkout section.checkout-step .address-item .address {
  margin: 8px 0 0 32px;
  font-size: 14px;
  line-height: 1.55;
  color: #4b5563;
}

body#checkout section.checkout-step .address-item hr {
  display: none;
}

/* dane firmy (address-selector-block.tpl): nazwa pogrubiona z ikoną budynku, NIP w chipie */
body#checkout section.checkout-step .address-item .address-company {
  color: var(--ck-text);
  font-weight: 600;
}

body#checkout section.checkout-step .address-item .address-company::before {
  content: "\f1ad";
  margin-right: 6px;
  color: var(--ck-muted);
  font-family: "Font Awesome 5 Pro";
  font-weight: 400;
}

body#checkout section.checkout-step .address-item .address-vat {
  display: inline-block;
  margin: 2px 0;
  padding: 0 8px;
  border-radius: 6px;
  background: #f3f4f6;
  color: var(--ck-text);
  font-size: 13px;
  font-weight: 600;
  line-height: 22px;
  font-variant-numeric: tabular-nums;
}

/* na zaznaczonej karcie (tło accent-soft) chip odcina się bielą */
body#checkout section.checkout-step .address-item:has(input:checked) .address-vat {
  background: #fff;
}

/* Edytuj / Usuń: pigułki, ikony w linii z tekstem adresu (48px - 10px paddingu) */
body#checkout section.checkout-step .address-footer {
  display: flex;
  gap: 6px;
  padding: 6px 16px 14px 38px;
  border: 0;
  text-align: left;
}

body#checkout section.checkout-step .address-footer a {
  display: inline-flex;
  align-items: center;
  gap: 4px;
  padding: 5px 10px;
  border-radius: var(--ck-radius-sm);
  font-size: 13px;
  font-weight: 600;
  text-decoration: none;
  transition: background-color .15s ease, color .15s ease;
}

body#checkout section.checkout-step .address-footer .edit-address {
  background: var(--ck-accent-soft);
  color: var(--ck-accent) !important;
}

/* na zaznaczonej karcie (tło accent-soft) pigułka musi odcinać się bielą */
body#checkout section.checkout-step .address-item:has(input:checked) .edit-address {
  background: #fff;
}

body#checkout section.checkout-step .address-footer .edit-address:hover {
  background: #ffe4da;
  color: var(--ck-accent-hover) !important;
}

/* usuwanie - akcja destrukcyjna: stonowana, czerwona dopiero po najechaniu */
body#checkout section.checkout-step .address-footer .delete-address {
  color: var(--ck-muted) !important;
}

body#checkout section.checkout-step .address-footer .delete-address:hover {
  background: #fef2f2;
  color: #b91c1c !important;
}

body#checkout section.checkout-step .address-footer .material-icons {
  margin: 0;
  font-size: 15px;
}

body#checkout section.checkout-step .add-address {
  margin: 12px 0 0;
}

body#checkout section.checkout-step .add-address a {
  display: inline-flex;
  align-items: center;
  gap: 6px;
  padding: 10px 16px;
  border: 1.5px dashed var(--ck-border-strong);
  border-radius: 10px;
  color: var(--ck-text);
  font-size: 14px;
  font-weight: 600;
}

body#checkout section.checkout-step .add-address a:hover {
  border-color: var(--ck-accent);
  color: var(--ck-accent);
}

body#checkout section.checkout-step .add-address .material-icons {
  font-size: 18px;
}

body#checkout a[data-link-action="different-invoice-address"] {
  display: inline-block;
  margin-top: 8px;
  color: var(--ck-text) !important;
  font-size: 14px;
  text-decoration: underline;
  text-decoration-color: var(--ck-border-strong);
  text-underline-offset: 3px;
}

body#checkout section.checkout-step .js-address-form h2.h4 {
  margin: 8px 0 12px;
  font-size: 15px;
  font-weight: 700;
}

/* Formularz adresu: pola w parach na siatce 6 kolumn.
 * Pary dobieramy po nazwie pola (kolejność pól zależy od kraju - zmiana kraju
 * przeładowuje formularz AJAX-em), pole bez pary zajmuje całą szerokość. */
:is(body#checkout section.checkout-step, body#address .page-content) .js-address-form section.form-fields {
  display: grid;
  grid-template-columns: repeat(6, minmax(0, 1fr));
  column-gap: 16px;
}

:is(body#checkout section.checkout-step, body#address .page-content) .js-address-form section.form-fields > * {
  grid-column: 1 / -1;
  min-width: 0;
}

/* etykieta + "opcjonalnie" w jednym wierszu, pole pod spodem.
 * Subgrid: pola w parze dzielą wiersz etykiet i wiersz pól, więc inputy stoją
 * w jednej linii nawet przy złamanej etykiecie albo komunikacie błędu pod polem
 * (bez subgrid: etykieta dosuwa się do dołu). */
:is(body#checkout section.checkout-step, body#address .page-content) .js-address-form .form-group.row:has(> .form-control-label) {
  display: grid;
  grid-row: span 2;
  grid-template-columns: auto 1fr;
  grid-template-rows: 1fr auto;
  grid-template-rows: subgrid;
  grid-template-areas:
    "label comment"
    "field field";
  align-items: end;
  column-gap: 8px;
}

:is(body#checkout section.checkout-step, body#address .page-content) .js-address-form .form-group.row > .col-md-6 {
  align-self: start;
}

:is(body#checkout section.checkout-step, body#address .page-content) .js-address-form .form-group.row > .form-control-label {
  grid-area: label;
}

:is(body#checkout section.checkout-step, body#address .page-content) .js-address-form .form-group.row > .col-md-6 {
  grid-area: field;
}

:is(body#checkout section.checkout-step, body#address .page-content) .js-address-form .form-group.row > .form-control-comment {
  grid-area: comment;
  padding: 0 0 6px !important;
  font-size: 12px;
  text-transform: lowercase;
  white-space: nowrap;
}

/* pary: Imię | Nazwisko i Kod | Miasto także na telefonie */
:is(body#checkout, body#address) .js-address-form .form-group:has(input[name="firstname"]):has(+ .form-group input[name="lastname"]),
:is(body#checkout, body#address) .js-address-form .form-group:has(input[name="firstname"]) + .form-group:has(input[name="lastname"]),
:is(body#checkout, body#address) .js-address-form .form-group:has(input[name="postcode"]):has(+ .form-group input[name="city"]),
:is(body#checkout, body#address) .js-address-form .form-group:has(input[name="postcode"]) + .form-group:has(input[name="city"]) {
  grid-column: span 3;
}

/* węższy kod, szersze miasto - dopiero gdy "Kod pocztowy" mieści się w jednej linii */
@media (min-width: 992px) {
  :is(body#checkout, body#address) .js-address-form .form-group:has(input[name="postcode"]):has(+ .form-group input[name="city"]) {
    grid-column: span 2;
  }
  :is(body#checkout, body#address) .js-address-form .form-group:has(input[name="postcode"]) + .form-group:has(input[name="city"]) {
    grid-column: span 4;
  }
}

@media (min-width: 576px) {
  :is(body#checkout, body#address) .js-address-form .form-group:has(input[name="company"]):has(+ .form-group input[name="vat_number"]),
  :is(body#checkout, body#address) .js-address-form .form-group:has(input[name="company"]) + .form-group:has(input[name="vat_number"]),
  :is(body#checkout, body#address) .js-address-form .form-group:has(input[name="address1"]):has(+ .form-group input[name="address2"]),
  :is(body#checkout, body#address) .js-address-form .form-group:has(input[name="address1"]) + .form-group:has(input[name="address2"]),
  :is(body#checkout, body#address) .js-address-form .form-group:has(select[name="id_country"]):has(+ .form-group input[name="phone"]),
  :is(body#checkout, body#address) .js-address-form .form-group:has(select[name="id_country"]) + .form-group:has(input[name="phone"]) {
    grid-column: span 3;
  }
}

/* Przełącznik "Osoba prywatna / Firma" (custom.js) - jak zakładki w kroku 1 */
:is(body#checkout, body#address) .js-address-form .ck-customer-type {
  display: inline-flex;
  justify-self: start;
  gap: 4px;
  margin: 0 0 18px;
  padding: 4px;
  border-radius: 10px;
  background: #eef0f3;
}

:is(body#checkout, body#address) .js-address-form .ck-customer-type button {
  padding: 8px 16px;
  border: 0;
  border-radius: 8px;
  background: transparent;
  color: var(--ck-muted);
  font-size: 14px;
  font-weight: 600;
  cursor: pointer;
  transition: background-color .15s ease, color .15s ease;
}

:is(body#checkout, body#address) .js-address-form .ck-customer-type button.is-active {
  background: #fff;
  color: var(--ck-text);
  box-shadow: 0 1px 3px rgba(16, 24, 40, .12);
}

:is(body#checkout, body#address) .js-address-form .ck-customer-type button:focus-visible {
  outline: 2px solid var(--ck-accent);
  outline-offset: 1px;
}

/* Firma i NIP schowane dla osoby prywatnej */
:is(body#checkout, body#address) .js-address-form .form-group.ck-hidden {
  display: none !important;
}

/* "Użyj tego adresu do faktury" - natywny checkbox w kolorach checkoutu */
:is(body#checkout, body#address) .js-address-form #use_same_address {
  width: 18px;
  height: 18px;
  margin: 0 8px 0 0;
  vertical-align: -4px;
  accent-color: var(--ck-accent);
  cursor: pointer;
}

:is(body#checkout, body#address) .js-address-form label[for="use_same_address"] {
  margin: 0;
  font-size: 14px;
  font-weight: 400;
  cursor: pointer;
}

/* ------------------------------------------------------------------
 * Krok 3: dostawa
 * ---------------------------------------------------------------- */

body#checkout #hook-display-before-carrier .alert-success {
  margin: 0 0 16px;
  padding: 12px 14px;
  border: 1px solid #d5ecd9;
  border-radius: 10px;
  background: #f3faf4;
  color: #2f4b35;
  font-size: 13px;
  line-height: 1.55;
}

body#checkout .delivery-options {
  display: flex;
  flex-direction: column;
  gap: 10px;
  margin-bottom: 8px;
}

body#checkout .delivery-options .clearfix {
  display: none;
}

body#checkout .delivery-option {
  display: flex;
  align-items: flex-start;
  margin: 0 !important;
  padding: 16px !important;
  border: 1.5px solid var(--ck-border);
  border-radius: var(--ck-radius);
  background: #fff !important;
  cursor: pointer;
  transition: border-color .15s ease, background-color .15s ease;
}

body#checkout .delivery-option:hover {
  border-color: var(--ck-border-strong);
}

body#checkout .delivery-option:has(input:checked) {
  border-color: var(--ck-accent);
  background: var(--ck-accent-soft) !important;
  box-shadow: 0 0 0 3px var(--ck-accent-ring);
}

body#checkout .delivery-option > .col-sm-1 {
  flex: 0 0 32px;
  width: 32px;
  max-width: 32px;
  padding: 2px 0 0;
}

body#checkout .delivery-option > label.delivery-option-2 {
  flex: 1 1 auto;
  width: auto;
  max-width: none;
  margin: 0;
  padding: 0;
  cursor: pointer;
}

body#checkout .delivery-option > label > .row {
  display: flex;
  flex-wrap: wrap;
  align-items: flex-start;
  margin: 0;
}

body#checkout .delivery-option > label > .row > [class*="col-sm-"] {
  float: none;
  width: auto;              /* bootstrapowe width% psuły flex */
  max-width: none;
  min-width: 0;
  padding: 0;
}

body#checkout .delivery-option > label > .row > .col-sm-5 {
  flex: 1 1 260px;
}

body#checkout .delivery-option > label > .row > .col-sm-4 {
  flex: 0 1 190px;
}

body#checkout .delivery-option > label > .row > .col-sm-3 {
  flex: 0 0 auto;
  margin-left: auto;
  padding-left: 12px;
  text-align: right;
}

body#checkout .delivery-option .col-sm-5 > .row {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  margin: 0;
}

body#checkout .delivery-option .col-sm-5 > .row > .col-xs-3 {
  flex: 0 0 52px;
  width: 52px;
  max-width: 52px;
  padding: 0 10px 0 0;
}

body#checkout .delivery-option .col-sm-5 > .row > .col-xs-9 {
  flex: 1 1 auto;
  width: auto;
  max-width: none;
  padding: 0;
}

body#checkout .delivery-option .col-sm-5 > .row > .col-xs-12 {
  padding: 0;
}

body#checkout .delivery-option img {
  max-width: 42px;
  max-height: 32px;
}

body#checkout .delivery-option .carrier-name {
  margin: 0;
  font-size: 15px;
  font-weight: 700;
  color: var(--ck-text);
}

body#checkout .delivery-option .carrier-delay {
  display: block;
  font-size: 12px;
  line-height: 1.5;
  color: var(--ck-muted);
  text-transform: none;
}

body#checkout .delivery-option .carrier-price {
  font-size: 15px;
  font-weight: 700;
  color: var(--ck-text);
  white-space: nowrap;
}

body#checkout .inpost-free-delivery {
  display: inline-flex;
  align-items: center;
  gap: 6px;
  margin-top: 10px;
  padding: 3px 10px;
  border: 0 !important;
  border-radius: 999px;
  background: #e8f6ee !important;
  color: #166534 !important;
  font-size: 12px;
  font-weight: 600;
}

/* cienki pasek postępu do darmowej dostawy pod pigułką (szerokość pigułki) */
:is(body#checkout, body#cart) .ck-free-wrap {
  display: inline-flex;
  flex-direction: column;
  gap: 5px;
  margin-top: 10px;
}

:is(body#checkout, body#cart) .ck-free-wrap .inpost-free-delivery {
  margin-top: 0;
}

:is(body#checkout, body#cart) .ck-free-progress {
  display: block;
  height: 3px;
  margin: 0 10px;
  overflow: hidden;
  border-radius: 2px;
  background: #d9efe1;
}

:is(body#checkout, body#cart) .ck-free-progress > span {
  display: block;
  height: 100%;
  border-radius: 2px;
  background: #16a34a;
}

:is(body#checkout, body#cart) .ck-free-caption {
  margin: -1px 10px 0;
  color: var(--ck-muted);
  font-size: 11.5px;
  line-height: 1.3;
}

/* próg osiągnięty: "Gratulacje! ..." na zielono */
:is(body#checkout, body#cart) .ck-free-caption.is-free {
  color: #166534;
  font-weight: 700;
}

:is(body#checkout, body#cart) .ck-free-caption.is-free i {
  color: #16a34a;
}

body#checkout #hook-display-after-carrier {
  margin-top: 10px;
}

/* Furgonetka: wybór paczkomatu (moduł - nie ruszamy klas, tylko wygląd) */
body#checkout .carrier-extra-content {
  margin: -4px 0 0 !important;
  padding: 0 0 4px 48px;
}

body#checkout .furgonetka-point-container {
  text-align: left;
}

body#checkout .furgonetka-point-container .row {
  margin: 0;
}

body#checkout .furgonetka-point-container [class*="col-sm-"] {
  padding: 0;
}

body#checkout .furgonetka-machine {
  position: static;          /* custom.css: absolute */
  width: auto;
}

body#checkout .furgonetka-machine:not(.furgonetka-hidden) {
  margin: 0 0 8px;
  padding: 10px 14px;
  border-radius: 10px;
  background: #e8f6ee;
  color: #166534;
  font-size: 14px;
  font-weight: 600;
}

body#checkout .btn.furgonetka-set-point {
  position: static;          /* custom.css: relative, top -28px, left 70px */
  display: inline-flex;
  align-items: center;
  width: auto;
  margin: 0;
  padding: 10px 18px;
  border: 1.5px solid var(--ck-accent);
  border-radius: 10px;
  background: #fff;
  color: var(--ck-accent);
  font-size: 14px;
  font-weight: 700;
  text-transform: none;
  box-shadow: none;
  animation: none;
}

body#checkout .btn.furgonetka-set-point:hover {
  background: var(--ck-accent);
  color: #fff;
}

body#checkout .btn.furgonetka-set-point::before {
  content: none;             /* custom.css: "Paczkomaty: " */
}

/* Paczkomat bez wybranego punktu (custom.js: .ck-needs-point) */
@keyframes ck-point-pulse {
  0%   { box-shadow: 0 0 0 0 rgba(247, 85, 51, .45); }
  70%  { box-shadow: 0 0 0 12px rgba(247, 85, 51, 0); }
  100% { box-shadow: 0 0 0 0 rgba(247, 85, 51, 0); }
}

@keyframes ck-point-shake {
  0%, 100% { transform: translateX(0); }
  20%, 60% { transform: translateX(-6px); }
  40%, 80% { transform: translateX(6px); }
}

@keyframes ck-hint-pulse {
  0%, 100% { opacity: 1; }
  50%      { opacity: .45; }
}

body#checkout .ck-needs-point .furgonetka-set-point {
  background: var(--ck-accent) !important;
  border-color: var(--ck-accent) !important;
  color: #fff !important;
  animation: ck-point-pulse 1.8s ease-out infinite;
}

body#checkout .ck-needs-point .furgonetka-set-point:hover {
  background: var(--ck-accent-hover) !important;
  border-color: var(--ck-accent-hover) !important;
}

body#checkout .ck-point-hint {
  display: none;
  margin-top: 8px;
  color: var(--ck-muted);
  font-size: 13px;
}

/* podpowiedź pod przyciskiem pulsuje razem z przyciskiem */
body#checkout .ck-needs-point .ck-point-hint {
  display: block;
  animation: ck-hint-pulse 1.8s ease-in-out infinite;
}

body#checkout .ck-point-error .ck-point-hint {
  color: #b91c1c;
  font-weight: 600;
}

body#checkout .ck-point-error .furgonetka-set-point {
  animation: ck-point-shake .4s ease-in-out 1, ck-point-pulse 1.8s ease-out .4s infinite;
}

/* linia od zaznaczonego radia do "Wybierz punkt odbioru": pionowo w dół do połowy
 * przycisku, potem w prawo do jego krawędzi; kreski płyną w stronę przycisku.
 * Przypięta do karty przewoźnika (bottom ujemny), więc działa przy każdej wysokości karty. */
@keyframes ck-point-flow {
  to { background-position: 0 8px, 8px 100%; }
}

body#checkout .delivery-option:has(+ .carrier-extra-content .ck-needs-point) {
  position: relative;
}

body#checkout .delivery-option:has(+ .carrier-extra-content .ck-needs-point)::before {
  content: "";
  position: absolute;
  top: 44px;                /* pod radiem */
  bottom: -32px;            /* do połowy przycisku (7px odstępu + 24px) */
  left: 25px;               /* środek radia */
  width: 31px;              /* do lewej krawędzi przycisku - 6px */
  background:
    linear-gradient(var(--ck-accent) 50%, transparent 0) 0 0 / 2px 8px repeat-y,
    linear-gradient(90deg, var(--ck-accent) 50%, transparent 0) 0 100% / 8px 2px repeat-x;
  opacity: .55;
  pointer-events: none;
  animation: ck-point-flow .8s linear infinite;
}

/* telefon: przycisk na całą szerokość pod kartą - tylko pionowo do jego górnej krawędzi */
@media (max-width: 575px) {
  body#checkout .delivery-option:has(+ .carrier-extra-content .ck-needs-point)::before {
    bottom: -7px;
    width: 2px;
  }
}

@media (prefers-reduced-motion: reduce) {
  body#checkout .delivery-option:has(+ .carrier-extra-content .ck-needs-point)::before {
    animation: none;
  }
}

@media (prefers-reduced-motion: reduce) {
  body#checkout .ck-needs-point .furgonetka-set-point,
  body#checkout .ck-point-error .furgonetka-set-point {
    animation: none;
    box-shadow: 0 0 0 3px var(--ck-accent-ring);
  }
  body#checkout .ck-needs-point .ck-point-hint {
    animation: none;
  }
}

/* telefon: przewoźnicy i paczkomat (po regułach bazowych - nadpisują je) */
@media (max-width: 575px) {
  /* [logo + nazwa] / cena / czas dostawy */
  body#checkout .delivery-option > label > .row > .col-sm-5 {
    flex: 1 1 100%;
  }
  body#checkout .delivery-option > label > .row > .col-sm-3,
  body#checkout .delivery-option > label > .row > .col-sm-4 {
    flex: 1 1 100%;
    margin-left: 0;
    padding-left: 52px;
    text-align: left;
  }
  body#checkout .delivery-option > label > .row > .col-sm-3 {
    order: 2;
    margin-top: 6px;
  }
  body#checkout .delivery-option > label > .row > .col-sm-4 {
    order: 3;
  }
  /* pigułka "> 400 zł" od lewej krawędzi logo - pod nazwą się łamała */
  body#checkout .delivery-option .col-sm-5 > .row > .col-xs-12 {
    padding-left: 0;
  }
  body#checkout .carrier-extra-content {
    padding-left: 0;
  }
  body#checkout .btn.furgonetka-set-point {
    width: 100%;
    justify-content: center;
  }
}

/* ------------------------------------------------------------------
 * Krok 3: picker daty wysyłki
 * ---------------------------------------------------------------- */

/* wyróżniony jak sekcja */
body#checkout .delivery-picker {
  margin: 20px 0 0;
  padding: 20px;
  border: 1px solid #fbd5c9;
  border-radius: var(--ck-radius);
  background: linear-gradient(180deg, var(--ck-accent-soft) 0, #fff 120px);
  color: var(--ck-text);
  font-size: 14px;
  line-height: 1.55;
}

body#checkout .delivery-picker-title {
  display: flex;
  align-items: center;
  gap: 12px;
  margin: 0 0 14px;
  padding-bottom: 14px;
  border-bottom: 1px solid #fbd5c9;
  color: var(--ck-text);
  font-size: 18px;
  font-weight: 700;
  line-height: 1.3;
}

body#checkout .delivery-picker-title i:not(.far) {
  font-style: normal;
  color: var(--ck-accent);
}

body#checkout .delivery-picker-icon {
  display: inline-flex;
  flex: 0 0 40px;
  align-items: center;
  justify-content: center;
  width: 40px;
  height: 40px;
  border-radius: 10px;
  background: var(--ck-accent);
  color: #fff;
  font-size: 18px;
}

@media (max-width: 767px) {
  body#checkout .delivery-picker-title {
    font-size: 16px;
  }
  body#checkout .delivery-picker-icon {
    flex-basis: 34px;
    width: 34px;
    height: 34px;
    font-size: 15px;
  }
}

body#checkout .delivery-picker + hr,
body#checkout .xmas-picker + hr {
  margin: 24px 0 !important;
  border-color: var(--ck-border);
}

/* Świąteczny wybór daty (XMAS_PICKER_ENABLE): jak kalendarz wysyłki, ale w zieleni -
 * tokeny akcentu podmienione, więc pytanie, zaznaczony dzień i checkbox też są zielone */
body#checkout .xmas-picker {
  --ck-accent: #16a34a;
  --ck-accent-hover: #15803d;
  --ck-accent-soft: #f0fdf4;
  --ck-accent-ring: rgba(22, 163, 74, .18);
  margin: 20px 0 0;
  padding: 20px;
  border: 1px solid #bbf7d0;
  border-radius: var(--ck-radius);
  background: linear-gradient(180deg, #f0fdf4 0, #fff 120px);
  color: var(--ck-text);
  font-size: 14px;
  line-height: 1.55;
}

body#checkout .xmas-picker .delivery-picker-title {
  margin-bottom: 10px;
  border-bottom-color: #bbf7d0;
}

body#checkout .xmas-picker .picker-question {
  border-color: #bbf7d0;
  border-left-color: var(--ck-accent);
}

body#checkout .xmas-picker-lead {
  margin: 0 0 12px;
  color: var(--ck-muted);
}

/* "Tak - to jest zamówienie świąteczne": duża opcja do kliknięcia */
body#checkout .xmas-picker .xmas-toggle {
  display: flex;
  align-items: center;
  gap: 10px;
  padding: 12px 14px;
  border: 1.5px solid var(--ck-border-strong);
  border-radius: 10px;
  background: #fff;
  cursor: pointer;
  transition: border-color .15s ease, background-color .15s ease;
}

body#checkout .xmas-picker .xmas-toggle:has(input:checked) {
  border-color: var(--ck-accent);
  background: var(--ck-accent-soft);
  box-shadow: 0 0 0 3px var(--ck-accent-ring);
}

body#checkout .xmas-picker .xmas-toggle label {
  margin: 0;
  color: var(--ck-text);
  font-size: 15px;
  font-weight: 700;
  cursor: pointer;
}


/* Pomarańcz = "wybrane" (przewoźnik, dzień, krok) - sekcja kalendarza nie może nim
 * krzyczeć, bo zaznaczony dzień ginął. Karta neutralna, ikona grafitowa (jak górny
 * pasek), wyróżnienia słów jak zakreślacz (bursztyn). Świąteczny ma własną zieleń. */
body#checkout .delivery-picker {
  border-color: var(--ck-border);
  background: #fff;
}

body#checkout .delivery-picker .delivery-picker-title {
  border-bottom-color: var(--ck-border);
}

body#checkout .delivery-picker .delivery-picker-icon {
  background: #253237;
}

body#checkout .delivery-picker .delivery-picker-title i:not(.far),
body#checkout .delivery-picker .picker-question-hl {
  padding: 0 2px;
  background: linear-gradient(transparent 58%, #fde68a 58%);
  color: var(--ck-text);
}

body#checkout .delivery-picker .picker-question {
  border-color: var(--ck-border);
  border-left-color: #f59e0b;
}

body#checkout .delivery-picker .picker-question-icon {
  background: #fef3c7;
  color: #b45309;
}

body#checkout .delivery-picker .picker-note-mark {
  color: #b45309;
}

/* Tydzień wędzarni: kiedy wędzimy / kiedy wysyłamy. Informacja, nie przycisk - płaski, bez ramek */
body#checkout .week-plan {
  margin: 0 0 20px;
  padding: 12px 14px 14px;
  border-radius: var(--ck-radius-sm);
  background: rgba(245, 246, 248, .8);
}

body#checkout .week-plan-caption {
  margin: 0 0 8px;
  color: var(--ck-muted);
  font-size: 11px;
  font-weight: 700;
  text-transform: uppercase;
  letter-spacing: .06em;
}

body#checkout .week-plan-days {
  display: grid;
  grid-template-columns: repeat(7, minmax(0, 1fr));
  gap: 6px 0;               /* kolumny bez odstępu - dzieli je przerywana linia */
  max-width: 560px;
}

/* subtelna przerywana linia między dniami */
body#checkout .week-plan-day + .week-plan-day {
  border-left: 1px dashed #d5d9de;
  border-radius: 0;
}

body#checkout .week-plan-day {
  display: flex;
  flex-direction: column;
  align-items: center;
  gap: 6px;
  padding: 6px 2px 8px;
  border: 0;
  border-radius: var(--ck-radius-sm);
  background: transparent;
  color: #9aa1a9;
  font-size: 12px;
  line-height: 1;
  cursor: default;
}

body#checkout .week-plan-day.is-active {
  color: var(--ck-text);
}

body#checkout .week-plan-day .wp-name {
  font-weight: 600;
}

body#checkout .week-plan-day:not(.is-active) .wp-name {
  font-weight: 400;
}

/* "dziś": nazwa dnia w pigułce - grafit, pomarańcz zostaje dla "wybrane" */
body#checkout .week-plan-day.is-today .wp-name {
  margin-top: -3px;
  padding: 3px 6px;
  border-radius: 6px;
  background: #253237;
  color: #fff;
  font-weight: 700;
}

body#checkout .week-plan-day .wp-icons {
  display: flex;
  align-items: center;
  justify-content: center;
  gap: 4px;
  min-height: 24px;
}

body#checkout .week-plan i.wp-smoke,
body#checkout .week-plan i.wp-ship {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  width: 24px;
  height: 24px;
  border-radius: 50%;
  font-size: 12px;
}

body#checkout .week-plan i.wp-smoke {
  background: #fff1e6;
  color: #ea580c;
}

body#checkout .week-plan i.wp-ship {
  background: #e8f7ee;
  color: var(--ck-success);
}

body#checkout .week-plan-day .wp-off {
  color: #c4c9cf;
  font-size: 14px;
}

/* etykieta dziś / jutro pod ikonami */
body#checkout .week-plan-day .wp-rel {
  min-height: 10px;
  color: var(--ck-muted);
  font-size: 10px;
  font-weight: 600;
  text-transform: uppercase;
  letter-spacing: .04em;
}

body#checkout .week-plan-day.is-today .wp-rel {
  color: var(--ck-text);
}

body#checkout .week-plan-legend {
  display: flex;
  flex-wrap: wrap;
  gap: 6px 20px;
  margin-top: 8px;
  color: var(--ck-muted);
  font-size: 12px;
  line-height: 1.4;
}

/* blok, nie flex - <b> nie odskakuje od tekstu */
body#checkout .week-plan-legend span {
  display: block;
}

body#checkout .week-plan-legend b {
  color: var(--ck-text);
}

body#checkout .week-plan-legend i.wp-smoke,
body#checkout .week-plan-legend i.wp-ship {
  width: 22px;
  height: 22px;
  margin-right: 6px;
  font-size: 11px;
  vertical-align: middle;
}

@media (max-width: 767px) {
  body#checkout .week-plan-days {
    gap: 4px 0;
  }
  body#checkout .week-plan-day {
    font-size: 11px;
  }
  body#checkout .week-plan i.wp-smoke,
  body#checkout .week-plan i.wp-ship {
    width: 20px;
    height: 20px;
    font-size: 10px;
  }
  body#checkout .week-plan-day .wp-icons {
    flex-direction: column;
    gap: 3px;
    min-height: 43px;
  }
}

/* Pytanie nad kalendarzem = właściwe wezwanie do działania */
body#checkout .picker-question {
  display: flex;
  align-items: flex-start;
  gap: 12px;
  margin: 24px 0 14px;
  padding: 14px 16px;
  border: 1px solid #fbd5c9;
  border-left: 4px solid var(--ck-accent);
  border-radius: var(--ck-radius-sm);
  background: #fff;
}

body#checkout .picker-question-icon {
  display: inline-flex;
  flex: 0 0 32px;
  align-items: center;
  justify-content: center;
  width: 32px;
  height: 32px;
  border-radius: 50%;
  background: var(--ck-accent-soft);
  color: var(--ck-accent);
  font-size: 15px;
}

body#checkout .picker-question-title {
  display: block;
  color: var(--ck-text);
  font-size: 16px;
  line-height: 1.35;
}

body#checkout .picker-question-hl {
  color: var(--ck-accent);
}

body#checkout .picker-question-sub {
  display: block;
  margin-top: 4px;
  color: var(--ck-muted);
  font-size: 13px;
  line-height: 1.45;
}

@media (max-width: 767px) {
  body#checkout .picker-question {
    padding: 12px;
  }
  body#checkout .picker-question-title {
    font-size: 15px;
  }
}

body#checkout .xmas-wrapper {
  display: grid;
  grid-template-columns: repeat(7, minmax(0, 1fr));
  gap: 8px;
  max-width: 560px;
  margin: 14px 0 6px;
  padding: 0;
  font-family: inherit !important;
}

body#checkout .xmas-wrapper > br {
  display: none;            /* łamanie wierszy robi siatka */
}

/* każdy dzień w kolumnie swojego dnia tygodnia (data-dow 1-7): siatka sama
 * przenosi do nowego wiersza, więc ukryte dni niżej nie psują wyrównania */
body#checkout .xmas-wrapper .d-item[data-dow="1"] { grid-column-start: 1; }
body#checkout .xmas-wrapper .d-item[data-dow="2"] { grid-column-start: 2; }
body#checkout .xmas-wrapper .d-item[data-dow="3"] { grid-column-start: 3; }
body#checkout .xmas-wrapper .d-item[data-dow="4"] { grid-column-start: 4; }
body#checkout .xmas-wrapper .d-item[data-dow="5"] { grid-column-start: 5; }
body#checkout .xmas-wrapper .d-item[data-dow="6"] { grid-column-start: 6; }
body#checkout .xmas-wrapper .d-item[data-dow="7"] { grid-column-start: 7; }

/* zwykły kalendarz: w niepełnym ostatnim tygodniu chowamy niedostępne dni, po których
 * nie ma już dostępnego. Pierwszy tydzień zostaje cały - klient ma widzieć, że jutro
 * (np. pt./sob./niedz.) to BRAK, a nie że kalendarz zaczyna się od poniedziałku.
 * W świątecznym "BRAK" = wyprzedane, zostaje. */
body#checkout .delivery-picker .xmas-wrapper .d-item[data-dow="7"]:not(:has(~ .d-item[data-dow="7"])) ~ .d-item.disabled:not(:has(~ .d-item:not(.disabled))) {
  display: none;
}

body#checkout .xmas-wrapper .d-item {
  display: flex;
  flex-direction: column;
  align-items: center;
  gap: 4px;
  min-width: 0;
  height: auto;
  margin: 0;
  padding: 10px 4px 8px;
  border: 1.5px solid var(--ck-border-strong);
  border-radius: 10px;
  background: #fff;
  box-sizing: border-box;
  cursor: pointer;
  transition: border-color .15s ease, background-color .15s ease;
}

body#checkout .xmas-wrapper .d-item:not(.disabled):hover {
  border-color: var(--ck-text);
}

body#checkout .xmas-wrapper .d-item .d-label {
  font-size: 13px;
  font-weight: 700;
  color: var(--ck-text);
}

body#checkout .xmas-wrapper .d-item .d-day {
  font-size: 11px;
  color: var(--ck-muted);
}

body#checkout .xmas-wrapper .d-item input[type="radio"] {
  margin: 2px 0;
  accent-color: var(--ck-accent);
}

body#checkout .xmas-wrapper .d-item.disabled {
  border-style: dashed;
  border-color: var(--ck-border);
  background: transparent;
  opacity: .5;
  cursor: not-allowed;
}

body#checkout .xmas-wrapper .d-item.disabled input {
  visibility: hidden;
}

/* "dziś" - jak niedostępny dzień, ale czytelny; grafit jak "dziś" w pasku tygodnia */
body#checkout .xmas-wrapper .d-item.is-today {
  opacity: .8;
  cursor: default;
}

body#checkout .xmas-wrapper .d-item.is-today .d-day,
body#checkout .xmas-wrapper .d-item.is-today .d-slots {
  padding: 1px 6px;
  border-radius: 6px;
  background: #253237;
  color: #fff;
  font-weight: 700;
}

body#checkout .xmas-wrapper .d-item.is-today .d-slots {
  padding: 2px 6px;
  border-radius: 999px;
}

body#checkout .xmas-wrapper label.d-item:has(input[type=radio]:checked) {
  border-color: var(--ck-accent);
  background: var(--ck-accent-soft);
  box-shadow: 0 0 0 3px var(--ck-accent-ring);
  color: inherit;
}

body#checkout .d-slots {
  width: auto;
  max-width: 100%;
  height: auto;
  margin: 0;
  padding: 2px 6px;
  border-radius: 999px;
  font-size: 9px;
  font-weight: 700;
  line-height: 1.3;
  letter-spacing: .04em;
  overflow: hidden;
  text-overflow: ellipsis;
  box-sizing: border-box;
}

body#checkout .d-slots.duzo    { background: #dcfce7; color: #166534; }
body#checkout .d-slots.srednio { background: #fef3c7; color: #92400e; }
body#checkout .d-slots.malo    { background: #fee2e2; color: #991b1b; }

body#checkout .d-slots.legenda {
  margin: 0 4px 0 0;
  padding: 2px 8px;
  font-size: 11px;
}

@media (max-width: 480px) {
  body#checkout .delivery-picker,
  body#checkout .xmas-picker {
    padding: 14px;
  }
  body#checkout .xmas-wrapper {
    gap: 4px;
  }
  body#checkout .xmas-wrapper .d-item {
    padding: 6px 2px;
    border-radius: 8px;
  }
  body#checkout .xmas-wrapper .d-item .d-label {
    font-size: 11px;
  }
  body#checkout .d-slots {
    font-size: 8px;
    padding: 1px 3px;
  }
}

/* Pod kalendarzem (zwykłym i świątecznym): legenda w jednym rzędzie i przypisy w polu */
body#checkout .picker-legend {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  gap: 6px;
  margin: 16px 0 0;
  padding-top: 14px;
  border-top: 1px dashed var(--ck-border-strong);
}

body#checkout .picker-legend-label {
  margin-right: 4px;
  color: var(--ck-muted);
  font-size: 13px;
}

body#checkout .picker-legend .d-slots.legenda {
  margin: 0;
  padding: 3px 9px;
  font-size: 10.5px;
}

body#checkout .picker-legend-hint {
  flex-basis: 100%;
  color: var(--ck-muted);
  font-size: 12px;
}

body#checkout .picker-note {
  display: flex;
  gap: 8px;
  margin: 12px 0 0;
  padding: 10px 12px;
  border-radius: var(--ck-radius-sm);
  background: #f5f6f8;
  color: var(--ck-muted);
  font-size: 13px;
  line-height: 1.5;
}

/* gwiazdka nawiązuje do "*preferowaną" w tytule kalendarza */
body#checkout .picker-note-mark {
  flex: none;
  color: var(--ck-accent);
  font-weight: 700;
}

/* *** - komunikaty sezonowe z configu (np. przerwa w wysyłkach) */
body#checkout .picker-note-warn {
  background: #fffbeb;
  color: #92400e;
}

body#checkout .picker-note-warn .picker-note-mark {
  color: #b45309;
}

/* Komentarz */
body#checkout #delivery label {
  margin-bottom: 6px;
  font-size: 14px;
  font-weight: 600;
  text-align: left;
}

/* ------------------------------------------------------------------
 * Krok 4: płatność
 * ---------------------------------------------------------------- */

body#checkout .payment-options {
  display: flex;
  flex-direction: column;
  gap: 10px;
  margin-bottom: 16px;
}

body#checkout .payment-options .payment-option {
  display: flex;
  align-items: center;
  gap: 12px;
  margin: 0;
  padding: 16px;
  border: 1.5px solid var(--ck-border);
  border-radius: var(--ck-radius);
  background: #fff;
  cursor: pointer;
  transition: border-color .15s ease, background-color .15s ease;
}

body#checkout .payment-options .payment-option:hover {
  border-color: var(--ck-border-strong);
}

body#checkout .payment-options .payment-option:has(input:checked) {
  border-color: var(--ck-accent);
  background: var(--ck-accent-soft);
  box-shadow: 0 0 0 3px var(--ck-accent-ring);
}

body#checkout .payment-options .payment-option .custom-radio {
  float: none !important;
  flex: 0 0 20px;
  margin: 0;
}

body#checkout .payment-options .payment-option label {
  display: flex;
  flex: 1 1 auto;
  align-items: center;
  justify-content: space-between;
  gap: 12px;
  margin: 0;
  font-size: 15px;
  font-weight: 600;
  text-align: left;
  cursor: pointer;
}

body#checkout .payment-options .payment-option label img {
  max-height: 26px;
  width: auto;
}

/* tpay (payment.tpl): logo przy tekście, pod spodem pasek metod płatności */
body#checkout .payment-options .payment-option:has(.ck-pay-methods) {
  align-items: flex-start;  /* radio w linii z tekstem, nie na środku karty */
}

body#checkout .payment-options .payment-option:has(.ck-pay-methods) .custom-radio {
  margin-top: 2px;
}

body#checkout .payment-options .payment-option label:has(.ck-pay-methods) {
  flex-wrap: wrap;
  justify-content: flex-start;
  row-gap: 10px;
}

body#checkout .payment-options .payment-option label .ck-pay-logo {
  height: 25px;
}

body#checkout .payment-options .payment-option label .ck-pay-methods {
  flex: 0 0 100%;
  width: 100%;
  max-width: 512px;
  height: auto;
  max-height: none;
}

/* telefon: pasek od lewej krawędzi karty (pod radiem), żeby ikony były większe;
 * 52px = wcięcie tekstu względem wnętrza karty (radio + odstępy) */
@media (max-width: 575px) {
  body#checkout .payment-options .payment-option label .ck-pay-methods {
    flex-basis: calc(100% + 52px);
    width: calc(100% + 52px);
    max-width: none;
    margin-left: -52px;
  }
}

body#checkout .additional-information {
  margin: -4px 0 0 !important;
  padding: 12px 16px;
  border-radius: 10px;
  background: #fafbfc;
  font-size: 13px;
  color: var(--ck-muted);
}

body#checkout .additional-information:not(:has(p, dl, div)) {
  display: none !important;
}

body#checkout .additional-information p {
  margin: 0 !important;
  color: var(--ck-muted);
}

/* odstęp od płatności daje już margines listy (16px) + karty (8px), padding motywu robił ~40px */
body#checkout section.checkout-step #conditions-to-approve {
  margin: 0;
  padding-top: 0;
}

body#checkout #conditions-to-approve ul {
  margin: 0;
  padding: 0;
}

body#checkout #conditions-to-approve li {
  display: flex;
  align-items: flex-start;
  gap: 10px;
  list-style: none;
}

body#checkout #conditions-to-approve li .float-xs-left {
  float: none !important;
}

body#checkout #conditions-to-approve .condition-label label {
  margin: 0;
  font-size: 14px;
  line-height: 1.5;
  text-align: left;
}

body#checkout #conditions-to-approve .condition-label {
  margin: 0;
}

body#checkout #conditions-to-approve .custom-checkbox {
  display: block;
  margin-top: 1px;
}

body#checkout #payment-confirmation .btn {
  min-height: 56px;
  font-size: 17px;
}

body#checkout #payment-confirmation .btn:disabled,
body#checkout #payment-confirmation .btn.disabled {
  background: #e7e9ec;
  color: #8a9199;
  box-shadow: none;
  cursor: not-allowed;
}

body#checkout .js-terms a,
body#checkout .payment-options section p a {
  color: var(--ck-accent);
}

/* ------------------------------------------------------------------
 * Podsumowanie (prawa kolumna)
 * ---------------------------------------------------------------- */

body#checkout #js-checkout-summary {
  border: 1px solid var(--ck-border);
  border-radius: var(--ck-radius);
  background: #fff;
  box-shadow: var(--ck-shadow);
  overflow: hidden;
}

body#checkout #js-checkout-summary .card-block {
  padding: 20px;
  border: 0;
}

body#checkout #js-checkout-summary .cart-summary-products p {
  margin-bottom: 4px;
  font-weight: 600;
}

body#checkout #js-checkout-summary .cart-summary-products a[data-toggle] {
  font-size: 14px;
  font-weight: 600;
}

body#checkout :is(#js-checkout-summary, .ck-mobile-summary) .media-list {
  margin: 12px 0 4px;
  padding: 0;
}

/* Produkt w "szczegółach": miniatura z ilością | nazwa + cena / gramatura */
body#checkout :is(#js-checkout-summary, .ck-mobile-summary) .media-list .media {
  display: flex;
  position: relative;
  align-items: flex-start;
  gap: 12px;
  margin: 0 0 12px;
  overflow: visible;        /* bootstrap .media: hidden - ucinał kółko z ilością */
  font-size: 13px;
}

/* bez flex-basis miniatura zgniatała się do 2px (zostawała sama ramka) */
body#checkout :is(#js-checkout-summary, .ck-mobile-summary) .media-list .media-left {
  flex: 0 0 48px;
  padding: 0;
}

body#checkout :is(#js-checkout-summary, .ck-mobile-summary) .media-list .media-left a {
  display: block;
}

body#checkout :is(#js-checkout-summary, .ck-mobile-summary) .media-list .media-left img {
  display: block;
  width: 48px;
  max-width: none;
  height: 48px;
  border: 1px solid var(--ck-border);
  border-radius: 8px;
  object-fit: cover;
}

body#checkout :is(#js-checkout-summary, .ck-mobile-summary) .media-body {
  display: grid;
  flex: 1 1 auto;
  grid-template-columns: minmax(0, 1fr) auto;
  gap: 2px 12px;
  width: auto;              /* bootstrap: 10000px - na telefonie rozpychało kolumnę */
  min-width: 0;
  overflow: visible;
  line-height: 1.4;
}

body#checkout :is(#js-checkout-summary, .ck-mobile-summary) .media-body .product-name {
  grid-area: 1 / 1;
  color: var(--ck-text);
  font-size: 14px;
  font-weight: 600;
}

body#checkout :is(#js-checkout-summary, .ck-mobile-summary) .media-body .product-price {
  grid-area: 1 / 2;
  float: none !important;
  color: var(--ck-text);
  font-size: 14px;
  font-weight: 600;
  white-space: nowrap;
}

/* ilość w kółku na rogu miniatury - gramatura ma wtedy całą szerokość */
body#checkout :is(#js-checkout-summary, .ck-mobile-summary) .media-body .product-quantity {
  position: absolute;
  top: -6px;
  left: 28px;               /* róg miniatury, przed tekstem (start 60px) */
  min-width: 20px;
  height: 20px;
  padding: 0 6px;
  border-radius: 10px;
  background: var(--ck-muted);
  box-shadow: 0 0 0 2px #fff;
  color: #fff;
  font-size: 11px;
  font-weight: 700;
  line-height: 20px;
  text-align: center;
}

body#checkout :is(#js-checkout-summary, .ck-mobile-summary) .media-body .product-line-info {
  grid-column: 1 / -1;
  margin: 0;
  color: var(--ck-muted);
  font-size: 13px;
}

body#checkout :is(#js-checkout-summary, .ck-mobile-summary) .media-body .product-line-info .label {
  color: var(--ck-muted);
  font-size: 13px;
}

/* gramatura: wyraźnie, ale bez czerwieni z custom.css */
body#checkout :is(#js-checkout-summary, .ck-mobile-summary) .media-body .product-line-info .value {
  color: var(--ck-text);
  font-size: 13px;
  font-weight: 600;
}

body#checkout :is(#js-checkout-summary, .ck-mobile-summary) .media-body br {
  display: none;
}

body#checkout #js-checkout-summary .cart-summary-line {
  display: flex;
  flex-wrap: wrap;
  justify-content: space-between;
  gap: 4px 12px;
  margin: 8px 0 0;
  font-size: 14px;
  color: var(--ck-muted);
  clear: both;
}

/* clearfix ::after psuł justify w liniach podsumowania (flex) */
body#checkout #js-checkout-summary .cart-summary-line::before,
body#checkout #js-checkout-summary .cart-summary-line::after {
  display: none;
}

body#checkout #js-checkout-summary .cart-summary-line:has(.label.sub:empty) {
  display: none;
}

body#checkout #js-checkout-summary .cart-summary-line:not(.cart-summary-subtotals):not(.cart-total) {
  display: block;
  font-size: 13px;
  line-height: 1.5;
}

body#checkout #js-checkout-summary .cart-summary-line .label {
  color: var(--ck-text);
  font-weight: 400;
}

body#checkout #js-checkout-summary .cart-summary-line .value {
  color: var(--ck-text);
  font-weight: 600;
}

/* przewoźnik pod "Opakowanie i wysyłka" */
body#checkout #js-checkout-summary #cart-subtotal-shipping .label {
  text-align: left;
}

body#checkout #js-checkout-summary #cart-subtotal-shipping-current {
  display: block;
  margin: 0;
  padding: 0;
  font-size: 13px;
  text-align: left;
}

body#checkout #js-checkout-summary .separator {
  margin: 0;
  border-color: var(--ck-border);
}

body#checkout #js-checkout-summary .cart-voucher {
  margin: 0;
  padding: 0;
}

body#checkout #js-checkout-summary .block-promo {
  margin: 0;
  padding: 0 20px 16px;
}

body#checkout #js-checkout-summary .card-block.cart-summary-totals {
  padding: 16px 20px;
  background: #fafbfc;
}

body#checkout #js-checkout-summary .cart-total {
  flex-wrap: nowrap;
  align-items: baseline;
  margin: 0;
  padding: 0;
  background: none;
}

body#checkout #js-checkout-summary .cart-total .label {
  color: var(--ck-text);
  font-size: 15px;
  font-weight: 700;
}

body#checkout #js-checkout-summary .cart-total .value {
  font-size: 20px;
}

body#checkout #js-checkout-summary .cart-total .value,
body#checkout #js-checkout-summary .cart-total .value b {
  color: var(--ck-text) !important;   /* inline: #0071a7 */
  font-weight: 800 !important;
}

/* Zaufanie pod podsumowaniem */
body#checkout #block-reassurance {
  margin-top: 16px;
}

body#checkout #block-reassurance li,
body#checkout #block-reassurance .block-reassurance-item {
  border: 0 !important;
}

body#checkout #block-reassurance span,
body#checkout #block-reassurance p {
  font-size: 13px !important;
  color: var(--ck-muted) !important;
}

body#checkout #block-reassurance img {
  opacity: .75;
}

/* ------------------------------------------------------------------
 * Komunikaty (#notifications)
 * ---------------------------------------------------------------- */

/* Komunikat błędu u góry (np. brak punktu) - w stylu checkoutu */
body#checkout #notifications .alert-danger {
  margin: 16px auto 0;
  padding: 14px 18px;
  border: 1px solid #fecaca;
  border-left: 4px solid #dc2626;
  border-radius: var(--ck-radius-sm);
  background: #fef2f2;
  color: #991b1b;
  font-size: 15px;
  font-weight: 600;
  box-shadow: none;
}

body#checkout #notifications .alert-danger ul {
  margin: 0;
  padding: 0;
  list-style: none;
}

/* powiadomienia wyrównane do kolumny checkoutu (jak #wrapper .container) */
body#checkout #notifications .container {
  max-width: 1200px;
  margin: 0 auto;
  padding: 0 15px;
}

/* ------------------------------------------------------------------
 * Potwierdzenie zamówienia
 * ---------------------------------------------------------------- */

body#order-confirmation #wrapper .card {
  margin-bottom: 16px;
  border: 1px solid var(--ck-border);
  border-radius: var(--ck-radius);
  background: #fff;
  box-shadow: var(--ck-shadow);
}

body#order-confirmation #wrapper .card > .card-block {
  padding: 24px;
}

body#order-confirmation #content-hook_order_confirmation .card-title {
  font-size: 22px;
  font-weight: 700;
  color: var(--ck-text);
}

body#order-confirmation #content-hook_order_confirmation .card-title .done {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  width: 32px;
  height: 32px;
  margin-right: 8px;
  border-radius: 50%;
  background: #e8f6ee;
  color: var(--ck-success);
  font-size: 20px;
  vertical-align: -6px;
}

body#order-confirmation .order-line {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  margin: 0 0 12px;
  padding: 0 0 12px;
  border-bottom: 1px solid var(--ck-border);
  font-size: 14px;
}

body#order-confirmation .order-line .image img {
  width: 64px;
  height: 64px;
  border-radius: 8px;
  object-fit: cover;
}

body#order-confirmation .order-line > .col-sm-2 {
  flex: 0 0 88px;
  max-width: 88px;
}

body#order-confirmation .order-line .details {
  flex: 1 1 200px;
  max-width: none;
}

body#order-confirmation .order-confirmation-table table td {
  padding: 4px 0;
  font-size: 14px;
}

body#order-confirmation #order-details {
  padding-top: 0;
}

body#order-confirmation #order-details .card-title {
  margin: 0 0 12px;
  font-size: 16px;
  font-weight: 700;
}

body#order-confirmation #order-details ul {
  margin: 0;
  padding: 16px;
  border-radius: 10px;
  background: #fafbfc;
  font-size: 14px;
  line-height: 1.7;
}

body#order-confirmation #order-details li:first-child {
  font-size: 16px;
  font-weight: 700;
}

/* Dane do przelewu */
body#order-confirmation #content-hook_payment_return {
  padding: 24px;
  font-size: 14px;
}

body#order-confirmation #content-hook_payment_return dl,
body#order-confirmation #content-hook_payment_return table {
  border-radius: 10px;
  overflow: hidden;
}

/* Przelew tradycyjny (themes/.../modules/ps_wirepayment/...): status + tabelka z "Kopiuj" */
body#order-confirmation #content-hook_payment_return.ck-wire-card {
  padding: 0;
  font-size: 15px;
}

body#order-confirmation .ck-wire-intro {
  margin: 0 0 12px;
  color: var(--ck-text);
  font-size: 15px;
}

body#order-confirmation #content-hook_payment_return .ck-wire-data {
  display: block;
  max-width: 760px;
  margin: 0 0 16px;
  border: 1px solid var(--ck-border);
  border-radius: 10px;
}

body#order-confirmation .ck-wire-row {
  display: grid;
  grid-template-columns: 220px minmax(0, 1fr);
  align-items: center;
  gap: 4px 16px;
  padding: 12px 16px;
  border-top: 1px solid var(--ck-border);
}

body#order-confirmation .ck-wire-row:first-child {
  border-top: 0;
}

body#order-confirmation #content-hook_payment_return .ck-wire-data dt {
  flex: none;
  margin: 0;
  padding: 0;
  background: none;
  color: var(--ck-muted);
  font-size: 14px;
  font-weight: 500;
}

body#order-confirmation #content-hook_payment_return .ck-wire-data dd {
  display: flex;
  flex: none;
  align-items: center;
  justify-content: space-between;
  gap: 12px;
  margin: 0;
  padding: 0;
  background: none;
  color: var(--ck-text);
  font-size: 17px;
  font-weight: 600;
}

body#order-confirmation .ck-wire-value {
  min-width: 0;
  overflow-wrap: anywhere;
}

body#order-confirmation .ck-wire-row.is-amount .ck-wire-value {
  font-size: 22px;
  font-weight: 700;
}

body#order-confirmation .ck-wire-row:is(.is-account, .is-reference) .ck-wire-value {
  font-size: 19px;
  font-variant-numeric: tabular-nums;
  letter-spacing: .03em;
}

body#order-confirmation .ck-copy {
  display: inline-flex;
  flex: 0 0 auto;
  align-items: center;
  gap: 6px;
  padding: 6px 12px;
  border: 1px solid var(--ck-border-strong);
  border-radius: 999px;
  background: #fff;
  color: var(--ck-text);
  font-size: 13px;
  font-weight: 600;
  line-height: 1.2;
  cursor: pointer;
  transition: border-color .15s, color .15s, background-color .15s;
}

body#order-confirmation .ck-copy:hover,
body#order-confirmation .ck-copy:focus-visible {
  border-color: var(--ck-accent);
  color: var(--ck-accent);
  outline: none;
}

body#order-confirmation .ck-copy.is-copied {
  border-color: #bbf7d0;
  background: #f0fdf4;
  color: var(--ck-success);
}

body#order-confirmation .ck-wire-note {
  margin: 0 0 8px;
  color: var(--ck-muted);
  font-size: 14px;
}

body#order-confirmation .ck-wire-note:last-child {
  margin-bottom: 0;
}

@media (max-width: 575px) {
  body#order-confirmation .ck-wire-row {
    grid-template-columns: minmax(0, 1fr);
  }

  body#order-confirmation .ck-wire-row:is(.is-account, .is-reference) .ck-wire-value {
    font-size: 17px;
    letter-spacing: 0;
  }
}

/* ------------------------------------------------------------------
 * Konto: Dane osobiste (/dane-osobiste), logowanie i rejestracja - spójnie z checkoutem
 * ---------------------------------------------------------------- */

:is(body#identity, body#authentication, body#registration) #wrapper {
  background: var(--ck-bg);
  padding-bottom: 48px;
}

:is(body#identity, body#authentication, body#registration) #main {
  max-width: 760px;
  margin: 0 auto;
  color: var(--ck-text);
}

:is(body#identity, body#authentication, body#registration) #main .page-header h1 {
  margin: 8px 0 16px;
  font-size: 26px;
  font-weight: 700;
  color: var(--ck-text);
}

:is(body#identity, body#authentication, body#registration) #content.page-content {
  padding: 28px;
  border: 1px solid var(--ck-border);
  border-radius: var(--ck-radius);
  background: #fff;
  box-shadow: var(--ck-shadow);
}

:is(body#identity, body#authentication, body#registration) :is(#customer-form, #login-form) .form-group.row {
  display: flex;
  flex-direction: column;
  margin: 0 0 16px;
}

:is(body#identity, body#authentication, body#registration) :is(#customer-form, #login-form) .form-group.row > [class*="col-md-"] {
  width: 100%;
  max-width: 100%;
  flex: 0 0 auto;
  float: none;
  padding: 0;
}

:is(body#identity, body#authentication, body#registration) :is(#customer-form, #login-form) .form-control-label {
  padding: 0 0 6px;
  text-align: left;
  font-size: 14px;
  font-weight: 600;
  color: var(--ck-text);
}

:is(body#identity, body#authentication, body#registration) :is(#customer-form, #login-form) .form-group.row:has(.custom-checkbox) > .form-control-label {
  display: none;
}

:is(body#identity, body#authentication, body#registration) :is(#customer-form, #login-form) .form-control-comment {
  padding-top: 4px !important;
  font-size: 13px;
  color: var(--ck-muted);
}

:is(body#identity, body#authentication, body#registration) :is(#customer-form, #login-form) .form-control-comment:empty {
  display: none;
}

:is(body#identity, body#authentication, body#registration) :is(#customer-form, #login-form) .form-control {
  height: 48px;
  padding: 10px 14px;
  border: 1px solid var(--ck-border-strong);
  border-radius: var(--ck-radius-sm);
  background: #fff;
  color: var(--ck-text);
  font-size: 15px;
  box-shadow: none;
  transition: border-color .15s ease, box-shadow .15s ease;
}

:is(body#identity, body#authentication, body#registration) :is(#customer-form, #login-form) .form-control:focus {
  outline: none;
  border-color: var(--ck-accent);
  box-shadow: 0 0 0 4px var(--ck-accent-ring);
}

/* Hasło: "Pokaż" jako część pola */
:is(body#identity, body#authentication, body#registration) :is(#customer-form, #login-form) .input-group {
  display: flex;
  width: 100%;
}

:is(body#identity, body#authentication, body#registration) :is(#customer-form, #login-form) .input-group .form-control {
  flex: 1 1 auto;
  width: 1%;
  min-width: 0;
  border-right: 0;
  border-radius: var(--ck-radius-sm) 0 0 var(--ck-radius-sm);
}

:is(body#identity, body#authentication, body#registration) :is(#customer-form, #login-form) .input-group-btn {
  display: flex;
  width: auto;
}

:is(body#identity, body#authentication, body#registration) :is(#customer-form, #login-form) .input-group-btn .btn {
  height: 48px;
  padding: 0 16px;
  border: 1px solid var(--ck-border-strong);
  border-left: 0;
  border-radius: 0 var(--ck-radius-sm) var(--ck-radius-sm) 0;
  background: #fff;
  color: var(--ck-muted);
  font-size: 13px;
  font-weight: 600;
  text-transform: none;
}

:is(body#identity, body#authentication, body#registration) :is(#customer-form, #login-form) .input-group:focus-within .form-control,
:is(body#identity, body#authentication, body#registration) :is(#customer-form, #login-form) .input-group:focus-within .input-group-btn .btn {
  border-color: var(--ck-accent);
}

/* Imię + Nazwisko, Hasło + Nowe hasło obok siebie */
@media (min-width: 768px) {
  :is(body#identity, body#authentication, body#registration) :is(#customer-form, #login-form) > section {
    display: grid;
    grid-template-columns: 1fr 1fr;
    column-gap: 16px;
  }
  :is(body#identity, body#authentication, body#registration) :is(#customer-form, #login-form) > section > * {
    grid-column: 1 / -1;
  }
  :is(body#identity, body#authentication, body#registration) :is(#customer-form, #login-form) > section > .form-group:has(input[name="firstname"]),
  body#identity #customer-form > section > .form-group:has(input[name="password"]) {
    grid-column: 1;
  }
  :is(body#identity, body#authentication, body#registration) :is(#customer-form, #login-form) > section > .form-group:has(input[name="lastname"]),
  body#identity #customer-form > section > .form-group:has(input[name="new_password"]) {
    grid-column: 2;
  }
}

/* Radio / checkbox */
:is(body#identity, body#authentication, body#registration) .custom-radio {
  width: 20px;
  height: 20px;
  border: 2px solid var(--ck-border-strong);
  background: #fff;
  vertical-align: middle;
}

:is(body#identity, body#authentication, body#registration) .custom-radio input[type="radio"]:checked + span {
  background-color: var(--ck-accent);
}

:is(body#identity, body#authentication, body#registration) .custom-radio:has(input:checked) {
  border-color: var(--ck-accent);
}

:is(body#identity, body#authentication, body#registration) .radio-inline {
  margin-right: 20px;
  font-size: 15px;
}

:is(body#identity, body#authentication, body#registration) .custom-checkbox input[type="checkbox"] + span {
  width: 20px;
  height: 20px;
  border: 2px solid var(--ck-border-strong);
  border-radius: 5px;
  background: #fff;
}

:is(body#identity, body#authentication, body#registration) .custom-checkbox input[type="checkbox"]:checked + span {
  border-color: var(--ck-accent);
  background: var(--ck-accent);
}

:is(body#identity, body#authentication, body#registration) .custom-checkbox input[type="checkbox"]:checked + span .checkbox-checked {
  color: #fff;
  font-size: 16px;
  margin: 0;
}

:is(body#identity, body#authentication, body#registration) .custom-checkbox label {
  font-size: 14px;
  line-height: 1.5;
}

:is(body#identity, body#authentication, body#registration) .custom-checkbox em {
  display: block;
  margin-top: 2px;
  font-style: normal;
  font-size: 13px;
  color: var(--ck-muted);
}

/* Zapisz */
:is(body#identity, body#authentication, body#registration) :is(#customer-form, #login-form) .form-footer {
  margin-top: 8px;
  padding: 0;
}

:is(body#identity, body#authentication, body#registration) :is(#customer-form, #login-form) :is(.form-control-submit, #submit-login) {
  display: block;
  width: 100%;
  float: none !important;
  min-height: 52px;
  padding: 14px 24px;
  border: 0;
  border-radius: 10px;
  background: var(--ck-accent);
  color: #fff;
  font-size: 16px;
  font-weight: 600;
  text-transform: none;
  box-shadow: 0 1px 2px rgba(16, 24, 40, .08);
  transition: background-color .15s ease;
}

:is(body#identity, body#authentication, body#registration) :is(#customer-form, #login-form) :is(.form-control-submit, #submit-login):hover,
:is(body#identity, body#authentication, body#registration) :is(#customer-form, #login-form) :is(.form-control-submit, #submit-login):focus {
  background: var(--ck-accent-hover);
  color: #fff;
}

/* Linki pod formularzem */
:is(body#identity, body#authentication, body#registration) #main .page-footer {
  display: flex;
  flex-wrap: wrap;
  gap: 12px;
  margin: 16px 0 48px !important;   /* odstęp od widgetu TrustMate */
  padding: 0;
}

:is(body#identity, body#authentication, body#registration) #main .page-footer .account-link {
  display: inline-flex;
  align-items: center;
  gap: 6px;
  margin: 0;
  padding: 10px 16px;
  border: 1px solid var(--ck-border-strong);
  border-radius: 10px;
  background: #fff;
  color: var(--ck-text);
  font-size: 14px;
  font-weight: 600;
  text-transform: none;
  box-shadow: none;
}

:is(body#identity, body#authentication, body#registration) #main .page-footer .account-link:hover {
  border-color: var(--ck-text);
  background: #fff;
  color: var(--ck-text);
}

:is(body#identity, body#authentication, body#registration) #main .page-footer .account-link .material-icons {
  font-size: 18px;
  margin: 0;
}

/* Komunikaty (zapisano / błąd) */
:is(body#identity, body#authentication, body#registration) #notifications .alert {
  max-width: 760px;
  margin: 16px auto 0;
  border-radius: 10px;
}

@media (max-width: 575px) {
  :is(body#identity, body#authentication, body#registration) #content.page-content {
    padding: 20px 16px;
  }
}

/* "Hasło" na tej stronie to obecne hasło - bez niego PrestaShop nie zapisze zmian */
body#identity #customer-form .form-group:has(input[name="password"]) > .col-md-6::after {
  content: "Obecne hasło, wymagane do zapisania zmian";
  display: block;
  padding-top: 4px;
  font-size: 13px;
  color: var(--ck-muted);
}

/* ------------------------------------------------------------------
 * Logowanie (/logowanie) i rejestracja: wąska karta formularza
 * (pola, hasło, checkboxy i przycisk - sekcja wyżej, wspólna z Dane osobiste)
 * ---------------------------------------------------------------- */

body#authentication #main,
body#registration #main {
  max-width: 520px;
}

body#authentication #main .page-header h1,
body#registration #main .page-header h1 {
  text-align: center;
}

body#authentication #content.page-content hr {
  display: none;
}

body#authentication #login-form .forgot-password {
  margin: -6px 0 16px;
  text-align: right;
}

body#authentication #login-form .forgot-password a,
body#authentication .register-form p a,
body#registration .register-form p a {
  color: var(--ck-accent);
  font-size: 14px;
  font-weight: 600;
}

body#authentication #login-form .form-footer {
  margin-top: 8px;
  padding: 0;
}

/* "Nie masz konta?" - drugi przycisk pod logowaniem */
body#authentication .no-account {
  margin: 20px 0 0;
  padding: 20px 0 0;
  border-top: 1px solid var(--ck-border);
  text-align: center;
}

body#authentication .no-account a {
  display: block;
  padding: 12px 16px;
  border: 1px solid var(--ck-border-strong);
  border-radius: 10px;
  color: var(--ck-text);
  font-size: 15px;
  font-weight: 600;
  transition: border-color .15s ease;
}

body#authentication .no-account a:hover {
  border-color: var(--ck-text);
  color: var(--ck-text);
}

/* rejestracja: "Masz już konto? Zaloguj się" nad formularzem */
body#authentication .register-form > p:first-child,
body#registration .register-form > p:first-child {
  margin: 0 0 20px;
  color: var(--ck-muted);
  font-size: 14px;
  text-align: center;
}

/* "Przypomnij hasło" (logowanie, krok 1 checkoutu): pigułka z kluczem zamiast
 * samego linku; po nieudanym logowaniu wyraźny przycisk - wtedy jest potrzebny */
:is(body#checkout section.checkout-step, body#authentication) .forgot-password a {
  display: inline-flex;
  align-items: center;
  gap: 6px;
  padding: 5px 10px;
  border-radius: var(--ck-radius-sm);
  background: var(--ck-accent-soft);
  color: var(--ck-accent);
  font-size: 14px;
  font-weight: 600;
  text-decoration: none;
}

:is(body#checkout section.checkout-step, body#authentication) .forgot-password a::before {
  content: "\f084";
  font-family: "Font Awesome 5 Pro";
  font-weight: 400;
}

:is(body#checkout section.checkout-step, body#authentication) .forgot-password a:hover {
  background: #ffe4da;
  color: var(--ck-accent-hover);
}

/* błąd logowania jest nad formularzem (login-form.tpl: form-errors przed <form>) */
body#checkout section.checkout-step #checkout-login-form:has(.help-block li) .forgot-password a,
body#authentication .login-form:has(.help-block li) .forgot-password a {
  padding: 9px 16px;
  border: 1.5px solid var(--ck-accent);
  background: #fff;
  font-size: 15px;
}

body#checkout section.checkout-step #checkout-login-form > .help-block,
body#authentication .login-form > .help-block {
  margin: 0 0 14px;
}

/* ------------------------------------------------------------------
 * Odzyskiwanie hasła (/odzyskiwanie-hasla): e-mail, "co teraz", nowe hasło
 * ---------------------------------------------------------------- */

:is(body#password, body#module-tpay-ordererror) #wrapper {
  background: var(--ck-bg);
  padding-bottom: 48px;
}

:is(body#password, body#module-tpay-ordererror) #main {
  max-width: 640px;
  margin: 0 auto;
  color: var(--ck-text);
}

:is(body#password, body#module-tpay-ordererror) #main .page-header h1 {
  margin: 8px 0 16px;
  color: var(--ck-text);
  font-size: 26px;
  font-weight: 700;
}

:is(body#password, body#module-tpay-ordererror) #content.page-content {
  margin-bottom: 16px;
  padding: 28px;
  border: 1px solid var(--ck-border);
  border-radius: var(--ck-radius);
  background: #fff;
  box-shadow: var(--ck-shadow);
  font-size: 16px;
  line-height: 1.55;
}

body#password .ck-pw-lead {
  margin: 0 0 14px;
  color: var(--ck-text);
  font-size: 17px;
  font-weight: 600;
}

/* kroki 1-2-3 w kółkach */
:is(body#password, body#module-tpay-ordererror) .ck-pw-steps {
  display: grid;
  gap: 14px;
  margin: 0 0 24px;
  padding: 0;
  list-style: none;
  counter-reset: ck-pw;
}

:is(body#password, body#module-tpay-ordererror) .ck-pw-steps li {
  position: relative;
  padding-left: 44px;
  color: #374151;
  font-size: 15px;
  counter-increment: ck-pw;
}

:is(body#password, body#module-tpay-ordererror) .ck-pw-steps li::before {
  content: counter(ck-pw);
  position: absolute;
  top: -2px;
  left: 0;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  width: 30px;
  height: 30px;
  border-radius: 50%;
  background: var(--ck-accent);
  color: #fff;
  font-size: 15px;
  font-weight: 700;
}

:is(body#password, body#module-tpay-ordererror) .ck-pw-steps b {
  color: var(--ck-text);
}

/* formularz e-mail: etykieta, pole, przycisk jeden pod drugim */
body#password .forgotten-password .form-fields {
  margin: 0;
}

body#password .center-email-fields {
  display: flex;
  flex-direction: column;
  gap: 10px;
  margin: 0;
}

body#password .center-email-fields > *,
body#password .renew-password .row > [class*="col-"] {
  width: 100%;
  max-width: 100%;
  flex: 0 0 auto;
  float: none;
  margin: 0;
  padding: 0;
}

body#password .form-control-label {
  padding: 0;
  color: var(--ck-text);
  font-size: 15px;
  font-weight: 700;
  text-align: left;
}

body#password .form-control {
  height: 52px;
  padding: 10px 14px;
  border: 1px solid var(--ck-border-strong);
  border-radius: var(--ck-radius-sm);
  background: #fff;
  color: var(--ck-text);
  font-size: 17px;
  box-shadow: none;
}

body#password .form-control:focus {
  outline: none;
  border-color: var(--ck-accent);
  box-shadow: 0 0 0 4px var(--ck-accent-ring);
}

:is(body#password, body#module-tpay-ordererror) #content .btn-primary {
  display: block;
  width: 100%;
  min-height: 54px;
  margin: 6px 0 0;
  padding: 14px 20px;
  border: 0;
  border-radius: 10px;
  background: var(--ck-accent);
  color: #fff;
  font-size: 17px;
  font-weight: 600;
  text-transform: none;
  white-space: normal;
}

:is(body#password, body#module-tpay-ordererror) #content .btn-primary:hover {
  background: var(--ck-accent-hover);
}

/* nowe hasło: pole + "Pokaż" */
body#password .renew-password .container-fluid {
  padding: 0;
}

body#password .renew-password .row.form-group {
  display: flex;
  flex-direction: column;
  gap: 8px;
  margin: 0 0 18px;
}

body#password .renew-password .offset-md-5 {
  margin: 0;
}

body#password .input-group {
  display: flex;
  width: 100%;
}

body#password .input-group .form-control {
  flex: 1 1 auto;
  width: 1%;
  min-width: 0;
  border-right: 0;
  border-radius: var(--ck-radius-sm) 0 0 var(--ck-radius-sm);
}

body#password .input-group-btn {
  display: flex;
  width: auto;
}

body#password .input-group-btn .btn {
  height: 52px;
  padding: 0 16px;
  border: 1px solid var(--ck-border-strong);
  border-left: 0;
  border-radius: 0 var(--ck-radius-sm) var(--ck-radius-sm) 0;
  background: #fff;
  color: var(--ck-text);
  font-size: 14px;
  font-weight: 600;
  text-transform: none;
}

body#password .input-group:focus-within .form-control,
body#password .input-group:focus-within .input-group-btn .btn {
  border-color: var(--ck-accent);
}

body#password .ck-pw-rules {
  margin: 0 0 22px;
  padding: 12px 16px 12px 34px;
  border-radius: 10px;
  background: #f5f6f8;
  color: #374151;
  font-size: 15px;
}

body#password .ck-pw-rules li {
  margin: 2px 0;
  list-style: disc;
}

body#password .ck-pw-hint,
body#password .ck-pw-note {
  margin: 6px 0 0;
  color: var(--ck-muted);
  font-size: 14px;
}

/* "Co teraz?" po wysłaniu linku */
body#password .ck-pw-next {
  margin: 18px 0 0;
}

body#password .ck-pw-next-title {
  margin: 0 0 12px;
  color: var(--ck-text);
  font-size: 18px;
  font-weight: 700;
}

body#password .ck-pw-next .ck-pw-steps {
  margin-bottom: 8px;
}

/* pomoc: bez konta / nie przyszło / telefon */
:is(body#password, body#module-tpay-ordererror) .ck-pw-help {
  display: grid;
  gap: 12px;
  margin: 24px 0 0;
  padding: 18px 18px 6px;
  border-radius: 10px;
  background: #f5f6f8;
}

:is(body#password, body#module-tpay-ordererror) .ck-pw-help-item {
  display: flex;
  gap: 12px;
}

:is(body#password, body#module-tpay-ordererror) .ck-pw-help-item i {
  flex: 0 0 22px;
  margin-top: 3px;
  color: var(--ck-muted);
  font-size: 17px;
  text-align: center;
}

:is(body#password, body#module-tpay-ordererror) .ck-pw-help-item p {
  margin: 0 0 12px;
  color: #374151;
  font-size: 15px;
}

:is(body#password, body#module-tpay-ordererror) .ck-pw-help-item b {
  display: block;
  color: var(--ck-text);
}

:is(body#password, body#module-tpay-ordererror) .ck-pw-help-item a {
  color: var(--ck-accent);
  font-weight: 600;
  white-space: nowrap;
}

/* komunikaty modułu (ps-alert-error / ps-alert-success) */
body#password .ps-alert-error,
body#password .ps-alert-success {
  margin: 0 0 18px;
  padding: 0;
  list-style: none;
}

body#password .ps-alert-error:empty {
  display: none;
}

body#password :is(.ps-alert-error, .ps-alert-success) .item {
  display: flex;
  align-items: flex-start;
  gap: 10px;
  margin: 0;
  padding: 12px 14px;
  border: 0;
  border-radius: 10px;
  background: #fef2f2;
  color: #b91c1c;
}

body#password .ps-alert-success .item {
  background: #e8f6ee;
  color: #166534;
}

/* theme: ramka 15px na ikonie, biały blok pod tekstem */
body#password :is(.ps-alert-error, .ps-alert-success) .item i {
  display: inline-flex;
  flex: 0 0 24px;
  align-items: center;
  justify-content: center;
  width: 24px;
  height: 24px;
  margin: 0;
  padding: 0;
  border: 0;
  border-radius: 50%;
  background: currentColor;
}

body#password :is(.ps-alert-error, .ps-alert-success) .item i svg {
  flex: none;
  width: 16px;
  height: 16px;
  background: none;
}

body#password :is(.ps-alert-error, .ps-alert-success) .item p {
  margin: 0;
  padding: 1px 0 0;
  border: 0;
  background: none;
  color: inherit;
  font-size: 15px;
  font-weight: 600;
  line-height: 1.5;
}

/* linki pod kartą: powrót do logowania */
:is(body#password, body#module-tpay-ordererror) #main .page-footer {
  display: flex;
  flex-wrap: wrap;
  gap: 12px;
  margin: 0 0 48px !important;
  padding: 0;
}

body#password #main .page-footer ul {
  margin: 0;
  padding: 0;
  list-style: none;
}

:is(body#password, body#module-tpay-ordererror) #main .page-footer a {
  display: inline-flex;
  align-items: center;
  gap: 6px;
  padding: 10px 16px;
  border: 1px solid var(--ck-border-strong);
  border-radius: 10px;
  background: #fff;
  color: var(--ck-text);
  font-size: 15px;
  font-weight: 600;
}

:is(body#password, body#module-tpay-ordererror) #main .page-footer a .material-icons {
  margin: 0;
  font-size: 18px;
}

@media (max-width: 575px) {
  :is(body#password, body#module-tpay-ordererror) #content.page-content {
    padding: 20px 16px;
  }
}

/* tpay: płatność niepotwierdzona / błąd (themes/.../modules/tpay/...) */
body#module-tpay-ordererror #content.page-content {
  font-size: 16px;
}

:is(body#module-tpay-ordererror, body#order-confirmation) .ck-pay-status-head {
  display: flex;
  align-items: flex-start;
  gap: 14px;
  margin: 0 0 20px;
  padding: 16px;
  border-radius: 10px;
  background: #fffbeb;
  color: #78350f;
}

:is(body#module-tpay-ordererror, body#order-confirmation) .ck-pay-status-head p {
  margin: 0;
  color: inherit;
  font-size: 15px;
}

:is(body#module-tpay-ordererror, body#order-confirmation) .ck-pay-status-head .ck-pay-status-lead {
  margin: 0 0 4px;
  color: #451a03;
  font-size: 17px;
  font-weight: 700;
}

:is(body#module-tpay-ordererror, body#order-confirmation) .ck-pay-status-icon {
  display: inline-flex;
  flex: 0 0 40px;
  align-items: center;
  justify-content: center;
  width: 40px;
  height: 40px;
  border-radius: 50%;
  background: #fde68a;
  color: #92400e;
  font-size: 18px;
}

body#module-tpay-ordererror .is-error .ck-pay-status-head {
  background: #fef2f2;
  color: #7f1d1d;
}

body#module-tpay-ordererror .is-error .ck-pay-status-head .ck-pay-status-lead {
  margin: 0;
  color: #7f1d1d;
}

body#module-tpay-ordererror .is-error .ck-pay-status-icon {
  background: #fecaca;
  color: #b91c1c;
}

body#module-tpay-ordererror .ck-pay-subtitle {
  margin: 0 0 10px;
  color: var(--ck-text);
  font-size: 17px;
  font-weight: 700;
}

body#module-tpay-ordererror .ck-pay-reasons {
  margin: 0 0 20px;
  padding: 0 0 0 22px;
  color: #374151;
  font-size: 15px;
}

body#module-tpay-ordererror .ck-pay-reasons li {
  margin: 4px 0;
  list-style: disc;
}

body#module-tpay-ordererror #content .btn-primary {
  margin: 0;
}

/* ------------------------------------------------------------------
 * Moje konto (/moje-konto): kafelki jak karty checkoutu
 * ---------------------------------------------------------------- */

body#my-account #wrapper {
  background: var(--ck-bg);
  padding-bottom: 48px;
}

body#my-account #main {
  max-width: 960px;
  margin: 0 auto;
  color: var(--ck-text);
}

body#my-account #main .page-header h1 {
  margin: 8px 0 16px;
  color: var(--ck-text);
  font-size: 26px;
  font-weight: 700;
}

body#my-account #content.page-content {
  margin-bottom: 48px;      /* odstęp od widgetu TrustMate */
  padding: 0;
  border: 0;
  background: none;
  box-shadow: none;
}

body#my-account #content > .row {
  margin: 0;
}

body#my-account #content .links {
  display: grid;
  grid-template-columns: repeat(auto-fill, minmax(260px, 1fr));
  gap: 12px;
}

body#my-account #content .links > a {
  width: auto;
  max-width: none;
  float: none;
  margin: 0;
  padding: 0;
}

/* karta: ikona w kwadracie | nazwa | › */
body#my-account #content .links .link-item {
  display: flex;
  align-items: center;
  gap: 14px;
  height: 100%;
  margin: 0;
  padding: 16px 18px;
  border: 1px solid var(--ck-border);
  border-radius: var(--ck-radius);
  background: #fff;
  box-shadow: var(--ck-shadow);
  color: var(--ck-text);
  font-size: 15px;
  font-weight: 600;
  line-height: 1.35;
  text-align: left;
  text-transform: none;
  transition: border-color .15s ease, box-shadow .15s ease;
}

body#my-account #content .links .link-item::after {
  content: "";
  flex: none;
  width: 8px;
  height: 8px;
  margin-left: auto;
  border: solid var(--ck-muted);
  border-width: 2px 2px 0 0;
  transform: rotate(45deg);
}

body#my-account #content .links > a:hover .link-item {
  border-color: var(--ck-accent);
  box-shadow: 0 4px 16px rgba(16, 24, 40, .08);
}

body#my-account #content .links .link-item .material-icons {
  display: inline-flex;
  flex: 0 0 44px;
  align-items: center;
  justify-content: center;
  width: 44px;
  height: 44px;
  margin: 0;
  padding: 0;
  border-radius: 10px;
  background: var(--ck-accent-soft);
  color: var(--ck-accent);
  font-size: 22px;
}

/* Wyloguj się: stonowane, ikona wyjścia zamiast buźki (tag_faces) */
body#my-account #content .links > a[href*="mylogout"] .link-item {
  color: var(--ck-muted);
}

body#my-account #content .links > a[href*="mylogout"] .material-icons {
  background: #f3f4f6;
  color: var(--ck-muted);
  font-size: 0;
}

body#my-account #content .links > a[href*="mylogout"] .material-icons::before {
  content: "\f2f5";
  font-family: "Font Awesome 5 Pro";
  font-size: 18px;
  font-weight: 400;
}

body#my-account #content .links > a[href*="mylogout"]:hover .link-item {
  border-color: #fecaca;
  color: #b91c1c;
}

body#my-account #content .links > a[href*="mylogout"]:hover .material-icons {
  background: #fef2f2;
  color: #b91c1c;
}

/* ------------------------------------------------------------------
 * Podstrony konta: adresy, adres, historia i szczegóły zamówienia, kupony,
 * korekty, zwroty, RODO - układ jak Moje konto / Dane osobiste
 * ---------------------------------------------------------------- */

body:is(#addresses, #address, #history, #order-detail, #discount, #order-slip, #order-follow, #module-psgdpr-gdpr) #wrapper {
  background: var(--ck-bg);
  padding-bottom: 48px;
}

body:is(#addresses, #address, #history, #order-detail, #discount, #order-slip, #order-follow, #module-psgdpr-gdpr) #main {
  max-width: 960px;
  margin: 0 auto;
  color: var(--ck-text);
}

body:is(#addresses, #address, #history, #order-detail, #discount, #order-slip, #order-follow, #module-psgdpr-gdpr) #main .page-header h1 {
  margin: 8px 0 16px;
  color: var(--ck-text);
  font-size: 26px;
  font-weight: 700;
}

/* treść w karcie */
body:is(#addresses, #address, #history, #order-detail, #discount, #order-slip, #order-follow, #module-psgdpr-gdpr) #content.page-content {
  margin-bottom: 16px;
  padding: 24px 28px;
  border: 1px solid var(--ck-border);
  border-radius: var(--ck-radius);
  background: #fff;
  box-shadow: var(--ck-shadow);
}

/* zdanie wstępu (historia, korekty) */
body:is(#addresses, #address, #history, #order-detail, #discount, #order-slip, #order-follow, #module-psgdpr-gdpr) #content.page-content > h6 {
  margin: 0 0 16px;
  color: var(--ck-muted);
  font-size: 14px;
  font-weight: 400;
  line-height: 1.5;
}

/* komunikaty (np. "Nie złożyłeś jeszcze żadnego zamówienia") */
body:is(#addresses, #address, #history, #order-detail, #discount, #order-slip, #order-follow, #module-psgdpr-gdpr) #notifications .container {
  width: auto;
  padding: 0;
}

body:is(#addresses, #address, #history, #order-detail, #discount, #order-slip, #order-follow, #module-psgdpr-gdpr) #notifications .alert {
  margin: 0 0 16px;
  padding: 12px 14px;
  border-radius: 10px;
  font-size: 14px;
}

body:is(#addresses, #address, #history, #order-detail, #discount, #order-slip, #order-follow, #module-psgdpr-gdpr) #notifications .alert ul {
  margin: 0;
  padding: 0;
  list-style: none;
}

/* puste stany ("Nie posiadasz kuponów...") - spokojnie, bez pomarańczu */
body:is(#addresses, #address, #history, #order-detail, #discount, #order-slip, #order-follow, #module-psgdpr-gdpr) #notifications :is(.alert-warning, .alert-info) {
  border: 0;
  background: #f5f6f8;
  color: var(--ck-muted);
}

body:is(#addresses, #address, #history, #order-detail, #discount, #order-slip, #order-follow, #module-psgdpr-gdpr) #notifications .alert-success {
  border: 0;
  background: #e8f6ee;
  color: #166534;
}

body:is(#addresses, #address, #history, #order-detail, #discount, #order-slip, #order-follow, #module-psgdpr-gdpr) #notifications .alert-danger {
  border: 0;
  background: #fef2f2;
  color: #b91c1c;
}

body:is(#addresses, #address, #history, #order-detail, #discount, #order-slip, #order-follow, #module-psgdpr-gdpr) #content > #notifications:last-child .alert:last-child {
  margin-bottom: 0;
}

/* linki pod treścią: Wróć do konta / Strona główna - jak w Dane osobiste */
body:is(#addresses, #address, #history, #order-detail, #discount, #order-slip, #order-follow, #module-psgdpr-gdpr) #main .page-footer {
  display: flex;
  flex-wrap: wrap;
  gap: 12px;
  margin: 0 0 48px !important;
  padding: 0;
}

body:is(#addresses, #address, #history, #order-detail, #discount, #order-slip, #order-follow, #module-psgdpr-gdpr) #main .page-footer .account-link {
  display: inline-flex;
  align-items: center;
  gap: 6px;
  margin: 0;
  padding: 10px 16px;
  border: 1px solid var(--ck-border-strong);
  border-radius: 10px;
  background: #fff;
  color: var(--ck-text);
  font-size: 14px;
  font-weight: 600;
  text-transform: none;
  box-shadow: none;
}

body:is(#addresses, #address, #history, #order-detail, #discount, #order-slip, #order-follow, #module-psgdpr-gdpr) #main .page-footer .account-link:hover {
  border-color: var(--ck-text);
  background: #fff;
  color: var(--ck-text);
}

body:is(#addresses, #address, #history, #order-detail, #discount, #order-slip, #order-follow, #module-psgdpr-gdpr) #main .page-footer .account-link .material-icons {
  margin: 0;
  font-size: 18px;
}

@media (max-width: 575px) {
  body:is(#addresses, #address, #history, #order-detail, #discount, #order-slip, #order-follow, #module-psgdpr-gdpr) #content.page-content {
    padding: 18px 16px;
  }
}

/* Tabele (historia, kupony, korekty, szczegóły zamówienia): bez siatki bootstrapa */
body:is(#addresses, #address, #history, #order-detail, #discount, #order-slip, #order-follow, #module-psgdpr-gdpr) #content .table {
  width: 100%;
  margin: 0;
  border: 0;
  border-collapse: collapse;
  background: none;
  font-size: 14px;
}

body:is(#addresses, #address, #history, #order-detail, #discount, #order-slip, #order-follow, #module-psgdpr-gdpr) #content .table thead th {
  padding: 0 10px 10px;
  border: 0;
  border-bottom: 1px solid var(--ck-border);
  background: none;
  color: var(--ck-muted);
  font-size: 12px;
  font-weight: 600;
  letter-spacing: .04em;
  text-align: left;
  text-transform: uppercase;
  vertical-align: bottom;
}

body:is(#addresses, #address, #history, #order-detail, #discount, #order-slip, #order-follow, #module-psgdpr-gdpr) #content .table tbody > tr > th,
body:is(#addresses, #address, #history, #order-detail, #discount, #order-slip, #order-follow, #module-psgdpr-gdpr) #content .table tbody > tr > td {
  padding: 14px 10px;
  border: 0;
  border-bottom: 1px solid #eef0f3;
  background: none;
  color: var(--ck-text);
  vertical-align: middle;
}

body:is(#addresses, #address, #history, #order-detail, #discount, #order-slip, #order-follow, #module-psgdpr-gdpr) #content .table tbody > tr:last-child > * {
  border-bottom: 0;
}

body:is(#addresses, #address, #history, #order-detail, #discount, #order-slip, #order-follow, #module-psgdpr-gdpr) #content .table-striped tbody tr:nth-of-type(odd) {
  background: none;
}

body:is(#addresses, #address, #history, #order-detail, #discount, #order-slip, #order-follow, #module-psgdpr-gdpr) #content .table tbody > tr > th {
  font-weight: 700;
}

body:is(#addresses, #address, #history, #order-detail, #discount, #order-slip, #order-follow, #module-psgdpr-gdpr) #content .table thead th:first-child,
body:is(#addresses, #address, #history, #order-detail, #discount, #order-slip, #order-follow, #module-psgdpr-gdpr) #content .table tbody > tr > :first-child {
  padding-left: 0;
}

body:is(#addresses, #address, #history, #order-detail, #discount, #order-slip, #order-follow, #module-psgdpr-gdpr) #content .table thead th:last-child,
body:is(#addresses, #address, #history, #order-detail, #discount, #order-slip, #order-follow, #module-psgdpr-gdpr) #content .table tbody > tr > :last-child {
  padding-right: 0;
}

/* historia: data i kwota bez łamania ("2026-03-" / "31") */
body#history #content .table tbody > tr > :nth-child(2),
body#history #content .table tbody > tr > :nth-child(3) {
  white-space: nowrap;
}

/* status zamówienia: kolor z PrestaShop (inline), kształt pigułki */
body:is(#addresses, #address, #history, #order-detail, #discount, #order-slip, #order-follow, #module-psgdpr-gdpr) #content .label-pill {
  display: inline-block;
  padding: 3px 10px;
  border-radius: 10px;      /* długi status łamie się na 2 linie */
  font-size: 12px;
  font-weight: 600;
  line-height: 1.5;
}

/* Szczegóły / Zamów ponownie */
body:is(#addresses, #address, #history, #order-detail, #discount, #order-slip, #order-follow, #module-psgdpr-gdpr) #content .order-actions {
  text-align: right;
  white-space: nowrap;
}

/* jedna pod drugą - obok siebie tabela wychodziła poza kartę */
body:is(#addresses, #address, #history, #order-detail, #discount, #order-slip, #order-follow, #module-psgdpr-gdpr) #content .order-actions a {
  display: flex;
  align-items: center;
  justify-content: center;
  width: 100%;
  margin: 0 0 6px;
  padding: 6px 12px;
  border: 1px solid var(--ck-border-strong);
  border-radius: var(--ck-radius-sm);
  color: var(--ck-text);
  font-size: 13px;
  font-weight: 600;
  text-decoration: none;
}

body:is(#addresses, #address, #history, #order-detail, #discount, #order-slip, #order-follow, #module-psgdpr-gdpr) #content .order-actions a[data-link-action="view-order-details"] {
  border-color: var(--ck-accent-soft);
  background: var(--ck-accent-soft);
  color: var(--ck-accent);
}

body:is(#addresses, #address, #history, #order-detail, #discount, #order-slip, #order-follow, #module-psgdpr-gdpr) #content .order-actions a:hover {
  border-color: var(--ck-text);
}

body:is(#addresses, #address, #history, #order-detail, #discount, #order-slip, #order-follow, #module-psgdpr-gdpr) #content .order-actions a[data-link-action="view-order-details"]:hover {
  border-color: #ffe4da;
  background: #ffe4da;
  color: var(--ck-accent-hover);
}

/* telefon: zamówienia / kupony / korekty jako karty */
body:is(#addresses, #address, #history, #order-detail, #discount, #order-slip, #order-follow, #module-psgdpr-gdpr) #content :is(.orders .order, .cart-rules .cart-rule, .credit-slips .credit-slip) {
  margin: 0 0 10px;
  padding: 14px 16px;
  border: 1px solid var(--ck-border);
  border-radius: var(--ck-radius-sm);
  background: #fff;
}

body:is(#addresses, #address, #history, #order-detail, #discount, #order-slip, #order-follow, #module-psgdpr-gdpr) #content .order-actions a:last-child {
  margin-bottom: 0;
}

body:is(#addresses, #address, #history, #order-detail, #discount, #order-slip, #order-follow, #module-psgdpr-gdpr) #content .orders .order h3 {
  margin: 0 0 4px;
  color: var(--ck-text);
  font-size: 15px;
  font-weight: 700;
}

body:is(#addresses, #address, #history, #order-detail, #discount, #order-slip, #order-follow, #module-psgdpr-gdpr) #content .orders .order :is(.date, .total) {
  color: var(--ck-muted);
  font-size: 13px;
}

body:is(#addresses, #address, #history, #order-detail, #discount, #order-slip, #order-follow, #module-psgdpr-gdpr) #content .orders .order .total {
  margin-bottom: 6px;
  color: var(--ck-text);
  font-weight: 600;
}

body:is(#addresses, #address, #history, #order-detail, #discount, #order-slip, #order-follow, #module-psgdpr-gdpr) #content .orders .order .material-icons {
  color: var(--ck-accent);
  font-size: 22px;
}

body:is(#addresses, #address, #history, #order-detail, #discount, #order-slip, #order-follow, #module-psgdpr-gdpr) #content :is(.cart-rules, .credit-slips) ul {
  margin: 0;
  padding: 0;
  list-style: none;
}

body:is(#addresses, #address, #history, #order-detail, #discount, #order-slip, #order-follow, #module-psgdpr-gdpr) #content :is(.cart-rules, .credit-slips) li {
  display: flex;
  justify-content: space-between;
  gap: 12px;
  padding: 4px 0;
  font-size: 14px;
}

body:is(#addresses, #address, #history, #order-detail, #discount, #order-slip, #order-follow, #module-psgdpr-gdpr) #content :is(.cart-rules, .credit-slips) li strong {
  color: var(--ck-muted);
  font-weight: 400;
}

/* Szczegóły zamówienia: każdy .box jako karta */
body#order-detail #content.page-content {
  padding: 0;
  border: 0;
  background: none;
  box-shadow: none;
}

body#order-detail #content .box {
  margin: 0 0 12px;
  padding: 20px 24px;
  border: 1px solid var(--ck-border);
  border-radius: var(--ck-radius);
  background: #fff;
  box-shadow: var(--ck-shadow);
}

body#order-detail #content .box h3,
body#order-detail #content .box h4 {
  margin: 0 0 12px;
  color: var(--ck-text);
  font-size: 16px;
  font-weight: 700;
  text-transform: none;
}

/* numer i data + "Zamów ponownie" */
body#order-detail #order-infos .box:first-child .row {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  gap: 12px;
  margin: 0;
}

body#order-detail #order-infos .box:first-child .row > [class*="col-"] {
  flex: 1 1 auto;
  width: auto;
  float: none;
  padding: 0;
}

body#order-detail #order-infos .box:first-child .row > .clearfix {
  display: none;
}

body#order-detail #order-infos .box:first-child strong {
  font-size: 16px;
}

body#order-detail #order-infos .button-primary {
  display: inline-flex;
  padding: 8px 14px;
  border: 1px solid var(--ck-border-strong);
  border-radius: var(--ck-radius-sm);
  background: #fff;
  color: var(--ck-text);
  font-size: 14px;
  font-weight: 600;
  text-transform: none;
}

body#order-detail #order-infos .button-primary:hover {
  border-color: var(--ck-text);
}

/* przewoźnik, płatność, faktura... */
body#order-detail #order-infos ul {
  margin: 0;
  padding: 0;
  list-style: none;
}

body#order-detail #order-infos li {
  padding: 4px 0;
  font-size: 14px;
}

body#order-detail #order-infos li strong {
  display: inline-block;
  min-width: 150px;
  color: var(--ck-muted);
  font-weight: 400;
}

/* "przewoźnik" (małą literą w tłumaczeniu) obok "Metoda płatności" */
body#order-detail #order-infos li strong::first-letter {
  text-transform: uppercase;
}

/* zamówienie świąteczne (order-detail.tpl): znacznik + data jak w kalendarzu */
body#order-detail #order-infos .ck-od-xmas-tag {
  display: inline-flex;
  align-items: center;
  gap: 6px;
  padding: 3px 10px;
  border-radius: 999px;
  background: #e8f6ee;
  color: #166534;
  font-size: 13px;
  font-weight: 600;
}

body#order-detail #order-infos .ck-od-xmas-date {
  padding: 1px 8px;
  border-radius: 6px;
  background: #f3f4f6;
  color: var(--ck-text);
  font-weight: 700;
  font-variant-numeric: tabular-nums;
}

body#order-detail #order-infos li a {
  color: var(--ck-accent);
  font-weight: 600;
}

/* adresy obok siebie */
body#order-detail .addresses {
  display: grid;
  grid-template-columns: repeat(auto-fit, minmax(260px, 1fr));
  gap: 12px;
  margin: 0 0 12px;
}

body#order-detail .addresses > [class*="col-"] {
  width: auto;
  max-width: none;
  float: none;
  padding: 0;
}

body#order-detail .addresses > .clearfix {
  display: none;
}

body#order-detail .addresses .box {
  height: 100%;
  margin: 0;
}

body#order-detail .addresses address {
  margin: 0;
  color: #4b5563;
  font-size: 14px;
  line-height: 1.55;
}

body#order-detail .addresses .address-company {
  color: var(--ck-text);
  font-weight: 600;
}

body#order-detail .addresses .address-company::before {
  content: "\f1ad";
  margin-right: 6px;
  color: var(--ck-muted);
  font-family: "Font Awesome 5 Pro";
  font-weight: 400;
}

body#order-detail .addresses .address-vat {
  display: inline-block;
  margin: 2px 0;
  padding: 0 8px;
  border-radius: 6px;
  background: #f3f4f6;
  color: var(--ck-text);
  font-size: 13px;
  font-weight: 600;
  line-height: 22px;
  font-variant-numeric: tabular-nums;
}

/* produkty: podsumowanie w stopce tabeli */
body#order-detail #order-products tfoot td {
  padding: 8px 0;
  border: 0;
  background: none;
  color: var(--ck-muted);
  font-size: 14px;
}

body#order-detail #order-products tfoot tr:first-child td {
  padding-top: 16px;
  border-top: 1px solid var(--ck-border);
}

body#order-detail #order-products tfoot tr:last-child td {
  color: var(--ck-text);
  font-size: 16px;
  font-weight: 700;
}

/* telefon: produkty / suma / wysyłka jako listy w kartach (theme: .order-items
 * padding 0 !important - tekst dotykał krawędzi; wiersze bootstrapa z wcięciami) */
body#order-detail #content .order-items.box {
  padding: 6px 24px !important;
}

body#order-detail .order-items .order-item {
  padding: 12px 0;
  border-bottom: 1px solid #eef0f3;
  font-size: 14px;
}

body#order-detail .order-items .order-item:last-child {
  border-bottom: 0;
}

body#order-detail .order-items .order-item .row,
body#order-detail .order-totals .order-total.row {
  display: flex;
  margin: 0;
}

/* clearfix ::before/::after wierszy bootstrapa w flexie - kwoty lądowały na środku */
body#order-detail .order-items .order-item .row::before,
body#order-detail .order-items .order-item .row::after,
body#order-detail .order-totals .order-total.row::before,
body#order-detail .order-totals .order-total.row::after {
  display: none;
}

body#order-detail .order-items .order-item [class*="col-"],
body#order-detail .order-totals .order-total [class*="col-"] {
  flex: 0 0 auto;
  width: auto;
  max-width: none;
  float: none;
  padding: 0;
}

body#order-detail .order-items .order-item > .row {
  flex-direction: column;
  gap: 4px;
}

body#order-detail .order-items .name {
  color: var(--ck-text);
  font-weight: 600;
}

/* cena jedn. | ilość | wartość */
body#order-detail .order-items .qty .row {
  gap: 12px;
  color: var(--ck-muted);
}

body#order-detail .order-items .qty .row > :nth-child(2)::before {
  content: "× ";
}

body#order-detail .order-items .qty .row > :last-child {
  margin-left: auto;
  color: var(--ck-text);
  font-weight: 600;
}

body#order-detail .order-totals .order-total {
  justify-content: space-between;
  gap: 12px;
  padding: 6px 0;
  color: var(--ck-muted);
  font-size: 14px;
}

body#order-detail .order-totals .order-total strong {
  font-weight: 400;
}

body#order-detail .order-totals .order-total > :last-child {
  color: var(--ck-text);
}

body#order-detail .order-totals .order-total:last-child {
  margin-top: 4px;
  padding-top: 10px;
  border-top: 1px solid var(--ck-border);
  color: var(--ck-text);
  font-size: 16px;
  font-weight: 700;
}

body#order-detail .order-totals .order-total:last-child strong {
  font-weight: 700;
}

body#order-detail .shipping-lines ul {
  margin: 0;
  padding: 0;
  list-style: none;
}

body#order-detail .shipping-lines li {
  display: flex;
  justify-content: space-between;
  gap: 12px;
  padding: 4px 0;
  font-size: 14px;
}

body#order-detail .shipping-lines li strong {
  color: var(--ck-muted);
  font-weight: 400;
}

body#order-detail .shipping-lines li strong::first-letter {
  text-transform: uppercase;
}

/* wiadomości do zamówienia */
body#order-detail .messages .message {
  margin: 0;
  padding: 10px 0;
  border-bottom: 1px solid #eef0f3;
  font-size: 14px;
}

body#order-detail .order-message-form .form-group.row {
  margin: 0 0 12px;
}

body#order-detail .order-message-form .form-group.row > [class*="col-md-"] {
  width: 100%;
  max-width: 100%;
  float: none;
  padding: 0;
}

body#order-detail .order-message-form .form-control-label {
  padding: 0 0 6px;
  font-size: 14px;
  font-weight: 600;
  text-align: left;
}

body#order-detail .order-message-form .form-control-label:empty {
  display: none;
}

body#order-detail .order-message-form .form-control {
  padding: 10px 14px;
  border: 1px solid var(--ck-border-strong);
  border-radius: var(--ck-radius-sm);
  background-color: #fff;
  font-size: 15px;
  box-shadow: none;
}

body#order-detail .order-message-form select.form-control {
  height: 48px;
}

body#order-detail .order-message-form .form-control:focus {
  outline: none;
  border-color: var(--ck-accent);
  box-shadow: 0 0 0 4px var(--ck-accent-ring);
}

/* theme: .text-sm-center (!important) - przycisk do lewej jak w pozostałych formularzach */
body#order-detail .order-message-form .form-footer {
  display: flex;
  justify-content: flex-start;
  padding: 0;
}

body#order-detail .order-message-form .form-control-submit {
  float: none;
  padding: 12px 22px;
  border: 0;
  border-radius: 10px;
  background: var(--ck-accent);
  color: #fff;
  font-size: 15px;
  font-weight: 600;
  text-transform: none;
}

body#order-detail .order-message-form .form-control-submit:hover {
  background: var(--ck-accent-hover);
}

/* RODO (psgdpr): sekcje oddzielone linią zamiast szarych bloków */
body#module-psgdpr-gdpr #content .container {
  width: auto;
  padding: 0;
}

body#module-psgdpr-gdpr #content .page_content {
  margin: 0;
}

body#module-psgdpr-gdpr #content .psgdprinfo17 {
  float: none;
  margin: 0;
  padding: 0 0 20px;
  border-bottom: 1px solid var(--ck-border);
  background: none;
}

body#module-psgdpr-gdpr #content .psgdprinfo17 + .psgdprinfo17 {
  padding-top: 20px;
}

body#module-psgdpr-gdpr #content .psgdprinfo17:last-child {
  padding-bottom: 0;
  border-bottom: 0;
}

body#module-psgdpr-gdpr #content .psgdprinfo17 h2 {
  margin: 0 0 8px;
  color: var(--ck-text);
  font-size: 17px;
  font-weight: 700;
}

body#module-psgdpr-gdpr #content .psgdprinfo17 p {
  margin: 0 0 12px;
  color: #4b5563;
  font-size: 14px;
  line-height: 1.6;
}

body#module-psgdpr-gdpr #content .psgdprinfo17 p a {
  color: var(--ck-accent);
  font-weight: 600;
}

body#module-psgdpr-gdpr #content .psgdprgetdatabtn17 {
  float: none;
  display: inline-flex;
  margin: 0 8px 0 0;
  padding: 10px 16px;
  border: 1px solid var(--ck-border-strong);
  border-radius: 10px;
  background: #fff;
  color: var(--ck-text);
  font-size: 14px;
  font-weight: 600;
  text-transform: none;
  box-shadow: none;
}

body#module-psgdpr-gdpr #content .psgdprgetdatabtn17:hover {
  border-color: var(--ck-text);
  background: #fff;
  color: var(--ck-text);
}

/* Adresy (/adresy): kafelki jak w kroku 2 checkoutu */
body#addresses #content.page-content {
  display: grid;
  grid-template-columns: repeat(auto-fill, minmax(260px, 1fr));
  gap: 12px;
  padding: 0;
  border: 0;
  background: none;
  box-shadow: none;
}

body#addresses #content.page-content > * {
  grid-column: 1 / -1;
}

body#addresses #content.page-content > [class*="col-"] {
  grid-column: auto;
  width: auto;
  max-width: none;
  float: none;
  padding: 0;
}

body#addresses #content.page-content > .clearfix {
  display: none;
}

body#addresses .address {
  display: flex;
  flex-direction: column;
  height: 100%;
  margin: 0;
  padding: 16px 18px 14px;
  border: 1px solid var(--ck-border);
  border-radius: var(--ck-radius);
  background: #fff;
  box-shadow: var(--ck-shadow);
}

body#addresses .address .address-body {
  flex: 1 1 auto;
  padding: 0;
}

body#addresses .address h4 {
  margin: 0 0 8px;
  color: var(--ck-text);
  font-size: 15px;
  font-weight: 700;
}

body#addresses .address address {
  min-height: 0;
  margin: 0;
  color: #4b5563;
  font-size: 14px;
  line-height: 1.55;
}

body#addresses .address .address-company {
  color: var(--ck-text);
  font-weight: 600;
}

body#addresses .address .address-company::before {
  content: "\f1ad";
  margin-right: 6px;
  color: var(--ck-muted);
  font-family: "Font Awesome 5 Pro";
  font-weight: 400;
}

body#addresses .address .address-vat {
  display: inline-block;
  margin: 2px 0;
  padding: 0 8px;
  border-radius: 6px;
  background: #f3f4f6;
  color: var(--ck-text);
  font-size: 13px;
  font-weight: 600;
  line-height: 22px;
  font-variant-numeric: tabular-nums;
}

/* Edytuj / Usuń: pigułki jak w checkoucie */
body#addresses .address .address-footer {
  display: flex;
  gap: 6px;
  margin: 12px 0 0;
  padding: 0;
  border: 0;
  text-align: left;
}

body#addresses .address .address-footer a {
  display: inline-flex;
  align-items: center;
  gap: 4px;
  margin: 0;
  padding: 5px 10px;
  border-radius: var(--ck-radius-sm);
  color: var(--ck-muted);
  font-size: 13px;
  font-weight: 600;
  text-decoration: none;
  transition: background-color .15s ease, color .15s ease;
}

body#addresses .address .address-footer a[data-link-action="edit-address"] {
  background: var(--ck-accent-soft);
  color: var(--ck-accent);
}

body#addresses .address .address-footer a[data-link-action="edit-address"]:hover {
  background: #ffe4da;
  color: var(--ck-accent-hover);
}

body#addresses .address .address-footer a[data-link-action="delete-address"]:hover {
  background: #fef2f2;
  color: #b91c1c;
}

body#addresses .address .address-footer .material-icons {
  margin: 0;
  font-size: 15px;
}

/* "Dodaj nowy adres" jak w checkoucie */
body#addresses .addresses-footer {
  margin: 4px 0 0;
}

body#addresses .addresses-footer a {
  display: inline-flex;
  margin: 0;
  align-items: center;
  gap: 6px;
  padding: 10px 16px;
  border: 1.5px dashed var(--ck-border-strong);
  border-radius: 10px;
  background: #fff;
  color: var(--ck-text);
  font-size: 14px;
  font-weight: 600;
}

body#addresses .addresses-footer a:hover {
  border-color: var(--ck-accent);
  color: var(--ck-accent);
}

body#addresses .addresses-footer .material-icons {
  margin: 0;
  font-size: 18px;
}

body#addresses .addresses-footer a span {
  margin: 0;                /* theme: margin-top 10px, 16px */
  font-size: 14px;
}

/* Adres (/adres): formularz jak w kroku 2 (pary pól, przełącznik Firma - reguły wyżej) */
body#address #content.page-content .address-form {
  margin: 0;
}

body#address .js-address-form .form-footer {
  margin-top: 8px;
  padding: 0;
}

/* ------------------------------------------------------------------
 * Koszyk (/koszyk) - spójnie z checkoutem
 * Nie ruszamy klas używanych przez core.js / touchspin / custom.js
 * (js-cart-line-product-quantity, remove-from-cart, cart-masa-pozycji).
 * ---------------------------------------------------------------- */

body#cart #wrapper {
  background: var(--ck-bg);
  padding-top: 32px;
  padding-bottom: 48px;
}

body#cart #wrapper > .container {
  max-width: 1200px;
}

body#cart #main {
  color: var(--ck-text);
}

/* Odświeżanie koszyka. custom.js pokazuje #cart-updating-now przy zmianie ilości /
 * usuwaniu, inline script w cart-detailed.tpl chowa go po przeładowaniu listy.
 * Zasłona dopiero po 150 ms (szybkie odświeżenia nie migają, ale klik jest od razu
 * zablokowany), spinner w białym kółku na środku ekranu. */
@keyframes ck-fade-in {
  from { opacity: 0; }
  to   { opacity: 1; }
}

body#cart #cart-updating-now {
  position: fixed;
  inset: 0;
  z-index: 1000;
  background: rgba(245, 246, 248, .6);
  animation: ck-fade-in .2s ease-out .15s both;
}

body#cart #cart-updating-now i {
  display: flex;
  align-items: center;
  justify-content: center;
  position: fixed;
  top: 50%;
  left: 50%;
  width: 64px;
  height: 64px;
  margin: -32px 0 0 -32px;
  border-radius: 50%;
  background: #fff;
  box-shadow: 0 12px 32px rgba(16, 24, 40, .14);
  font-size: 28px;
  --fa-primary-color: var(--ck-accent);
  --fa-secondary-color: var(--ck-accent);
  --fa-secondary-opacity: .2;
}

body#cart #cart-updating-now::after {
  content: "Aktualizuję koszyk…";
  position: fixed;
  top: calc(50% + 44px);
  left: 0;
  right: 0;
  color: var(--ck-text);
  font-size: 14px;
  font-weight: 600;
  text-align: center;
}

/* lista produktów: zamiast slideDown (cała strona podskakiwała przy każdym
 * odświeżeniu) widoczna od razu i krótko się pojawia; slideDown z inline scriptu
 * na widocznym elemencie nic nie robi */
body#cart .cart-overview.js-cart {
  display: block;
  animation: ck-fade-in .2s ease-out;
}

@media (prefers-reduced-motion: reduce) {
  body#cart #cart-updating-now,
  body#cart .cart-overview.js-cart {
    animation: none;
  }
}

body#cart .cart-grid {
  display: flex;
  flex-wrap: wrap;
  align-items: flex-start;
}

@media (min-width: 992px) {
  body#cart .cart-grid-right {
    position: sticky;
    top: 96px;
  }
}

/* Lista produktów */
body#cart .cart-container {
  margin-bottom: 16px;
  border: 1px solid var(--ck-border);
  border-radius: var(--ck-radius);
  background: #fff;
  box-shadow: var(--ck-shadow);
  overflow: hidden;
}

body#cart .cart-container > .card-block {
  padding: 20px 24px 0;
}

body#cart .cart-container h1 {
  margin: 0;
  font-size: 24px;
  font-weight: 700;
  text-transform: none;
  color: var(--ck-text);
}

body#cart .cart-container .card-block.mt-2 {
  margin-top: 12px !important;
}

body#cart .inpost-free-delivery {
  display: inline-block;     /* flex rozbijał <b> i tekst na kolumny */
  margin: 0;
  padding: 6px 12px;
  border: 0 !important;
  border-radius: 10px;
  background: #e8f6ee !important;
  color: #166534 !important;
  font-size: 13px;
  line-height: 1.5;
}

/* pigułka darmowej wysyłki + pasek postępu siedzą w .cart-overview (cart-detailed.tpl),
 * w cart.tpl zostaje pusty blok na komunikaty sezonowe */
body#cart .cart-container > .card-block.mt-2:not(:has(*)) {
  display: none;
}

body#cart .ck-cart-free {
  padding: 4px 0 14px;
}

body#cart .ck-cart-free .ck-free-wrap {
  margin-top: 0;
}

body#cart .ck-free-progress {
  height: 4px;
}

body#cart .ck-free-caption {
  font-size: 13px;
}

/* szeroki ekran: pigułka w linii z nagłówkiem "Koszyk", do prawej. Pozycjonowana CSS-em,
 * bo musi zostać w .cart-overview (odświeżanym AJAX-em po zmianie ilości) */
@media (min-width: 1200px) {
  body#cart .cart-container {
    position: relative;
  }

  body#cart .ck-cart-free {
    position: absolute;
    top: 17px;
    right: 24px;
    padding: 0;
  }

  body#cart .ck-cart-free .ck-free-caption {
    text-align: right;
  }

  /* miejsce na pasek i podpis pod pigułką */
  body#cart .cart-overview:has(.ck-free-progress) {
    padding-top: 46px;
  }
}

body#cart .cart-overview {
  padding: 8px 24px 8px;
}

body#cart .cart-items {
  margin: 0;
  padding: 0;
}

body#cart .cart-items .cart-item {
  margin: 0;
  padding: 18px 0;
  border-bottom: 1px solid var(--ck-border);
}

body#cart .cart-items .cart-item:last-child {
  border-bottom: 0;
}

body#cart .product-line-grid {
  display: grid;
  grid-template-columns: 96px minmax(0, 1fr) auto;
  gap: 16px;
  align-items: center;
  margin: 0;
}

body#cart .product-line-grid > [class*="col-"] {
  width: auto;
  max-width: none;
  float: none;
  padding: 0;
}

body#cart .product-line-grid > .clearfix {
  display: none;
}

body#cart .product-line-grid-left img {
  width: 96px;
  height: 96px;
  border-radius: 10px;
  object-fit: cover;
}

body#cart .product-line-grid-body > br {
  display: none;
}

body#cart .product-line-grid-body .product-line-info {
  margin: 0 0 4px;
  font-size: 14px;
  color: var(--ck-muted);
}

body#cart .product-line-grid-body .product_name {
  color: var(--ck-text);
  font-size: 15px;
  font-weight: 700;
  line-height: 1.35;
}

body#cart .product-line-grid-body .product_name:hover {
  color: var(--ck-accent);
}

body#cart .product-line-grid-body .product-price {
  font-size: 14px;
  font-weight: 400;
  color: var(--ck-muted);
}

body#cart .product-line-grid-body .unit-price-cart {
  display: none;            /* dubluje cenę porcji */
}

body#cart .product-line-grid-body .label {
  color: var(--ck-muted);
}

body#cart .product-line-grid-body .value {
  color: var(--ck-text);
  font-weight: 700;
}

/* Prawa część: ilość, cena, usuń */
body#cart .product-line-actions > .row,
body#cart .product-line-actions > .row > .col-md-10 > .row {
  display: flex;
  align-items: center;
  gap: 20px;
  margin: 0;
}

body#cart .product-line-actions [class*="col-"] {
  width: auto;
  max-width: none;
  float: none;
  padding: 0;
}

body#cart .product-line-actions .hidden-md-up {
  display: none;
}

body#cart .product-line-actions .price {
  min-width: 96px;
  text-align: right;
  line-height: 1.3;
}

body#cart .product-line-actions .price > br {
  display: none;
}

body#cart .product-line-actions .product-price strong {
  font-size: 16px;
  font-weight: 700;
  color: var(--ck-text);
}

body#cart .cart-masa-pozycji {
  display: block;
  margin-top: 2px;
  font-size: 12px;
  font-weight: 600;
  color: var(--ck-muted) !important;
}

body#cart .remove-from-cart {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  width: 36px;
  height: 36px;
  border-radius: 8px;
  color: #9aa1a9 !important;
  transition: background-color .15s ease, color .15s ease;
}

body#cart .remove-from-cart:hover {
  background: #fdecec;
  color: #c62828 !important;
}

body#cart .remove-from-cart .material-icons {
  float: none !important;
  font-size: 20px;
}

/* Ilość: [-] 1 [+] */
body#cart .bootstrap-touchspin {
  display: inline-flex;
  align-items: stretch;
  width: auto;
  height: 40px;
  border: 1px solid var(--ck-border-strong);
  border-radius: 10px;
  background: #fff;
  overflow: hidden;
}

body#cart .bootstrap-touchspin .input-group-btn-vertical {
  display: contents;
}

body#cart .bootstrap-touchspin .js-cart-line-product-quantity {
  order: 1;
  width: 40px;
  height: 100%;
  padding: 0;
  border: 0;
  background: transparent;
  color: var(--ck-text);
  font-size: 15px;
  font-weight: 700;
  text-align: center;
  box-shadow: none;
}

body#cart .bootstrap-touchspin .btn-touchspin {
  position: static;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  width: 36px;
  height: 100%;
  margin: 0;
  padding: 0;
  border: 0;
  border-radius: 0;
  background: #fff;
  color: var(--ck-text);
  font-size: 0;
}

body#cart .bootstrap-touchspin .btn-touchspin:hover {
  background: var(--ck-bg);
}

body#cart .bootstrap-touchspin .bootstrap-touchspin-down { order: 0; }
body#cart .bootstrap-touchspin .bootstrap-touchspin-up   { order: 2; }

body#cart .bootstrap-touchspin .btn-touchspin .material-icons {
  display: none;
}

body#cart .bootstrap-touchspin .bootstrap-touchspin-down::before,
body#cart .bootstrap-touchspin .bootstrap-touchspin-up::before {
  font-size: 18px;
  font-weight: 600;
  line-height: 1;
}

body#cart .bootstrap-touchspin .bootstrap-touchspin-down::before { content: "\2212"; }
body#cart .bootstrap-touchspin .bootstrap-touchspin-up::before   { content: "+"; }

@media (max-width: 767px) {
  body#cart .cart-container > .card-block,
  body#cart .cart-overview {
    padding-left: 16px;
    padding-right: 16px;
  }
  body#cart .product-line-grid {
    grid-template-columns: 72px minmax(0, 1fr);
    gap: 12px;
  }
  body#cart .product-line-grid-left img {
    width: 72px;
    height: 72px;
  }
  body#cart .product-line-actions {
    grid-column: 1 / -1;
  }
  body#cart .product-line-actions > .row {
    justify-content: space-between;
  }
  body#cart .product-line-actions > .row > .col-md-10 {
    flex: 1 1 auto;
  }
  body#cart .product-line-actions > .row > .col-md-10 > .row {
    justify-content: space-between;
  }
}

/* Pod listą: kontynuuj zakupy / przejdź do kasy */
body#cart .cart-bottom-actions {
  margin: 0 0 24px;
  padding: 0;
}

body#cart .cart-bottom-actions > .row {
  display: flex;
  flex-wrap: wrap;
  gap: 12px;
  margin: 0;
}

/* clearfix ::before/::after w .row flex + gap zabierał miejsce */
body#cart .cart-bottom-actions > .row::before,
body#cart .cart-bottom-actions > .row::after {
  display: none;
}

/* karty wyśrodkowane, przyciski równej szerokości */
body#cart .cart-bottom-actions > .row > [class*="col-"] {
  display: flex;
  flex: 1 1 260px;
  flex-direction: column;
  align-items: center;
  width: auto;
  max-width: none;
  float: none;
  margin: 0 !important;
  padding: 16px 20px;
  border: 1px solid var(--ck-border);
  border-radius: var(--ck-radius);
  background: #fff;
  color: var(--ck-muted);
  font-size: 14px;
  text-align: center;
}

body#cart .cart-bottom-actions > .row > [class*="col-"] br {
  display: none;
}

body#cart .cart-bottom-actions a.btn-primary,
body#cart .cart-bottom-actions a.label {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  gap: 8px;
  min-width: 240px;
  margin-top: 10px;
  padding: 10px 18px;
  border: 1px solid var(--ck-border-strong);
  border-radius: 10px;
  background: #fff;
  color: var(--ck-text);
  font-size: 15px;
  font-weight: 600;
  text-transform: none;
  box-shadow: none;
}

body#cart .cart-bottom-actions a.btn-primary:hover,
body#cart .cart-bottom-actions a.label:hover {
  border-color: var(--ck-text);
  background: #fff;
  color: var(--ck-text);
}

/* pusty koszyk (cart-empty.tpl): zamiast tekstu i przycisku jest sam link a.label
 * z chevron_left - przycisk jak w pełnym koszyku, na dole karty w linii z "Przejdź do kasy" */
body#cart .cart-bottom-actions a.label {
  margin-top: auto;
  line-height: 25px; /* jak .btn-primary z motywu - równa wysokość obu przycisków */
}

body#cart .cart-bottom-actions a.label .material-icons {
  display: none;
}

body#cart .cart-bottom-actions a.label::before {
  content: "\f217";
  font-family: "Font Awesome 5 Pro";
  font-weight: 400;
}

/* pusty koszyk: bez "Przejdź do kasy" (zamówienie i tak wraca do koszyka).
 * .no-items pojawia się też po usunięciu ostatniego produktu AJAX-em */
body#cart:has(.cart-overview .no-items) .cart-bottom-actions .text-right {
  display: none;
}

body#cart .cart-bottom-actions .text-right a.btn-primary {
  border-color: var(--ck-accent);
  background: var(--ck-accent);
  color: #fff;
}

body#cart .cart-bottom-actions .text-right a.btn-primary:hover {
  border-color: var(--ck-accent-hover);
  background: var(--ck-accent-hover);
  color: #fff;
}

@media (max-width: 767px) {
  body#cart .cart-bottom-actions > .row > [class*="col-"] {
    flex: 1 1 100%;
  }
  body#cart .cart-bottom-actions a.btn-primary,
  body#cart .cart-bottom-actions a.label {
    align-self: stretch;
    min-width: 0;
  }
}

/* Podsumowanie */
body#cart .cart-summary {
  border: 1px solid var(--ck-border);
  border-radius: var(--ck-radius);
  background: #fff;
  box-shadow: var(--ck-shadow);
  overflow: hidden;
}

body#cart .cart-summary .card-block {
  padding: 20px;
  border: 0;
}

body#cart .cart-summary .cart-summary-line {
  display: flex;
  flex-wrap: wrap;
  justify-content: space-between;
  gap: 4px 12px;
  margin: 0 0 10px;
  font-size: 14px;
  color: var(--ck-muted);
  clear: both;
}

body#cart .cart-summary .cart-summary-line::before,
body#cart .cart-summary .cart-summary-line::after {
  display: none;
}

body#cart .cart-summary .cart-summary-line .label {
  color: var(--ck-text);
  font-weight: 400;
}

body#cart .cart-summary .cart-summary-line .value {
  color: var(--ck-text);
  font-weight: 600;
}

body#cart .cart-summary .cart-summary-line > div:has(small:empty) {
  display: none;
}

body#cart .cart-summary .cart-summary-line:not([id]):not(.cart-total) {
  display: block;
  font-size: 13px;
  line-height: 1.5;
}

body#cart .cart-summary .cart-summary-line:has(.label.sub:empty) {
  display: none;
}

body#cart .cart-summary .separator {
  margin: 0;
  border-color: var(--ck-border);
}

body#cart .cart-summary .block-promo {
  padding: 0 20px 16px;
}

body#cart .cart-summary .cart-detailed-totals > .card-block:last-child,
body#cart .cart-summary .cart-detailed-totals > .separator + .card-block {
  background: #fafbfc;
}

body#cart .cart-summary .cart-total {
  flex-wrap: nowrap;
  align-items: baseline;
  margin: 0;
}

body#cart .cart-summary .cart-total .label {
  font-size: 15px;
  font-weight: 700;
}

body#cart .cart-summary .cart-total .value {
  font-size: 20px;
  font-weight: 800;
  color: var(--ck-text) !important;
}

/* separator między sumą a przyciskiem "Przejdź do kasy" - zbędny */
body#cart .cart-summary .cart-detailed-totals > hr.separator:last-child {
  display: none;
}

body#cart .cart-detailed-actions {
  padding: 0 20px 20px !important;
  background: #fafbfc;
}

body#cart .cart-detailed-actions .btn-primary {
  display: block;
  width: 100%;
  min-height: 52px;
  padding: 14px 24px;
  border: 0;
  border-radius: 10px;
  background: var(--ck-accent);
  color: #fff;
  font-size: 16px;
  font-weight: 600;
  text-transform: none;
  box-shadow: 0 1px 2px rgba(16, 24, 40, .08);
}

body#cart .cart-detailed-actions .btn-primary:hover {
  background: var(--ck-accent-hover);
  color: #fff;
}

/* Zaufanie pod podsumowaniem */
body#cart #block-reassurance {
  margin-top: 16px;
}

body#cart #block-reassurance li,
body#cart #block-reassurance .block-reassurance-item {
  border: 0 !important;
}

body#cart #block-reassurance span,
body#cart #block-reassurance p {
  font-size: 13px !important;
  color: var(--ck-muted) !important;
}

body#cart #block-reassurance img {
  opacity: .75;
}

/* ------------------------------------------------------------------
 * Kod rabatowy (koszyk + podsumowanie checkoutu)
 * ---------------------------------------------------------------- */

body#cart .cart-summary .promo-code-button,
body#checkout #js-checkout-summary .promo-code-button {
  display: inline-flex;
  align-items: center;
  gap: 6px;
  margin: 0;
  padding: 0;
  color: var(--ck-accent);
  font-size: 14px;
  font-weight: 600;
  text-decoration: none;
}

body#cart .cart-summary .promo-code-button::after,
body#checkout #js-checkout-summary .promo-code-button::after {
  content: '';
  width: 6px;
  height: 6px;
  margin: -3px 0 0 4px;
  border-right: 2px solid currentColor;
  border-bottom: 2px solid currentColor;
  transform: rotate(45deg);
  transition: transform .2s ease;
}

body#cart .cart-summary .promo-code-button[aria-expanded="true"]::after,
body#checkout #js-checkout-summary .promo-code-button[aria-expanded="true"]::after {
  margin-top: 3px;
  transform: rotate(-135deg);
}

body#cart .cart-summary .block-promo p,
body#checkout #js-checkout-summary .block-promo p {
  margin: 0;
  padding: 0;
}

body#cart .block-promo .promo-code,
body#checkout .block-promo .promo-code {
  margin-top: 12px;
  padding: 0;
  background: none;
}

/* Uwaga o darmowej dostawie - dyskretna notka zamiast dużego alertu */
body#cart .block-promo .promo-code .alert-warning,
body#checkout .block-promo .promo-code .alert-warning {
  margin: 0 0 12px;
  padding: 10px 12px;
  border: 1px solid #fde3c4;
  border-radius: var(--ck-radius-sm);
  background: #fff8ef;
  color: #7a4b12;
  font-size: 13px;
  line-height: 1.5;
  text-align: left;
}

body#cart .block-promo .promo-code form,
body#checkout .block-promo .promo-code form {
  display: flex;
  gap: 8px;
  text-align: left;
}

body#cart .block-promo .promo-input,
body#checkout .block-promo .promo-input {
  flex: 1 1 auto;
  width: 1%;
  min-width: 0;
  height: 44px;
  padding: 0 12px;
  border: 1px solid var(--ck-border-strong);
  border-radius: var(--ck-radius-sm);
  background: #fff;
  color: var(--ck-text);
  font-size: 15px;
  text-indent: 0;
  text-transform: uppercase;
  letter-spacing: .04em;
  transition: border-color .15s, box-shadow .15s;
}

body#cart .block-promo .promo-input::placeholder,
body#checkout .block-promo .promo-input::placeholder {
  color: #9aa1a9;
  text-transform: none;
  letter-spacing: 0;
}

body#cart .block-promo .promo-input:focus,
body#checkout .block-promo .promo-input:focus {
  border-color: var(--ck-accent);
  outline: 0;
  box-shadow: 0 0 0 3px var(--ck-accent-ring);
}

body#cart .block-promo .promo-input + button,
body#checkout .block-promo .promo-input + button {
  flex: 0 0 auto;
  height: 44px;
  margin: 0;
  padding: 0 18px;
  border: 1px solid var(--ck-text);
  border-radius: var(--ck-radius-sm);
  background: #fff;
  color: var(--ck-text);
  font-size: 15px;
  font-weight: 600;
  text-transform: none;
  box-shadow: none;
  animation: none;
}

body#cart .block-promo .promo-input + button:hover,
body#checkout .block-promo .promo-input + button:hover {
  background: var(--ck-text);
  color: #fff;
}

body#cart .block-promo .promo-code .alert-danger,
body#checkout .block-promo .promo-code .alert-danger {
  margin: 8px 0 0;
  padding: 8px 12px;
  border: 1px solid #fecaca;
  border-radius: var(--ck-radius-sm);
  background: #fef2f2;
  color: #b91c1c;
  font-size: 13px;
}

body#cart .block-promo .promo-code .alert-danger::after,
body#checkout .block-promo .promo-code .alert-danger::after {
  content: none;
}

body#cart .block-promo .promo-code .alert-danger .material-icons,
body#checkout .block-promo .promo-code .alert-danger .material-icons {
  font-size: 16px;
  vertical-align: -3px;
}

/* Dodane kody */
body#cart .block-promo .promo-name,
body#checkout .block-promo .promo-name {
  margin: 0 0 10px;
  padding: 0;
}

body#cart .block-promo .promo-name .cart-summary-line,
body#checkout .block-promo .promo-name .cart-summary-line {
  display: flex;
  align-items: center;
  gap: 8px;
  padding: 8px 12px;
  border: 1px dashed #86efac;
  border-radius: var(--ck-radius-sm);
  background: #f0fdf4;
}

body#cart .block-promo .promo-name .label,
body#checkout .block-promo .promo-name .label {
  flex: 1 1 auto;
  color: var(--ck-success);
  font-weight: 600;
}

body#cart .block-promo .promo-name .float-xs-right,
body#checkout .block-promo .promo-name .float-xs-right {
  order: 2;
  float: none !important;
  font-weight: 700;
  color: var(--ck-success);
}

body#cart .block-promo .promo-name a,
body#checkout .block-promo .promo-name a {
  order: 3;
  color: var(--ck-muted);
  line-height: 1;
}

body#cart .block-promo .promo-name a:hover,
body#checkout .block-promo .promo-name a:hover {
  color: #dc2626;
}

body#cart .block-promo .promo-name a .material-icons,
body#checkout .block-promo .promo-name a .material-icons {
  font-size: 18px;
}

/* ------------------------------------------------------------------
 * Koszyk + checkout: termo box w podsumowaniu (ck-termo-box.tpl) - kafelek
 * dodatku, jasnoniebieski = "chłód" (pomarańcz zostaje dla "wybrane")
 * ---------------------------------------------------------------- */

:is(body#cart, body#checkout) .ck-termo {
  display: flex;
  align-items: flex-start;
  gap: 12px;
  margin: 12px 0 0;
  padding: 12px 14px;
  border: 1px solid #dbeafe;
  border-radius: 10px;
  background: #eff6ff;
  font-size: 13px;
  line-height: 1.45;
}

:is(body#cart, body#checkout) .ck-termo span.ck-termo-media {
  display: inline-flex;
  flex: 0 0 32px;
  align-items: center;
  justify-content: center;
  width: 32px;
  height: 32px;
  border-radius: 50%;
  background: #fff;
  color: #2563eb;
  font-size: 15px;
}

:is(body#cart, body#checkout) .ck-termo img.ck-termo-media {
  flex: 0 0 56px;
  width: 56px;
  height: auto;
  border-radius: 8px;
  background: #fff;
}

:is(body#cart, body#checkout) .ck-termo-body {
  display: flex;
  flex-direction: column;
  gap: 2px;
  min-width: 0;
}

:is(body#cart, body#checkout) .ck-termo-title {
  color: #1e3a8a;
  font-size: 14px;
  font-weight: 700;
}

:is(body#cart, body#checkout) .ck-termo-text {
  color: #475569;
}

:is(body#cart, body#checkout) .ck-termo-link {
  align-self: flex-start;
  margin-top: 4px;
  color: #2563eb;
  font-weight: 600;
  text-decoration: none;
}

:is(body#cart, body#checkout) .ck-termo-link:hover {
  color: #1d4ed8;
  text-decoration: underline;
  text-underline-offset: 3px;
}


/* ------------------------------------------------------------------
 * Kontakt (/kontakt): karta z danymi (ps_contactinfo-rich.tpl) + formularz
 * (contactform.tpl, eicaptcha) - jak karty checkoutu, większa czcionka
 * ---------------------------------------------------------------- */

body#contact #wrapper {
  background: var(--ck-bg);
  padding-bottom: 48px;
}

body#contact #wrapper > .container {
  max-width: 1200px;
}

@media (min-width: 992px) {
  body#contact #wrapper > .container > .row {
    display: flex;
    align-items: flex-start;
    gap: 24px;
    margin: 0;
  }

  body#contact #wrapper > .container > .row::before,
  body#contact #wrapper > .container > .row::after {
    display: none;
  }

  body#contact #left-column {
    flex: 0 0 360px;
    max-width: 360px;
    padding: 0;
  }

  body#contact #content-wrapper {
    flex: 1 1 0;
    min-width: 0;
    max-width: none;
    padding: 0;
  }
}

/* karta z danymi */
body#contact .contact-rich {
  margin: 0 0 16px;
  padding: 24px;
  border: 1px solid var(--ck-border);
  border-radius: var(--ck-radius);
  background: #fff;
  box-shadow: var(--ck-shadow);
  color: var(--ck-text);
}

body#contact .contact-rich h4 {
  margin: 0 0 20px;
  color: var(--ck-text);
  font-size: 22px;
  font-weight: 700;
  text-transform: none;
}

body#contact .contact-rich .block {
  display: flex;
  align-items: flex-start;
  gap: 14px;
  overflow: visible;
}

body#contact .contact-rich .block .icon {
  display: flex;
  flex: 0 0 40px;
  align-items: center;
  justify-content: center;
  width: 40px;
  height: 40px;
  border-radius: 50%;
  background: var(--ck-accent-soft);
  color: var(--ck-accent);
}

body#contact .contact-rich .block .icon i {
  font-size: 21px;
}

body#contact .contact-rich .block .data {
  flex: 1 1 auto;
  min-width: 0;
  padding-top: 0;
  color: var(--ck-text);
  font-size: 16px;
  line-height: 1.55;
}

body#contact .contact-rich .contact-label {
  display: block;
  margin: 8px 0 6px;
  font-weight: 700;
}

body#contact .contact-rich .contact-phone {
  padding: 10px 0;
}

body#contact .contact-rich .contact-phone + .contact-phone {
  border-top: 1px dashed var(--ck-border);
}

body#contact .contact-rich a {
  color: var(--ck-accent);
  font-weight: 700;
}

body#contact .contact-rich a[href^="tel:"] {
  font-size: 19px;
  letter-spacing: .01em;
}

body#contact .contact-rich a:hover {
  color: var(--ck-accent-hover);
}

body#contact .contact-rich .contact-hours {
  color: var(--ck-muted);
  font-size: 14px;
}

body#contact .contact-rich hr {
  margin: 18px 0;
  border-top: 1px solid var(--ck-border);
}

/* formularz */
body#contact #content.page-content {
  margin: 0;
  padding: 28px;
  border: 1px solid var(--ck-border);
  border-radius: var(--ck-radius);
  background: #fff;
  box-shadow: var(--ck-shadow);
}

body#contact .contact-form {
  color: var(--ck-text);
}

body#contact .contact-form h3 {
  margin: 0 0 4px;
  color: var(--ck-text);
  font-size: 22px;
  font-weight: 700;
  text-transform: none;
}

body#contact .contact-form .form-group.row {
  display: flex;
  flex-direction: column;
  margin: 0 0 18px;
}

body#contact .contact-form .form-group.row::before,
body#contact .contact-form .form-group.row::after {
  display: none;
}

body#contact .contact-form .form-group.row > [class*="col-"] {
  flex: none;
  float: none;
  width: 100%;
  max-width: 560px;
  margin: 0;
  padding: 0;
}

body#contact .contact-form .form-group.row > .col-md-9:has(textarea) {
  max-width: none;
}

body#contact .contact-form .form-group.row > .form-control-label {
  margin: 0 0 6px;
  color: var(--ck-text);
  font-size: 15px;
  font-weight: 600;
  line-height: 1.4;
  text-align: left;
}

body#contact .contact-form .form-control {
  font-size: 16px;
}

body#contact .contact-form textarea.form-control {
  height: auto;
  min-height: 150px;
  resize: vertical;
}

body#contact .contact-form .form-control-comment {
  margin-top: 4px;
  padding: 0;
  color: var(--ck-muted);
  font-size: 13px;
}

/* załącznik (bootstrap-filestyle): pole + przycisk jak w checkoucie zamiast niebieskiego */
body#contact .contact-form .bootstrap-filestyle {
  display: flex;
  width: 100%;
}

body#contact .contact-form .bootstrap-filestyle .form-control {
  flex: 1 1 auto;
  min-width: 0;
  border-right: 0;
  border-radius: var(--ck-radius-sm) 0 0 var(--ck-radius-sm);
  background: #f9fafb;
}

body#contact .contact-form .bootstrap-filestyle .input-group-btn {
  display: flex;
  width: auto;
}

body#contact .contact-form .bootstrap-filestyle .btn {
  display: inline-flex;
  align-items: center;
  height: 48px;
  margin: 0;
  padding: 0 18px;
  border: 1px solid var(--ck-border-strong);
  border-radius: 0 var(--ck-radius-sm) var(--ck-radius-sm) 0;
  background: #fff;
  color: var(--ck-text);
  font-size: 14px;
  font-weight: 600;
  text-transform: none;
  white-space: nowrap;
  box-shadow: none;
}

body#contact .contact-form .bootstrap-filestyle .btn:hover {
  border-color: var(--ck-accent);
  color: var(--ck-accent);
}

body#contact .contact-form .bootstrap-filestyle .icon-span-filestyle {
  display: none;
}

/* pusty wiersz zgody RODO (displayGDPRConsent) - zbędny odstęp nad captchą */
body#contact .contact-form .form-group.row:has(> .offset-md-3:not(:has(*))) {
  display: none;
}

/* captcha (eicaptcha.css: float right) */
body#contact .contact-form form .form-fields #captcha-box {
  margin: 0 0 8px;
}

body#contact .contact-form form .form-fields #captcha-box > div {
  float: none;
}

body#contact .contact-form .form-footer {
  padding-top: 8px;
  text-align: left !important;   /* klasa .text-sm-right (bootstrap, !important) */
}

body#contact .contact-form .form-footer .btn-primary {
  min-width: 220px;
  height: 52px;
  padding: 0 32px;
  border: 0;
  border-radius: 10px;
  background: var(--ck-accent);
  color: #fff;
  font-size: 17px;
  font-weight: 600;
  text-transform: none;
  box-shadow: none;
  transition: background-color .15s;
}

body#contact .contact-form .form-footer .btn-primary:hover {
  background: var(--ck-accent-hover);
}

/* komunikat po wysłaniu / błąd */
body#contact .contact-form .alert {
  float: none;
  width: auto;
  margin: 0 0 20px;
  padding: 14px 16px;
  border: 0;
  border-radius: 10px;
  font-size: 15px;
}

body#contact .contact-form .alert ul {
  margin: 0;
  padding: 0;
  list-style: none;
}

body#contact .contact-form .alert-success {
  background: #e8f6ee;
  color: #166534;
}

body#contact .contact-form .alert-danger {
  background: #fef2f2;
  color: #7f1d1d;
}

@media (max-width: 991px) {
  body#contact #wrapper > .container > .row {
    margin: 0;
  }

  body#contact #left-column,
  body#contact #content-wrapper {
    width: 100%;
    padding-right: 0;
    padding-left: 0;
  }

  body#contact #content.page-content,
  body#contact .contact-rich {
    padding: 20px 16px;
  }

  body#contact .contact-form .form-footer .btn-primary {
    width: 100%;
  }
}


/* ------------------------------------------------------------------
 * Nasze sklepy (/nasze-sklepy, cms/stores.tpl): sklep internetowy + sklep firmowy
 * (.zamowienia-home-page jest też na stronie głównej - tu tylko body#stores)
 * ---------------------------------------------------------------- */

body#stores #wrapper {
  background: var(--ck-bg);
  padding-bottom: 48px;
}

body#stores #wrapper > .container {
  max-width: 1200px;
}

body#stores #main .page-header h1 {
  margin: 8px 0 16px;
  color: var(--ck-text);
  font-size: 26px;
  font-weight: 700;
}

/* sklep internetowy + zamówienia telefoniczne (karta i kafelki telefonów: denesis/css/custom.css) */
body#stores .zamowienia-home-page {
  margin: 0 0 32px;
}

body#stores .zamowienia-home-page h4 {
  margin-top: 4px;   /* przed nagłówkiem są już dwa <br> */
}

body#stores .zamowienia-home-page .jenfo > a {
  text-decoration: underline;
  text-underline-offset: 3px;
}

/* sklep firmowy */
body#stores .page-stores > h2 {
  margin: 0 0 16px;
  color: var(--ck-text);
  font-size: 22px;
  font-weight: 700;
}

body#stores .page-stores .store-item,
body#stores .page-stores .store-item:last-child {
  margin: 0 0 16px;
  padding: 0;
  overflow: hidden;
  border: 1px solid var(--ck-border);
  border-radius: var(--ck-radius);
  background: #fff;
  box-shadow: var(--ck-shadow);
}

body#stores .page-stores .store-item-container {
  display: grid;
  grid-template-columns: 220px minmax(0, 1fr) 320px;
  align-items: start;
  gap: 28px;
  padding: 24px;
}

body#stores .page-stores .store-picture img {
  display: block;
  width: 100%;
  height: auto;
  border-radius: 10px;
}

body#stores .page-stores .store-item-container .store-description {
  color: var(--ck-text);
  font-size: 16px;
}

body#stores .page-stores .store-item .h3.card-title {
  margin: 0 0 8px;
  color: var(--ck-text);
  font-size: 20px;
  font-weight: 700;
  text-transform: none;
}

body#stores .page-stores .store-description address {
  margin: 0 0 14px;
  color: #374151;
  font-size: 16px;
  line-height: 1.55;
}

body#stores .page-stores .store-item-container ul.ck-store-contact {
  margin: 0;
  padding: 0;
  list-style: none;
}

body#stores .ck-store-contact li {
  display: flex;
  align-items: center;
  gap: 10px;
  margin: 0 0 6px;
}

body#stores .ck-store-contact i {
  display: flex;
  flex: 0 0 32px;
  align-items: center;
  justify-content: center;
  width: 32px;
  height: 32px;
  border-radius: 50%;
  background: var(--ck-accent-soft);
  color: var(--ck-accent);
  font-size: 17px;
}

body#stores .ck-store-contact a {
  color: var(--ck-accent);
  font-size: 19px;
  font-weight: 700;
}

body#stores .ck-store-note {
  margin: 12px 0 0;
  color: var(--ck-muted);
  font-size: 15px;
}

/* godziny otwarcia */
body#stores .page-stores .store-item-container .divide-left {
  padding-left: 24px;
  border-left: 1px solid var(--ck-border);
}

body#stores .ck-store-hours {
  width: 100%;
  border-collapse: separate;
  border-spacing: 0;
}

body#stores .page-stores .store-item-container .divide-left tr {
  height: auto;
}

body#stores .page-stores .store-item-container .ck-store-hours :is(th, td) {
  padding: 6px 10px;
  font-size: 15px;
}

body#stores .page-stores .store-item-container .ck-store-hours th {
  color: var(--ck-text);
  font-weight: 600;
  text-align: left;
}

body#stores .page-stores .store-item-container .ck-store-hours td {
  color: #374151;
  text-align: right;
  font-variant-numeric: tabular-nums;
}

body#stores .page-stores .store-item-container .ck-store-hours ul {
  margin: 0;
  padding: 0;
  font-size: 15px;
  list-style: none;
}

body#stores .ck-store-hours tr.is-today :is(th, td) {
  background: var(--ck-accent-soft);
  color: var(--ck-text);
  font-weight: 700;
}

body#stores .ck-store-hours tr.is-today th {
  border-radius: 8px 0 0 8px;
}

body#stores .ck-store-hours tr.is-today td {
  border-radius: 0 8px 8px 0;
}

body#stores .ck-today {
  display: inline-block;
  margin-left: 6px;
  padding: 1px 8px;
  border-radius: 999px;
  background: var(--ck-accent);
  color: #fff;
  font-size: 12px;
  font-weight: 700;
  vertical-align: 1px;
}

@media (max-width: 991px) {
  body#stores .page-stores .store-item-container {
    grid-template-columns: 180px minmax(0, 1fr);
  }

  body#stores .page-stores .store-item-container .divide-left {
    grid-column: 1 / -1;
    padding: 16px 0 0;
    border-top: 1px solid var(--ck-border);
    border-left: 0;
  }
}

@media (max-width: 575px) {
  body#stores .page-stores .store-item-container {
    grid-template-columns: minmax(0, 1fr);
    gap: 16px;
    padding: 16px;
  }

  body#stores .page-stores .store-picture img {
    max-height: 200px;
    object-fit: cover;
  }
}
