@charset "UTF-8";
/* ==========================================================================
   cart-fresh-1.0.css
   Nakladka wizualna na podglad koszyka w kolumnie bocznej.
   Widok: include/classes/app/views/shop/cart_preview.php  (desktop)

   ZAKRES: wylacznie PODSUMOWANIE koszyka (blok pod lista produktow).
           B2 kwota do zaplaty, B6 podsumowanie jako karta, B7 rabaty i kaucje.

   ---------------------------------------------------------------------------
   CO ZOSTALO STAD USUNIETE I DLACZEGO
   ---------------------------------------------------------------------------
   Pierwsza wersja tego pliku przebudowywala takze pojedyncze pozycje koszyka
   (grid zamiast siatki Bootstrapa, typografia nazwy, zwarty stepper ilosci,
   sygnalizacja przewijania). Zostalo to wycofane w calosci — psulo koszyk.

   Powod: front-2.0.0.js, funkcja Shop.cartQtyInputGenerate() (ok. linii 1327)
   idzie w gore drzewa przez cztery .parent():

       .quantity -> .qty-wrapper-table-cell -> .qty-wrapper-table
                 -> .qty-wrapper -> .cart-product

   i wpisuje wysokosc TEGO ostatniego elementu jako inline `height` na
   .qty-wrapper-table. Przy oryginalnym ukladzie (trzy kolumny obok siebie)
   bylo to nieszkodliwe. Przy ukladzie dwurzedowym wysokosc calego wiersza
   wraca do srodka tego samego wiersza i narasta przy kazdym przeladowaniu
   koszyka — a koszyk przeladowuje sie po kazdej zmianie ilosci.

   Wniosek na przyszlosc: zmiana ukladu pozycji nie jest zmiana czysto
   wizualna. Wymaga najpierw rozprawienia sie z tym spacerem po .parent()
   w JS, czyli nalezy do fazy 2, nie 1.
   ---------------------------------------------------------------------------

   ZASADY, KTORE TU OBOWIAZUJA
   ---------------------------------------------------------------------------
   1. Plik ladowany jako OSTATNI (frontend.php, po newstyle.css). Nie edytujemy
      front-2.0.0.css, newstyle.css ani shopfrontend.css.
   2. Wszystko jest zakresowane pod #main-shop-right-container, zeby nie ruszyc
      #full-cart-modal ani .cart-full-modal-products — dziela z podgladem
      wiekszosc selektorow.
   3. Nic w tym pliku nie dotyka .cart-product, .quantity, .viewport,
      .scrollbar ani .thumb. Lista produktow i tinyscrollbar zostaja
      dokladnie takie, jakie byly.
   4. !important tylko tam, gdzie po drugiej stronie stoi styl inline
      z szablonu. Kazde takie miejsce jest opisane komentarzem.
   ========================================================================== */


/* ==========================================================================
   Rama karty koszyka
   --------------------------------------------------------------------------
   #koszyk wystepuje na stronie dwa razy (formularz kart podarunkowych ma
   wlasny, o tym samym id). :has() wybiera ten wlasciwy — ten, ktory zawiera
   liste produktow. Przegladarki bez :has() zostaja przy starym tle;
   nic sie nie psuje.
   ========================================================================== */

#main-shop-right-container #koszyk:has(> #cart-products) {
    background-color: #fff;
    border-radius: 0 0 10px 10px;
    box-shadow: 0 2px 12px rgba(16, 24, 40, .08);
}


/* ==========================================================================
   B6. Podsumowanie jako wyodrebniona karta
   --------------------------------------------------------------------------
   UWAGA: przyklejenie podsumowania do dolu (position: sticky) NIE wchodzi
   tutaj. Wysokosc obszaru listy jest wyliczana w JS
   (`.viewport` max-height = window.height - 300), wiec sensowne sticky wymaga
   ruszenia tej logiki.

   Dzieci podsumowania to bootstrapowe .col-xs-12 (float:left, padding 0 15px)
   plus .text-center. Sklad przechodzi na lewa krawedz, bo pary
   "etykieta <-> kwota" czyta sie w kolumnie, nie na srodku.
   ========================================================================== */

#main-shop-right-container #cart_preview_summary_info:not(.empty_cart) {
    padding: 12px 12px 10px;
    background: #fff;
    border-top: 2px solid #e9ecef;
    border-radius: 0 0 10px 10px;
    font-size: 13px;
    text-align: left;
}

#main-shop-right-container #cart_preview_summary_info:not(.empty_cart) .col-xs-12 {
    float: none;
    width: 100%;
    padding-left: 0;
    padding-right: 0;
}

#main-shop-right-container #cart_preview_summary_info:not(.empty_cart) .col-xs-12.text-center {
    text-align: left;
}

/* Wiersze informacyjne: koszt dostawy, termin, waga, zmiana kraju. */
#main-shop-right-container #cart_preview_summary_info:not(.empty_cart) > .col-xs-12 {
    padding-top: 2px;
    padding-bottom: 2px;
    color: #364049;
    line-height: 1.45;
}

/* Pole kodu rabatowego ma inline `width:80%; margin:0 auto` — bez !important
   zostaloby wysrodkowane w lewo wyrownanej karcie. Pelne B9 (etykieta,
   przycisk "Zastosuj", komunikat zwrotny) to osobny krok; tu tylko sklad. */
#main-shop-right-container #cart_preview_summary_info:not(.empty_cart) .cart-field-discount-code {
    width: 100% !important;
    margin: 0 0 10px !important;
    height: 34px;
    padding: 6px 10px;
    border: 1px solid #d7dde3;
    border-radius: 8px;
    box-shadow: none;
    font-size: 13px;
}

#main-shop-right-container #cart_preview_summary_info:not(.empty_cart) .cart-field-discount-code:focus {
    border-color: #0098ff;
    box-shadow: none;
    outline: 2px solid rgba(0, 152, 255, .35);
    outline-offset: -1px;
}


/* --------------------------------------------------------------------------
   B7. Rabaty i kaucje jako pary etykieta <-> kwota
   Bylo: wszystko wysrodkowane, kwot nie dalo sie porownac wzrokiem.
   -------------------------------------------------------------------------- */

#main-shop-right-container #cart_preview_summary_info:not(.empty_cart) .discounts-row .total-amount-row,
#main-shop-right-container #cart_preview_summary_info:not(.empty_cart) .deposit-row .total-amount-row {
    display: flex;
    justify-content: space-between;
    align-items: baseline;
    gap: 8px;
    padding: 2px 0;
    color: #364049;
    font-weight: 400;
    text-align: left;
}

/* Kwota rabatu ma inline `color:#ff0000; font-weight:bold; font-size:15px` —
   stad !important. #ff0000 na bialym tle daje 4,0:1; #c11414 daje 6,2:1. */
#main-shop-right-container #cart_preview_summary_info:not(.empty_cart) .discounts-row .total-amount-row .total-amount {
    color: #c11414 !important;
    font-size: 14px !important;
    font-weight: 700 !important;
    font-variant-numeric: tabular-nums;
    white-space: nowrap;
}

#main-shop-right-container #cart_preview_summary_info:not(.empty_cart) .deposit-row {
    margin-bottom: 2px;
}


/* --------------------------------------------------------------------------
   B2. Kwota do zaplaty
   Bylo: 15 px, font-weight:100, kolor #0098ff na tle #eff0f1 — kontrast 2,64:1,
         ponizej progu WCAG AA (4,5:1). Najwazniejsza liczba w koszyku byla
         wizualnie slabsza niz zwykly tekst obok.
   Jest: 21 px / 700 ciemnym tekstem na bieli — 15,2:1. Etykieta zostaje mala
         i szara, wiec hierarchia jest jednoznaczna.

   Selektor z ">" celuje wylacznie w glowny wiersz sumy; wiersze rabatow i
   kaucji maja te sama klase, ale siedza w .discounts-row / .deposit-row.
   -------------------------------------------------------------------------- */

#main-shop-right-container #cart_preview_summary_info:not(.empty_cart) > .total-amount-row {
    display: flex;
    justify-content: space-between;
    align-items: baseline;
    gap: 8px;
    margin-top: 8px;
    padding: 9px 0 2px;
    border-top: 1px solid #e9ecef;
    font-size: 13px;
    font-weight: 400;                    /* bylo font-weight:100 */
    color: #6b7280;
    text-align: left;
}

#main-shop-right-container #cart_preview_summary_info:not(.empty_cart) > .total-amount-row .total-amount {
    font-size: 21px;
    font-weight: 700;
    color: #11181c;                      /* bylo #0098ff */
    font-variant-numeric: tabular-nums;
    white-space: nowrap;
}


/* --------------------------------------------------------------------------
   Przycisk glowny — na pelna szerokosc karty.
   #koszyk_podsumowanie wystepuje takze w formularzu kart podarunkowych, ale
   tamten siedzi w #cart_preview_summary_info_ (z podkreslnikiem), wiec ten
   selektor go nie dotyka.
   -------------------------------------------------------------------------- */

#main-shop-right-container #cart_preview_summary_info:not(.empty_cart) #koszyk_podsumowanie {
    margin: 11px 0 2px;
}

#main-shop-right-container #cart_preview_summary_info:not(.empty_cart) #koszyk_podsumowanie input[type="submit"] {
    display: block;
    width: 100%;
    padding: 13px 12px;
    border-radius: 10px;
    font-weight: 600;
    box-shadow: 0 4px 12px -5px rgba(0, 152, 51, .7);
}

#main-shop-right-container #cart_preview_summary_info:not(.empty_cart) #koszyk_podsumowanie input[type="submit"]:hover {
    transform: none;                     /* bylo translateY(-3px) — przy pelnej szerokosci wyglada na blad */
    background-color: #00ab3a;
    box-shadow: 0 6px 16px -6px rgba(0, 152, 51, .8);
}

/* Przycisk zakonczenia edycji zamowienia (status 5) — tez na pelna szerokosc. */
#main-shop-right-container #cart_preview_summary_info:not(.empty_cart) #koszyk_podsumowanie #closeEditOrder {
    display: block;
    width: 100%;
    border-radius: 10px;
    padding: 10px 12px;
}


/* ==========================================================================
   Drobne domkniecia
   ========================================================================== */

/* Komunikat kontekstowy pod podsumowaniem. */
#main-shop-right-container #cart_preview_summary_info:not(.empty_cart) #komentarz {
    margin-top: 6px;
    padding-top: 6px;
    font-size: 12px;
    line-height: 1.4;
}

/* Ikona gratisow — sam odstep, zeby nie kleila sie do wiersza kwoty. */
#main-shop-right-container #cart_preview_summary_info:not(.empty_cart) .bubbleInfo,
#main-shop-right-container #cart_preview_summary_info:not(.empty_cart) .hipp-gratises-in-cart {
    margin: 4px 0 6px;
}

/* Pasek "Przeliczanie koszyka..." — samo `display` zostaje sterowane inline
   z szablonu i przez JS, ruszamy wylacznie typografie. */
#main-shop-right-container #cart_preview_processing_info {
    padding-bottom: 10px;
    font-size: 12px;
    color: #6b7280;
}

@media (prefers-reduced-motion: reduce) {
    #main-shop-right-container #cart_preview_summary_info #koszyk_podsumowanie input[type="submit"] {
        transition: none;
    }
}