/* =========================
   RAW CART – layout + szerokość/padding jak HOME/OFERTA
   ========================= */
.woocommerce-cart .woocommerce{ margin:0; padding:0; }
.raw-cart{ padding:80px 0 120px; }

/* (dopasowanie do HOME/OFERTA: brak max-width, padding 80/40/24) */
.raw-cart__container{
  width:100%;
  max-width:none;
  margin:0;
  padding-left:80px;
  padding-right:80px;
}
@media (max-width:1024px){
  .raw-cart__container{ padding-left:40px; padding-right:40px; }
}
@media (max-width:768px){
  .raw-cart__container{ padding-left:24px; padding-right:24px; }
}

/* (opcjonalny bezpiecznik, jeśli motyw narzuca max-width na main) */
.woocommerce-cart .site-main,
.woocommerce-cart main{
  max-width:none !important;
}

/* reset Woo inside our cart */
.raw-cart, .raw-cart *{ box-sizing:border-box; }
.raw-cart a{ color:inherit; }
.raw-cart .woocommerce-message,
.raw-cart .woocommerce-info,
.raw-cart .woocommerce-error{ margin:0 0 18px; border-radius:0; }

/* title */
.raw-cart__title{
  font-size: clamp(2.6rem, 6vw, 5rem);
  font-weight: 900;
  letter-spacing: -3px;
  text-transform: uppercase;
  margin: 0 0 26px;
}

/* grid */
.raw-cart__grid{
  display:grid;
  grid-template-columns: 1.2fr .8fr;
  gap: 60px;
  align-items:start;
}
@media (max-width:1024px){
  .raw-cart__grid{ grid-template-columns:1fr; gap:30px; }
}

/* IMPORTANT for sticky: no overflow clipping on parents */
.raw-cart__grid,
.raw-cart__right,
.raw-cart__left{ overflow:visible !important; }

/* table head row */
.raw-cart__thead{
  display:grid;
  grid-template-columns: 1fr 220px;
  gap: 20px;
  padding: 8px 0 14px;
  border-bottom: 1px solid rgba(0,0,0,.10);
  text-transform: uppercase;
  font-weight: 900;
  letter-spacing: 2px;
  font-size: .72rem;
}
.raw-cart__th--right{ text-align:right; }

/* items row */
.raw-cart-item{
  display:grid;
  grid-template-columns: 110px 1fr 220px;
  gap: 22px;
  padding: 26px 0;
  border-bottom: 1px solid rgba(0,0,0,.08);
  min-width:0;
}
.raw-cart-item__main{ min-width:0; }

/* mobile */
@media (max-width:768px){
  .raw-cart__thead{ display:none; }

  .raw-cart-item{
    grid-template-columns: 92px 1fr;
    grid-template-areas:
      "thumb main"
      "sum sum";
    gap: 16px;
  }
  .raw-cart-item__media{ grid-area:thumb; }
  .raw-cart-item__main{ grid-area:main; }
  .raw-cart-item__sum{
    grid-area:sum;
    text-align:left;
    padding-top:12px;
    border-top: 1px solid rgba(0,0,0,.08);
    margin-top: 10px;
  }
}

/* thumbnail */
.raw-cart-item__thumb{ display:block; width:96px; height:96px; overflow:hidden; }
.raw-cart-item__thumb img,
.raw-cart-item__thumb a img{
  width: 96px; height: 96px;
  object-fit: cover;
  display:block;
}
@media (max-width:768px){
  .raw-cart-item__thumb{ width:84px; height:84px; }
  .raw-cart-item__thumb img,
  .raw-cart-item__thumb a img{ width:84px;height:84px; }
}

/* name */
.raw-cart-item__name a{
  color:#000;
  text-decoration:none;
  font-weight: 900;
  line-height:1.2;
  display:inline-block;
  max-width:100%;
  white-space:nowrap;
  overflow:hidden;
  text-overflow:ellipsis;
}

/* stock badge */
.raw-cart-item__badge{
  display:inline-flex;
  border:1.5px solid #000;
  padding: 8px 12px;
  font-weight: 900;
  text-transform: uppercase;
  letter-spacing: 1px;
  font-size: .75rem;
  margin: 10px 0;
}

/* price */
.raw-cart-item__price{
  font-weight: 900;
  opacity: .9;
  margin-bottom: 10px;
}

/* subtotal column */
.raw-cart-item__sum{
  text-align:right;
  font-weight: 900;
  align-self:start;
  padding-top: 6px;
  min-width: 220px;
}
@media (max-width:768px){
  .raw-cart-item__sum{ min-width:auto; }
}

/* =========================
   QTY (jak na product page)
   ========================= */
.raw-cart-item__qty .quantity button,
.raw-cart-item__qty .quantity .plus,
.raw-cart-item__qty .quantity .minus{ display:none !important; }

.raw-qty{ width:100%; max-width:520px; position:relative; }
.raw-qty .quantity{ display:block; border:none; padding:0; margin:0; }

/* input jest chowany przez JS, ale zostawiamy fallback */
.raw-qty input.qty{
  -moz-appearance:textfield;
  appearance:textfield;
  width: 100%;
  max-width: 100%;
  height: 56px;
  border:none;
  background:transparent;
  text-align:center;
  font-weight:900;
  font-size: 1.2rem;
  padding:0;
  outline:none;
  box-shadow:none;
}
.raw-qty input.qty::-webkit-outer-spin-button,
.raw-qty input.qty::-webkit-inner-spin-button{
  -webkit-appearance:none;
  margin:0;
}

.raw-qty-ui{
  display:grid;
  grid-template-columns: 120px 1fr 120px;
  gap: 18px;
  align-items:center;
  margin-top: 8px;
}
.raw-qty-btn{
  width:120px;
  height:84px;
  border:1.5px solid rgba(0,0,0,.25);
  background:#fff;
  font-weight:900;
  font-size: 1.6rem;
  cursor:pointer;
  user-select:none;
  transition: background .18s ease, color .18s ease, border-color .18s ease, transform .18s ease;
  color: rgba(0,0,0,.35);
}
.raw-qty-btn:hover{
  border-color:#000;
  background:#000;
  color:#fff;
  transform: translateY(-1px);
}
.raw-qty-btn:disabled{
  opacity:.35;
  cursor:not-allowed;
  transform:none;
  background:#fff;
  color: rgba(0,0,0,.25);
  border-color: rgba(0,0,0,.15);
}
.raw-qty-val{
  text-align:center;
  font-weight:900;
  font-size: 1.35rem;
  line-height:1;
}
.raw-qty-line{
  height:1px;
  background: rgba(0,0,0,.22);
  margin: 14px 0 12px;
}
.raw-qty-stock{
  font-size:.75rem;
  font-weight:900;
  text-transform:uppercase;
  letter-spacing:3px;
  color:#777;
}
@media (max-width:768px){
  .raw-qty-ui{ grid-template-columns: 92px 1fr 92px; gap: 14px; }
  .raw-qty-btn{ width:92px; height:74px; }
}

/* =========================
   Buttons (spójne)
   ========================= */
.raw-btn{
  display:inline-flex;
  align-items:center;
  justify-content:center;
  padding: 14px 26px;
  font-weight: 900;
  text-transform: uppercase;
  letter-spacing: 2px;
  border-radius:0 !important;
  text-decoration:none !important;
  transition: background .18s ease, color .18s ease, transform .18s ease;
  user-select:none;
}
.raw-btn--outline{
  border: 1.5px solid #000;
  background: transparent;
  color:#000;
}
.raw-btn--outline:hover{
  background:#000;
  color:#fff;
  transform: translateY(-1px);
}

/* ==================================================
   FIX: QTY + USUŃ w jednej linii (50/50) – NOWY HTML
   -> .raw-cart-item__controls (PHP)
   ================================================== */

/* 2 kolumny: lewa qty, prawa usuń. Wyrównane do środka siebie */
.raw-cart-item__controls{
  display:grid;
  grid-template-columns: minmax(0, 1fr) minmax(0, 1fr);
  gap: 24px;
  align-items:center;
  margin-top: 8px;
}

/* lewa: qty wycentrowane w swojej połówce */
.raw-cart-item__controls .raw-cart-item__qty{
  margin:0;
  display:flex;
  justify-content:center;
  align-items:center;
}

/* prawa: remove wycentrowane w swojej połówce */
.raw-cart-item__controls .raw-cart-item__remove{
  margin:0;
  display:flex;
  justify-content:center;
  align-items:center;
  padding:0;
}

/* USUŃ = dokładnie jak "Aktualizuj koszyk" (ten sam padding/typografia) */
.raw-cart-item__remove-btn{
  padding: 14px 26px !important;      /* identyczne jak .raw-btn */
  font-size: inherit !important;       /* nie powiększaj */
  letter-spacing: 2px !important;      /* identyczne jak .raw-btn */
  line-height: 1 !important;
  min-width: 0 !important;             /* usuwa “wielkie pudło” */
  width: auto !important;              /* dopasuj do treści */
}

/* Mobile ciaśniej */
@media (max-width:768px){
  .raw-cart-item__controls{ gap: 16px; }
}

/* actions row */
.raw-cart__actions{ padding-top: 22px; }

/* =========================
   RIGHT BOX + STICKY
   ========================= */
.raw-cart__right{ overflow:visible !important; }

.raw-cart__box{
  border-top: 1px solid rgba(0,0,0,.10);
  padding-top: 8px;

  position: sticky;
  top: 110px;
  align-self: start;
}
@media (max-width:1024px){
  .raw-cart__box{ position: static; top:auto; }
}

.raw-cart__box-title{
  font-size: .9rem;
  font-weight: 900;
  text-transform: uppercase;
  letter-spacing: 1px;
  padding-bottom: 14px;
  border-bottom: 1px solid rgba(0,0,0,.10);
}

/* coupon */
.raw-cart__coupon{
  padding: 18px 0;
  border-bottom: 1px solid rgba(0,0,0,.10);
}
.raw-cart__coupon summary{
  cursor:pointer;
  font-weight: 700;
  list-style:none;
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:12px;
}
.raw-cart__coupon summary::-webkit-details-marker{ display:none; }
.raw-cart__coupon summary::after{
  content:"";
  width:10px;height:10px;
  border-right:2px solid #000;
  border-bottom:2px solid #000;
  transform: rotate(45deg);
  opacity:.55;
  margin-left:auto;
}
.raw-cart__coupon[open] summary::after{
  transform: rotate(-135deg);
  opacity:.85;
}
.raw-coupon-row{
  display:flex;
  gap: 10px;
  margin-top: 14px;
}
.raw-coupon-row input{
  flex:1;
  height: 48px;
  border: 1.5px solid #000;
  padding: 0 12px;
  font-weight: 900;
  text-transform: uppercase;
  letter-spacing: 1px;
  background:#fff;
}

/* totals cleanup */
.raw-cart__totals .cart_totals{ float:none !important; width:100% !important; }
.raw-cart__totals .cart_totals h2{ display:none !important; }
.raw-cart__totals table{ border:none !important; margin: 0 !important; }
.raw-cart__totals table th,
.raw-cart__totals table td{
  padding: 16px 0 !important;
  border-bottom: 1px solid rgba(0,0,0,.08) !important;
}
.raw-cart__totals table th{ font-weight: 700; }
.raw-cart__totals table td{ text-align:right; font-weight: 900; }
.raw-cart__totals .order-total th,
.raw-cart__totals .order-total td{
  font-size: 1.15rem;
  font-weight: 900;
}

/* CTA: wyśrodkowane w kolumnie */
.raw-cart__cta{
  display:flex;
  justify-content:center;
  padding-top: 18px;
}
.raw-cart__cta .raw-btn{ width: min(520px, 100%); }

/* ukryj domyślne Woo */
.woocommerce-cart .wc-proceed-to-checkout{ display:none !important; }

/* Shipping – ukrywanie kalkulatora */
.woocommerce-shipping-calculator,
.shipping-calculator-form,
.woocommerce-shipping-destination,
.woocommerce-shipping-estimate,
.woocommerce-shipping-totals{ display:none !important; }

/* ==============================
   CART PATCH: controls nie mogą nachodzić na kolumnę "ŁĄCZNIE"
   + qty ma mieć wysokość jak "Kwota"
   + USUŃ obok qty
   ============================== */

/* pozwól itemowi „oddychać” – bez overflow zbyt szerokich kontrolek */
.raw-cart-item{ align-items:start; }
.raw-cart-item__main{ min-width:0; }

/* controls zawsze w ramach kolumny MAIN */
.raw-cart-item__controls{
  width:100%;
  max-width:100%;
  display:flex;                 /* zamiast grid -> stabilnie, bez wylewania */
  align-items:center;
  justify-content:space-between;
  gap: 18px;
}

/* lewa: qty nie może być szersze niż miejsce */
.raw-cart-item__controls .raw-cart-item__qty{
  flex: 1 1 auto;
  min-width: 0;
}

/* zdejmujemy „produktowy” max-width, bo to jest CART */
.raw-cart-item__controls .raw-qty{
  max-width: 100% !important;
  width: 100% !important;
}

/* kompaktowy wygląd QTY (wysokość jak rząd kwot) */
.raw-cart-item__controls .raw-qty-ui{
  margin-top: 0;                /* w CART bez odstępu */
  gap: 12px;
  grid-template-columns: 56px 1fr 56px; /* kompakt */
  align-items:center;
}

.raw-cart-item__controls .raw-qty-btn{
  width: 56px !important;
  height: 56px !important;      /* <= to ma być „jak kwota” */
  font-size: 1.25rem;
}

.raw-cart-item__controls .raw-qty-val{
  font-size: 1.1rem;
}

/* w CART nie pokazujemy linii i „DOSTĘPNE” (żeby nie robiło wysokości) */
.raw-cart-item__controls .raw-qty-line,
.raw-cart-item__controls .raw-qty-stock{
  display:none !important;
}

/* prawa: USUŃ jako button obok qty, bez rozpychania */
.raw-cart-item__controls .raw-cart-item__remove{
  flex: 0 0 auto;
  display:flex;
  align-items:center;
  justify-content:center;
  padding:0;
  margin:0;
}

/* USUŃ ma być jak "Aktualizuj koszyk" (nie wielkie pudło) */
.raw-cart-item__remove-btn{
  width: auto !important;
  min-width: 0 !important;
  padding: 14px 26px !important;
  font-size: .85rem !important;
  letter-spacing: 2px !important;
  line-height: 1 !important;
}

/* bezpieczeństwo: nic nie może wyjechać poza main */
.raw-cart-item__controls *{ max-width:100%; }

/* mobile: dalej obok siebie, ale ciaśniej */
@media (max-width:768px){
  .raw-cart-item__controls{ gap: 12px; }
  .raw-cart-item__controls .raw-qty-ui{
    grid-template-columns: 50px 1fr 50px;
  }
  .raw-cart-item__controls .raw-qty-btn{
    width:50px !important;
    height:50px !important;
  }
}

/* =========================================================
   CART = HOME/OFERTA (1:1) — działa na Twoim HTML
   ========================================================= */

/* 1) zdejmij “zwężacze” i paddingi wrapperów Woo/motywu */
body.woocommerce-cart .woocommerce,
body.woocommerce-cart .woocommerce > *{
  max-width:none !important;
}

body.woocommerce-cart .woocommerce{
  width:100% !important;
  margin:0 !important;
  padding:0 !important;
}

/* (często motywy pakują Woo w entry-content / site-main) */
body.woocommerce-cart .site-main,
body.woocommerce-cart main,
body.woocommerce-cart #primary,
body.woocommerce-cart .content-area,
body.woocommerce-cart .entry-content{
  width:100% !important;
  max-width:none !important;
  margin:0 !important;
  padding:0 !important;
}

/* 2) geometria jak HOME/OFERTA — ustawiamy NA KONTAINERZE */
body.woocommerce-cart .raw-cart{
  width:100%;
  padding:80px 0 120px; /* tylko góra/dół */
  box-sizing:border-box;
}

body.woocommerce-cart .raw-cart__container{
  width:100%;
  max-width:none !important;
  margin:0 !important;
  padding-left:80px !important;
  padding-right:80px !important;
  box-sizing:border-box;
}

@media (max-width:1024px){
  body.woocommerce-cart .raw-cart__container{
    padding-left:40px !important;
    padding-right:40px !important;
  }
}

@media (max-width:768px){
  body.woocommerce-cart .raw-cart__container{
    padding-left:24px !important;
    padding-right:24px !important;
  }
}

/* =========================================================
   RAW CART — EMPTY CART view (dopasowanie do Twojego layoutu)
   ========================================================= */

/* 1) Layout/padding jak .raw-cart + .raw-cart__container */
body.woocommerce-cart .woocommerce{
  width: 100% !important;
  margin: 0 !important;
  padding: 0 !important;
}

body.woocommerce-cart .entry-content{
  width:100% !important;
  max-width:none !important;
  margin:0 !important;
  padding: 80px 80px 120px !important; /* góra/left-right/dół */
  box-sizing:border-box;
}

@media (max-width:1024px){
  body.woocommerce-cart .entry-content{
    padding-left:40px !important;
    padding-right:40px !important;
  }
}
@media (max-width:768px){
  body.woocommerce-cart .entry-content{
    padding-left:24px !important;
    padding-right:24px !important;
  }
}

/* 2) Banner “Twój koszyk jest pusty” — spójny RAW look */
body.woocommerce-cart .wc-empty-cart-message{
  margin: 0 0 18px !important;
}

body.woocommerce-cart .wc-block-components-notice-banner{
  border: 1.5px solid #000;
  border-radius: 0 !important;
  padding: 18px 18px !important;
  background: transparent !important;
  box-shadow: none !important;
}

body.woocommerce-cart .wc-block-components-notice-banner svg{
  width: 22px;
  height: 22px;
}

body.woocommerce-cart .wc-block-components-notice-banner__content{
  font-weight: 900;
  text-transform: uppercase;
  letter-spacing: 1px;
}

/* 3) “Wróć do sklepu” jako RAW button */
body.woocommerce-cart .return-to-shop{
  margin: 22px 0 0 !important;
}

body.woocommerce-cart .return-to-shop a.button,
body.woocommerce-cart .return-to-shop a.wp-element-button{
  display:inline-flex;
  align-items:center;
  justify-content:center;
  padding: 14px 26px !important;
  font-weight: 900 !important;
  text-transform: uppercase !important;
  letter-spacing: 2px !important;
  border-radius: 0 !important;
  border: 1.5px solid #000 !important;
  background: transparent !important;
  color: #000 !important;
  text-decoration: none !important;
  transition: background .18s ease, color .18s ease, transform .18s ease;
}

body.woocommerce-cart .return-to-shop a.button:hover,
body.woocommerce-cart .return-to-shop a.wp-element-button:hover{
  background:#000 !important;
  color:#fff !important;
  transform: translateY(-1px);
}

/* =================================
   EMPTY CART – centrowanie contentu
   ================================= */

body.woocommerce-cart .wc-empty-cart-message,
body.woocommerce-cart .return-to-shop{
  display:flex;
  justify-content:center;
}

/* banner w środku + tekst wyśrodkowany */
body.woocommerce-cart .wc-block-components-notice-banner{
  justify-content:center !important;
  text-align:center;
}

/* tekst komunikatu */
body.woocommerce-cart .wc-block-components-notice-banner__content{
  text-align:center;
}

/* button dokładnie na środku */
body.woocommerce-cart .return-to-shop a{
  margin: 0 auto !important;
}
