/* =========================================================================
   Cart page — block cart + classic cart
   Scoped to body.woocommerce-cart (added by WooCommerce on the cart page).
   ========================================================================= */

body.woocommerce-cart {
  --fmke-i-trash: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23000' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M4 7h16M10 11v6M14 11v6M6 7l1 12a1 1 0 0 0 1 1h8a1 1 0 0 0 1-1l1-12M9 7V4h6v3'/%3E%3C/svg%3E");
  --fmke-i-bag-or: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23FF6A00' stroke-width='1.8' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M5 8h14l-1 12H6L5 8z'/%3E%3Cpath d='M9 8V6a3 3 0 0 1 6 0v2'/%3E%3C/svg%3E");
  --fmke-i-bag: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23000' stroke-width='1.8' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M5 8h14l-1 12H6L5 8z'/%3E%3Cpath d='M9 8V6a3 3 0 0 1 6 0v2'/%3E%3C/svg%3E");
}

/* ---- Page frame ------------------------------------------------------ */
body.woocommerce-cart .site-content { background: #F6F3EE; padding: 8px 0 56px; }
body.woocommerce-cart .site-content > .col-full { max-width: 1280px; }
body.woocommerce-cart .storefront-breadcrumb { background: #F6F3EE; margin: 0 !important; padding: 18px 0 6px !important; }
body.woocommerce-cart .storefront-breadcrumb .col-full { max-width: 1280px; }
body.woocommerce-cart .woocommerce-breadcrumb { margin: 0 !important; padding: 0 !important; font-size: 13px; }
body.woocommerce-cart .woocommerce-breadcrumb a { font-weight: 700; text-decoration: none; }
body.woocommerce-cart .content-area { float: none !important; width: 100% !important; margin: 0 !important; }
body.woocommerce-cart .widget-area, body.woocommerce-cart #secondary { display: none !important; }
body.woocommerce-cart .hentry { margin-bottom: 0; }
body.woocommerce-cart .entry-header { margin: 0 0 22px; padding: 0; border: 0; text-align: center; }
body.woocommerce-cart .entry-title {
  position: relative; margin: 22px 0 0; padding-bottom: 14px;
  font-family: 'Fraunces', Georgia, serif; font-size: 32px; font-weight: 600; line-height: 1.2; color: var(--fmke-dark);
}
body.woocommerce-cart .entry-title::after {
  content: ""; position: absolute; left: 50%; bottom: 0; transform: translateX(-50%);
  width: 44px; height: 4px; border-radius: 4px; background: var(--fmke-primary);
}
body.woocommerce-cart .entry-content { margin: 0; color: var(--fmke-dark); }
body.woocommerce-cart .entry-content a:not(.wp-element-button):not(.button):not(.wc-block-components-button) { text-decoration: none; }

/* =========================================================================
   BLOCK CART
   ========================================================================= */

/* Two columns on wide screens: items | totals. (Viewport-based so it can't fight
   WooCommerce's container-query classes on small screens.) */
@media (min-width: 1025px) {
  body.woocommerce-cart .wc-block-components-sidebar-layout { display: flex; flex-wrap: nowrap; align-items: flex-start; gap: 24px; }
  body.woocommerce-cart .wc-block-components-sidebar-layout .wc-block-components-main { flex: 1 1 0; min-width: 0; width: auto !important; margin: 0 !important; padding: 0 !important; }
  body.woocommerce-cart .wc-block-components-sidebar-layout .wc-block-components-sidebar { flex: 0 0 370px; width: 370px !important; margin: 0 !important; padding: 0 !important; }
}
@media (max-width: 1024px) {
  body.woocommerce-cart .wc-block-components-sidebar-layout { display: flex; flex-wrap: wrap; }
  body.woocommerce-cart .wc-block-components-sidebar-layout .wc-block-components-main,
  body.woocommerce-cart .wc-block-components-sidebar-layout .wc-block-components-sidebar { width: 100% !important; padding: 0 !important; margin: 0 0 20px !important; }
}
body.woocommerce-cart .wc-block-cart { padding-top: 0; margin-bottom: 0; }

/* ---- Items card ------------------------------------------------------ */
body.woocommerce-cart table.wc-block-cart-items {
  width: 100%; margin: 0; box-sizing: border-box;
  background: #fff; border: 1px solid var(--fmke-border) !important; border-radius: 18px;
  box-shadow: var(--fmke-shadow);
  border-collapse: separate; border-spacing: 0;
  padding: 6px 24px 8px;
}
body.woocommerce-cart table.wc-block-cart-items th {
  padding: 16px 0 12px !important;
  border: 0 !important; border-bottom: 2px solid var(--fmke-border) !important;
  background: transparent;
  font-size: 11.5px !important; font-weight: 800 !important; letter-spacing: .6px; text-transform: uppercase; color: var(--fmke-muted) !important;
}
body.woocommerce-cart table.wc-block-cart-items .wc-block-cart-items__row { background: transparent; }
body.woocommerce-cart table.wc-block-cart-items td { border: 0 !important; background: transparent; vertical-align: top; }
body.woocommerce-cart table.wc-block-cart-items .wc-block-cart-items__row td { padding-top: 20px; padding-bottom: 20px; }
body.woocommerce-cart table.wc-block-cart-items .wc-block-cart-items__row:not(:last-child) td { border-bottom: 1px solid var(--fmke-border) !important; }

/* Thumbnail */
body.woocommerce-cart .wc-block-cart-item__image { width: 112px; padding-right: 18px !important; }
body.woocommerce-cart .wc-block-cart-item__image a { display: block; border-radius: 14px; overflow: hidden; background: var(--fmke-primary-light); }
body.woocommerce-cart .wc-block-cart-item__image img {
  display: block; width: 100%; height: auto; max-width: none; margin: 0;
  aspect-ratio: 1 / 1; object-fit: cover; border-radius: 14px;
  transition: transform .3s ease;
}
body.woocommerce-cart .wc-block-cart-items__row:hover .wc-block-cart-item__image img { transform: scale(1.05); }

/* Name, prices, meta */
body.woocommerce-cart .wc-block-cart-item__product { padding-right: 16px !important; }
body.woocommerce-cart .wc-block-components-product-name {
  display: inline-block; margin-bottom: 4px;
  font-size: 15.5px; font-weight: 700; line-height: 1.35; color: var(--fmke-dark) !important; text-decoration: none !important;
  transition: color .15s ease;
}
body.woocommerce-cart .wc-block-components-product-name:hover { color: var(--fmke-primary-dark) !important; }
body.woocommerce-cart .wc-block-cart-item__prices { margin-bottom: 8px; }
body.woocommerce-cart .wc-block-components-product-price { font-size: 14px; font-weight: 700; color: var(--fmke-primary-dark); }
body.woocommerce-cart .wc-block-components-product-price del,
body.woocommerce-cart .wc-block-components-product-price__regular { color: var(--fmke-muted); font-weight: 500; font-size: 13px; opacity: 1; margin-right: 4px; }
body.woocommerce-cart .wc-block-components-product-price ins,
body.woocommerce-cart .wc-block-components-product-price__value.is-discounted { background: none; text-decoration: none; color: var(--fmke-primary-dark); font-weight: 800; }
body.woocommerce-cart .wc-block-components-product-metadata,
body.woocommerce-cart .wc-block-components-product-metadata__description { font-size: 13px; line-height: 1.55; color: #5C6B62; }
body.woocommerce-cart .wc-block-components-product-details { font-size: 12.5px; color: var(--fmke-muted); }
body.woocommerce-cart .wc-block-components-product-badge,
body.woocommerce-cart .wc-block-components-sale-badge {
  display: inline-block; padding: 3px 10px; border-radius: 999px;
  background: var(--fmke-sale); color: #fff; border: 0;
  font-size: 11px; font-weight: 800; letter-spacing: .3px; text-transform: uppercase; line-height: 1.4;
}

/* Quantity stepper = pill */
body.woocommerce-cart .wc-block-cart-item__quantity { display: flex; align-items: center; flex-wrap: wrap; gap: 10px 14px; margin-top: 10px; }
body.woocommerce-cart .wc-block-components-quantity-selector {
  display: inline-flex; align-items: center; width: auto; height: 40px; margin: 0; overflow: hidden; box-sizing: border-box;
  background: #fff; border: 1.5px solid var(--fmke-border) !important; border-radius: 999px !important; box-shadow: none !important;
  transition: border-color .15s ease, box-shadow .15s ease;
}
body.woocommerce-cart .wc-block-components-quantity-selector::after { display: none !important; }
body.woocommerce-cart .wc-block-components-quantity-selector:focus-within { border-color: var(--fmke-primary) !important; box-shadow: 0 0 0 3px rgba(255,106,0,.16) !important; }
body.woocommerce-cart .wc-block-components-quantity-selector__input {
  width: 42px; min-width: 0; height: 100%; margin: 0; padding: 0 !important; border: 0 !important; background: transparent !important; box-shadow: none !important;
  text-align: center; font-size: 14.5px; font-weight: 800; color: var(--fmke-dark);
}
body.woocommerce-cart .wc-block-components-quantity-selector__button {
  width: 36px; height: 100%; min-width: 0; margin: 0; padding: 0 !important; border: 0 !important; border-radius: 0 !important;
  background: transparent !important; box-shadow: none !important; color: var(--fmke-dark) !important; font-size: 16px; opacity: 1;
  transition: background .15s ease, color .15s ease;
}
body.woocommerce-cart .wc-block-components-quantity-selector__button:hover:not(:disabled) { background: var(--fmke-primary-light) !important; color: var(--fmke-primary-dark) !important; }
body.woocommerce-cart .wc-block-components-quantity-selector__button:disabled { opacity: .35; }

/* Remove link: small, muted, red on hover, with a bin icon */
body.woocommerce-cart .wc-block-cart-item__remove-link,
body.woocommerce-cart button.wc-block-cart-item__remove-link {
  display: inline-flex; align-items: center; gap: 6px; margin: 0; padding: 4px 2px !important;
  background: none !important; border: 0 !important; box-shadow: none !important;
  color: var(--fmke-muted) !important; font-size: 12.5px !important; font-weight: 700 !important; text-decoration: none !important; text-transform: none;
  cursor: pointer; transition: color .15s ease;
}
body.woocommerce-cart .wc-block-cart-item__remove-link::before {
  content: ""; width: 14px; height: 14px; background-color: currentColor;
  -webkit-mask: var(--fmke-i-trash) center / contain no-repeat; mask: var(--fmke-i-trash) center / contain no-repeat;
}
body.woocommerce-cart .wc-block-cart-item__remove-link:hover { color: var(--fmke-sale) !important; background: none !important; }

/* Line total */
body.woocommerce-cart .wc-block-cart-item__total { text-align: right; white-space: nowrap; }
body.woocommerce-cart .wc-block-cart-item__total .wc-block-components-product-price { font-size: 16px; font-weight: 800; color: var(--fmke-primary-dark); }

/* ---- Totals sidebar card --------------------------------------------- */
body.woocommerce-cart .wc-block-cart__sidebar > .wp-block-woocommerce-cart-totals-block,
body.woocommerce-cart .wc-block-components-sidebar.wc-block-cart__sidebar { box-sizing: border-box; }
body.woocommerce-cart .wp-block-woocommerce-cart-totals-block {
  box-sizing: border-box; padding: 22px 22px 20px;
  background: #fff; border: 1px solid var(--fmke-border); border-radius: 18px; box-shadow: var(--fmke-shadow);
}
body.woocommerce-cart .wc-block-components-sidebar.wp-block-woocommerce-cart-totals-block,
body.woocommerce-cart .wc-block-components-sidebar-layout .wc-block-components-sidebar.wc-block-cart__sidebar.wp-block-woocommerce-cart-totals-block { padding: 22px 22px 20px !important; }
body.woocommerce-cart .wc-block-components-totals-item { display: flex; justify-content: space-between; align-items: baseline; gap: 12px; }
body.woocommerce-cart .wc-block-cart__totals-title {
  position: relative; display: block !important; margin: 0 0 18px !important; padding: 0 0 12px !important;
  font-family: 'Fraunces', Georgia, serif; font-size: 21px !important; font-weight: 600 !important; letter-spacing: 0; text-transform: none !important; text-align: left; color: var(--fmke-dark) !important;
}
body.woocommerce-cart .wc-block-cart__totals-title::after {
  content: ""; position: absolute; left: 0; bottom: 0; width: 34px; height: 3px; border-radius: 3px; background: var(--fmke-primary);
}
body.woocommerce-cart .wp-block-woocommerce-cart-order-summary-block { border-bottom: 0 !important; margin-bottom: 0 !important; }
body.woocommerce-cart .wc-block-components-totals-wrapper { border-color: var(--fmke-border) !important; }
body.woocommerce-cart .wc-block-components-totals-item { font-size: 14.5px; color: var(--fmke-dark); }
body.woocommerce-cart .wc-block-components-totals-item__label { font-weight: 600; }
body.woocommerce-cart .wc-block-components-totals-item__value { font-weight: 800; color: var(--fmke-dark); }
body.woocommerce-cart .wc-block-components-totals-footer-item { font-size: 16px; }
body.woocommerce-cart .wc-block-components-totals-footer-item .wc-block-components-totals-item__label { font-weight: 800; font-size: 15px; }
body.woocommerce-cart .wc-block-components-totals-footer-item .wc-block-components-totals-item__value,
body.woocommerce-cart .wc-block-components-totals-footer-item .wc-block-components-formatted-money-amount { font-size: 22px; font-weight: 800; color: var(--fmke-primary-dark); }
body.woocommerce-cart .wc-block-components-totals-discount .wc-block-components-totals-item__value { color: #1E8E3E; }

/* Coupon accordion */
body.woocommerce-cart .wc-block-components-totals-coupon .wc-block-components-panel__button,
body.woocommerce-cart .wc-block-components-panel__button {
  padding: 4px 0 !important; background: none !important; border: 0 !important; box-shadow: none !important;
  color: var(--fmke-primary-dark) !important; font-size: 14px; font-weight: 800;
}
body.woocommerce-cart .wc-block-components-panel__button:hover { color: var(--fmke-primary) !important; background: none !important; }
body.woocommerce-cart .wc-block-components-totals-coupon__form { gap: 8px; }
body.woocommerce-cart .wc-block-components-totals-coupon__input input,
body.woocommerce-cart .wc-block-components-text-input input,
body.woocommerce-cart .wc-block-components-form .wc-block-components-text-input input {
  min-height: 46px; padding: 18px 14px 6px !important; background: #fff !important;
  border: 1.5px solid var(--fmke-border) !important; border-radius: 12px !important; box-shadow: none !important; color: var(--fmke-dark);
}
body.woocommerce-cart .wc-block-components-text-input input:focus { border-color: var(--fmke-primary) !important; box-shadow: 0 0 0 3px rgba(255,106,0,.16) !important; outline: none; }
body.woocommerce-cart .wc-block-components-text-input label { color: var(--fmke-muted); }
body.woocommerce-cart .wc-block-components-totals-coupon__button {
  min-height: 46px; padding: 0 20px !important; border-radius: 999px !important;
  background: #fff !important; color: var(--fmke-primary-dark) !important;
  box-shadow: inset 0 0 0 1.5px var(--fmke-primary) !important; border: 0 !important;
  font-weight: 800 !important;
}
body.woocommerce-cart .wc-block-components-totals-coupon__button:hover { background: var(--fmke-primary) !important; color: #fff !important; }

/* Shipping options / radio */
body.woocommerce-cart .wc-block-components-radio-control__input,
body.woocommerce-cart input[type="radio"], body.woocommerce-cart input[type="checkbox"] { accent-color: var(--fmke-primary); }
body.woocommerce-cart .wc-block-components-radio-control__option-checked .wc-block-components-radio-control__label { font-weight: 800; }
body.woocommerce-cart .wc-block-components-shipping-rates-control__package .wc-block-components-radio-control__option { padding-top: 8px; padding-bottom: 8px; }
body.woocommerce-cart .wc-block-components-totals-shipping .wc-block-components-totals-item__description,
body.woocommerce-cart .wc-block-components-totals-shipping__change-address__link { font-size: 12.5px; color: var(--fmke-primary-dark); font-weight: 700; }

/* Primary buttons (Proceed to checkout + any block button) */
body.woocommerce-cart .wc-block-cart__submit-container { padding: 6px 0 0; }
body.woocommerce-cart .wc-block-cart__submit-button,
body.woocommerce-cart .wc-block-components-button.contained,
body.woocommerce-cart a.wc-block-components-button:not(.outlined) {
  display: flex; align-items: center; justify-content: center; box-sizing: border-box; width: 100%;
  min-height: 54px; padding: 14px 24px !important;
  background: var(--fmke-primary) !important; background-image: none !important; color: #fff !important;
  border: 0 !important; border-radius: 999px !important;
  box-shadow: 0 10px 22px rgba(255,106,0,.30) !important;
  font-size: 16px !important; font-weight: 800 !important; letter-spacing: .1px; text-decoration: none !important; text-transform: none !important;
  transition: background .15s ease, transform .15s ease, box-shadow .15s ease;
}
body.woocommerce-cart .wc-block-cart__submit-button:hover,
body.woocommerce-cart .wc-block-components-button.contained:hover,
body.woocommerce-cart a.wc-block-components-button:not(.outlined):hover {
  background: var(--fmke-primary-dark) !important; color: #fff !important;
  box-shadow: 0 12px 26px rgba(204,85,0,.34) !important; transform: translateY(-1px);
}
body.woocommerce-cart .wc-block-components-button__text { color: inherit; }
body.woocommerce-cart .wc-block-components-button.outlined,
body.woocommerce-cart .wc-block-components-button.outlined:hover { color: var(--fmke-primary-dark); }

/* Notices */
body.woocommerce-cart .wc-block-components-notice-banner {
  border-radius: 12px !important; border: 1px solid #F6D9BC !important; border-left: 4px solid var(--fmke-primary) !important;
  background: var(--fmke-primary-light) !important; color: var(--fmke-dark) !important; font-weight: 600;
}
body.woocommerce-cart .wc-block-components-notice-banner.is-error { background: #FDECEC !important; border-color: #F5C2C0 !important; border-left-color: var(--fmke-sale) !important; }
body.woocommerce-cart .wc-block-components-notice-banner.is-success { background: #EAF6EE !important; border-color: #BFE2CB !important; border-left-color: #1E8E3E !important; }
body.woocommerce-cart .wc-block-components-notice-banner > svg { fill: var(--fmke-primary); background: transparent; }
body.woocommerce-cart .wc-block-components-notice-banner.is-error > svg { fill: var(--fmke-sale); }
body.woocommerce-cart .wc-block-components-notice-banner.is-success > svg { fill: #1E8E3E; }

/* ---- Empty cart (block) ---------------------------------------------- */
body.woocommerce-cart .wp-block-woocommerce-empty-cart-block {
  box-sizing: border-box; max-width: 980px; margin: 0 auto; padding: 36px 28px 30px; text-align: center;
  background: #fff; border: 1px solid var(--fmke-border); border-radius: 18px; box-shadow: var(--fmke-shadow);
}
body.woocommerce-cart .wc-block-cart__empty-cart__title,
body.woocommerce-cart .wp-block-woocommerce-empty-cart-block h2 {
  font-family: 'Fraunces', Georgia, serif; font-weight: 600; color: var(--fmke-dark); text-align: center;
}
body.woocommerce-cart .with-empty-cart-icon.wc-block-cart__empty-cart__title { font-size: 24px; margin: 0 0 6px; }
body.woocommerce-cart .with-empty-cart-icon::before {
  background-color: var(--fmke-primary) !important; color: var(--fmke-primary) !important;
  /* swap WooCommerce's sad face for a shopping bag */
  -webkit-mask-image: var(--fmke-i-bag) !important; mask-image: var(--fmke-i-bag) !important;
  -webkit-mask-repeat: no-repeat; mask-repeat: no-repeat; -webkit-mask-position: center; mask-position: center; -webkit-mask-size: contain; mask-size: contain;
  margin-bottom: 14px; opacity: 1;
}
body.woocommerce-cart .wp-block-woocommerce-empty-cart-block .wp-block-separator,
body.woocommerce-cart .wp-block-woocommerce-empty-cart-block hr { color: var(--fmke-primary); border-color: var(--fmke-primary); opacity: 1; margin: 22px auto; }
body.woocommerce-cart .wp-block-woocommerce-empty-cart-block h2:not(.with-empty-cart-icon) { font-size: 22px; margin: 0 0 18px; }

/* Product grids (empty-cart "New in store", cross-sells) */
body.woocommerce-cart .wc-block-grid__products { gap: 18px; justify-content: center; }
body.woocommerce-cart .wc-block-grid__product {
  box-sizing: border-box; padding: 12px 12px 16px; text-align: left;
  background: #fff; border: 1px solid var(--fmke-border); border-radius: 16px; box-shadow: var(--fmke-shadow);
  transition: transform .18s ease, box-shadow .18s ease, border-color .18s ease;
}
body.woocommerce-cart .wc-block-grid__product:hover { transform: translateY(-4px); box-shadow: var(--fmke-shadow-hover); border-color: var(--fmke-primary); }
body.woocommerce-cart .wc-block-grid__product-image img { border-radius: 12px; aspect-ratio: 1 / 1; object-fit: cover; width: 100%; height: auto; }
body.woocommerce-cart .wc-block-grid__product-title,
body.woocommerce-cart .wc-block-grid__product .wc-block-components-product-title { margin: 10px 0 4px; font-size: 14.5px; font-weight: 700; line-height: 1.35; color: var(--fmke-dark); text-decoration: none; }
body.woocommerce-cart .wc-block-grid__product-price { margin: 0 0 12px; font-size: 15px; font-weight: 800; color: var(--fmke-primary-dark); }
body.woocommerce-cart .wc-block-grid__product-price del { color: var(--fmke-muted); font-weight: 500; font-size: 13px; }
body.woocommerce-cart .wc-block-grid__product-price ins { background: none; text-decoration: none; }
body.woocommerce-cart .wc-block-grid__product-add-to-cart .wp-block-button__link,
body.woocommerce-cart .wc-block-grid__product-add-to-cart .wp-element-button {
  display: flex; align-items: center; justify-content: center; width: 100%; box-sizing: border-box;
  padding: 11px 14px !important; background: var(--fmke-primary) !important; color: #fff !important;
  border: 0 !important; border-radius: 999px !important; font-size: 13.5px !important; font-weight: 800 !important; text-decoration: none !important;
}
body.woocommerce-cart .wc-block-grid__product-add-to-cart .wp-block-button__link:hover { background: var(--fmke-primary-dark) !important; }
body.woocommerce-cart .wc-block-grid__product-onsale { top: 8px; left: 8px; right: auto; border-radius: 999px; background: var(--fmke-sale); color: #fff; border: 0; font-size: 11px; font-weight: 800; padding: 3px 10px; }

/* Cross-sells heading */
body.woocommerce-cart .wp-block-woocommerce-cart-cross-sells-block h2,
body.woocommerce-cart .cross-sells > h2 { font-family: 'Fraunces', Georgia, serif; font-size: 22px; font-weight: 600; color: var(--fmke-dark); margin: 28px 0 14px; }

/* =========================================================================
   CLASSIC CART  ([woocommerce_cart] shortcode)
   ========================================================================= */
@media (min-width: 1025px) {
  body.woocommerce-cart .entry-content > .woocommerce:has(> .woocommerce-cart-form) {
    display: grid; grid-template-columns: minmax(0, 1fr) 370px; column-gap: 24px; align-items: start;
  }
  body.woocommerce-cart .entry-content > .woocommerce > .woocommerce-notices-wrapper,
  body.woocommerce-cart .entry-content > .woocommerce > .woocommerce-message,
  body.woocommerce-cart .entry-content > .woocommerce > .woocommerce-info,
  body.woocommerce-cart .entry-content > .woocommerce > .woocommerce-error { grid-column: 1 / -1; }
  body.woocommerce-cart .woocommerce-cart-form { grid-column: 1; grid-row: 2; }
  body.woocommerce-cart .cart-collaterals { grid-column: 2; grid-row: 2; }
}
body.woocommerce-cart .woocommerce::before, body.woocommerce-cart .woocommerce::after { display: none !important; }

body.woocommerce-cart form.woocommerce-cart-form {
  box-sizing: border-box; margin: 0 0 20px; padding: 6px 24px 20px;
  background: #fff; border: 1px solid var(--fmke-border); border-radius: 18px; box-shadow: var(--fmke-shadow);
}
body.woocommerce-cart table.shop_table.cart { width: 100%; margin: 0; border: 0; border-collapse: separate; border-spacing: 0; background: transparent; }
body.woocommerce-cart table.shop_table.cart th {
  padding: 16px 8px 12px; border: 0; border-bottom: 2px solid var(--fmke-border); background: transparent;
  font-size: 11.5px; font-weight: 800; letter-spacing: .6px; text-transform: uppercase; color: var(--fmke-muted); text-align: left;
}
body.woocommerce-cart table.shop_table.cart td { padding: 18px 8px; border: 0; border-bottom: 1px solid var(--fmke-border); background: transparent; vertical-align: middle; font-size: 14.5px; }
body.woocommerce-cart table.shop_table.cart td.product-thumbnail { width: 104px; }
body.woocommerce-cart table.shop_table.cart td.product-thumbnail img { display: block; width: 88px; height: 88px; margin: 0; object-fit: cover; border-radius: 14px; background: var(--fmke-primary-light); }
body.woocommerce-cart table.shop_table.cart td.product-name a { font-size: 15.5px; font-weight: 700; color: var(--fmke-dark); text-decoration: none; }
body.woocommerce-cart table.shop_table.cart td.product-name a:hover { color: var(--fmke-primary-dark); }
body.woocommerce-cart table.shop_table.cart .amount { font-weight: 800; color: var(--fmke-primary-dark); }
body.woocommerce-cart table.shop_table.cart td.product-price .amount { font-weight: 700; }
body.woocommerce-cart table.shop_table.cart td.product-remove { width: 44px; text-align: center; }
body.woocommerce-cart table.shop_table.cart a.remove {
  display: inline-flex; align-items: center; justify-content: center; width: 30px; height: 30px; margin: 0;
  border-radius: 50%; background: #FDECEC; color: var(--fmke-sale) !important; font-size: 18px; font-weight: 700; line-height: 1; text-decoration: none;
  transition: background .15s ease, color .15s ease;
}
body.woocommerce-cart table.shop_table.cart a.remove:hover { background: var(--fmke-sale); color: #fff !important; }
body.woocommerce-cart .woocommerce .quantity .qty {
  width: 74px; height: 42px; padding: 0 8px; box-sizing: border-box; text-align: center;
  border: 1.5px solid var(--fmke-border); border-radius: 999px; background: #fff; box-shadow: none; font-size: 14.5px; font-weight: 800; color: var(--fmke-dark);
}
body.woocommerce-cart .woocommerce .quantity .qty:focus { outline: none; border-color: var(--fmke-primary); box-shadow: 0 0 0 3px rgba(255,106,0,.16); }

/* Actions row: coupon + update */
body.woocommerce-cart table.shop_table.cart td.actions { padding: 20px 0 0; border-bottom: 0; }
body.woocommerce-cart .woocommerce-cart-form .coupon { display: flex; align-items: center; flex-wrap: wrap; gap: 10px; float: left; }
body.woocommerce-cart .woocommerce-cart-form .coupon label { display: none; }
body.woocommerce-cart .woocommerce-cart-form .coupon #coupon_code {
  width: 220px; max-width: 100%; height: 46px; margin: 0; padding: 0 16px; box-sizing: border-box;
  border: 1.5px solid var(--fmke-border); border-radius: 999px; background: #fff; box-shadow: none; font-size: 14.5px;
}
body.woocommerce-cart .woocommerce-cart-form .coupon #coupon_code:focus { outline: none; border-color: var(--fmke-primary); box-shadow: 0 0 0 3px rgba(255,106,0,.16); }
body.woocommerce-cart .woocommerce-cart-form button[name="apply_coupon"],
body.woocommerce-cart .woocommerce-cart-form button[name="update_cart"] {
  display: inline-flex; align-items: center; justify-content: center; min-height: 46px; margin: 0; padding: 0 24px !important;
  border: 0 !important; border-radius: 999px !important; font-size: 14px !important; font-weight: 800 !important; text-transform: none; cursor: pointer;
  transition: background .15s ease, color .15s ease, opacity .15s ease;
}
body.woocommerce-cart .woocommerce-cart-form button[name="apply_coupon"] {
  background: #fff !important; color: var(--fmke-primary-dark) !important; box-shadow: inset 0 0 0 1.5px var(--fmke-primary) !important;
}
body.woocommerce-cart .woocommerce-cart-form button[name="apply_coupon"]:hover { background: var(--fmke-primary) !important; color: #fff !important; }
body.woocommerce-cart .woocommerce-cart-form button[name="update_cart"] { float: right; background: var(--fmke-dark) !important; color: #fff !important; }
body.woocommerce-cart .woocommerce-cart-form button[name="update_cart"]:hover:not(:disabled) { background: #2F5A41 !important; }
body.woocommerce-cart .woocommerce-cart-form button[name="update_cart"]:disabled,
body.woocommerce-cart .woocommerce-cart-form button[name="update_cart"][aria-disabled="true"] { opacity: .45; cursor: not-allowed; }

/* Totals */
body.woocommerce-cart .cart-collaterals { float: none !important; width: auto !important; }
body.woocommerce-cart .cart-collaterals .cart_totals {
  float: none !important; width: 100% !important; box-sizing: border-box; margin: 0 0 20px; padding: 22px 22px 22px;
  background: #fff; border: 1px solid var(--fmke-border); border-radius: 18px; box-shadow: var(--fmke-shadow);
}
body.woocommerce-cart .cart-collaterals .cart_totals > h2 {
  position: relative; margin: 0 0 16px; padding: 0 0 12px;
  font-family: 'Fraunces', Georgia, serif; font-size: 21px; font-weight: 600; color: var(--fmke-dark);
}
body.woocommerce-cart .cart-collaterals .cart_totals > h2::after { content: ""; position: absolute; left: 0; bottom: 0; width: 34px; height: 3px; border-radius: 3px; background: var(--fmke-primary); }
body.woocommerce-cart .cart_totals table.shop_table { width: 100%; margin: 0 0 8px; border: 0; background: transparent; }
body.woocommerce-cart .cart_totals table.shop_table th,
body.woocommerce-cart .cart_totals table.shop_table td { padding: 12px 0; border: 0; border-bottom: 1px solid var(--fmke-border); background: transparent; font-size: 14.5px; color: var(--fmke-dark); }
body.woocommerce-cart .cart_totals table.shop_table th { font-weight: 600; text-align: left; }
body.woocommerce-cart .cart_totals table.shop_table td { text-align: right; font-weight: 700; }
body.woocommerce-cart .cart_totals .order-total th, body.woocommerce-cart .cart_totals .order-total td { border-bottom: 0; padding-top: 16px; font-size: 16px; font-weight: 800; }
body.woocommerce-cart .cart_totals .order-total .amount { font-size: 22px; color: var(--fmke-primary-dark); }
body.woocommerce-cart .cart_totals ul#shipping_method { list-style: none; margin: 0; padding: 0; text-align: right; }
body.woocommerce-cart .wc-proceed-to-checkout { padding: 8px 0 0; }
body.woocommerce-cart .wc-proceed-to-checkout a.checkout-button,
body.woocommerce-cart a.checkout-button.button {
  display: flex !important; align-items: center; justify-content: center; box-sizing: border-box; width: 100%; min-height: 54px; margin: 0; padding: 14px 24px !important;
  background: var(--fmke-primary) !important; color: #fff !important; border: 0 !important; border-radius: 999px !important;
  box-shadow: 0 10px 22px rgba(255,106,0,.30) !important; font-size: 16px !important; font-weight: 800 !important; text-decoration: none !important;
  transition: background .15s ease, transform .15s ease, box-shadow .15s ease;
}
body.woocommerce-cart .wc-proceed-to-checkout a.checkout-button:hover { background: var(--fmke-primary-dark) !important; transform: translateY(-1px); }

/* Classic empty cart */
body.woocommerce-cart p.cart-empty.woocommerce-info,
body.woocommerce-cart .cart-empty {
  box-sizing: border-box; max-width: 640px; margin: 0 auto 18px !important; padding: 120px 28px 28px !important;
  background: #fff var(--fmke-i-bag-or) no-repeat center 30px / 64px 64px !important;
  border: 1.5px dashed #E8D5C2 !important; border-radius: 18px !important; text-align: center;
  font-family: 'Fraunces', Georgia, serif; font-size: 20px; font-weight: 600; color: var(--fmke-dark) !important;
}
body.woocommerce-cart .cart-empty::before { display: none !important; }
body.woocommerce-cart p.return-to-shop { text-align: center; margin: 0; }
body.woocommerce-cart p.return-to-shop a.button {
  display: inline-flex; align-items: center; justify-content: center; padding: 13px 30px !important;
  background: var(--fmke-primary) !important; color: #fff !important; border: 0 !important; border-radius: 999px !important;
  box-shadow: 0 8px 18px rgba(255,106,0,.28); font-weight: 800 !important; text-decoration: none !important;
}
body.woocommerce-cart p.return-to-shop a.button:hover { background: var(--fmke-primary-dark) !important; }

/* =========================================================================
   Small screens
   ========================================================================= */
@media (max-width: 782px) {
  body.woocommerce-cart .entry-title { font-size: 26px; margin-top: 16px; }
  body.woocommerce-cart .storefront-breadcrumb { padding: 12px 0 2px !important; }
  body.woocommerce-cart .site-content { padding: 6px 0 44px; }

  /* block items card */
  /* (items-card layout for small screens lives in the "Block cart items — small screens" section below) */
  body.woocommerce-cart .wc-block-components-product-name { font-size: 14.5px; }
  body.woocommerce-cart .wp-block-woocommerce-cart-totals-block { padding: 18px 16px; border-radius: 16px; }
  body.woocommerce-cart .wp-block-woocommerce-empty-cart-block { padding: 28px 16px 22px; border-radius: 16px; }
  body.woocommerce-cart .wc-block-cart__submit-button { min-height: 52px; }

  /* classic table → stacked cards */
  body.woocommerce-cart form.woocommerce-cart-form { padding: 4px 14px 16px; border-radius: 16px; }
  body.woocommerce-cart table.shop_table.cart thead { display: none; }
  body.woocommerce-cart table.shop_table.cart, body.woocommerce-cart table.shop_table.cart tbody { display: block; }
  body.woocommerce-cart table.shop_table.cart tr.cart_item {
    position: relative; display: block; margin: 0; padding: 14px 0; border-bottom: 1px solid var(--fmke-border);
  }
  body.woocommerce-cart table.shop_table.cart tr.cart_item td { display: flex !important; align-items: center; justify-content: space-between; gap: 12px; padding: 7px 0; border: 0; text-align: right !important; }
  body.woocommerce-cart table.shop_table.cart tr.cart_item td::before {
    float: none; content: attr(data-title); flex: 0 0 auto; color: var(--fmke-muted); font-size: 11.5px; font-weight: 800; letter-spacing: .4px; text-transform: uppercase;
  }
  body.woocommerce-cart table.shop_table.cart tr.cart_item td.product-thumbnail { width: auto; justify-content: center; }
  body.woocommerce-cart table.shop_table.cart tr.cart_item td.product-thumbnail::before,
  body.woocommerce-cart table.shop_table.cart tr.cart_item td.product-remove::before { display: none; }
  body.woocommerce-cart table.shop_table.cart tr.cart_item td.product-thumbnail img { width: 120px; height: 120px; }
  body.woocommerce-cart table.shop_table.cart tr.cart_item td.product-remove { position: absolute; top: 12px; right: 0; width: auto; padding: 0; z-index: 2; }
  body.woocommerce-cart table.shop_table.cart td.actions { display: block; padding-top: 14px; }
  body.woocommerce-cart .woocommerce-cart-form .coupon { float: none; width: 100%; }
  body.woocommerce-cart .woocommerce-cart-form .coupon #coupon_code { flex: 1 1 140px; width: auto; }
  body.woocommerce-cart .woocommerce-cart-form button[name="update_cart"] { float: none; width: 100%; margin-top: 12px; }
  body.woocommerce-cart .cart-collaterals .cart_totals { padding: 18px 16px; border-radius: 16px; }
}
/* =========================================================================
   Block cart — items card, small screens
   WooCommerce's own mobile row is a fixed grid (image 60-80px | product 132px |
   total auto). The desktop rules above add fixed widths, nowrap and per-cell
   borders that don't fit inside it, so on a phone the right-hand side of the
   card (line total, sometimes the quantity row) was pushed outside the card
   and clipped. Below 782px we take over the row layout completely so nothing
   depends on WooCommerce's grid.
   ========================================================================= */
@media (max-width: 782px) {
  body.woocommerce-cart .wc-block-cart table.wc-block-cart-items {
    display: block; width: 100%; max-width: 100%; box-sizing: border-box;
    padding: 2px 14px 4px; border-radius: 16px;
  }
  body.woocommerce-cart .wc-block-cart table.wc-block-cart-items thead,
  body.woocommerce-cart .wc-block-cart table.wc-block-cart-items .wc-block-cart-items__header { display: none !important; }
  body.woocommerce-cart .wc-block-cart table.wc-block-cart-items tbody { display: block; }

  /* One row = one little card: [image] [name / price / qty / total] */
  body.woocommerce-cart .wc-block-cart table.wc-block-cart-items .wc-block-cart-items__row {
    display: grid !important;
    grid-template-columns: 72px minmax(0, 1fr) !important;
    column-gap: 14px !important; row-gap: 6px;
    align-items: start;
    padding: 16px 0 !important;
  }
  body.woocommerce-cart .wc-block-cart table.wc-block-cart-items .wc-block-cart-items__row:not(:last-child) { border-bottom: 1px solid var(--fmke-border) !important; }
  /* the desktop rule puts a divider under EVERY cell; in the grid that draws stray lines, so the row owns the divider now */
  body.woocommerce-cart .wc-block-cart table.wc-block-cart-items .wc-block-cart-items__row > td,
  body.woocommerce-cart .wc-block-cart table.wc-block-cart-items .wc-block-cart-items__row:not(:last-child) > td {
    display: block; min-width: 0; padding: 0 !important; border: 0 !important;
  }

  body.woocommerce-cart .wc-block-cart table.wc-block-cart-items .wc-block-cart-item__image {
    grid-column: 1; grid-row: 1 / span 2; width: auto !important; padding: 0 !important;
  }
  body.woocommerce-cart .wc-block-cart table.wc-block-cart-items .wc-block-cart-item__product {
    grid-column: 2; grid-row: 1; justify-self: stretch; padding: 0 !important;
  }
  body.woocommerce-cart .wc-block-cart table.wc-block-cart-items .wc-block-cart-item__total {
    grid-column: 2; grid-row: 2; text-align: left; white-space: normal;
  }
  body.woocommerce-cart .wc-block-cart-item__total-price-and-sale-badge-wrapper { flex-direction: row; flex-wrap: wrap; align-items: center; gap: 4px 10px; }

  /* long names / variation text must wrap instead of widening the card */
  body.woocommerce-cart .wc-block-cart-item__wrap { min-width: 0; }
  body.woocommerce-cart .wc-block-cart-items .wc-block-components-product-name { display: block; max-width: 100%; overflow-wrap: anywhere; }
  body.woocommerce-cart .wc-block-cart-items .wc-block-components-product-metadata,
  body.woocommerce-cart .wc-block-cart-items .wc-block-components-product-details { overflow-wrap: anywhere; }
  body.woocommerce-cart .wc-block-cart-items .wc-block-cart-item__prices { flex-wrap: wrap; margin-bottom: 2px; }
  body.woocommerce-cart .wc-block-cart-items .wc-block-cart-item__quantity { margin-top: 6px; gap: 8px 12px; }

  /* classic cart: same safety net so long names / variations can't push cells off-screen */
  body.woocommerce-cart table.shop_table.cart tr.cart_item td > * { min-width: 0; }
  body.woocommerce-cart table.shop_table.cart tr.cart_item td.product-name a { overflow-wrap: anywhere; }
}
/* Roomier phones / small tablets: total goes back to its own column on the right */
@media (min-width: 480px) and (max-width: 782px) {
  body.woocommerce-cart .wc-block-cart table.wc-block-cart-items .wc-block-cart-items__row { grid-template-columns: 88px minmax(0, 1fr) auto !important; }
  body.woocommerce-cart .wc-block-cart table.wc-block-cart-items .wc-block-cart-item__image { grid-row: 1; }
  body.woocommerce-cart .wc-block-cart table.wc-block-cart-items .wc-block-cart-item__total { grid-column: 3; grid-row: 1; text-align: right; white-space: nowrap; }
  body.woocommerce-cart .wc-block-cart-item__total-price-and-sale-badge-wrapper { flex-direction: column; align-items: flex-end; }
}
@media (prefers-reduced-motion: reduce) {
  body.woocommerce-cart .wc-block-cart-item__image img,
  body.woocommerce-cart .wc-block-grid__product,
  body.woocommerce-cart .wc-block-cart__submit-button,
  body.woocommerce-cart .wc-proceed-to-checkout a.checkout-button { transition: none !important; transform: none !important; }
}
