/* skrytí screen-reader textů */
.woocommerce-cart-form__contents .screen-reader-text {
  position: absolute !important;
  width: 1px; height: 1px;
  overflow: hidden;
  clip: rect(0 0 0 0);
  white-space: nowrap;
}

/* ===== MOBIL ===== */
@media (max-width: 768px) {

  /* tabulka -> karty */
  .woocommerce-cart-form__contents,
  .woocommerce-cart-form__contents tbody { display: block; width: 100%; }
  .woocommerce-cart-form__contents thead { display: none; }

  .woocommerce-cart-form__contents tr.cart_item {
    display: grid !important;
    grid-template-columns: 64px minmax(0, 1fr) 32px;
    grid-template-areas:
      "thumb name   remove"
      "price price  price"
      "qty   qty    qty"
      "sub   sub    sub";
    gap: 8px 12px;
    align-items: center;
    padding: 16px 0 !important;
    position: relative;
  }
  .woocommerce-cart-form__contents tr.cart_item > td {
    display: block;
    padding: 0 !important;
    border: 0;
    min-width: 0;
    width: auto;
  }

  .cart_item .product-thumbnail { grid-area: thumb; }
  .cart_item .product-name      { grid-area: name; }
  .cart_item .product-remove    { grid-area: remove; justify-self: end; align-self: start; }
  .cart_item .product-price     { grid-area: price; }
  .cart_item .product-quantity  { grid-area: qty; }
  .cart_item .product-subtotal  { grid-area: sub; }

  .cart_item .product-name a { white-space: normal; overflow-wrap: anywhere; }

  /* popisky z data-title */
  .cart_item .product-price,
  .cart_item .product-quantity,
  .cart_item .product-subtotal {
    display: flex !important;
    justify-content: space-between;
    align-items: center;
  }
  .cart_item .product-price::before,
  .cart_item .product-quantity::before,
  .cart_item .product-subtotal::before {
    content: attr(data-title);
    font-size: .85em;
    opacity: .7;
    text-transform: uppercase;
    letter-spacing: .04em;
  }
  .cart_item .product-subtotal { font-weight: 600; }

  /* množství */
  .cart_item .quantity { width: 110px; }
  .cart_item .quantity input.qty {
    width: 100%;
    height: 44px;
    text-align: center;
  }

  /* řádek s kupónem a tlačítky */
  .woocommerce-cart-form__contents tr:not(.cart_item),
  .woocommerce-cart-form__contents td.actions { display: block; width: 100%; padding: 16px 0 !important; }
  .woocommerce-cart-form__contents .checkout_coupon-row {
    display: flex; flex-direction: column; gap: 10px;
  }
  .woocommerce-cart-form__contents .checkout_coupon-row .form-row {
    width: 100% !important; margin: 0; float: none;
  }
  .woocommerce-cart-form__contents .checkout_coupon-row input,
  .woocommerce-cart-form__contents .checkout_coupon-row button { width: 100%; }
  .woocommerce-cart-form__contents button[name="update_cart"],
  .woocommerce-cart-form__contents .continue-shopping {
    float: none !important; width: 100%; display: block;
  }
  .woocommerce-cart-form__contents .continue-shopping a { display: block; text-align: center; }
}

/* ===== DESKTOP ===== */
@media (min-width: 769px) {
  .woocommerce-cart-form__contents { table-layout: fixed; }

  /* šířky sloupců */
  .woocommerce-cart-form__contents th.product-remove,
  .woocommerce-cart-form__contents td.product-remove    { width: 48px; }
  .woocommerce-cart-form__contents th.product-thumbnail,
  .woocommerce-cart-form__contents td.product-thumbnail { width: 90px; }
  .woocommerce-cart-form__contents th.product-price,
  .woocommerce-cart-form__contents td.product-price     { width: 110px; }
  .woocommerce-cart-form__contents th.product-quantity,
  .woocommerce-cart-form__contents td.product-quantity  { width: 110px; }
  .woocommerce-cart-form__contents th.product-subtotal,
  .woocommerce-cart-form__contents td.product-subtotal  { width: 140px; }

  /* sjednocení buněk a svislé zarovnání */
  .woocommerce-cart-form__contents tr.cart_item > td {
    vertical-align: middle;
    padding: 16px 12px !important;
  }
  .woocommerce-cart-form__contents th { padding: 12px !important; text-align: left; }
  .woocommerce-cart-form__contents th.product-quantity,
  .woocommerce-cart-form__contents td.product-quantity { text-align: center; }
  .woocommerce-cart-form__contents th.product-price,
  .woocommerce-cart-form__contents td.product-price,
  .woocommerce-cart-form__contents th.product-subtotal,
  .woocommerce-cart-form__contents td.product-subtotal { text-align: right; }

  /* množství */
  .cart_item .quantity { width: 90px; margin: 0 auto; }
  .cart_item .quantity input.qty {
    width: 100%;
    height: 44px;
    text-align: center;
  }

  .cart_item .product-subtotal .tax_label { display: block; opacity: .7; }
}