/*
 * Peptilab — Cart Page (WooCommerce block)
 * Depends on: variables.css
 *
 * Layout: 5-column table (image / product / price / quantity / subtotal),
 *         dark totals sidebar, rounded pill checkout button.
 */

/* ============================================================
   <main> wrapper — page padding + featured image background
   ============================================================ */
body.woocommerce-cart {
	background-color: #F7F9FC;
}

/* The mini-cart icon (rendered hidden on product cards) must collapse
   completely on the cart page so it doesn't occupy layout space. */
body.woocommerce-cart .wc-block-mini-cart.wp-block-woocommerce-mini-cart {
	display: none !important;
}

body.woocommerce-cart main.wp-block-group {
	padding:    40px 60px !important;
	position:   relative;
	isolation:  isolate;
}

body.woocommerce-cart.has-featured-bg main.wp-block-group::before {
	content:             '';
	position:            absolute;
	inset:               0;
	z-index:             -1;
	background-image:    var(--pl-cart-bg, none);
	background-size:     contain;
	background-position: right;
	background-repeat:   no-repeat;
	opacity:             .5;
	pointer-events:      none;
}

/* ============================================================
   Breadcrumb + Title
   ============================================================ */
body.woocommerce-cart .wp-block-breadcrumbs {
	margin: 0 auto 24px !important;
	width:         100% !important;
	max-width: 1240px !important;
	font-family:   var(--pl-font-body, Inter, sans-serif) !important;
	font-size:     14px !important;
	font-style:    normal;
	font-weight:   400 !important;
	line-height:   20px !important;
	color:         #6E7787;           /* default (separators + current/inactive) */
	text-align:    left !important;
}

body.woocommerce-cart .wp-block-breadcrumbs .woocommerce-breadcrumb,
body.woocommerce-cart .wp-block-breadcrumbs nav {
	color: #6E7787;
}

body.woocommerce-cart .wp-block-breadcrumbs a {
	color:           #1A1A1A;
	text-decoration: none;
	font-weight:     400;
}

body.woocommerce-cart .wp-block-breadcrumbs a:hover {
	color: var(--pl-accent, #537FF4);
}

body.woocommerce-cart h1.wp-block-post-title {
	font-family: var(--pl-font-heading, Switzer, sans-serif) !important;
	font-size:   40px !important;
	font-style:  normal;
	font-weight: 500 !important;
	line-height: 48px !important;
	color:       #000E15 !important;
	padding:     0 !important;
	margin:      0 auto 48px !important;
	text-align:  left !important;
	max-width:   none !important;
	width:       100% !important;
	max-width: 1240px !important;
}

/* ============================================================
   Two-column layout (items | totals)
   ============================================================ */
.wp-block-woocommerce-cart {
	margin: 0 !important;
}

.wc-block-components-sidebar-layout.wc-block-cart {
	display:               grid !important;
	grid-template-columns: minmax(0, 1fr) clamp(320px, 29.6vw, 426px);
	gap:                   40px;
	align-items:           start;
}

/* Width is governed by the grid — override WC's inline/flex widths. */
.wc-block-components-sidebar-layout .wc-block-components-main {
	width:     100% !important;
	max-width: none !important;
	flex:      none !important;
	min-width: 0;
}

.wc-block-components-sidebar.wc-block-cart__sidebar,
.wp-block-woocommerce-cart-totals-block {
	width:     100% !important;
	max-width: none !important;
	flex:      none !important;
}

.wc-block-components-main.wc-block-cart__main {
	background: transparent !important;
	padding:    0 !important;
	border-radius: 0 !important;
}

/* ============================================================
   Items table — 5 column grid
   ============================================================ */
.wc-block-cart-items,
table.wc-block-cart-items {
	display:         block !important;
	width:           100% !important;
	border:          0 !important;
	border-collapse: collapse !important;
}

/* Strip default table-cell borders on any <td> */
.wc-block-cart__main .wc-block-cart-items td,
.wc-block-cart__main table.wc-block-cart-items td {
	border: 0 !important;
}

.wc-block-cart-items caption {
	display: none !important;
}

.wc-block-cart-items thead,
.wc-block-cart-items tbody {
	display: block !important;
	width:   100%;
}

/* ── Header row ── */
.wc-block-cart-items__header {
	display:               grid !important;
	grid-template-columns: 90px minmax(0, 1fr) 100px 140px 100px;
	grid-template-rows:    auto;
	grid-template-areas:   ". product price quantity subtotal";
	column-gap:            24px;
	align-items:           center;
	padding:               16px 25px 16px !important;
	border-bottom:         1px solid  rgba(202, 205, 211, 1) !important;
}

.wc-block-cart-items__header th,
.wc-block-cart-items__header::before,
.wc-block-cart-items__header::after {
	padding:        0 !important;
	margin:         0 !important;
	background:     transparent !important;
	visibility:     visible !important;
	font-family:    var(--pl-font-body, Inter, sans-serif) !important;
	font-size:      14px !important;
	font-style:     normal !important;
	font-weight:    500 !important;
	line-height:    20px !important;
	letter-spacing: 0 !important;
	text-align: left;
	color:          var(--primary-1, #1A1A1A) !important;
	text-transform: none !important;
}

/* th.header-image → originally "Product", place in "product" area */
.wc-block-cart-items__header-image {
	grid-area:  product;
	text-align: left;
}

/* Hide original text in Details / Total headers; replace with "Price" / "Subtotal" */
.wc-block-cart-items__header-product > span,
.wc-block-cart-items__header-total   > span {
	display: none !important;
}

.wc-block-cart-items__header-product {
	grid-area:   price;
	text-align:  center;
	visibility:  visible !important;
}

.wc-block-cart-items__header-product::after {
	content: 'Price';
}

.wc-block-cart-items__header-total {
	grid-area:  subtotal;
	text-align: right;
}

.wc-block-cart-items__header-total::after {
	content: 'Subtotal';
}

/* Inject "Quantity" label into the "quantity" grid area via a pseudo on the header row */
.wc-block-cart-items__header::after {
	content:    'Quantity';
	grid-area:  quantity;
	text-align: center;
}

/* ── Data row ── */
.wc-block-cart-items__row {
	display:               grid !important;
	grid-template-columns: 90px minmax(0, 1fr) 100px 140px 100px;
	grid-template-rows:    auto 1fr auto;   /* name / metadata-flex / remove */
	column-gap:            24px;
	row-gap:               0;
	padding:               16px !important;
	border:                0 !important;
	border-bottom:         1px solid  rgba(202, 205, 211, 1) !important;
}

.wc-block-cart-items__row:last-child {
	border-bottom: 0 !important;
}

/* Flatten the nested table-cells + wrap so all pieces participate in the row grid */
.wc-block-cart-items__row > td.wc-block-cart-item__product,
.wc-block-cart-item__product > .wc-block-cart-item__wrap,
.wc-block-cart-item__wrap > .wc-block-cart-item__quantity {
	display: contents !important;
}

/* Image — col 1, span all rows */
.wc-block-cart-items__row > .wc-block-cart-item__image {
	grid-column:   1;
	grid-row:      1 / -1;
	align-self:    start;
	width:         90px !important;
	height:        90px !important;
	padding:       0 !important;
	background:    var(--light-grey, #E7EAEF) !important;
	border:        0 !important;
	border-radius: 8px !important;
	overflow:      hidden;
}

.wc-block-cart-item__image a,
.wc-block-cart-item__image img {
	display:    block;
	width:      100% !important;
	height:     100% !important;
	object-fit: contain !important;
	padding:    0 !important;
}

/* Product name — col 2, row 1 (top) */
.wc-block-cart-items__row .wc-block-components-product-name {
	grid-column:     2;
	grid-row:        1;
	align-self:      start;
	font-family:     var(--pl-font-body, Inter, sans-serif) !important;
	font-size:       16px !important;
	font-style:      normal !important;
	font-weight:     400 !important;
	line-height:     24px !important;
	color:           #1A1A1A !important;
	text-decoration: none !important;
	margin:          0 !important;
}

.wc-block-cart-items__row .wc-block-components-product-name:hover {
	color: var(--pl-accent, #537FF4) !important;
}

/* Inline price under name (mobile WC also renders it here) — hide it on desktop */
.wc-block-cart-items__row .wc-block-cart-item__prices {
	grid-column: 3;
	grid-row:    1 / -1;
	align-self:  center;
	text-align:  center;
	margin:      0 !important;
}

.wc-block-cart-items__row .wc-block-cart-item__prices .wc-block-components-product-price,
.wc-block-cart-items__row .wc-block-cart-item__prices .wc-block-components-product-price__value {
	font-family: var(--pl-font-body, Inter, sans-serif) !important;
	font-size:   16px !important;
	font-style:  normal !important;
	font-weight: 400 !important;
	line-height: 24px !important;
	color:       var(--primary-1, #1A1A1A) !important;
}

/* Product metadata (variations) — col 2, middle row */
.wc-block-cart-items__row .wc-block-components-product-metadata {
	grid-column: 2;
	grid-row:    2;
	align-self:  center;
	font-family: var(--pl-font-body, Inter, sans-serif);
	font-size:   12px;
	line-height: 18px;
	color:       #6B7280;
}

/* Quantity selector — col 4, span all rows */
.wc-block-cart-items__row .wc-block-components-quantity-selector {
	grid-column:    4;
	grid-row:       1 / -1;
	align-self:     center;
	justify-self:   center;
	display:        inline-flex !important;
	align-items:    center;
	gap:            8px;
	background:     transparent !important;
	border:         0 !important;
	border-radius:  0 !important;
	padding:        0 !important;
	height:         auto !important;
	min-width:      0 !important;
}

.wc-block-cart-items__row .wc-block-components-quantity-selector__input {
	width:       28px !important;
	min-width:   28px !important;
	height:      28px !important;
	background:  transparent !important;
	border:      0 !important;
	text-align:  center !important;
	font-family: var(--pl-font-body, Inter, sans-serif) !important;
	font-size:   14px !important;
	font-weight: 500 !important;
	line-height: 20px !important;
	color:       #1A1A1A !important;
	padding:     0 !important;
	-moz-appearance:    textfield;
	-webkit-appearance: none;
}

.wc-block-cart-items__row .wc-block-components-quantity-selector__input::-webkit-inner-spin-button,
.wc-block-cart-items__row .wc-block-components-quantity-selector__input::-webkit-outer-spin-button {
	-webkit-appearance: none;
	margin: 0;
}

.wc-block-cart-items__row .wc-block-components-quantity-selector__button {
	width:           28px !important;
	height:          28px !important;
	padding:         0 !important;
	background:      #fff !important;
	border:          1px solid #CACDD3 !important;
	border-radius:   8px !important;
	font-size:       16px !important;
	font-weight:     400 !important;
	line-height:     1 !important;
	color:           #1A1A1A !important;
	cursor:          pointer;
	display:         flex !important;
	align-items:     center;
	justify-content: center;
	transition:      color .2s ease, border-color .2s ease;
}

.wc-block-cart-items__row .wc-block-components-quantity-selector__button:hover:not(:disabled) {
	border-color: var(--pl-accent, #537FF4) !important;
	color:        var(--pl-accent, #537FF4) !important;
}

.wc-block-cart-items__row .wc-block-components-quantity-selector__button:disabled {
	opacity: .4;
	cursor:  default;
}

/* Remove link — col 2, row 3 (bottom of image) */
.wc-block-cart-items__row .wc-block-cart-item__remove-link {
	grid-column:  2;
	grid-row:     3;
	align-self:   end;
	justify-self: start;
	padding:      0 !important;
	background:   transparent !important;
	border:       0 !important;
	font-family:  var(--pl-font-body, Inter, sans-serif) !important;
	font-size:    12px !important;
	font-style:   normal !important;
	font-weight:  400 !important;
	line-height:  16px !important;
	color:        var(--error, #E55649) !important;
	cursor:       pointer;
	text-decoration: none !important;
	width:        auto !important;
	height:       auto !important;
}

.wc-block-cart-items__row .wc-block-cart-item__remove-link svg {
	display: none !important;
}

.wc-block-cart-items__row .wc-block-cart-item__remove-link::before {
	content: 'Remove';
}

.wc-block-cart-items__row .wc-block-cart-item__remove-link:hover {
	text-decoration: underline;
}

/* Subtotal — col 5, span all rows (override mini-cart.css display:none) */
.wc-block-cart-items__row > .wc-block-cart-item__total {
	display:     block !important;
	grid-column: 5;
	grid-row:    1 / -1;
	align-self:  center;
	padding:     0 !important;
	text-align:  right;
}

.wc-block-cart-items__row .wc-block-cart-item__total-price-and-sale-badge-wrapper {
	display:         flex;
	flex-direction:  column;
	align-items:     flex-end;
	gap:             4px;
}

.wc-block-cart-items__row .wc-block-cart-item__total .wc-block-components-product-price,
.wc-block-cart-items__row .wc-block-cart-item__total .wc-block-components-product-price__value {
	font-family: var(--pl-font-body, Inter, sans-serif) !important;
	font-size:   16px !important;
	font-style:  normal !important;
	font-weight: 600 !important;
	line-height: 24px !important;
	color:       var(--primary-1, #1A1A1A) !important;
}

/* ============================================================
   Hide "Update cart" button
   ============================================================ */
.wc-block-cart__update-button,
.wc-block-cart__update-link,
button.wc-block-cart__update-button {
	display: none !important;
}

/* ============================================================
   Coupon — single-line layout, no wrap
   ============================================================ */
.wp-block-woocommerce-cart-order-summary-coupon-form-block,
.wc-block-components-totals-coupon {
	margin:  0 !important;
	padding: 0 !important;
}

.wc-block-components-totals-coupon__content,
.wc-block-components-totals-coupon__form {
	display:         flex !important;
	flex-wrap:       nowrap !important;
	align-items:     center;
	gap:             8px;
	width:           100%;
}

.wc-block-components-totals-coupon__input {
	flex:         1 1 auto !important;
	min-width:    0 !important;
	margin:       0 !important;
	padding:      0 !important;
	background:   transparent !important;
	border:       1px solid rgba(247, 249, 252, .24) !important;
	border-radius: 24px !important;
	height:       40px !important;
	display:      flex;
	align-items:  center;
	overflow:     hidden;
}

.wc-block-components-totals-coupon__input .wc-block-components-text-input {
	position:     relative;
	width:        100%;
	height:       100%;
	margin:       0 !important;
	padding:      0 !important;
	background:   transparent !important;
	border:       0 !important;
	border-radius: 0 !important;
	display:      flex;
	align-items:  center;
}

.wc-block-components-totals-coupon__input input,
.wc-block-components-totals-coupon__input #wc-block-components-totals-coupon__input-coupon {
	flex:         1;
	width:        100% !important;
	height:       100% !important;
	min-height:   0 !important;
	padding:      0 16px !important;
	background:   transparent !important;
	border:       0 !important;
	border-radius: 0 !important;
	box-shadow:   none !important;
	font-family:  var(--pl-font-body, Inter, sans-serif) !important;
	font-size:    14px !important;
	font-weight:  400 !important;
	line-height:  20px !important;
	color:        #F7F9FC !important;
}

.wc-block-components-totals-coupon__input input::placeholder {
	color: rgba(247, 249, 252, .5) !important;
}

/* Floating label — absolute-centered, hidden when focused or filled */
.wc-block-components-totals-coupon__input label,
.wc-block-components-totals-coupon__input .wc-block-components-text-input label {
	position:        absolute !important;
	top:             50% !important;
	left:            16px !important;
	right:           auto !important;
	bottom:          auto !important;
	transform:       translateY(-50%) !important;
	margin:          0 !important;
	padding:         0 !important;
	background:      transparent !important;
	font-family:     var(--pl-font-body, Inter, sans-serif) !important;
	font-size:       14px !important;
	font-weight:     400 !important;
	line-height:     20px !important;
	color:           rgba(247, 249, 252, .5) !important;
	pointer-events:  none;
	transition:      opacity .15s ease;
}

.wc-block-components-totals-coupon__input .wc-block-components-text-input.is-active label,
.wc-block-components-totals-coupon__input .wc-block-components-text-input:focus-within label,
.wc-block-components-totals-coupon__input input:not(:placeholder-shown) ~ label,
.wc-block-components-totals-coupon__input input:focus ~ label {
	opacity:    0 !important;
	visibility: hidden !important;
}

.wc-block-components-totals-coupon__button {
	flex:            0 0 auto !important;
	height:          40px !important;
	padding:         0 16px !important;
	border-radius:   24px !important;
	background:      transparent !important;
	border:          1px solid #F7F9FC !important;
	color:           #F7F9FC !important;
	font-family:     var(--pl-font-body, Inter, sans-serif) !important;
	font-size:       13px !important;
	font-weight:     500 !important;
	white-space:     nowrap !important;
	cursor:          pointer;
}

.wc-block-components-totals-coupon__button:hover {
	background: rgba(247, 249, 252, .1) !important;
}

/* The collapsed "Add coupons" trigger */
.wc-block-components-totals-coupon .wc-block-components-panel__button {
	font-family: var(--pl-font-body, Inter, sans-serif) !important;
	font-size:   14px !important;
	font-weight: 500 !important;
	color:       #F7F9FC !important;
	padding:     0 !important;
	background:  transparent !important;
}

.wc-block-components-totals-coupon .wc-block-components-panel__button-icon {
	fill: #F7F9FC !important;
}

/* ============================================================
   Cart totals sidebar — dark card
   ============================================================ */
.wc-block-components-sidebar.wc-block-cart__sidebar,
.wp-block-woocommerce-cart-totals-block {
	background:    #2A2A2A;
	border-radius: 32px;
	padding:       32px !important;
	color:         #F7F9FC;
	margin:        0 !important;
	position:      sticky;
	top:           100px;
}

.wp-block-woocommerce-cart-totals-block .wc-block-components-totals-wrapper {
	border:  0 !important;
	padding: 0 !important;
	margin:  24px 0 !important;
}

.wp-block-woocommerce-cart-totals-block .wc-block-components-totals-wrapper + .wc-block-components-totals-wrapper {
	border-top:  1px solid #8A94A6 !important;
	padding-top: 16px !important;
}

.wp-block-woocommerce-cart-totals-block .wp-block-woocommerce-cart-order-summary-totals-block {
	border-top:  1px solid #8A94A6 !important;
	border-bottom:  1px solid #8A94A6 !important;
	padding: 16px 0 !important;
}

.wc-block-cart .wp-block-woocommerce-cart-order-summary-block {
	border-bottom: 1px solid #8A94A6 !important;
}

/* WC ships @container (max-width:699px){... display:none} on the totals title —
   keep it visible on mobile. */
.wp-block-woocommerce-cart-totals-block .wc-block-cart__totals-title,
.wc-block-cart .wc-block-components-sidebar .wc-block-cart__totals-title {
	display:        block !important;
	font-family:    var(--pl-font-body, Inter, sans-serif) !important;
	font-size:      20px !important;
	font-style:     normal;
	font-weight:    600 !important;
	line-height:    28px !important;
	letter-spacing: 0 !important;
	text-transform: none !important;
	color:          var(--primary-2, #F7F9FC) !important;
	margin:         0 0 24px !important;
	padding:        0 !important;
	text-align:     left !important;
}

/* Totals rows (Subtotal / Shipping / Total) */
.wp-block-woocommerce-cart-totals-block .wc-block-components-totals-item {
	display:         flex !important;
	align-items:     center;
	justify-content: space-between;
	padding:         0 !important;
	margin:          0 0 12px !important;
	border:          0 !important;
	font-family:     var(--pl-font-body, Inter, sans-serif) !important;
}

.wp-block-woocommerce-cart-totals-block .wc-block-components-totals-item__label {
	font-family: var(--pl-font-body, Inter, sans-serif) !important;
	font-size:   14px !important;
	font-style:  normal;
	font-weight: 400 !important;
	line-height: 20px !important;
	color:       rgba(247, 249, 252, .80) !important;
}

.wp-block-woocommerce-cart-totals-block .wc-block-components-totals-item__value {
	font-family: var(--pl-font-body, Inter, sans-serif) !important;
	font-size:   16px !important;
	font-style:  normal;
	font-weight: 600 !important;
	line-height: 24px !important;
	color:       var(--primary-2, #F7F9FC) !important;
}

.wp-block-woocommerce-cart-totals-block .wc-block-components-totals-item__description {
	display: none !important;
}

/* Shipping radio list */
.wp-block-woocommerce-cart-totals-block .wc-block-components-radio-control,
.wp-block-woocommerce-cart-totals-block .wc-block-components-shipping-rates-control {
	display:        flex !important;
	flex-direction: column;
	gap:            8px;
	margin-top:     8px;
}

.wp-block-woocommerce-cart-totals-block .wc-block-components-radio-control__option {
	display:         flex !important;
	align-items:     center;
	gap:             10px;
	padding:         10px 12px !important;
	background:      rgba(247, 249, 252, .04);
	border:          1px solid rgba(247, 249, 252, .08);
	border-radius:   10px;
	cursor:          pointer;
	margin:          0 !important;
}

.wp-block-woocommerce-cart-totals-block .wc-block-components-radio-control__option:has(input:checked) {
	background:   rgba(83, 127, 244, .12);
	border-color: var(--pl-accent, #537FF4);
}

.wp-block-woocommerce-cart-totals-block .wc-block-components-radio-control__input {
	margin: 0 !important;
}

.wp-block-woocommerce-cart-totals-block .wc-block-components-radio-control__label {
	flex:        1;
	font-size:   14px;
	color:       #F7F9FC;
	font-weight: 500;
}

.wp-block-woocommerce-cart-totals-block .wc-block-components-radio-control__secondary-label,
.wp-block-woocommerce-cart-totals-block .wc-block-components-radio-control__description {
	color: #A5B0C0;
}

/* "Change shipping method at checkout" paragraph */
.wp-block-woocommerce-cart-totals-block p.shipping-description {
	margin:      0 !important;
	padding:     0 !important;
	font-family: var(--pl-font-body, Inter, sans-serif) !important;
	font-size:   14px !important;
	font-weight: 400 !important;
	line-height: 20px !important;
	color:       rgba(247, 249, 252, .80) !important;
}

/* Shipping "Change address" link */
.wp-block-woocommerce-cart-totals-block .wc-block-components-shipping-address,
.wp-block-woocommerce-cart-totals-block .wc-block-components-shipping-calculator-address a,
.wp-block-woocommerce-cart-totals-block button.wc-block-components-shipping-calculator-address__button {
	background:      transparent !important;
	border:          0 !important;
	padding:         0 !important;
	color:           var(--pl-accent, #537FF4) !important;
	font-size:       13px;
	font-weight:     500;
	text-decoration: underline;
	cursor:          pointer;
}

/* Footer total (big) */

/* ============================================================
   Proceed to checkout button — blue pill
   ============================================================ */
.wc-block-cart__submit,
.wp-block-woocommerce-proceed-to-checkout-block {
	margin-top: 8px !important;
}

.wc-block-cart__submit-container a.wc-block-cart__submit-button,
.wc-block-cart__submit-button,
a.wc-block-cart__submit-button.wp-element-button {
	display:         flex !important;
	align-items:     center;
	justify-content: center;
	width:           100% !important;
	padding:         14px 28px !important;
	background:      #F7F9FC !important;
	color:           #1A1A1A !important;
	border:          1px solid #1A1A1A  !important;
	border-radius:   32px !important;
	font-family:     var(--pl-font-body, Inter, sans-serif) !important;
	font-size:       16px !important;
	font-weight:     600 !important;
	line-height:     24px !important;
	text-decoration: none !important;
	transition:      background .2s ease, border-color .2s ease;
	box-shadow:      none !important;
}

.wc-block-cart__submit-container a.wc-block-cart__submit-button:hover,
.wc-block-cart__submit-button:hover,
a.wc-block-cart__submit-button.wp-element-button:hover {
	background:   #1A1A1A  !important;
	color: #F7F9FC  !important;
}

/* ============================================================
   Free-shipping progress bar injection (pl-fsg)
   ============================================================ */
.wp-block-woocommerce-cart-totals-block [data-pl-fsg="cart-progress"] {
	margin: 0 0 16px !important;
}

.wp-block-woocommerce-cart-totals-block .pl-fsg-progress__heading,
.wp-block-woocommerce-cart-totals-block .pl-fsg-progress__text,
.wp-block-woocommerce-cart-totals-block .pl-fsg-progress__bonus {
	color: #F7F9FC !important;
}

.wp-block-woocommerce-cart-totals-block .pl-fsg-progress__heading strong {
	color: #F7F9FC !important;
}

.wp-block-woocommerce-cart-totals-block .pl-fsg-progress__track {
	background: rgba(247, 249, 252, .1);
}

/* Achieved state (gift unlocked) — keep text readable on the dark sidebar */
.wp-block-woocommerce-cart-totals-block .pl-fsg-progress--done,
.wp-block-woocommerce-cart-totals-block .pl-fsg-progress--done .pl-fsg-progress__gift-text,
.wp-block-woocommerce-cart-totals-block .pl-fsg-progress--done .pl-fsg-gift-link {
	color: #F7F9FC !important;
}

.wp-block-woocommerce-cart-totals-block .pl-fsg-progress--done .pl-fsg-gift-link:hover {
	color: #F7F9FC !important;
	opacity: .8;
}

/* ============================================================
   Empty cart state — wp-block-woocommerce-empty-cart-block
   ============================================================ */

/* 70px padding between content and footer when cart is empty. */
body.woocommerce-cart main.wp-block-group:has(.wp-block-woocommerce-empty-cart-block) {
	padding-bottom: 70px !important;
}

/* 32px between page title and the empty-cart image. */
body.woocommerce-cart main.wp-block-group:has(.wp-block-woocommerce-empty-cart-block) h1.wp-block-post-title {
	margin-bottom: 32px !important;
}

/* 48px gap between image, heading and the button. */
.wp-block-woocommerce-empty-cart-block .wp-block-group.is-vertical {
	gap:         48px !important;
	align-items: center;
	margin:      0 !important;
}

.wp-block-woocommerce-empty-cart-block .wp-block-group.is-vertical > * {
	margin: 0 !important;
}

/* Content heading. */
.wp-block-woocommerce-empty-cart-block h2.wp-block-heading {
	font-family: var(--pl-font-body, Inter, sans-serif) !important;
	font-size:   32px !important;
	font-style:  normal;
	font-weight: 500 !important;
	line-height: 40px !important;
	color:       #000E15 !important;
	text-align:  center;
}

/* "Return to shop" button — match product-card add-to-cart typography. */
.wp-block-woocommerce-empty-cart-block .wp-block-buttons {
	justify-content: center;
}

.wp-block-woocommerce-empty-cart-block .wp-block-button__link,
.wp-block-woocommerce-empty-cart-block a.wp-block-button__link.wp-element-button {
	display:         block !important;
	width:           100% !important;
	padding:         14px 28px !important;
	background:      var(--pl-accent) !important;
	color:           #F7F9FC !important;
	text-align:      center !important;
	border-radius:   var(--pl-border-radius) !important;
	font-size:       16px !important;
	 line-height: 1.63 !important;
	font-weight:     600 !important;
	border:          none !important;
	text-decoration: none !important;
	cursor:          pointer;
	box-sizing:      border-box;
	transition:      background var(--pl-transition), box-shadow var(--pl-transition),
	                 transform var(--pl-transition-fast);
}

.wp-block-woocommerce-empty-cart-block .wp-block-button__link:hover,
.wp-block-woocommerce-empty-cart-block a.wp-block-button__link.wp-element-button:hover {
	background: var(--pl-accent-dark) !important;
	box-shadow: var(--pl-shadow-card-atc) !important;
	transform:  translateY(-1px);
}

/* ============================================================
   Responsive — stack on narrow screens
   ============================================================ */
/* Stack sidebar below items before the 5-col grid can crush the name column.
   At this width the name would drop below ~130px and wrap per character on
   unbreakable strings like "BPC-157". */
@media (max-width: 1279px) {
	.wc-block-components-sidebar-layout.wc-block-cart {
		grid-template-columns: 1fr;
	}
}

@media (max-width: 720px) {
	body.woocommerce-cart main.wp-block-group {
		padding: 24px !important;
	}

	body.woocommerce-cart h1.wp-block-post-title {
		font-size:     24px !important;
		line-height:   32px !important;
		margin-bottom: 8px !important;
	}

	/* Empty cart — stretch the button block to the full row width when it
	   contains a button, so the "Return to shop" CTA spans the screen. */
	.wp-block-woocommerce-empty-cart-block .wp-block-buttons:has(.wp-block-button),
	.wp-block-woocommerce-empty-cart-block .wp-block-buttons:has(.wp-block-button) .wp-block-button {
		width: 100% !important;
	}

	.wp-block-woocommerce-empty-cart-block h2.wp-block-heading {
		font-size:   24px !important;
		line-height: 32px !important;
	}

	.wc-block-components-sidebar.wc-block-cart__sidebar,
	.wp-block-woocommerce-cart-totals-block {
		padding: 24px !important;
	}

	.wc-block-components-main.wc-block-cart__main {
		padding: 0 !important;
	}

	.wc-block-cart-items__header {
		display: none !important;
	}

	/* Mobile layout (matches the design):
	 * ┌─────┬──────────────┬──────────┐
	 * │     │ Name         │ Subtotal │  row 1
	 * │ IMG │ (metadata)   │          │  row 2
	 * │     │ Price        │          │  row 3
	 * │     │ (spacer)     │          │  row 4 (1fr)
	 * │     │ Quantity     │ Remove   │  row 5
	 * └─────┴──────────────┴──────────┘
	 *
	 * WC Blocks adds .is-mobile / .is-small to .wc-block-components-sidebar-layout
	 * via a JS container query and ships a 2-col grid (80px 132px) plus forced
	 * placements on .wc-block-cart-item__image/__quantity — higher specificity
	 * than ours. We !important the grid properties so our 3-col layout wins.
	 */
	.wc-block-cart-items__row {
		grid-template-columns: 102px minmax(0, 1fr) auto !important;
		grid-template-rows:    auto auto auto 1fr auto !important;
		column-gap:            16px !important;
		row-gap:               4px !important;
		padding:               16px 0 !important;
	}

	/* 102×102 frame with 8px inset — padding shrinks the inner <img>
	   (box-sizing:border-box + width:100% → img lives in the content box). */
	.wc-block-cart-items__row > .wc-block-cart-item__image {
		grid-column:   1 !important;
		grid-row:      1 / -1 !important;
		align-self:    start !important;
		width:         86px !important;
		height:        86px !important;
		padding:       8px !important;
		padding-right: 8px !important; /* override WC's .is-mobile padding-right:16 */
	}

	.wc-block-cart-items__row .wc-block-components-product-name {
		grid-column: 2 !important;
		grid-row:    1 !important;
		font-size:   14px !important;
		line-height: 20px !important;
	}

	.wc-block-cart-items__row .wc-block-cart-item__total .wc-block-components-product-price,
	.wc-block-cart-items__row .wc-block-cart-item__total .wc-block-components-product-price__value {
		font-size:   14px !important;
		line-height: 20px !important;
	}

	.wc-block-cart-items__row .wc-block-cart-item__prices .wc-block-components-product-price,
	.wc-block-cart-items__row .wc-block-cart-item__prices .wc-block-components-product-price__value {
		font-size:   14px !important;
		line-height: 20px !important;
	}

	.wc-block-cart-items__row .wc-block-components-product-metadata {
		grid-column: 2 !important;
		grid-row:    2 !important;
	}

	.wc-block-cart-items__row .wc-block-cart-item__prices {
		grid-column: 2 !important;
		grid-row:    3 !important;
		align-self:  start !important;
		text-align:  left !important;
	}

	.wc-block-cart-items__row .wc-block-components-quantity-selector {
		grid-column:  2 !important;
		grid-row:     5 !important;
		align-self:   end !important;
		justify-self: start !important;
	}

	.wc-block-cart-items__row > .wc-block-cart-item__total {
		grid-column: 3 !important;
		grid-row:    1 !important;
		align-self:  start !important;
		text-align:  right !important;
	}

	.wc-block-cart-items__row .wc-block-cart-item__remove-link {
		grid-column:  3 !important;
		grid-row:     5 !important;
		align-self:   end !important;
		justify-self: end !important;
		display:      inline-block !important; /* WC .is-mobile hides remove link; force it back */
	}
}
