/* ethereal woocommerce cart — intentionally scoped to the classic cart. */
body.woocommerce-cart {
	--eth-ink:var(--eth-color-heading); --eth-muted:var(--eth-color-text); --eth-line:var(--eth-color-border); --eth-soft:var(--eth-color-surface);
	--eth-accent:var(--eth-color-accent); --eth-accent-dark:var(--eth-color-accent-hover);
	background:linear-gradient(180deg,var(--eth-color-surface) 0,var(--eth-color-surface) 420px,var(--eth-color-surface) 100%);
}
body.woocommerce-cart .woocommerce,
body.woocommerce-cart .woocommerce *{box-sizing:border-box}
body.woocommerce-cart .site-content>.ast-container,
body.woocommerce-cart .site-content .ast-container{box-sizing:border-box;width:100%;max-width:1240px;margin-inline:auto;padding-inline:32px}
body.woocommerce-cart .site-main,body.woocommerce-cart article,body.woocommerce-cart .entry-content{width:100%;max-width:1240px}
body.woocommerce-cart .entry-header{display:none}
body.woocommerce-cart .woocommerce{padding:clamp(32px,5vw,68px) 0 80px;color:var(--eth-ink)}
.ethereal-checkout-progress{margin:0 0 clamp(34px,5vw,58px)}
.ethereal-checkout-progress ol{display:grid;grid-template-columns:repeat(3,1fr);max-width:720px;margin:0 auto;padding:0;list-style:none}
.ethereal-checkout-progress li{position:relative;text-align:center;color:var(--eth-color-text)}
.ethereal-checkout-progress li:not(:last-child)::after{content:"";position:absolute;z-index:0;top:17px;left:calc(50% + 24px);width:calc(100% - 48px);height:2px;background:var(--eth-line)}
.ethereal-checkout-progress span,.ethereal-checkout-progress a{position:relative;z-index:1;display:inline-flex;flex-direction:column;align-items:center;gap:7px;color:inherit;text-decoration:none}
.ethereal-checkout-progress b{display:grid;width:36px;height:36px;place-items:center;border:2px solid var(--eth-line);border-radius:50%;background:var(--eth-color-surface);font-size:14px}
.ethereal-checkout-progress em{font-size:13px;font-style:normal;font-weight:700}
.ethereal-checkout-progress .is-current,.ethereal-checkout-progress .is-complete{color:var(--eth-ink)}
.ethereal-checkout-progress .is-current b{border-color:var(--eth-accent);box-shadow:0 0 0 5px color-mix(in srgb, var(--eth-color-accent) 10%, transparent)}
.ethereal-checkout-progress .is-complete b{border-color:var(--eth-ink);background:var(--eth-ink);color:var(--eth-color-surface)}
body.woocommerce-cart .woocommerce-cart-form{float:left!important;width:calc(66% - 28px)!important}
body.woocommerce-cart .cart-collaterals{float:right!important;width:34%!important}
body.woocommerce-cart table.shop_table{border:1px solid var(--eth-line);border-radius:16px;background:var(--eth-color-surface);box-shadow:0 14px 38px color-mix(in srgb, var(--eth-color-heading) 6%, transparent);overflow:hidden}
body.woocommerce-cart table.shop_table th{padding:15px 18px;background:var(--eth-soft);color:var(--eth-muted);font-size:12px;letter-spacing:.05em;text-transform:uppercase}
body.woocommerce-cart table.shop_table td{padding:20px 18px;border-color:var(--eth-line);vertical-align:middle}
body.woocommerce-cart .product-thumbnail img{width:82px;border-radius:10px}
body.woocommerce-cart .product-name a{color:var(--eth-ink);font-weight:700;text-decoration:none}
body.woocommerce-cart .product-remove a.remove{
	dis:grid!important;
	position:relative;
	width:36px!important;
	height:36px!important;
	place-items:center;
	border:0!important;
	border-radius:8px!important;
	background:transparent!important;
	color:var(--eth-color-text)!important;
	font-size:0!important;
	line-height:0!important;
	text-indent:-9999px!important;
	overflow:hidden!important;
}
body.woocommerce-cart .product-remove a.remove::before{
	display:block!important;
	position:absolute;
	top:50%;
	left:50%;
	width:18px;
	height:18px;
	background:currentcolor;
	content:"";
	text-indent:0;
	transform:translate(-50%,-50%);
	-webkit-mask:url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewbox='0 0 24 24' fill='none' stroke='black' stroke-width='1.8' stroke-linecap='round' stroke-linejoin='round'%3e%3cpath d='m4 7h16m9 7v4h6v3m3 0-1 14h7l6 7m4 4v6m4-6v6'/%3e%3c/svg%3e") center/contain no-repeat;
	mask:url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewbox='0 0 24 24' fill='none' stroke='black' stroke-width='1.8' stroke-linecap='round' stroke-linejoin='round'%3e%3cpath d='m4 7h16m9 7v4h6v3m3 0-1 14h7l6 7m4 4v6m4-6v6'/%3e%3c/svg%3e") center/contain no-repeat;
}
body.woocommerce-cart .product-remove a.remove::after{display:none!important}
body.woocommerce-cart .product-remove a.remove>*{display:none!important}
body.woocommerce-cart .product-remove a.remove:hover{
	background:var(--eth-color-surface)0f3!important;
	color:var(--eth-color-accent-hover)!important;
}
body.woocommerce-cart .quantity .qty{min-height:44px;border:1px solid var(--eth-color-border);border-radius:9px}
body.woocommerce-cart .coupon{display:flex;gap:10px}
body.woocommerce-cart .coupon .input-text{min-width:190px!important;min-height:46px!important;border:1px solid var(--eth-color-border)!important;border-radius:9px!important}
body.woocommerce-cart button.button,body.woocommerce-cart a.button{min-height:46px;padding:13px 20px;border-radius:9px;font-weight:700}
body.woocommerce-cart .cart-collaterals .cart_totals{float:none!important;width:100%!important;max-width:none!important;padding:26px;border:1px solid var(--eth-line);border-radius:16px;background:var(--eth-color-surface);box-shadow:0 18px 45px color-mix(in srgb, var(--eth-color-heading) 7%, transparent)}
body.woocommerce-cart .cart_totals h2{margin:0 0 16px;font-family: var(--eth-font-heading);font-size:28px;line-height:1.2;word-break:normal;overflow-wrap:normal}
body.woocommerce-cart .cart_totals table{border:0;border-radius:0;box-shadow:none}
body.woocommerce-cart .cart_totals table th,body.woocommerce-cart .cart_totals table td{padding:15px 0;background:transparent;text-transform:none;letter-spacing:0}
body.woocommerce-cart .wc-proceed-to-checkout{padding:16px 0 0}
body.woocommerce-cart .wc-proceed-to-checkout a.checkout-button{display:flex;align-items:center;justify-content:center;width:100%;min-height:56px;margin:0;background:var(--eth-ink);color:var(--eth-color-surface);font-size:16px}
body.woocommerce-cart .wc-proceed-to-checkout a.checkout-button:hover{background:var(--eth-accent-dark)}
body.woocommerce-cart .woocommerce-message,
body.woocommerce-cart .woocommerce-info,
body.woocommerce-cart .woocommerce-error{
	width:100%;
	max-width:none;
	clear:both;
	float:none;
	box-sizing:border-box;
	margin:0 0 22px;
	padding:17px 22px 17px 50px;
	border-radius:12px;
	background:var(--eth-color-surface);
	line-height:1.5;
	text-align:left;
	overflow-wrap:anywhere;
}
body.woocommerce-cart .woocommerce-message,body.woocommerce-cart .woocommerce-info{border-top-color:var(--eth-accent)}
@media(max-width:900px){body.woocommerce-cart .woocommerce-cart-form,body.woocommerce-cart .cart-collaterals{float:none!important;width:100%!important}body.woocommerce-cart .cart-collaterals{margin-top:28px}}
@media(max-width:640px){body.woocommerce-cart .site-content>.ast-container{padding-inline:16px}.ethereal-checkout-progress em{font-size:11px}body.woocommerce-cart table.shop_table_responsive tr{padding:14px;border-bottom:1px solid var(--eth-line)}body.woocommerce-cart table.shop_table_responsive td{padding:10px 4px}body.woocommerce-cart .product-thumbnail{display:block!important;text-align:center!important}body.woocommerce-cart .product-thumbnail::before{display:none}body.woocommerce-cart .product-thumbnail img{width:100px}body.woocommerce-cart .coupon{display:grid;width:100%}body.woocommerce-cart .coupon .input-text,body.woocommerce-cart .coupon button{width:100%!important}body.woocommerce-cart .cart_totals{padding:20px 17px}}
@media(prefers-reduced-motion:reduce){body.woocommerce-cart *{scroll-behavior:auto!important;transition-duration:.01ms!important}}


/* align cart with checkout and done steps. */
body.woocommerce-cart #primary {
    margin-top: 24px !important;
    margin-bottom: 0 !important;
}
body.woocommerce-cart .woocommerce {
    padding-top: 0;
}
@media (max-width: 640px) {
    body.woocommerce-cart #primary {
        margin-top: 16px !important;
    }
}


/* stable ajax quantity controls and clean white totals panel. */
body.woocommerce-cart .woocommerce-cart-form,
body.woocommerce-cart .woocommerce-cart-form table,
body.woocommerce-cart .product-quantity {
    overflow-anchor: none;
}
body.woocommerce-cart .product-quantity .quantity.buttons_added {
    display: inline-flex !important;
    align-items: stretch;
    width: 124px !important;
    min-width: 124px !important;
    max-width: 124px !important;
    height: 44px;
    white-space: nowrap;
}
body.woocommerce-cart .product-quantity .quantity .minus,
body.woocommerce-cart .product-quantity .quantity .plus {
    flex: 0 0 40px !important;
    width: 40px !important;
    min-width: 40px !important;
    height: 44px !important;
    margin: 0 !important;
    box-sizing: border-box;
}
body.woocommerce-cart .product-quantity .quantity .qty {
    flex: 0 0 44px !important;
    width: 44px !important;
    min-width: 44px !important;
    max-width: 44px !important;
    height: 44px !important;
    margin: 0 !important;
    box-sizing: border-box;
}
body.woocommerce-cart .cart-collaterals .cart_totals {
    background: var(--eth-color-surface) !important;
}



/* keep the table cell intact; only arrange the controls inside it. */
body.woocommerce-cart .woocommerce-cart-form td.actions{
	display:table-cell!important;
	position:relative;
	width:auto!important;
	padding:22px 18px!important;
	vertical-align:middle;
}
body.woocommerce-cart .woocommerce-cart-form td.actions::after{
	display:table;
	clear:both;
	content:"";
}
body.woocommerce-cart .woocommerce-cart-form td.actions .coupon{
	display:flex!important;
	flex-wrap:wrap;
	align-items:center;
	gap:10px;
	float:left!important;
	width:100%!important;
	max-width:none;
	padding-right:310px;
	box-sizing:border-box;
}
body.woocommerce-cart .woocommerce-cart-form td.actions label[for="coupon_code"],
body.woocommerce-cart .woocommerce-cart-form td.actions .coupon label{display:none!important}
body.woocommerce-cart .woocommerce-cart-form td.actions .coupon .input-text{
	flex:1 1 220px!important;
	width:220px!important;
	min-width:0!important;
	height:52px!important;
	margin:0!important;
	box-sizing:border-box;
}
body.woocommerce-cart .woocommerce-cart-form td.actions .coupon button,
body.woocommerce-cart .woocommerce-cart-form td.actions button[name="update_cart"]{
	display:inline-flex!important;
	align-items:center;
	justify-content:center;
	width:auto!important;
	margin:0!important;
	box-sizing:border-box;
	white-space:nowrap;
	text-align:center;
}
body.woocommerce-cart .woocommerce-cart-form td.actions .coupon button[name="apply_coupon"]{
	flex:0 0 170px!important;
	width:170px!important;
	min-width:170px!important;
	padding-inline:18px!important;
}
body.woocommerce-cart .woocommerce-cart-form td.actions button[name="update_cart"]{
	position:absolute;
	top:22px;
	right:18px;
	float:none!important;
	width:280px!important;
	min-width:280px;
	padding-inline:18px!important;
}
body.woocommerce-cart .woocommerce-cart-form td.actions .coupon>.woocommerce-error,
body.woocommerce-cart .woocommerce-cart-form td.actions .coupon>.woocommerce-info,
body.woocommerce-cart .woocommerce-cart-form td.actions .coupon>.woocommerce-message,
body.woocommerce-cart .woocommerce-cart-form td.actions .coupon>.coupon-error-notice,
body.woocommerce-cart .woocommerce-cart-form td.actions .coupon>[role="alert"],
body.woocommerce-cart .woocommerce-cart-form td.actions .coupon>:not(label):not(input):not(button){
	flex:0 0 calc(100% + 310px)!important;
	width:calc(100% + 310px)!important;
	max-width:none!important;
	margin:8px 0 0!important;
	box-sizing:border-box;
	text-align:left!important;
}
body.woocommerce-cart .woocommerce-cart-form td.actions>.woocommerce-error,
body.woocommerce-cart .woocommerce-cart-form td.actions>.woocommerce-info,
body.woocommerce-cart .woocommerce-cart-form td.actions>.woocommerce-message,
body.woocommerce-cart .woocommerce-cart-form td.actions>.coupon-error-notice,
body.woocommerce-cart .woocommerce-cart-form td.actions>[role="alert"],
body.woocommerce-cart .woocommerce-cart-form td.actions>:not(.coupon):not(button):not(input){
	display:block!important;
	clear:both!important;
	width:100%!important;
	margin:18px 0 0!important;
	box-sizing:border-box;
	text-align:left!important;
}

@media(max-width:900px){
	body.woocommerce-cart .site-content>.ast-container,
	body.woocommerce-cart .site-content .ast-container,
	body.woocommerce-cart #primary,
	body.woocommerce-cart .site-main,
	body.woocommerce-cart article,
	body.woocommerce-cart .entry-content,
	body.woocommerce-cart .woocommerce,
	body.woocommerce-cart .woocommerce-cart-form,
	body.woocommerce-cart .cart-collaterals,
	body.woocommerce-cart .cart-collaterals .cart_totals{
		box-sizing:border-box!important;
		width:100%!important;
		min-width:0!important;
		max-width:100%!important;
	}
	body.woocommerce-cart .woocommerce-cart-form table.shop_table,
	body.woocommerce-cart .cart-collaterals table.shop_table{
		box-sizing:border-box!important;
		width:100%!important;
		min-width:0!important;
		max-width:100%!important;
		margin-right:0!important;
		margin-left:0!important;
	}
	body.woocommerce-cart table.shop_table_responsive,
	body.woocommerce-cart table.shop_table_responsive tbody,
	body.woocommerce-cart table.shop_table_responsive tr{
		display:block!important;
		box-sizing:border-box!important;
		width:100%!important;
		min-width:0!important;
		max-width:100%!important;
	}
	body.woocommerce-cart table.shop_table_responsive td{
		box-sizing:border-box!important;
		min-width:0!important;
		max-width:100%!important;
	}
	body.woocommerce-cart .woocommerce-cart-form td.actions{
		display:block!important;
		box-sizing:border-box!important;
		width:100%!important;
		min-width:0!important;
		max-width:100%!important;
		padding:18px 14px!important;
	}
	body.woocommerce-cart .woocommerce-cart-form td.actions .coupon{
		display:grid!important;
		grid-template-columns:minmax(0,1fr);
		gap:14px;
		float:none!important;
		width:100%!important;
		max-width:none;
		padding-right:0;
	}
	body.woocommerce-cart .woocommerce-cart-form td.actions .coupon .input-text{
		width:100%!important;
		min-width:0!important;
	}
	body.woocommerce-cart .woocommerce-cart-form td.actions .coupon button[name="apply_coupon"]{
		float:none!important;
		flex:none!important;
		width:100%!important;
		min-width:0!important;
		max-width:none!important;
		margin:0!important;
	}
	body.woocommerce-cart .woocommerce-cart-form td.actions button[name="update_cart"]{
		position:static;
		float:none!important;
		width:100%!important;
		min-width:0;
		margin-top:12px!important;
	}
	body.woocommerce-cart .woocommerce-cart-form td.actions .coupon>.woocommerce-error,
	body.woocommerce-cart .woocommerce-cart-form td.actions .coupon>.woocommerce-info,
	body.woocommerce-cart .woocommerce-cart-form td.actions .coupon>.woocommerce-message,
	body.woocommerce-cart .woocommerce-cart-form td.actions .coupon>.coupon-error-notice,
	body.woocommerce-cart .woocommerce-cart-form td.actions .coupon>[role="alert"],
	body.woocommerce-cart .woocommerce-cart-form td.actions .coupon>:not(label):not(input):not(button){
		flex-basis:100%!important;
		width:100%!important;
	}
}

@media(max-width:480px){
	body.woocommerce-cart .woocommerce-cart-form td.actions{
		width:100%!important;
		text-align:left!important;
	}
	body.woocommerce-cart .woocommerce-cart-form td.actions .coupon{
		grid-template-columns:minmax(0,1fr);
		gap:14px;
		width:100%!important;
		justify-items:stretch;
	}
	body.woocommerce-cart .woocommerce-cart-form td.actions .coupon .input-text,
	body.woocommerce-cart .woocommerce-cart-form td.actions .coupon button[name="apply_coupon"]{
		float:none!important;
		flex:none!important;
		width:100%!important;
		min-width:0!important;
		max-width:none!important;
		margin:0!important;
	}
	body.woocommerce-cart .woocommerce-cart-form td.actions button[name="update_cart"]{
		width:100%!important;
		max-width:none!important;
		margin:14px 0 0!important;
	}
	body.woocommerce-cart .woocommerce-message,
	body.woocommerce-cart .woocommerce-info,
	body.woocommerce-cart .woocommerce-error{
		margin-bottom:16px;
		padding:15px 16px 15px 44px;
		font-size:14px;
	}
}
