/**
 * Custom theme overrides, hand-written (no SCSS/webpack build step needed).
 * Loaded automatically on every front page by core FrontController::setMedia().
 *
 * Uklad i wyglad karty produktu przeniesiony stad do
 * src/scss/prestashop/modules/_sarsen-product.scss (warstwa ps-modules) -
 * tutaj zostaja tylko reguly, ktore musza bic niewarstwowy CSS modulow.
 */

/* =====================================================================
   Sarsen - opinie klientow (modul pd_googlereviews).
   Style modulu nie sa objete warstwami @layer motywu, wiec wygrywalyby
   z SCSS-em; nadpisujemy je tutaj, bo custom.css laduje sie jako ostatni.
   Wymiary wg Figmy: karta 423x284, radius 7, awatar 64px, tekst 16px.
   ===================================================================== */
.pdgr-slider-section {
  padding-block: 0;
}

.pdgr-slider-header h2 {
  color: #383838;
  font-family: "Manrope", sans-serif;
  font-size: 1.875rem;
  font-weight: 500;
  line-height: 1.49;
}

.pdgr-slider-card {
  min-height: 17.75rem; /* 284px */
  padding: 1.25rem;
  border: 1px solid #eaeaea;
  border-radius: 7px;
  background: #fff;
  box-shadow: none;
}

.pdgr-slider-card-header {
  display: block;
}

.pdgr-slider-avatar-letter,
.pdgr-slider-avatar {
  width: 4rem;
  height: 4rem;
  margin-bottom: 0.75rem;
  border-radius: 50%;
  color: #fff;
  font-size: 1.875rem;
  font-weight: 500;
  line-height: 4rem;
  text-align: center;
}

/* kolory kolek awatarow jak w projekcie */
.pdgr-slider-slide:nth-child(4n + 1) .pdgr-slider-avatar-letter { background: #8450c7; }
.pdgr-slider-slide:nth-child(4n + 2) .pdgr-slider-avatar-letter { background: #6cc750; }
.pdgr-slider-slide:nth-child(4n + 3) .pdgr-slider-avatar-letter { background: #42c7e5; }
.pdgr-slider-slide:nth-child(4n + 4) .pdgr-slider-avatar-letter { background: #f49857; }

.pdgr-slider-stars {
  color: #f4b44d;
  font-size: 0.9375rem;
  letter-spacing: 0.1em;
}

.pdgr-star-empty {
  color: #d3d3d3;
}

.pdgr-slider-author,
.pdgr-slider-author a {
  color: #090909;
  font-size: 1rem;
  font-weight: 500;
  text-decoration: none;
}

.pdgr-slider-time {
  color: #9f9f9f;
  font-size: 0.75rem;
}

.pdgr-slider-card p,
.pdgr-slider-text {
  color: #000;
  font-size: 1rem;
  font-weight: 400;
  line-height: 1.3;
}

/* Szerokosc sekcji opinii rowna pozostalym sekcjom strony glownej.
   Modul sam zawezal slider: .pdgr-slider-wrap ma max-width 1200px i po 50px
   paddingu na strzalki, a kazdy slajd jeszcze po 10px na odstep - przez to
   skrajne karty zaczynaly sie ~60px do srodka wzgledem sasiednich sekcji
   (te leza w .container motywu: max 1140px, padding-inline: 0).
   Zdejmujemy limit i padding, a odstepy miedzy kartami kasujemy ujemnym
   marginesem tracka - dzieki temu krawedzie skrajnych kart pokrywaja sie
   z krawedziami sasiednich sekcji. */
.pdgr-slider-wrap {
  max-width: none;
  padding-inline: 0;
  position: static; /* blokiem zawierajacym strzalek jest .container (nizej) */
}

.pdgr-slider-track {
  margin-inline: -0.625rem; /* -10px, tyle ile padding slajdu */
}

/* Skoro slider nie ma juz bocznych marginesow, strzalki nie moga stac w pionie
   na srodku - zaslanialyby tresc skrajnych opinii. Przenosimy je nad karty, do
   prawego gornego rogu sekcji. Blokiem zawierajacym jest .container (wrap staje
   sie static), dzieki czemu overflow: hidden slidera ich nie przycina. */
.pdgr-slider-section .container {
  position: relative;
}

.pdgr-slider-btn {
  top: 0.25rem;
  transform: none;
}

.pdgr-slider-btn-prev {
  left: auto;
  right: 3rem;
}

.pdgr-slider-btn-next {
  right: 0;
}

/* Na waskich ekranach naglowek zajmuje cala szerokosc, wiec strzalki w prawym
   gornym rogu wchodzilyby na tytul - tam laduja pod karuzela, w jednym rzedzie. */
@media (max-width: 767.98px) {
  .pdgr-slider-wrap {
    text-align: center;
  }

  /* wysrodkowanie dotyczy tylko rzedu strzalek, nie tresci kart */
  .pdgr-slider-track {
    text-align: start;
  }

  .pdgr-slider-btn {
    position: static;
    display: inline-flex;
    margin-top: 1rem;
  }

  .pdgr-slider-btn-prev {
    margin-right: 0.5rem;
  }
}

/* --- pd_wishlist: licznik ulubionych w naglowku ----------------------- */
/* JS modulu pokazuje licznik ustawiajac inline style display:inline-block;
   badge motywu (jak przy koszyku) potrzebuje flex, stad wyjatek. */
.js-pd-wl-count[style*="inline-block"] {
  display: flex !important;
}

/* --- pd_wishlist: serduszko na kafelku produktu ----------------------- */
/* JS modulu przenosi przycisk do .card (motyw classic). Ten motyw nie ma
   .card, wiec przycisk laduje jako ostatnie dziecko <article>, a ten byl
   position:static - wszystkie serca zbieraly sie w prawym gornym rogu
   STRONY zamiast kafelka. */
.js-product-miniature {
  position: relative;
}

/* =====================================================================
   Sarsen - strona zamowienia (modul ps_onepagecheckout), 2026-10-06.
   Wzor: zaczarowanasypialnia.pl/zamowienie - wieksze naglowki sekcji,
   wyrazne obramowane pola, metody dostawy i platnosci jako karty,
   podsumowanie w szarym boksie. Wszystko pod #checkout, zeby nie ruszac
   formularzy na innych stronach.
   ===================================================================== */
#checkout {
  --sarsen-co-border: #b8c0c9;
  --sarsen-co-border-soft: #dde2e7;
  --sarsen-co-text: #1f2328;
  --sarsen-co-muted: #5c6570;
  --sarsen-co-focus: rgb(0 143 228 / 18%);
  --sarsen-co-selected-bg: #f0f8fe;
}

#checkout .center-column {
  padding-block: 1.5rem 3rem;
}

.sarsen-checkout__title {
  margin-block-end: 2rem;
  color: var(--sarsen-co-text);
  font-size: 2.25rem;
  font-weight: 600;
  line-height: 1.2;
}

/* Sekcje i ich naglowki */
#checkout .one-page-checkout__section {
  padding-block: 1.5rem;
}

#checkout .one-page-checkout__section + .one-page-checkout__section,
#checkout .js-opc-addresses-section + .one-page-checkout__section {
  padding-block-start: 2.25rem;
  border-block-start-color: var(--sarsen-co-border-soft);
}

#checkout .one-page-checkout__title {
  margin-block-end: 1.25rem;
  color: var(--sarsen-co-text);
  font-size: 1.75rem;
  font-weight: 600;
  line-height: 1.25;
}

#checkout .one-page-checkout__links {
  font-size: 1rem;
  font-weight: 600;
}

/* Etykiety i pola */
#checkout .form-label {
  margin-block-end: 0.375rem;
  color: var(--sarsen-co-text);
  font-size: 0.9375rem;
  font-weight: 600;
}

#checkout .form-label.required::after,
#checkout .form-check-label.required::before {
  color: #d63939;
}

#checkout .form-text {
  color: var(--sarsen-co-muted);
  font-size: 0.8125rem;
}

#checkout .one-page-checkout .form-control,
#checkout .one-page-checkout .form-select,
#checkout #opc-address-modal .form-control,
#checkout #opc-address-modal .form-select {
  min-height: 3.125rem;
  padding: 0.75rem 1.25rem;
  border: 1px solid var(--sarsen-co-border);
  border-radius: 1.5625rem;
  background-color: #fff;
  color: var(--sarsen-co-text);
  font-size: 1rem;
  transition: border-color 0.15s ease, box-shadow 0.15s ease;
}

#checkout .one-page-checkout .form-select,
#checkout #opc-address-modal .form-select {
  padding-inline-end: 2.75rem;
  background-position: right 1.25rem center;
}

#checkout .one-page-checkout textarea.form-control {
  min-height: 6.5rem;
  border-radius: 1rem;
}

#checkout .one-page-checkout .form-control:hover,
#checkout .one-page-checkout .form-select:hover {
  border-color: #8d97a2;
}

#checkout .one-page-checkout .form-control:focus,
#checkout .one-page-checkout .form-select:focus,
#checkout #opc-address-modal .form-control:focus,
#checkout #opc-address-modal .form-select:focus {
  border-color: var(--bs-primary);
  box-shadow: 0 0 0 0.25rem var(--sarsen-co-focus);
  outline: 0;
}

#checkout .one-page-checkout .form-control.is-invalid,
#checkout .one-page-checkout .form-select.is-invalid {
  border-color: #d63939;
}

#checkout .one-page-checkout .form-control::placeholder {
  color: #8d97a2;
}

#checkout .one-page-checkout__field,
#checkout .one-page-checkout .form-group {
  margin-block-end: 1.125rem;
}

#checkout .opc-form-fields-row {
  column-gap: 1rem;
}

/* Checkboxy i radio */
#checkout .one-page-checkout .form-check,
#checkout .opc-payment-methods-wrapper .form-check,
#checkout .one-page-checkout__footer .form-check {
  display: flex;
  align-items: flex-start;
  gap: 0.625rem;
  padding-inline-start: 0;
}

#checkout .one-page-checkout .form-check-input,
#checkout .opc-payment-methods-wrapper .form-check-input,
#checkout .one-page-checkout__footer .form-check-input {
  flex-shrink: 0;
  width: 1.25rem;
  height: 1.25rem;
  margin: 0.0625rem 0 0;
  float: none;
  border: 1.5px solid #8d97a2;
  cursor: pointer;
}

#checkout .form-check-input:checked {
  border-color: var(--bs-primary);
  background-color: var(--bs-primary);
}

#checkout .form-check-input:focus {
  box-shadow: 0 0 0 0.25rem var(--sarsen-co-focus);
}

#checkout .one-page-checkout .form-check-label,
#checkout .one-page-checkout__footer .form-check-label {
  color: var(--sarsen-co-text);
  font-size: 0.9375rem;
  line-height: 1.45;
  cursor: pointer;
}

/* Metody dostawy - kazda jako osobna karta */
#checkout .delivery-options__list {
  display: grid;
  gap: 0.75rem;
}

#checkout .delivery-options__list > .delivery-option__item,
#checkout .delivery-options__list > .delivery-option__item:first-child,
#checkout .delivery-options__list > .delivery-option__item:last-child {
  border: 1px solid var(--sarsen-co-border-soft);
  border-radius: 0.75rem;
  background-color: #fff;
  transition: border-color 0.15s ease, background-color 0.15s ease, box-shadow 0.15s ease;
}

#checkout .delivery-option__item:hover {
  border-color: var(--sarsen-co-border);
}

#checkout .delivery-options__list > .delivery-option__item:has(.form-check-input:checked) {
  border-color: var(--bs-primary);
  background-color: var(--sarsen-co-selected-bg);
  box-shadow: inset 0 0 0 1px var(--bs-primary);
}

#checkout .delivery-option__label {
  padding: 1.125rem 1.25rem;
}

#checkout .delivery-option__left {
  gap: 0.75rem;
}

#checkout .delivery-option__carrier-name {
  color: var(--sarsen-co-text);
  font-size: 1rem;
  font-weight: 700;
}

#checkout .delivery-option__content {
  color: var(--sarsen-co-muted);
  font-size: 0.9375rem;
}

#checkout .delivery-option__price {
  color: var(--sarsen-co-text);
  font-size: 1rem;
  font-weight: 700;
}

#checkout .delivery-option__extra-content {
  padding-inline: 1.25rem;
}

/* Metody platnosci - karty jak dostawa */
#checkout .opc-payment-methods-wrapper .payment-option {
  margin-block-end: 0.75rem;
  padding: 1.125rem 1.25rem;
  border: 1px solid var(--sarsen-co-border-soft);
  border-radius: 0.75rem;
  background-color: #fff;
  transition: border-color 0.15s ease, background-color 0.15s ease, box-shadow 0.15s ease;
}

#checkout .opc-payment-methods-wrapper .payment-option:hover {
  border-color: var(--sarsen-co-border);
}

#checkout .opc-payment-methods-wrapper .payment-option:has(.payment-option__input:checked) {
  border-color: var(--bs-primary);
  background-color: var(--sarsen-co-selected-bg);
  box-shadow: inset 0 0 0 1px var(--bs-primary);
}

#checkout .payment-option__form-check {
  align-items: center !important;
  margin: 0;
}

#checkout .payment-option__label {
  display: flex;
  flex-grow: 1;
  align-items: center;
  gap: 0.75rem;
  color: var(--sarsen-co-text);
  font-size: 1rem;
  font-weight: 700;
}

#checkout .payment-option__label img {
  max-width: 4.5rem;
  max-height: 1.75rem;
  object-fit: contain;
}

#checkout .payment-option__additional-information {
  padding-inline-start: 1.875rem;
  color: var(--sarsen-co-muted);
  font-size: 0.9375rem;
}

/* Komunikaty "uzupelnij adres..." - spokojniejsze niz domyslny blekit */
#checkout .one-page-checkout .alert-info,
#checkout .js-opc-payment-section .alert-info {
  border: 1px dashed var(--sarsen-co-border);
  border-radius: 0.75rem;
  background-color: #f7f8fa;
  color: var(--sarsen-co-muted);
}

/* Zgody i przycisk zamowienia */
#checkout .one-page-checkout__footer {
  padding-block-start: 2.25rem;
}

#checkout .one-page-checkout__submit {
  min-height: 3.5rem;
  border-radius: 1.75rem;
  font-size: 1.125rem;
  font-weight: 700;
}

/* Platnosc i zgody sa poza <form> modulu, wiec nie dostaja jego prawego odstepu */
@media (min-width: 992px) {
  #checkout .js-opc-payment-section,
  #checkout .one-page-checkout__footer {
    padding-inline-end: 2em;
  }
}

/* Podsumowanie po prawej */
@media (min-width: 992px) {
  #checkout .checkout-grid__aside-wrapper {
    position: sticky;
    top: 1.5rem;
  }
}

#checkout .checkout__summary-accordion-item {
  overflow: hidden;
  border: 1px solid var(--sarsen-co-border-soft);
  border-radius: 0.75rem;
  background-color: #f4f5f7;
}

#checkout .checkout__summary-accordion-wrapper {
  padding: 0.5rem 1.5rem 1.5rem;
}

#checkout .checkout__summary-accordion-header .accordion-button {
  padding: 1.25rem 1.5rem 0.75rem;
  background-color: transparent;
  color: var(--sarsen-co-text);
  font-size: 1.5rem;
  font-weight: 600;
  box-shadow: none;
}

#checkout .cart-summary__products-accordion .accordion-button {
  background-color: transparent;
  font-weight: 600;
}

#checkout .cart-summary__top .payu-installment-panel:has(#payu-installment-cart-total:empty) + .payu-separator-reset {
  display: none;
}

#checkout .cart-summary__line,
#checkout .cart-summary__label,
#checkout .cart-summary__value {
  font-size: 1rem;
}

#checkout .cart-summary__total {
  font-size: 1.25rem;
  font-weight: 700;
}

@media (max-width: 767.98px) {
  .sarsen-checkout__title {
    margin-block-end: 1.25rem;
    font-size: 1.75rem;
  }

  #checkout .one-page-checkout__title {
    font-size: 1.5rem;
  }

  #checkout .delivery-option__label,
  #checkout .opc-payment-methods-wrapper .payment-option {
    padding: 1rem;
  }
}

/* Wybor punktu DHL POP (modul polkurier) wewnatrz karty przewoznika */
#checkout .polkurier-parcellocker-button {
  padding: 0 0 0.25rem 2rem;
  text-align: left;
}

#checkout .polkurier-parcellocker-button p {
  margin-block-end: 0.625rem;
  color: var(--sarsen-co-text);
  font-size: 0.9375rem;
}

#checkout .polkurier-parcellocker-button .chosen-collection-point {
  font-weight: 700;
}

#checkout .polkurier-parcellocker-button .btn {
  padding: 0.625rem 1.5rem;
  border-radius: 1.5rem;
  font-weight: 700;
}

#checkout .polkurier-parcellocker-button .polkurier-parcellocker-warning {
  margin-block: 0.5rem 0;
  color: #d63939;
  font-size: 0.875rem;
}

/* =====================================================================
   Sarsen - koszyk (/koszyk), 2026-10-06. Ten sam jezyk co strona
   zamowienia: duzy naglowek, wyrazne pola ilosci, podsumowanie w szarym
   boksie, przyciski w ksztalcie pigulki.
   ===================================================================== */
#cart {
  --sarsen-co-border: #b8c0c9;
  --sarsen-co-border-soft: #dde2e7;
  --sarsen-co-text: #1f2328;
  --sarsen-co-muted: #5c6570;
  --sarsen-co-focus: rgb(0 143 228 / 18%);
}

#cart .center-column {
  padding-block: 1.5rem 3rem;
}

#cart .cart-grid__content .page-title-section {
  margin-block-end: 1.5rem;
  color: var(--sarsen-co-text);
  font-size: 2.25rem;
  font-weight: 600;
  line-height: 1.2;
}

/* Lista produktow - kazda pozycja jako karta */
#cart .cart__overview > hr {
  display: none;
}

#cart .cart__list {
  display: grid;
  gap: 1rem;
}

#cart .cart__list > .cart__item {
  margin: 0;
}

#cart .cart__item {
  padding: 1.25rem;
  border: 1px solid var(--sarsen-co-border-soft);
  border-radius: 0.75rem;
  background-color: #fff;
}

#cart .cart__item .product-line {
  align-items: flex-start;
  padding: 0;
  border: 0;
}

#cart .product-line__img {
  border: 1px solid var(--sarsen-co-border-soft);
  border-radius: 0.5rem;
  background-color: #fff;
}

#cart .product-line__content-left .product-line__title {
  display: inline-block;
  margin-block-end: 0.375rem;
  color: var(--sarsen-co-text);
  font-size: 1.125rem;
  font-weight: 700;
  line-height: 1.35;
  text-decoration: none;
}

#cart .product-line__content-left .product-line__title:hover {
  color: var(--bs-primary);
}

#cart .product-line__item--info {
  color: var(--sarsen-co-muted);
  font-size: 0.9375rem;
}

#cart .product-line__item--info .product-line__item-value {
  color: var(--sarsen-co-text);
  font-weight: 600;
}

#cart .product-line__item--prices {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  gap: 0.25rem 0.625rem;
  margin-block-start: 0.5rem;
}

#cart .product-line__item-price {
  color: var(--sarsen-co-text);
  font-size: 1rem;
  font-weight: 600;
}

#cart .product-line__item-regular-price {
  color: var(--sarsen-co-muted);
  font-size: 0.875rem;
  text-decoration: line-through;
}

#cart .product-line__price {
  color: var(--sarsen-co-text);
  font-size: 1.25rem;
  font-weight: 700;
}

#cart .product-line__actions .js-remove-from-cart {
  color: var(--sarsen-co-muted);
  font-size: 0.875rem;
  text-decoration: underline;
}

#cart .product-line__actions .js-remove-from-cart:hover {
  color: #d63939;
}

/* Pole ilosci: jedna pigulka z przyciskami -/+ */
#cart .quantity-button__group {
  overflow: hidden;
  flex-wrap: nowrap;
  border: 1px solid var(--sarsen-co-border);
  border-radius: 1.5625rem;
  background-color: #fff;
}

#cart .quantity-button__group:focus-within {
  border-color: var(--bs-primary);
  box-shadow: 0 0 0 0.25rem var(--sarsen-co-focus);
}

#cart .quantity-button__group .btn,
#cart .quantity-button__group .form-control {
  min-height: 2.875rem;
  border: 0;
  border-radius: 0;
  background-color: transparent;
  box-shadow: none;
}

#cart .quantity-button__group .form-control {
  max-width: 3.5rem;
  color: var(--sarsen-co-text);
  font-size: 1rem;
  font-weight: 600;
  text-align: center;
}

#cart .quantity-button__group .btn:hover {
  background-color: #f4f5f7;
}

/* Kontynuuj zakupy */
#cart .cart__list + * {
  margin-block-start: 1.25rem;
}

#cart .cart-grid__content .btn-outline-primary,
#cart .cart-grid__content .btn-primary {
  border-radius: 1.5rem;
  font-weight: 700;
}

/* Podsumowanie po prawej */
#cart .cart-grid__aside-wrapper > h2 {
  margin: 0;
  padding: 1.5rem 1.5rem 0.75rem;
  border: 1px solid var(--sarsen-co-border-soft);
  border-block-end: 0;
  border-radius: 0.75rem 0.75rem 0 0;
  background-color: #f4f5f7;
  color: var(--sarsen-co-text);
  font-size: 1.5rem;
  font-weight: 600;
}

#cart .cart-grid__aside-wrapper > .cart-summary {
  padding: 0.5rem 1.5rem 1.5rem;
  border: 1px solid var(--sarsen-co-border-soft);
  border-block-start: 0;
  border-radius: 0 0 0.75rem 0.75rem;
  background-color: #f4f5f7;
}

@media (min-width: 992px) {
  #cart .cart-grid__aside-wrapper {
    position: sticky;
    top: 1.5rem;
  }
}

#cart .cart-summary__line {
  font-size: 1rem;
}

#cart .cart-summary__total {
  border-color: var(--sarsen-co-border);
}

#cart .cart-summary__total .cart-summary__line {
  font-size: 1.25rem;
  font-weight: 700;
}

#cart .cart-summary__actions .btn,
#checkout .cart-summary__actions .btn {
  min-height: 3.5rem;
  border-radius: 1.75rem;
  font-size: 1.125rem;
  font-weight: 700;
}

/* "Rata juz od" z PayU wpina sie w wartosc ostatniego wiersza (Wysylka) - przenosimy do osobnej linii */
#cart .cart-summary__value-inner,
#checkout .cart-summary__value-inner {
  display: block;
  font-size: 0.875rem;
  text-align: right;
}

#cart .cart-summary__value:has(.cart-summary__value-inner),
#checkout .cart-summary__value:has(.cart-summary__value-inner) {
  display: flex;
  flex-direction: column;
  align-items: flex-end;
}

#cart .cart-summary__value-inner > span {
  margin-top: 0.25rem !important;
}

#cart .cart-grid__aside-wrapper > hr {
  margin-block: 1.5rem;
  opacity: 0;
}

/* Kod rabatowy */
#cart .cart-voucher .form-control {
  min-height: 3rem;
  border: 1px solid var(--sarsen-co-border);
  border-radius: 1.5rem;
}

#cart .cart-voucher .btn {
  border-radius: 1.5rem;
  font-weight: 700;
}

@media (max-width: 767.98px) {
  #cart .cart-grid__content .page-title-section {
    font-size: 1.75rem;
  }

  #cart .cart__item {
    padding: 1rem;
  }
}
