/* Premium Cart UI (WooCommerce cart page only)
   - Visual-only changes
   - Uses pp- prefixed classes
*/

.pp-cart-page {
  --pp-cart-bg: #ffffff;
  --pp-cart-muted: #6b7280;
  --pp-cart-text: #111827;
  --pp-cart-border: rgba(17, 24, 39, 0.08);
  --pp-cart-shadow: 0 10px 30px rgba(17, 24, 39, 0.08);
  --pp-cart-shadow-sm: 0 6px 18px rgba(17, 24, 39, 0.08);
  --pp-cart-radius: 16px;
  --pp-cart-radius-sm: 12px;
  --pp-cart-accent: #ff2f81;
  --pp-cart-accent2: #ff5aa5;
  --pp-cart-accent3: #ff1f6f;
}

.pp-cart-page .woocommerce-notices-wrapper {
  margin-bottom: 16px;
}

.pp-cart-page .pp-cart-layout {
  display: grid;
  grid-template-columns: minmax(0, 1fr) 380px;
  gap: 22px;
  align-items: start;
}

.pp-cart-page .pp-cart-card {
  background: var(--pp-cart-bg);
  border: 1px solid var(--pp-cart-border);
  border-radius: var(--pp-cart-radius);
  box-shadow: var(--pp-cart-shadow);
}

.pp-cart-page .pp-cart-card-inner {
  padding: 18px;
}

.pp-cart-page .pp-cart-title {
  font-family: "Baloo 2", system-ui, -apple-system, Segoe UI, Roboto, Arial, sans-serif;
  font-weight: 800;
  letter-spacing: -0.02em;
  color: var(--pp-cart-text);
  margin: 0 0 12px;
  font-size: 28px;
}

/* Cart table -> card rows */
.pp-cart-table {
  width: 100%;
  border-collapse: separate;
  border-spacing: 0 12px; /* spacing between rows */
}

.pp-cart-table thead th {
  font-size: 12px;
  text-transform: uppercase;
  letter-spacing: 0.08em;
  color: var(--pp-cart-muted);
  font-weight: 800;
  padding: 0 12px 10px;
}

.pp-cart-item {
  background: #fff;
  border: 1px solid var(--pp-cart-border);
  border-radius: var(--pp-cart-radius-sm);
  box-shadow: var(--pp-cart-shadow-sm);
  transition: transform 160ms ease, box-shadow 160ms ease, border-color 160ms ease;
}

.pp-cart-item:hover {
  transform: translateY(-1px);
  box-shadow: 0 14px 40px rgba(17, 24, 39, 0.12);
  border-color: rgba(255, 47, 129, 0.18);
}

.pp-cart-item td {
  padding: 14px 12px;
  vertical-align: middle;
}

.pp-cart-item--gift {
  background: #fff9fc;
  border-color: rgba(255, 47, 129, 0.22);
  box-shadow: none;
}

.pp-cart-item--gift:hover {
  transform: none;
  box-shadow: none;
}

.pp-cart-item--gift .product-name {
  padding-left: 1.25rem;
}

.pp-cart-item--gift .product-name::before {
  content: "🎁";
  margin-right: 0.35rem;
}

.pp-cart-remove {
  width: 44px;
}

.pp-cart-remove .remove {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  width: 36px;
  height: 36px;
  border-radius: 10px;
  border: 1px solid rgba(255, 47, 129, 0.35);
  color: var(--pp-cart-accent);
  background: transparent;
  transition: transform 140ms ease, background 140ms ease, border-color 140ms ease;
  text-decoration: none;
  line-height: 1;
  font-size: 18px;
}

.pp-cart-remove .remove:hover {
  background: rgba(255, 47, 129, 0.08);
  border-color: rgba(255, 47, 129, 0.6);
  transform: translateY(-1px);
}

.pp-cart-product {
  min-width: 320px;
}

.pp-cart-product .pp-cart-product-wrap {
  display: grid;
  grid-template-columns: 96px minmax(0, 1fr);
  gap: 12px;
  align-items: center;
}

.pp-cart-product .product-thumbnail img,
.pp-cart-product .pp-cart-thumb img {
  width: 96px;
  height: 96px;
  border-radius: 8px;
  object-fit: contain;
  border: 1px solid var(--pp-cart-border);
  background: #fff;
}

/* Stronger cart-only sizing to prevent wrapper/table shrink */
body.woocommerce-cart table.cart td.product-thumbnail,
body.woocommerce-cart .product-thumbnail {
  width: 110px !important;
  min-width: 110px !important;
}

body.woocommerce-cart table.cart td.product-thumbnail a {
  width: 96px !important;
  height: 96px !important;
  display: flex !important;
  align-items: center !important;
  justify-content: center !important;
  background: #fff !important;
  border-radius: 8px !important;
  overflow: visible !important;
}

body.woocommerce-cart table.cart td.product-thumbnail img,
body.woocommerce-cart .woocommerce-cart-form__cart-item img {
  width: 96px !important;
  height: 96px !important;
  max-width: 96px !important;
  object-fit: contain !important;
  border-radius: 4px !important;
  display: block !important;
}

.pp-cart-product a {
  text-decoration: none;
}

.pp-cart-product .pp-cart-name {
  font-weight: 900;
  color: var(--pp-cart-text);
  line-height: 1.25;
  font-size: 15px;
  letter-spacing: -0.01em;
}

.pp-cart-product .pp-cart-meta {
  margin-top: 4px;
  color: var(--pp-cart-muted);
  font-size: 13px;
}

/* Variation meta: label/value aligned */
.pp-cart-meta .variation {
  margin-top: 10px;
  display: grid;
  gap: 6px;
  font-size: 13px;
  color: var(--pp-cart-muted);
  grid-template-columns: auto 1fr;
  align-items: center;
}

.pp-cart-meta .variation dt,
.pp-cart-meta .variation dd {
  margin: 0 !important;
  padding: 0 !important;
}

.pp-cart-meta .variation dt {
  font-weight: 700;
  color: var(--pp-cart-text);
}

.pp-cart-meta .variation dd {
  text-align: right;
}

.pp-cart-meta .variation dd p {
  margin: 0;
}

.pp-edit-design-btn {
  display: inline-flex;
  align-items: center;
  gap: 8px;
  margin-top: 8px;
  padding: 8px 10px;
  border-radius: 12px;
  border: 1px solid rgba(255, 47, 129, 0.28);
  color: var(--pp-cart-accent);
  background: rgba(255, 47, 129, 0.06);
  font-weight: 800;
  font-size: 13px;
  transition: transform 140ms ease, background 140ms ease, border-color 140ms ease;
}

.pp-edit-design-btn:hover {
  background: rgba(255, 47, 129, 0.10);
  border-color: rgba(255, 47, 129, 0.5);
  transform: translateY(-1px);
}

.pp-edit-icon {
  display: inline-flex;
  width: 20px;
  height: 20px;
  align-items: center;
  justify-content: center;
  border-radius: 8px;
  background: #fff;
  border: 1px solid rgba(255, 47, 129, 0.18);
  line-height: 1;
}

.pp-cart-price,
.pp-cart-subtotal {
  text-align: right;
  white-space: nowrap;
}

.pp-cart-price .woocommerce-Price-amount,
.pp-cart-price bdi {
  font-weight: 900;
  color: var(--pp-cart-text);
}

/* ==========================================================
   Cart table layout fix (desktop + mobile)
   - Ensures columns align: remove / thumbnail / name / price / qty / subtotal
   ========================================================== */
body.woocommerce-cart table.shop_table {
  table-layout: fixed;
  width: 100%;
}

body.woocommerce-cart table.shop_table th.product-remove,
body.woocommerce-cart table.shop_table td.product-remove {
  width: 42px;
}

body.woocommerce-cart table.shop_table th.product-thumbnail,
body.woocommerce-cart table.shop_table td.product-thumbnail {
  width: 120px;
}

body.woocommerce-cart table.shop_table th.product-name,
body.woocommerce-cart table.shop_table td.product-name {
  width: auto;
}

body.woocommerce-cart table.shop_table th.product-price,
body.woocommerce-cart table.shop_table td.product-price {
  width: 120px;
  text-align: center;
}

body.woocommerce-cart table.shop_table th.product-quantity,
body.woocommerce-cart table.shop_table td.product-quantity {
  width: 190px;
  text-align: center;
}

body.woocommerce-cart table.shop_table th.product-subtotal,
body.woocommerce-cart table.shop_table td.product-subtotal {
  width: 120px;
  text-align: right;
}

body.woocommerce-cart .pp-cart-qty-row {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  gap: 8px;
  max-width: 180px;
}

body.woocommerce-cart .quantity {
  max-width: 120px;
}

body.woocommerce-cart .pp-cart-update-icon {
  width: 38px !important;
  height: 38px !important;
  min-width: 38px !important;
  font-size: 17px !important;
}

/* Thumbnail: force visible and sized */
body.woocommerce-cart td.product-thumbnail {
  display: table-cell !important;
}

body.woocommerce-cart td.product-thumbnail a {
  display: flex !important;
  width: 92px !important;
  height: 92px !important;
  align-items: center;
  justify-content: center;
}

body.woocommerce-cart td.product-thumbnail img {
  width: 92px !important;
  height: 92px !important;
  max-width: 92px !important;
  object-fit: contain !important;
}

@media (max-width: 768px) {
  body.woocommerce-cart table.shop_table,
  body.woocommerce-cart table.shop_table tbody,
  body.woocommerce-cart table.shop_table tr,
  body.woocommerce-cart table.shop_table td {
    display: block;
    width: 100%;
  }

  body.woocommerce-cart table.shop_table tr.cart_item {
    position: relative;
    padding: 18px;
    border-bottom: 1px solid #e5e7eb;
  }

  body.woocommerce-cart table.shop_table td.product-thumbnail {
    display: block !important;
    width: 90px !important;
    margin: 0 auto 12px !important;
    text-align: center;
  }

  body.woocommerce-cart table.shop_table td.product-thumbnail::before {
    display: none !important;
  }

  body.woocommerce-cart table.shop_table td.product-thumbnail a {
    width: 90px !important;
    height: 90px !important;
    margin: 0 auto;
  }

  body.woocommerce-cart table.shop_table td.product-thumbnail img {
    width: 90px !important;
    height: 90px !important;
    max-width: 90px !important;
    object-fit: contain !important;
  }

  body.woocommerce-cart table.shop_table td.product-name {
    text-align: center;
    margin-bottom: 12px;
  }

  body.woocommerce-cart table.shop_table td.product-price,
  body.woocommerce-cart table.shop_table td.product-quantity,
  body.woocommerce-cart table.shop_table td.product-subtotal {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 12px;
    padding: 12px 0;
  }

  body.woocommerce-cart table.shop_table td.product-price::before {
    content: "Цена:";
    font-weight: 800;
  }

  body.woocommerce-cart table.shop_table td.product-quantity::before {
    content: "Количество:";
    font-weight: 800;
  }

  body.woocommerce-cart table.shop_table td.product-subtotal::before {
    content: "Общо:";
    font-weight: 800;
  }

  body.woocommerce-cart .pp-cart-qty-row {
    margin-left: auto;
  }
}

.pp-cart-subtotal .woocommerce-Price-amount,
.pp-cart-subtotal bdi {
  font-weight: 900;
  color: var(--pp-cart-accent);
}

.pp-cart-qty {
  text-align: right;
  width: 170px;
}

.pp-cart-qty-row {
  display: inline-flex;
  align-items: center;
  gap: 10px;
}

.pp-cart-update-icon {
  width: 42px !important;
  height: 42px !important;
  min-width: 42px !important;
  padding: 0 !important;
  border-radius: 50% !important;
  display: inline-flex !important;
  align-items: center !important;
  justify-content: center !important;
  background: #ec407a !important;
  color: #fff !important;
  border: 0 !important;
  font-size: 19px !important;
  font-weight: 900 !important;
  line-height: 1 !important;
  box-shadow: 0 10px 24px rgba(236,64,122,.22) !important;
}

.pp-cart-update-icon:hover {
  background: #d9366c !important;
  transform: translateY(-1px);
}
.pp-cart-qty .pp-cart-qty-stepper {
  display: inline-flex;
  align-items: center;
  border: 1px solid var(--pp-cart-border);
  border-radius: 999px;
  padding: 6px;
  background: #fff;
  box-shadow: 0 8px 22px rgba(17, 24, 39, 0.06);
}

.pp-cart-qty .pp-cart-qty-btn {
  width: 34px;
  height: 34px;
  border-radius: 999px;
  border: 1px solid rgba(17, 24, 39, 0.08);
  background: #fff;
  color: var(--pp-cart-text);
  font-weight: 900;
  cursor: pointer;
  transition: transform 140ms ease, background 140ms ease, border-color 140ms ease;
}

.pp-cart-qty .pp-cart-qty-btn:hover {
  background: rgba(255, 47, 129, 0.06);
  border-color: rgba(255, 47, 129, 0.25);
  transform: translateY(-1px);
}

.pp-cart-qty .quantity {
  margin: 0 8px;
}

.pp-cart-qty input.qty {
  width: 54px;
  height: 34px;
  border: 0;
  outline: none;
  text-align: center;
  font-weight: 900;
  color: var(--pp-cart-text);
  background: transparent;
  -moz-appearance: textfield;
}

.pp-cart-qty input.qty::-webkit-outer-spin-button,
.pp-cart-qty input.qty::-webkit-inner-spin-button {
  -webkit-appearance: none;
  margin: 0;
}

.pp-cart-actions {
  display: flex;
  justify-content: space-between;
  gap: 12px;
  margin-top: 10px;
  padding: 10px 6px 0;
}

.pp-cart-actions .button,
.pp-cart-actions button {
  border-radius: 999px;
  padding: 12px 16px;
  font-weight: 900;
  transition: transform 140ms ease, box-shadow 140ms ease, background 140ms ease, border-color 140ms ease;
}

.pp-cart-actions .pp-cart-continue {
  display: inline-flex;
  align-items: center;
  gap: 10px;
  justify-content: center;
  min-height: 44px;
  padding: 0 18px;
  border-radius: 999px;
  border: 1px solid #cfeeff;
  background: #fff;
  color: var(--pp-cart-text);
  font-weight: 800;
  text-decoration: none;
  box-shadow: 0 10px 24px rgba(35,116,171,.08);
}

.pp-cart-actions .pp-cart-continue:hover {
  color: #ec407a;
  border-color: #ec407a;
  background: #fff7fb;
  transform: translateY(-1px);
}

.pp-cart-actions button[name="update_cart"] {
  border: 0;
  color: #fff;
  background: linear-gradient(135deg, var(--pp-cart-accent) 0%, var(--pp-cart-accent2) 55%, var(--pp-cart-accent3) 100%);
  box-shadow: 0 14px 34px rgba(255, 47, 129, 0.24);
}

.pp-cart-actions button[name="update_cart"]:hover {
  transform: translateY(-1px);
  box-shadow: 0 18px 44px rgba(255, 47, 129, 0.30);
}

/* Cart totals premium card */
.pp-cart-totals {
  position: sticky;
  top: 14px;
}

.pp-cart-totals .pp-cart-totals-head {
  display: flex;
  justify-content: space-between;
  align-items: baseline;
  gap: 10px;
  margin-bottom: 10px;
}

.pp-cart-totals .pp-cart-totals-title {
  margin: 0;
  font-family: "Baloo 2", system-ui, -apple-system, Segoe UI, Roboto, Arial, sans-serif;
  font-size: 18px;
  font-weight: 900;
  color: var(--pp-cart-text);
  letter-spacing: -0.01em;
}

.pp-cart-totals table.shop_table {
  width: 100%;
  border: 0;
  margin: 0 0 14px;
  border-collapse: collapse;
}

.pp-cart-totals table.shop_table th,
.pp-cart-totals table.shop_table td {
  padding: 10px 0;
  border: 0;
  font-size: 14px;
}

.pp-cart-totals table.shop_table th {
  color: var(--pp-cart-muted);
  font-weight: 800;
  text-align: left;
}

.pp-cart-totals table.shop_table td {
  text-align: right;
  font-weight: 900;
  color: var(--pp-cart-text);
}

.pp-cart-totals table.shop_table tr + tr td,
.pp-cart-totals table.shop_table tr + tr th {
  border-top: 1px solid rgba(17, 24, 39, 0.06);
}

.pp-cart-totals .order-total td {
  font-size: 16px;
  color: var(--pp-cart-accent);
}

.pp-cart-totals .wc-proceed-to-checkout {
  padding: 0;
  margin: 0;
}

.pp-cart-totals .checkout-button {
  display: inline-flex !important;
  width: 100%;
  align-items: center;
  justify-content: center;
  gap: 10px;
  border-radius: 14px !important;
  padding: 14px 14px !important;
  border: 0 !important;
  font-weight: 900 !important;
  letter-spacing: 0.01em;
  color: #fff !important;
  background: linear-gradient(135deg, var(--pp-cart-accent) 0%, var(--pp-cart-accent2) 55%, var(--pp-cart-accent3) 100%) !important;
  box-shadow: 0 16px 44px rgba(255, 47, 129, 0.28);
  transition: transform 160ms ease, box-shadow 160ms ease, filter 160ms ease;
}

.pp-cart-totals .checkout-button:hover {
  transform: translateY(-1px);
  box-shadow: 0 22px 56px rgba(255, 47, 129, 0.34);
  filter: brightness(1.02);
}

.pp-cart-trust {
  display: grid;
  gap: 10px;
  margin-top: 12px;
  padding-top: 12px;
  border-top: 1px solid rgba(17, 24, 39, 0.06);
}

.pp-cart-trust-item {
  display: grid;
  grid-template-columns: 22px minmax(0, 1fr);
  gap: 10px;
  align-items: center;
  color: var(--pp-cart-muted);
  font-weight: 800;
  font-size: 13px;
}

.pp-cart-trust-item svg {
  color: rgba(255, 47, 129, 0.95);
}

/* Cross sells */
.pp-cross-sells {
  margin-top: 18px;
}

.pp-cross-sells .pp-cross-head {
  display: flex;
  align-items: baseline;
  justify-content: space-between;
  gap: 12px;
  margin: 18px 0 12px;
}

.pp-cross-sells .pp-cross-head h2 {
  margin: 0;
  font-family: "Baloo 2", system-ui, -apple-system, Segoe UI, Roboto, Arial, sans-serif;
  font-weight: 900;
  color: var(--pp-cart-text);
  letter-spacing: -0.01em;
  font-size: 18px;
}

.pp-cross-sells ul.products {
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: 14px;
  margin: 0;
  padding: 0;
  list-style: none;
}

.pp-cross-card,
.pp-cross-sells ul.products li.product {
  border-radius: 16px;
  border: 1px solid var(--pp-cart-border);
  background: #fff;
  box-shadow: var(--pp-cart-shadow-sm);
  overflow: hidden;
  display: flex;
  flex-direction: column;
  min-height: 100%;
  transition: transform 160ms ease, box-shadow 160ms ease, border-color 160ms ease;
}

.pp-cross-sells ul.products li.product:hover {
  transform: translateY(-1px);
  box-shadow: 0 16px 44px rgba(17, 24, 39, 0.12);
  border-color: rgba(255, 47, 129, 0.18);
}

.pp-cross-image,
.pp-cross-sells ul.products li.product a img {
  width: 100%;
  height: 180px;
  object-fit: cover;
  transition: transform 220ms ease;
}

.pp-cross-sells ul.products li.product:hover a img {
  transform: scale(1.04);
}

.pp-cross-sells ul.products li.product .woocommerce-loop-product__title {
  font-size: 14px;
  font-weight: 900;
  color: var(--pp-cart-text);
  margin: 10px 12px 0;
  line-height: 1.25;
}

.pp-cross-sells ul.products li.product .price {
  margin: 8px 12px 0;
  color: var(--pp-cart-accent);
  font-weight: 900;
}

.pp-cross-sells ul.products li.product .button,
.pp-cross-sells ul.products li.product a.button {
  margin: 12px;
  margin-top: auto;
  border-radius: 999px;
  font-weight: 900;
  padding: 12px 14px;
  border: 1px solid rgba(255, 47, 129, 0.22);
  background: rgba(255, 47, 129, 0.06);
  color: var(--pp-cart-accent);
  text-align: center;
  transition: transform 140ms ease, background 140ms ease, border-color 140ms ease;
}

.pp-cross-sells ul.products li.product .button:hover {
  transform: translateY(-1px);
  background: rgba(255, 47, 129, 0.10);
  border-color: rgba(255, 47, 129, 0.45);
}

/* Responsive */
@media (max-width: 1020px) {
  .pp-cart-page .pp-cart-layout {
    grid-template-columns: minmax(0, 1fr);
  }

  .pp-cart-totals {
    position: static;
  }

  .pp-cross-sells ul.products {
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }
}

@media (max-width: 720px) {
  .pp-cart-page .pp-cart-card-inner {
    padding: 14px;
  }

  .pp-cart-page .pp-cart-title {
    font-size: 22px;
  }

  .pp-cart-table thead {
    display: none;
  }

  .pp-cart-table,
  .pp-cart-table tbody,
  .pp-cart-table tr,
  .pp-cart-table td {
    display: block;
    width: 100%;
  }

  .pp-cart-table {
    border-spacing: 0 12px;
  }

  .pp-cart-item td {
    padding: 10px 12px;
  }

  .pp-cart-product .pp-cart-product-wrap {
    grid-template-columns: 72px minmax(0, 1fr);
  }

  .pp-cart-product .product-thumbnail img,
  .pp-cart-product .pp-cart-thumb img {
    width: 72px;
    height: 72px;
    border-radius: 8px;
  }

  body.woocommerce-cart table.cart td.product-thumbnail,
  body.woocommerce-cart .product-thumbnail {
    width: 86px !important;
    min-width: 86px !important;
  }

  body.woocommerce-cart table.cart td.product-thumbnail a {
    width: 72px !important;
    height: 72px !important;
  }

  body.woocommerce-cart table.cart td.product-thumbnail img,
  body.woocommerce-cart .woocommerce-cart-form__cart-item img {
    width: 72px !important;
    height: 72px !important;
    max-width: 72px !important;
  }

  .pp-cart-price,
  .pp-cart-qty,
  .pp-cart-subtotal {
    text-align: left;
    width: auto;
  }

  .pp-cart-price::before,
  .pp-cart-qty::before,
  .pp-cart-subtotal::before {
    display: block;
    font-size: 11px;
    font-weight: 900;
    text-transform: uppercase;
    letter-spacing: 0.08em;
    color: var(--pp-cart-muted);
    margin-bottom: 6px;
  }

  .pp-cart-price::before {
    content: "Цена";
  }
  .pp-cart-qty::before {
    content: "Количество";
  }
  .pp-cart-subtotal::before {
    content: "Общо";
  }

  .pp-cart-remove {
    position: absolute;
    right: 14px;
    top: 14px;
    width: auto;
    padding: 0;
  }

  .pp-cart-item {
    position: relative;
    padding-top: 6px;
  }

  .pp-cart-actions {
    flex-direction: column;
  }

  .pp-cross-sells ul.products {
    grid-template-columns: 1fr;
  }
}

