/**
 * TactNexa — Premium WooCommerce Cart
 *
 * Cart Block presentation only.
 * Theme: Blocksy Child
 *
 * Does not alter WooCommerce cart data, Store API,
 * coupons, shipping, totals or checkout actions.
 *
 * WooCommerce Blocks may change internal class names;
 * recheck these selectors after major WooCommerce updates.
 */


/* =========================================================
   Cart Design Tokens
   ========================================================= */

body.woocommerce-cart {
	--tnx-cart-ink: #061a36;
	--tnx-cart-navy: #031126;
	--tnx-cart-blue: #1677ff;
	--tnx-cart-blue-dark: #075fd7;
	--tnx-cart-muted: #60758c;
	--tnx-cart-line: #e0eaf5;
	--tnx-cart-soft: #f5f9ff;
	--tnx-cart-radius: 20px;
}


/* =========================================================
   Page Canvas & Title
   ========================================================= */

body.woocommerce-cart .site-main {
	background:
		radial-gradient(
			ellipse at 90% 13%,
			rgba(22, 119, 255, 0.06),
			transparent 46%
		),
		linear-gradient(
			180deg,
			#fafcff,
			#f4f9ff
		);
}


body.woocommerce-cart :is(
	.entry-header .entry-title,
	.entry-header .page-title
) {
	color: var(--tnx-cart-ink);

	font-size: clamp(2.2rem, 4.5vw, 3.5rem);
	font-weight: 800;
	letter-spacing: -0.04em;
	line-height: 1.1;
}


/* =========================================================
   Cart Introduction
   ========================================================= */

body.woocommerce-cart .tnx-cart-lead {
	max-width: 1260px;

	margin: 0 auto 29px;

	color: var(--tnx-cart-muted);

	font-size: clamp(0.96rem, 1.4vw, 1.08rem);
	line-height: 1.75;
}


body.woocommerce-cart .tnx-cart-lead p {
	margin: 0;
}


/* =========================================================
   Native Cart Block Layout
   ========================================================= */

body.woocommerce-cart .wp-block-woocommerce-cart {
	max-width: 1260px;

	margin-inline: auto;

	color: var(--tnx-cart-ink);
}


body.woocommerce-cart
.wc-block-cart.wc-block-components-sidebar-layout {
	gap: 24px;
	align-items: flex-start;
}


/* =========================================================
   Premium Cart Surfaces
   ========================================================= */

body.woocommerce-cart .wc-block-cart :is(
	.wc-block-cart__main,
	.wc-block-cart__sidebar
) {
	box-sizing: border-box;

	min-width: 0;

	border: 1px solid var(--tnx-cart-line);
	border-radius: var(--tnx-cart-radius);

	background: #ffffff;

	box-shadow:
		0 4px 12px rgba(3, 17, 38, 0.025),
		0 18px 42px rgba(3, 17, 38, 0.04);
}


body.woocommerce-cart
.wc-block-cart .wc-block-cart__main {
	flex: 1 1 0;

	width: auto;

	padding: clamp(16px, 2.3vw, 28px);
}


body.woocommerce-cart
.wc-block-cart .wc-block-cart__sidebar {
	flex: 0 0 min(35%, 415px);

	width: min(35%, 415px);

	margin: 0;
	padding: clamp(19px, 2.2vw, 27px);
}


/* =========================================================
   Cart Items Table
   ========================================================= */

body.woocommerce-cart .wc-block-cart-items {
	width: 100%;

	margin: 0;

	border: 0;
}


body.woocommerce-cart .wc-block-cart-items thead th {
	padding: 10px 12px 17px;

	border-bottom: 1px solid var(--tnx-cart-line);

	color: #7589a2;

	font-size: 0.76rem;
	font-weight: 800;

	letter-spacing: 0.07em;
	text-transform: uppercase;
}


body.woocommerce-cart
.wc-block-cart-items
.wc-block-cart-items__row > td {
	padding-top: 24px;
	padding-bottom: 24px;

	border-bottom-color: var(--tnx-cart-line);

	vertical-align: middle;
}


/* =========================================================
   Product Image Stage
   ========================================================= */

body.woocommerce-cart
.wc-block-cart-item__image a {
	display: block;

	border-radius: 14px;
}


body.woocommerce-cart
.wc-block-cart-item__image img {
	display: block;

	width: 100%;
	max-width: 130px;
	height: auto;

	aspect-ratio: 1;

	padding: 8px;

	border: 1px solid #edf2f8;
	border-radius: 14px;

	background:
		linear-gradient(
			140deg,
			#ffffff,
			#f5f9ff
		);

	object-fit: contain;

	box-sizing: border-box;

	transition:
		border-color 180ms ease,
		transform 180ms ease;
}


body.woocommerce-cart
.wc-block-cart-item__image a:hover img {
	border-color: rgba(22, 119, 255, 0.3);

	transform: scale(1.025);
}


/* =========================================================
   Product Information
   ========================================================= */

body.woocommerce-cart
.wc-block-components-product-name {
	color: var(--tnx-cart-ink);

	font-size: clamp(0.94rem, 1.4vw, 1.03rem);
	font-weight: 800;
	line-height: 1.5;

	text-decoration: none;
	text-wrap: pretty;
}


body.woocommerce-cart
a.wc-block-components-product-name:hover {
	color: var(--tnx-cart-blue-dark);
}


body.woocommerce-cart :is(
	.wc-block-components-product-price,
	.wc-block-cart-item__total
	.wc-block-components-product-price
) {
	color: var(--tnx-cart-ink);

	font-weight: 800;
}


body.woocommerce-cart
.wc-block-components-product-details {
	color: var(--tnx-cart-muted);

	font-size: 0.82rem;
	line-height: 1.6;
}


body.woocommerce-cart
.wc-block-cart-item__total
.wc-block-components-product-price {
	font-size: 1.1rem;
}


/* =========================================================
   Quantity Selector
   ========================================================= */

body.woocommerce-cart
.wc-block-components-quantity-selector {
	min-height: 45px;

	border: 1px solid #cddded;
	border-radius: 10px;

	background: #ffffff;

	box-shadow: none;
}


body.woocommerce-cart
.wc-block-components-quantity-selector input {
	color: var(--tnx-cart-ink);

	font-weight: 750;
}


body.woocommerce-cart
.wc-block-components-quantity-selector button {
	color: #315779;

	transition:
		color 160ms ease,
		background-color 160ms ease;
}


body.woocommerce-cart
.wc-block-components-quantity-selector
button:hover:not(:disabled) {
	background: #eef6ff;

	color: var(--tnx-cart-blue-dark);
}


/* =========================================================
   Remove Item
   ========================================================= */

body.woocommerce-cart
.wc-block-cart-item__remove-link {
	color: #647b96;

	font-size: 0.81rem;
	font-weight: 700;

	text-decoration: underline;
	text-underline-offset: 3px;
}


body.woocommerce-cart
.wc-block-cart-item__remove-link:hover {
	color: #b42333;
}


/* =========================================================
   Order Summary Heading
   ========================================================= */

body.woocommerce-cart :is(
	.wc-block-cart__totals-title,
	.wc-block-components-sidebar-layout
	.wp-block-woocommerce-cart-order-summary-heading-block
) {
	color: var(--tnx-cart-ink);

	font-size: clamp(1.25rem, 2vw, 1.5rem);
	font-weight: 800;

	letter-spacing: -0.025em;
	text-transform: none;
}


/* =========================================================
   Order Totals
   ========================================================= */

body.woocommerce-cart
.wc-block-cart__sidebar
.wc-block-components-totals-wrapper {
	border-color: var(--tnx-cart-line);
}


body.woocommerce-cart
.wc-block-cart__sidebar :is(
	.wc-block-components-totals-item__label,
	.wc-block-components-totals-item__value
) {
	color: #304b6c;

	font-size: 0.94rem;
	line-height: 1.55;
}


body.woocommerce-cart
.wc-block-cart__sidebar
.wc-block-components-totals-footer-item {
	padding-top: 17px;
}


body.woocommerce-cart
.wc-block-cart__sidebar
.wc-block-components-totals-footer-item :is(
	.wc-block-components-totals-item__label,
	.wc-block-components-totals-item__value
) {
	color: var(--tnx-cart-ink);

	font-size: 1.13rem;
	font-weight: 850;
}


body.woocommerce-cart
.wc-block-cart__sidebar
.wc-block-components-totals-footer-item
.wc-block-components-totals-item__value {
	color: var(--tnx-cart-blue-dark);
}


/* =========================================================
   Coupon and Shipping
   ========================================================= */

body.woocommerce-cart
.wc-block-cart__sidebar
.wc-block-components-totals-coupon {
	color: #315779;
}


body.woocommerce-cart
.wc-block-cart__sidebar :is(
	.wc-block-components-text-input input,
	.wc-block-components-combobox-control input
) {
	border-color: #cddded;
	border-radius: 9px;
}


body.woocommerce-cart
.wc-block-cart__sidebar
.wc-block-components-totals-coupon__button {
	border-radius: 8px;

	color: var(--tnx-cart-blue-dark);

	font-weight: 800;
}


body.woocommerce-cart
.wc-block-components-notice-banner {
	border-radius: 11px;
}


/* =========================================================
   Proceed to Checkout
   ========================================================= */

body.woocommerce-cart
.wc-block-cart__submit-button,
body.woocommerce-cart
.wc-block-cart__submit-container
.wc-block-components-button {
	display: flex;
	align-items: center;
	justify-content: center;

	width: 100%;
	min-height: 56px;

	padding: 14px 22px;

	border: 0;
	border-radius: 11px;

	background:
		linear-gradient(
			125deg,
			#298bff,
			#0872f6
		);

	color: #ffffff;

	font-size: 0.98rem;
	font-weight: 800;
	line-height: 1.3;

	text-decoration: none;

	box-shadow:
		0 10px 25px rgba(22, 119, 255, 0.18);

	transition:
		transform 180ms ease,
		filter 180ms ease,
		box-shadow 180ms ease;
}


body.woocommerce-cart
.wc-block-cart__submit-button:hover,
body.woocommerce-cart
.wc-block-cart__submit-container
.wc-block-components-button:hover {
	transform: translateY(-2px);

	filter: brightness(1.06);

	color: #ffffff;

	box-shadow:
		0 13px 30px rgba(22, 119, 255, 0.25);
}


/* =========================================================
   Keyboard Focus
   ========================================================= */

body.woocommerce-cart
.wc-block-cart__submit-button:focus-visible,
body.woocommerce-cart
.wc-block-cart :is(
	a,
	button,
	input
):focus-visible,
body.woocommerce-cart
.tnx-cart-extras a:focus-visible {
	outline: 3px solid #52d7ff;
	outline-offset: 3px;
}


/* =========================================================
   Empty Cart
   ========================================================= */

body.woocommerce-cart
.wc-block-cart__empty-cart,
body.woocommerce-cart
.wp-block-woocommerce-empty-cart-block {
	padding: clamp(24px, 5vw, 60px);

	border: 1px solid var(--tnx-cart-line);
	border-radius: var(--tnx-cart-radius);

	background: #ffffff;

	text-align: center;
}


/* =========================================================
   Cart Cross-sells
   ========================================================= */

body.woocommerce-cart
.wp-block-woocommerce-cart-cross-sells-block {
	margin-top: 28px;
}


/* =========================================================
   TactNexa Information Panel
   ========================================================= */

body.woocommerce-cart .tnx-cart-extras {
	max-width: 1260px;

	margin: 24px auto 8px;
	padding: clamp(20px, 3vw, 32px);

	border: 1px solid var(--tnx-cart-line);
	border-radius: var(--tnx-cart-radius);

	background: #ffffff;

	box-shadow:
		0 14px 35px rgba(3, 17, 38, 0.035);
}


/* =========================================================
   Panel Heading
   ========================================================= */

body.woocommerce-cart
.tnx-cart-extras__eyebrow {
	margin: 0 0 6px;

	color: var(--tnx-cart-blue-dark);

	font-size: 0.74rem;
	font-weight: 850;

	letter-spacing: 0.12em;
	text-transform: uppercase;
}


body.woocommerce-cart
.tnx-cart-extras__title {
	margin: 0 0 20px;

	color: var(--tnx-cart-ink);

	font-size: clamp(1.25rem, 2.4vw, 1.7rem);
	font-weight: 800;

	letter-spacing: -0.025em;
}


/* =========================================================
   Information Grid
   ========================================================= */

body.woocommerce-cart
.tnx-cart-extras__grid {
	display: grid;

	grid-template-columns:
		repeat(3, minmax(0, 1fr));

	gap: 16px;
}


/* =========================================================
   Information Card
   ========================================================= */

body.woocommerce-cart .tnx-cart-info {
	display: flex;

	gap: 12px;
	padding: 18px;

	border: 1px solid #e4edf7;
	border-radius: 14px;

	background:
		linear-gradient(
			150deg,
			#fbfdff,
			#f5f9ff
		);
}


/* =========================================================
   Information Icon
   ========================================================= */

body.woocommerce-cart
.tnx-cart-info__icon {
	display: inline-flex;
	align-items: center;
	justify-content: center;

	flex: 0 0 42px;

	width: 42px;
	height: 42px;

	border: 1px solid #d6e8ff;
	border-radius: 50%;

	background: #eaf4ff;

	color: var(--tnx-cart-blue);
}


body.woocommerce-cart
.tnx-cart-info__icon svg {
	width: 21px;
	height: 21px;

	fill: none;

	stroke: currentColor;
	stroke-width: 1.8;
	stroke-linecap: round;
	stroke-linejoin: round;
}


/* =========================================================
   Information Typography
   ========================================================= */

body.woocommerce-cart
.tnx-cart-info__content {
	min-width: 0;
}


body.woocommerce-cart
.tnx-cart-info__content strong {
	display: block;

	margin: 1px 0 5px;

	color: var(--tnx-cart-ink);

	font-size: 0.9rem;
	font-weight: 800;
	line-height: 1.4;
}


body.woocommerce-cart
.tnx-cart-info__content p {
	margin: 0;

	color: var(--tnx-cart-muted);

	font-size: 0.82rem;
	line-height: 1.65;
}


body.woocommerce-cart
.tnx-cart-info__content a {
	color: var(--tnx-cart-blue-dark);

	font-weight: 750;

	text-underline-offset: 3px;
}


/* =========================================================
   Continue Shopping
   ========================================================= */

body.woocommerce-cart
.tnx-cart-extras__continue {
	display: inline-flex;
	align-items: center;
	justify-content: center;

	gap: 9px;

	min-height: 43px;

	margin-top: 22px;
	padding: 10px 17px;

	border: 1px solid #cedef2;
	border-radius: 9px;

	background: #ffffff;

	color: var(--tnx-cart-blue-dark);

	font-size: 0.88rem;
	font-weight: 800;

	text-decoration: none;

	transition:
		background-color 160ms ease,
		border-color 160ms ease;
}


body.woocommerce-cart
.tnx-cart-extras__continue:hover {
	border-color: var(--tnx-cart-blue);

	background: #edf6ff;

	color: var(--tnx-cart-blue-dark);
}


/* =========================================================
   Tablet
   ========================================================= */

@media (max-width: 1100px) {

	body.woocommerce-cart
	.wc-block-cart.wc-block-components-sidebar-layout {
		gap: 18px;
	}

	body.woocommerce-cart
	.tnx-cart-extras__grid {
		gap: 11px;
	}

	body.woocommerce-cart
	.tnx-cart-info {
		padding: 14px;
	}
}


/* =========================================================
   Tablet — Stacked Cart
   ========================================================= */

@media (max-width: 900px) {

	body.woocommerce-cart
	.wc-block-cart.wc-block-components-sidebar-layout {
		flex-direction: column;
		align-items: stretch;
	}

	body.woocommerce-cart
	.wc-block-cart .wc-block-cart__main,
	body.woocommerce-cart
	.wc-block-cart .wc-block-cart__sidebar {
		width: 100%;
		max-width: 100%;

		flex-basis: auto;

		margin: 0;
	}

	body.woocommerce-cart
	.tnx-cart-extras__grid {
		grid-template-columns: 1fr;
	}
}


/* =========================================================
   Mobile
   ========================================================= */

@media (max-width: 600px) {

	body.woocommerce-cart
	.wc-block-cart .wc-block-cart__main,
	body.woocommerce-cart
	.wc-block-cart .wc-block-cart__sidebar {
		padding: 16px;

		border-radius: 15px;
	}

	body.woocommerce-cart
	.wc-block-cart.wc-block-components-sidebar-layout {
		gap: 15px;
	}

	body.woocommerce-cart
	.wc-block-cart-items
	.wc-block-cart-items__row > td {
		padding-top: 18px;
		padding-bottom: 18px;
	}

	body.woocommerce-cart
	.wc-block-cart-item__image img {
		padding: 4px;

		border-radius: 10px;
	}

	body.woocommerce-cart
	.wc-block-cart__submit-container {
		background-color: #ffffff;
	}

	body.woocommerce-cart
	.tnx-cart-extras {
		margin-top: 16px;
		padding: 18px;

		border-radius: 15px;
	}

	body.woocommerce-cart
	.tnx-cart-info {
		gap: 10px;
	}

	body.woocommerce-cart
	.tnx-cart-info__icon {
		flex-basis: 38px;

		width: 38px;
		height: 38px;
	}

	body.woocommerce-cart
	.tnx-cart-extras__continue {
		width: 100%;
	}
}


/* =========================================================
   Reduced Motion
   ========================================================= */

@media (prefers-reduced-motion: reduce) {

	body.woocommerce-cart
	.wc-block-cart-item__image img,
	body.woocommerce-cart
	.wc-block-components-quantity-selector button,
	body.woocommerce-cart
	.wc-block-cart__submit-button,
	body.woocommerce-cart
	.wc-block-cart__submit-container
	.wc-block-components-button,
	body.woocommerce-cart
	.tnx-cart-extras__continue {
		transition: none;
	}

	body.woocommerce-cart
	.wc-block-cart-item__image a:hover img,
	body.woocommerce-cart
	.wc-block-cart__submit-button:hover,
	body.woocommerce-cart
	.wc-block-cart__submit-container
	.wc-block-components-button:hover {
		transform: none;
	}
}