/* IRENNE cart page: classic [woocommerce_cart] shortcode, restyled. */

.woocommerce-cart .woocommerce {
	max-width: var(--ir-shell-max);
	margin: 0 auto;
	padding: clamp(16px, 2.5vw, 32px) var(--ir-side-pad) 0;
	font-family: var(--ir-font-ui);
}

/* The theme's page header duplicates our КОШИК head. */
.woocommerce-cart .page-header { display: none; }

/* ---------- Head ---------- */
.ir-cart__head {
	display: flex;
	flex-wrap: wrap;
	align-items: baseline;
	justify-content: space-between;
	gap: 10px 24px;
	margin-bottom: clamp(20px, 3vw, 36px);
}
.ir-cart__title {
	font-family: var(--ir-font-ui);
	font-size: clamp(22px, 2.6vw, 30px);
	font-weight: 600;
	letter-spacing: var(--ir-tracking-caps);
	text-transform: uppercase;
	margin: 0;
	color: var(--ir-text);
}
.ir-cart__consultant { font-size: 13px; color: var(--ir-text); }
.ir-cart__consultant a {
	color: var(--ir-text);
	font-weight: 600;
	text-decoration: underline;
	text-underline-offset: 3px;
}
.ir-cart__consultant a:hover { color: var(--ir-sale); }

/* ---------- Two columns: items / totals ---------- */
.woocommerce-cart form.woocommerce-cart-form { min-width: 0; }
@media (min-width: 1200px) {
	.woocommerce-cart .woocommerce {
		display: grid;
		grid-template-columns: minmax(0, 1fr) 380px;
		gap: 0 clamp(32px, 4vw, 64px);
		align-items: start;
	}
	.ir-cart__head { grid-column: 1 / -1; }
	.woocommerce-cart form.woocommerce-cart-form,
	.ir-cart__gift { grid-column: 1; }
	.woocommerce-cart .cart-collaterals,
	.ir-cart__continue { grid-column: 2; }
}

/* ---------- Items table ---------- */
.woocommerce-cart table.shop_table {
	width: 100%;
	border: 0;
	border-collapse: collapse;
	margin: 0;
}
.woocommerce-cart table.shop_table th,
.woocommerce-cart table.shop_table td {
	border: 0;
	background: none;
	padding: 14px 12px 14px 0;
	text-align: left;
	vertical-align: top;
}
.woocommerce-cart table.shop_table thead th {
	font-size: 12px;
	font-weight: 600;
	letter-spacing: var(--ir-tracking-caps);
	text-transform: uppercase;
	color: var(--ir-text);
	border-bottom: 1px solid var(--ir-border);
	/* The header band sits between two hairlines — symmetric padding, or
	   the labels press against the top line (client screenshot). */
	padding-top: 12px;
	padding-bottom: 12px;
}
/* Design shows ONE price per row (qty-aware). The unit-price column is
   hidden entirely; the subtotal column carries the visible «ЦІНА» header. */
.woocommerce-cart table.shop_table thead th.product-quantity { font-size: 0; }
/* «ТОВАР» anchors the table's LEFT edge (over the photo column) and
   «ЦІНА» the right — headers align with their columns' true edges
   instead of floating at the name column's indent. */
.woocommerce-cart table.shop_table thead th.product-name { font-size: 0; }
.woocommerce-cart table.shop_table thead th.product-thumbnail { font-size: 0; }
.woocommerce-cart table.shop_table thead th.product-thumbnail { padding-left: 12px; }
.woocommerce-cart table.shop_table thead th.product-thumbnail::after {
	content: 'Товар';
	font-size: 12px;
	font-weight: 600;
	letter-spacing: var(--ir-tracking-caps);
	text-transform: uppercase;
}
/* The gettext mapping renders the totals-row «Товари», which also reaches
   this column header; the design labels the column «ЦІНА». Presentational
   relabel (the accessible name stays in the cell text). */
.woocommerce-cart table.shop_table thead th.product-subtotal { font-size: 0; }
.woocommerce-cart table.shop_table thead th.product-subtotal::after {
	content: 'Ціна';
	font-size: 12px;
	font-weight: 600;
	letter-spacing: var(--ir-tracking-caps);
	text-transform: uppercase;
}
.woocommerce-cart td.product-price,
.woocommerce-cart th.product-price { display: none; }
.woocommerce-cart table.shop_table tbody td { border-bottom: 1px solid var(--ir-border); }
.woocommerce-cart td.product-remove,
.woocommerce-cart th.product-remove { display: none; }
.ir-cart__remove {
	display: block;
	margin-top: 10px;
	font-size: 12px;
	color: var(--ir-text);
	text-decoration: underline;
	text-underline-offset: 3px;
	white-space: nowrap;
}
.ir-cart__remove:hover { color: var(--ir-sale); }

.woocommerce-cart td.product-thumbnail { width: 132px; }
/* Woo core's `#content table.cart img { width:32px }` (ID selector)
   shrinks the photo to a stamp — carry the same ID to win. */
.woocommerce-cart #content table.cart td.product-thumbnail img,
.woocommerce-cart td.product-thumbnail img {
	width: 120px;
	height: auto;
	display: block;
	background: var(--ir-bg-soft);
}
.woocommerce-cart td.product-name {
	font-size: 14px;
	letter-spacing: 0.02em;
}
.woocommerce-cart td.product-name > a {
	color: var(--ir-text);
	text-decoration: none;
	font-weight: 500;
	display: block;
	margin-bottom: 6px;
}
.woocommerce-cart td.product-name > a:hover { color: var(--ir-sale); }
.ir-cart__sku {
	display: block;
	font-size: 12px;
	color: var(--ir-text-muted);
	margin-bottom: 8px;
}
/* Variation + colour meta (Woo's dl). */
.woocommerce-cart td.product-name dl.variation {
	margin: 0;
	display: block;
	font-size: 12.5px;
}
.woocommerce-cart td.product-name dl.variation dt,
.woocommerce-cart td.product-name dl.variation dd {
	display: inline;
	float: none;
	margin: 0;
	padding: 0;
	font-weight: 400;
	color: var(--ir-text);
}
.woocommerce-cart td.product-name dl.variation dt { font-weight: 600; }
.woocommerce-cart td.product-name dl.variation dd::after { content: ''; display: block; height: 4px; }
.ir-cart__low-stock {
	margin-top: 8px;
	font-size: 12.5px;
	font-weight: 600;
	color: var(--ir-sale);
}

.ir-cart__qty {
	display: inline-flex;
	flex-direction: column;
	align-items: flex-start;
	gap: 0;
	border: 1px solid var(--ir-text);
	border-radius: 0;
	padding: 6px 12px 4px;
	background: var(--ir-bg);
}
.ir-cart__qty-label {
	font-size: 11px;
	color: var(--ir-text);
	letter-spacing: 0.03em;
}
.woocommerce-cart td.product-quantity .quantity { margin: 0; }
.woocommerce-cart td.product-quantity .quantity input.qty {
	width: 48px;
	border: 0;
	padding: 0;
	text-align: left;
	font-family: var(--ir-font-ui);
	font-size: 16px; /* <16px makes iOS Safari zoom on focus */
	font-weight: 600;
	background: transparent;
}
.woocommerce-cart td.product-quantity .quantity input.qty:focus { outline: none; }
.woocommerce-cart td.product-subtotal {
	font-size: 15px;
	color: var(--ir-text);
	white-space: nowrap;
}
/* Receipt alignment (desktop): the price column anchors to the table's
   right edge — header and values share one crisp line instead of
   floating left inside a wide column. Mobile keeps the stacked card. */
@media (min-width: 900px) {
	.woocommerce-cart table.cart thead th.product-subtotal,
	.woocommerce-cart table.cart td.product-subtotal {
		text-align: right;
		padding-right: 0;
	}
}


/* Coupon + update row: quiet, under the table. */
.woocommerce-cart td.actions { padding-top: 18px; }
.woocommerce-cart td.actions .coupon { display: inline-flex; gap: 8px; }
.woocommerce-cart td.actions .coupon input[type="text"] {
	min-height: 40px;
	padding: 0 12px;
	border: 1px solid var(--ir-border);
	border-radius: 0;
	font-family: var(--ir-font-ui);
	font-size: 16px; /* iOS zoom guard */
}
.woocommerce-cart td.actions .button {
	min-height: 40px;
	padding: 0 18px;
	background: var(--ir-bg);
	border: 1px solid var(--ir-text);
	border-radius: 0;
	color: var(--ir-text);
	font-family: var(--ir-font-ui);
	font-size: 11px;
	font-weight: 600;
	letter-spacing: var(--ir-tracking-caps);
	text-transform: uppercase;
	cursor: pointer;
}
.woocommerce-cart td.actions .button:disabled {
	opacity: 0.4;
	background: var(--ir-bg);
	color: var(--ir-text);
}

/* ---------- Gift wrap ---------- */
.ir-cart__gift { margin: 18px 0 0; }
.ir-cart__gift-toggle {
	display: inline-flex;
	align-items: center;
	gap: 10px;
	font-size: 13px;
	color: var(--ir-text);
	text-decoration: none;
}
.ir-cart__gift-box {
	width: 16px;
	height: 16px;
	border: 1px solid var(--ir-text);
	display: inline-block;
	position: relative;
	flex: 0 0 auto;
}
.ir-cart__gift-toggle.is-on .ir-cart__gift-box::after {
	content: '✕';
	position: absolute;
	inset: 0;
	display: flex;
	align-items: center;
	justify-content: center;
	font-size: 11px;
}
.ir-cart__gift-toggle:hover .ir-cart__gift-box { border-color: var(--ir-sale); }
.ir-cart__gift-price { color: var(--ir-text); }

/* ---------- Totals ---------- */
.woocommerce-cart .cart-collaterals { margin-top: 24px; }
@media (min-width: 1200px) {
	.woocommerce-cart .cart-collaterals { margin-top: 0; }
}
.woocommerce-cart .cart_totals { width: 100%; float: none; }
.woocommerce-cart .cart_totals > h2 {
	font-size: 12px;
	font-weight: 600;
	letter-spacing: var(--ir-tracking-caps);
	text-transform: uppercase;
	color: var(--ir-text);
	margin: 0 0 18px;
	border-bottom: 1px solid var(--ir-border);
	padding-bottom: 14px;
}
.woocommerce-cart .cart_totals table.shop_table th,
.woocommerce-cart .cart_totals table.shop_table td {
	border: 0;
	padding: 10px 0;
	font-size: 14px;
	background: none;
}
.woocommerce-cart .cart_totals table.shop_table th {
	font-weight: 400;
	color: var(--ir-text);
	width: 50%;
}
.woocommerce-cart .cart_totals table.shop_table td { text-align: right; }
/* Shipping methods need room: label column collapses, the whole row is the
   left-aligned method list instead of a squeezed right-aligned cell. */
.woocommerce-cart .cart_totals tr.woocommerce-shipping-totals th {
	width: auto;
	vertical-align: top;
	white-space: nowrap;
	padding-right: 12px;
}
.woocommerce-cart .cart_totals tr.woocommerce-shipping-totals td { text-align: left; }
.woocommerce-cart .cart_totals ul#shipping_method {
	list-style: none;
	margin: 0;
	padding: 0;
}
.woocommerce-cart .cart_totals ul#shipping_method li {
	display: flex;
	gap: 8px;
	align-items: baseline;
	margin: 0 0 8px;
	font-size: 13px;
	line-height: 1.5;
}
.woocommerce-cart .cart_totals ul#shipping_method input[type="radio"] { flex: 0 0 auto; margin: 0; position: relative; top: 2px; }
.woocommerce-cart .cart_totals .woocommerce-shipping-destination,
.woocommerce-cart .cart_totals .woocommerce-shipping-calculator {
	font-size: 12px;
	color: var(--ir-text-muted);
	text-align: left;
	margin: 6px 0 0;
}
.woocommerce-cart .cart_totals .order-total th,
.woocommerce-cart .cart_totals .order-total td {
	font-weight: 600;
	font-size: 16px;
	padding-top: 16px;
}
.woocommerce-cart .wc-proceed-to-checkout { padding: 18px 0 0; }
/* Hello's `.page-content a { underline }` (0,1,1 + element, loads later)
   catches every link inside the page content wrapper — outrank it. */
.page-content a.ir-cart__checkout,
a.ir-cart__checkout {
	width: 100%;
	padding: 16px 22px;
	text-decoration: none;
}
.page-content .ir-cart__gift-toggle,
.page-content td.product-name > a { text-decoration: none; }

.ir-cart__continue {
	margin: 18px 0 0;
	text-align: right;
	font-size: 14px;
}
/* Phones: the desktop right-alignment (under the right totals column)
   reads as lost in the left-flowing stack — align with it and step up. */
@media (max-width: 899.98px) {
	.ir-cart__continue {
		text-align: left;
		font-size: clamp(15px, 3.4vw, 17px);
	}
}
.ir-cart__continue a {
	color: var(--ir-text);
	text-decoration: underline;
	text-underline-offset: 3px;
}
.ir-cart__continue a:hover { color: var(--ir-sale); }

/* ---------- Notices (removed / restored) ---------- */
.woocommerce-cart .woocommerce-message,
.woocommerce-cart .woocommerce-info:not(.cart-empty) {
	background: var(--ir-bg-soft);
	border: 0;
	border-top: 2px solid var(--ir-dark);
	color: var(--ir-text);
	font-size: 13px;
	padding: 14px 18px;
	margin-bottom: 18px;
}
.woocommerce-cart .woocommerce-message::before,
.woocommerce-cart .woocommerce-info::before { display: none; }
.woocommerce-cart .woocommerce-message .restore-item,
.woocommerce-cart .woocommerce-message a.button {
	color: var(--ir-text);
	background: none;
	text-decoration: underline;
	text-underline-offset: 3px;
	font-size: 13px;
	padding: 0;
}
@media (min-width: 1200px) {
	.woocommerce-cart .woocommerce-notices-wrapper { grid-column: 1 / -1; }
}

/* ---------- Empty cart ---------- */
.woocommerce-cart .cart-empty.woocommerce-info {
	background: var(--ir-bg-soft);
	border: 0;
	padding: 28px 24px;
	font-size: 13px;
	color: var(--ir-text);
}
.woocommerce-cart .cart-empty.woocommerce-info::before { display: none; }
.woocommerce-cart .return-to-shop .button {
	background: var(--ir-dark);
	color: var(--ir-on-dark);
	border-radius: 0;
	font-family: var(--ir-font-ui);
	font-size: 12px;
	font-weight: 600;
	letter-spacing: var(--ir-tracking-caps);
	text-transform: uppercase;
	padding: 14px 26px;
}

/* ---------- Phone ---------- */
@media (max-width: 899.98px) {
	.woocommerce-cart table.shop_table thead { display: none; }
	.woocommerce-cart table.shop_table,
	.woocommerce-cart table.shop_table tbody,
	.woocommerce-cart table.shop_table tr,
	.woocommerce-cart table.shop_table td { display: block; width: 100%; }
	/* Card layout (photo gutter + min-height) belongs to the ITEMS table
	   ONLY — unscoped it also hit the totals table, indenting «Товари»/
	   «Всього» 116px right and propping 150px of empty space under them. */
	.woocommerce-cart table.shop_table tr {
		position: relative;
		border-bottom: 1px solid var(--ir-border);
	}
	.woocommerce-cart table.cart tr {
		padding: 16px 0 16px 116px;
		min-height: 150px;
	}
	.woocommerce-cart .cart_totals table.shop_table tr { border-bottom: 0; }
	.woocommerce-cart table.shop_table td { border: 0; padding: 0 0 10px; }
	/* Woo's smallscreen sheet hides .product-thumbnail under 768px — but
	   this card layout RESERVES the left gutter for the photo. Hello wraps
	   pages in #content, so Woo's `#content table.cart .product-thumbnail`
	   variant carries an ID — match it. */
	.woocommerce-cart #content table.shop_table tr td.product-thumbnail,
	.woocommerce-cart table.shop_table tr td.product-thumbnail {
		display: block;
		position: absolute;
		left: 0;
		top: 16px;
		width: 104px;
	}
	.woocommerce-cart #content table.cart td.product-thumbnail img,
	.woocommerce-cart td.product-thumbnail img {
		width: 104px; /* Woo core's `#content table.cart img` forces 32px */
		height: auto;
	}
	/* Woo smallscreen prints `attr(data-title) ": "` before every stacked
	   cell; the thumbnail's is empty → a stray «:». */
	.woocommerce-cart table.shop_table_responsive tr td.product-thumbnail::before { display: none; }
	/* The actions row has no photo — cancel the card gutter so the coupon
	   controls get the full card width. */
	.woocommerce-cart table.shop_table td.actions {
		margin-left: -116px;
		width: calc(100% + 116px);
	}
	.woocommerce-cart td.actions .coupon { flex-wrap: wrap; }
}

/* ---------- Особистий кабінет (basic skin) ---------- */
.woocommerce-account .woocommerce {
	max-width: var(--ir-shell-max);
	margin: 0 auto;
	padding: clamp(16px, 2.5vw, 32px) var(--ir-side-pad) 0;
	font-family: var(--ir-font-ui);
}
.woocommerce-account .page-header { display: none; }
.woocommerce-account h2 {
	font-family: var(--ir-font-ui);
	font-size: clamp(18px, 2.2vw, 24px);
	font-weight: 600;
	letter-spacing: var(--ir-tracking-caps);
	text-transform: uppercase;
	color: var(--ir-text);
}
.woocommerce-account .woocommerce-form-login,
.woocommerce-account .woocommerce-form-register {
	border: 1px solid var(--ir-border);
	border-radius: 0;
	max-width: 460px;
	padding: 24px;
}
.woocommerce-account .woocommerce-form-login input.input-text,
.woocommerce-account .woocommerce-form-register input.input-text {
	width: 100%;
	min-height: 46px;
	padding: 10px 14px;
	background: var(--ir-bg-soft);
	border: 1px solid transparent;
	border-radius: 0;
	font-family: var(--ir-font-ui);
}
.woocommerce-account .woocommerce-form-login input.input-text:focus,
.woocommerce-account .woocommerce-form-register input.input-text:focus {
	outline: none;
	border-color: var(--ir-text);
	background: var(--ir-bg);
}
.woocommerce-account .woocommerce-form-login .button,
.woocommerce-account .woocommerce-form-register .button {
	width: 100%;
	min-height: 48px;
	background: var(--ir-dark);
	color: var(--ir-on-dark);
	border-radius: 0;
	font-family: var(--ir-font-ui);
	font-size: 12px;
	font-weight: 600;
	letter-spacing: var(--ir-tracking-caps);
	text-transform: uppercase;
}
.woocommerce-account nav.woocommerce-MyAccount-navigation ul {
	list-style: none;
	margin: 0 0 24px;
	padding: 0;
	display: flex;
	flex-wrap: wrap;
	gap: 6px 22px;
	border-bottom: 1px solid var(--ir-border);
	padding-bottom: 12px;
}
.woocommerce-account nav.woocommerce-MyAccount-navigation a {
	font-size: 12px;
	letter-spacing: var(--ir-tracking-caps);
	text-transform: uppercase;
	color: var(--ir-text-muted);
	text-decoration: none;
}
.woocommerce-account nav.woocommerce-MyAccount-navigation li.is-active a,
.woocommerce-account nav.woocommerce-MyAccount-navigation a:hover { color: var(--ir-text); }

/* ---------- Mobile stacked cart (Woo smallscreen takes over <768) ----------
   Its `.woocommerce-page table.shop_table_responsive tr td { display:block }`
   is (0,2,3) — outranks our column-hiding rules, so re-hide with more
   specific selectors and relabel the stacked subtotal row. */
@media (max-width: 768px) {
	.woocommerce-cart table.shop_table tr td.product-remove,
	.woocommerce-cart table.shop_table tr th.product-remove {
		display: none; /* «Видалити з кошика» під кількістю — єдиний контрол */
	}
	.woocommerce-cart table.shop_table tr td.product-price { display: none; }
	/* data-title says «Товари» (the totals wording); the stacked row is the
	   line price — same relabel the desktop header gets. */
	.woocommerce-cart table.shop_table_responsive tr td.product-subtotal::before {
		content: 'Ціна: ';
	}
	/* Coupon row: full-width stacked controls instead of Woo's 48%
	   floats — table.cart in the chain outranks its (0,3,3) rules. */
	.woocommerce-cart #content table.cart td.actions .coupon,
	.woocommerce-cart table.cart td.actions .coupon {
		display: flex;
		flex-direction: column;
		gap: 8px;
	}
	/* !important: Woo smallscreen's `#content … .input-text+.button`
	   selector reaches (1,5,3) — unreachable cleanly from an earlier
	   stylesheet. Scoped to the mobile coupon block only. */
	.woocommerce-cart table.cart td.actions .coupon input[type="text"],
	.woocommerce-cart table.cart td.actions .coupon .button {
		width: 100% !important;
		float: none !important;
		margin: 0;
	}
}

/* ---------- Fluid phone type (reference-site parity) ----------
   The reference scales its mobile type with vw; fixed px read small on
   wider phones. Same ladder as the catalog pass:
     meta  clamp(11px, 2.9vw, 15px)
     body  clamp(13px, 3.2vw, 16px)
     ctrl  clamp(14px, 3.4vw, 17px)
   Appended last so equal-specificity re-declarations win. */
@media (max-width: 899.98px) {
	.woocommerce-cart td.product-name,
	.woocommerce-cart td.product-name > a { font-size: clamp(14px, 3.4vw, 17px); }
	.ir-cart__sku,
	.woocommerce-cart td.product-name dl.variation { font-size: clamp(12px, 3vw, 15px); }
	.woocommerce-cart td.product-subtotal { font-size: clamp(14px, 3.4vw, 17px); }
	.ir-cart__remove { font-size: clamp(12px, 3vw, 15px); }
	.ir-cart__consultant { font-size: clamp(12.5px, 3vw, 15px); }
	.ir-cart__gift-toggle { font-size: clamp(13px, 3.2vw, 16px); }
	.woocommerce-cart .cart_totals table.shop_table th,
	.woocommerce-cart .cart_totals table.shop_table td { font-size: clamp(13px, 3.2vw, 16px); }
	.page-content a.ir-cart__checkout,
	a.ir-cart__checkout { font-size: clamp(13px, 3.2vw, 16px); }
}

/* Woo core floats .cart_totals at 48% inside .cart-collaterals with
   (0,3,0) — at 900–1199 (no grid) the summary shrank to half width.
   Match the chain and pin full width at every width. */
.woocommerce #content .cart-collaterals .cart_totals,
.woocommerce-page #content .cart-collaterals .cart_totals,
.woocommerce .cart-collaterals .cart_totals,
.woocommerce-page .cart-collaterals .cart_totals {
	width: 100% !important; /* core floats it at 48% from a later file at equal specificity */
	float: none !important;
}
/* «Доставка й податки розраховуються під час оформлення» row reads as
   a quiet note, not a table cell fighting for space. */
.woocommerce-cart .cart_totals .woocommerce-shipping-totals td,
.woocommerce-cart .cart_totals .woocommerce-shipping-totals th {
	font-size: 12.5px;
	color: var(--ir-text-muted);
}

/* Design: the cart summary is Товари → Всього. Shipping is chosen at
   checkout; even the «розрахувати» link row is noise here. */
.woocommerce-cart .cart_totals tr.woocommerce-shipping-totals,
.woocommerce-cart .cart_totals tr.shipping { display: none; }

/* Mobile stacked card: content reads left-aligned like the design —
   Woo smallscreen right-aligns every cell with !important. The name
   and quantity cells drop their data-title labels (self-explanatory);
   the price row keeps «Ціна:». */
@media (max-width: 768px) {
	/* body-prefixed: smallscreen.css loads later and its right-align
	   carries !important at OUR exact specificity — the extra element
	   breaks the tie for good. */
	body.woocommerce-cart table.shop_table_responsive tr td {
		text-align: left !important;
	}
	body.woocommerce-cart table.shop_table_responsive tr td.product-name::before,
	body.woocommerce-cart table.shop_table_responsive tr td.product-quantity::before {
		display: none;
	}
	body.woocommerce-cart table.shop_table_responsive tr td.product-subtotal::before {
		float: none;
		margin-right: 8px;
	}
	/* Totals rows: smallscreen hides the th and floats the label in via
	   td::before — floated, its trailing space collapses and the label
	   glues to the amount («Товари:₴1,800.00»). */
	body.woocommerce-cart .cart_totals table.shop_table td::before {
		float: none;
		margin-right: 8px;
	}
}


/* ---------- Core-tie-breakers (the «boxy cart» fix) ----------
   woocommerce.css loads AFTER this sheet and its `.woocommerce
   table.shop_table` border/border-radius/cell border-top rules share our
   specificity — so core kept winning the tie and the airy design came out
   as three nested boxes. One `body` element on our side ends the war.
   The look per design: no outer boxes anywhere, hairline separators only. */
body.woocommerce-cart table.shop_table,
body.woocommerce-cart #content table.shop_table {
	border: 0;
	border-radius: 0;
	background: none;
}
body.woocommerce-cart table.shop_table th,
body.woocommerce-cart table.shop_table td {
	border: 0;
}
body.woocommerce-cart table.shop_table thead th { border-bottom: 1px solid var(--ir-border); }
body.woocommerce-cart table.shop_table tbody td { border-bottom: 1px solid var(--ir-border); }
body.woocommerce-cart table.shop_table td.actions { border-bottom: 0; }
/* Totals: plain rows under the underlined «Сума замовлення» heading —
   hairline after the products row, bold «Всього» carries its own air. */
body.woocommerce-cart .cart_totals table.shop_table tbody td,
body.woocommerce-cart .cart_totals table.shop_table th { border-bottom: 0; }
/* tbody keeps parity with the zero-border rule above — without it the
   td arm lost by one element and the hairline stopped at mid-row. */
body.woocommerce-cart .cart_totals tbody tr.cart-subtotal th,
body.woocommerce-cart .cart_totals tbody tr.cart-subtotal td { border-bottom: 1px solid var(--ir-border); }
