/**
 * The cart drawer.
 *
 * Elementor Pro's Menu Cart widget draws the panel, the overlay and the close control; WooCommerce
 * renders the cart inside it. What follows reshapes that markup rather than replacing it - the
 * panel becomes the design's width and radius, the mini cart becomes a heading, a scrolling list of
 * product cards, a delivery choice, a summary and two actions.
 *
 * Colours and faces come from the Elementor Kit's globals, so the drawer follows the site. Two
 * colours the Kit has no token for - the blue of a chosen delivery and the green of "in stock" -
 * are declared once here, on the drawer itself, rather than added to the Kit for the sake of one
 * component.
 *
 * Everything is scoped to the Menu Cart widget, so nothing here can reach the cart page, the
 * checkout or a product card.
 */

/* -- Tokens and icons ------------------------------------------------------ */

.elementor-widget-woocommerce-menu-cart {
	--cart-drawer-width: 469px;
	--cart-drawer-gutter: 26px;
	--cart-drawer-selection: #1A73E8;
	--cart-drawer-selection-surface: #EDF2FC;
	--cart-drawer-stock: #1F9D55;

	/* Inline SVG masks: no icon font is downloaded, and each icon takes the colour it sits on. */
	--cart-bin-icon: 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.5' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M3 6h18M9 6V4h6v2M6 6l1 14h10l1-14'/%3E%3Cpath d='M10 11v5M14 11v5'/%3E%3C/svg%3E" );
	--cart-truck-icon: 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.5' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M2 7h11v9H2zM13 10h4.5l3.5 3.6V16h-8z'/%3E%3Ccircle cx='6.5' cy='18' r='2'/%3E%3Ccircle cx='17' cy='18' r='2'/%3E%3C/svg%3E" );
	--cart-shield-icon: 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.5' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M12 3l7 3v5c0 5-3.2 8.6-7 10-3.8-1.4-7-5-7-10V6z'/%3E%3Cpath d='M9 12l2 2 4-4'/%3E%3C/svg%3E" );
	--cart-support-icon: 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.5' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M4 13v-1a8 8 0 0 1 16 0v1'/%3E%3Crect x='2.5' y='13' width='4' height='6' rx='1.6'/%3E%3Crect x='17.5' y='13' width='4' height='6' rx='1.6'/%3E%3Cpath d='M19.5 19v.6a2.4 2.4 0 0 1-2.4 2.4H13'/%3E%3C/svg%3E" );
	--cart-info-icon: 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.5' stroke-linecap='round' stroke-linejoin='round'%3E%3Ccircle cx='12' cy='12' r='9'/%3E%3Cpath d='M12 11v5'/%3E%3Cpath d='M12 7.8v.6'/%3E%3C/svg%3E" );
	--cart-basket-icon: 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.4' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M3 9h18l-1.6 10.2a2 2 0 0 1-2 1.8H6.6a2 2 0 0 1-2-1.8z'/%3E%3Cpath d='M8 9L10.5 3M16 9L13.5 3'/%3E%3C/svg%3E" );
	--cart-arrow-icon: 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='M5 12h14M13 6l6 6-6 6'/%3E%3C/svg%3E" );
}

/* -- The panel and its overlay --------------------------------------------- */

/* The widget's own variables are the way it is meant to be sized and coloured. */
.elementor-widget-woocommerce-menu-cart .elementor-menu-cart__main {
	--cart-padding: 0;
	--cart-border-radius: 16px 0 0 16px;
	--cart-close-icon-size: 24px;
	--cart-close-button-color: var( --e-global-color-primary );
	--cart-close-button-hover-color: var( --e-global-color-accent );

	width: var( --cart-drawer-width );
	max-width: 100%;
	box-shadow: -18px 0 50px rgba( 15, 30, 44, 0.18 );
	font-family: var( --e-global-typography-text-font-family ), sans-serif;
}

/* The page behind is darkened so the drawer is the only lit thing on screen. */
.elementor-widget-woocommerce-menu-cart .elementor-menu-cart__container {
	background-color: rgba( 15, 30, 44, 0.74 );
}

/* The close control belongs beside the heading, not above it. */
.elementor-widget-woocommerce-menu-cart .elementor-menu-cart__close-button,
.elementor-widget-woocommerce-menu-cart .elementor-menu-cart__close-button-custom {
	position: absolute;
	top: 46px;
	right: var( --cart-drawer-gutter );
	z-index: 2;
	margin: 0;
	border-radius: 4px;
}

.elementor-widget-woocommerce-menu-cart .elementor-menu-cart__close-button::before,
.elementor-widget-woocommerce-menu-cart .elementor-menu-cart__close-button::after {
	height: 2px;
}

.elementor-widget-woocommerce-menu-cart .elementor-menu-cart__close-button:focus-visible {
	outline: 2px solid var( --e-global-color-accent );
	outline-offset: 4px;
}

/* -- The drawer's three bands ---------------------------------------------- */

/* Elementor already makes this a full-height column; the middle band is the one that scrolls. */
.widget_shopping_cart_content {
	color: var( --e-global-color-text );
	font-size: 14px;
	line-height: 1.55;
}

.widget_shopping_cart_content.is-busy {
	pointer-events: none;
	opacity: 0.6;
	transition: opacity 0.15s ease;
}

.cart-drawer__header {
	flex: 0 0 auto;
	padding: 48px var( --cart-drawer-gutter ) 22px;
	padding-right: calc( var( --cart-drawer-gutter ) + 44px );
}

/* The Kit sizes every h2 from `.elementor-kit-5 h2`, which a single class cannot outrank. */
.widget_shopping_cart_content .cart-drawer__title {
	display: flex;
	align-items: center;
	gap: 14px;
	margin: 0;
	color: var( --e-global-color-primary );
	font-family: var( --e-global-typography-primary-font-family ), sans-serif;
	font-size: 30px;
	font-weight: 700;
	line-height: 1.2;
}

.cart-drawer__count {
	display: grid;
	place-items: center;
	min-width: 38px;
	height: 38px;
	padding: 0 10px;
	border-radius: 999px;
	background-color: var( --e-global-color-accent );
	color: var( --e-global-color-onaccent );
	font-family: var( --e-global-typography-text-font-family ), sans-serif;
	font-size: 15px;
	font-weight: 600;
	line-height: 1;
}

.cart-drawer__note {
	margin: 12px 0 0;
	color: var( --e-global-color-secondary );
	font-size: 15px;
	line-height: 1.5;
}

.cart-drawer__body {
	flex: 0 1 auto;
	min-height: 0;
	overflow-y: auto;
	overscroll-behavior: contain;
	scrollbar-width: thin;
	scrollbar-color: var( --e-global-color-border ) transparent;
	padding: 0 var( --cart-drawer-gutter );
}

/* Follows the cart rather than being pushed to the foot of a tall screen, which is what the
   reference draws; it still cannot be scrolled away, because only the list above it scrolls. */
.cart-drawer__footer {
	position: relative;
	flex: 0 0 auto;
	padding: 0 var( --cart-drawer-gutter ) 22px;
	border-top: 1px solid var( --e-global-color-border );
	background-color: #FFFFFF;
}

/* A hint that there is more cart above, when the list is longer than the drawer. */
.cart-drawer__footer::before {
	content: "";
	position: absolute;
	left: 0;
	right: 0;
	bottom: 100%;
	height: 24px;
	background-image: linear-gradient( to top, rgba( 255, 255, 255, 0.96 ), rgba( 255, 255, 255, 0 ) );
	pointer-events: none;
}

/* WooCommerce keeps a paragraph for the subtotal; the summary below says it once, in its place. */
.widget_shopping_cart_content .woocommerce-mini-cart__total {
	display: none;
}

/* -- The product list ------------------------------------------------------ */

.widget_shopping_cart_content ul.woocommerce-mini-cart {
	margin: 0;
	padding: 0;
	list-style: none;
}

.widget_shopping_cart_content li.woocommerce-mini-cart-item {
	display: grid;
	grid-template-columns: 157px minmax( 0, 1fr ) auto;
	grid-template-areas:
		"image details details"
		"image variation variation"
		"quantity quantity remove";
	column-gap: 23px;
	row-gap: 22px;
	margin: 0 0 16px;
	padding: 18px;
	border: 1px solid var( --e-global-color-border );
	border-radius: 12px;
	background-color: #FFFFFF;
}

.cart-item__image {
	grid-area: image;
	display: block;
	width: 157px;
	height: 191px;
	border-radius: 10px;
	background-color: var( --e-global-color-surface );
	overflow: hidden;
}

.widget_shopping_cart_content .cart-item__image img {
	width: 100%;
	height: 100%;
	margin: 0;
	object-fit: contain;
	mix-blend-mode: multiply;
}

.cart-item__details {
	grid-area: details;
	display: grid;
	gap: 3px;
	min-width: 0;
}

.cart-item__brand {
	color: var( --e-global-color-secondary );
	font-family: var( --e-global-typography-primary-font-family ), sans-serif;
	font-size: 12.5px;
	font-weight: 600;
	letter-spacing: 0.09em;
	line-height: 1.3;
	text-transform: uppercase;
}

.widget_shopping_cart_content .cart-item__title {
	color: var( --e-global-color-primary );
	font-family: var( --e-global-typography-primary-font-family ), sans-serif;
	font-size: 20px;
	font-weight: 600;
	line-height: 1.35;
	text-decoration: none;
	overflow-wrap: anywhere;
}

.widget_shopping_cart_content .cart-item__title:hover,
.widget_shopping_cart_content .cart-item__title:focus-visible {
	color: var( --e-global-color-accent );
}

.cart-item__stock {
	display: flex;
	align-items: center;
	gap: 9px;
	margin-top: 10px;
	color: var( --cart-drawer-stock );
	font-size: 15px;
	font-weight: 500;
	line-height: 1.3;
}

.cart-item__stock-dot {
	width: 10px;
	height: 10px;
	border-radius: 50%;
	background-color: currentColor;
}

.cart-item__stock--out-of-stock,
.cart-item__stock--available-on-backorder {
	color: var( --e-global-color-secondary );
}

.cart-item__fact {
	color: var( --e-global-color-secondary );
	font-size: 14.5px;
	line-height: 1.55;
	overflow-wrap: anywhere;
}

.cart-item__price {
	margin-top: 14px;
	color: var( --e-global-color-primary );
	font-family: var( --e-global-typography-primary-font-family ), sans-serif;
	font-size: 26px;
	font-weight: 700;
	line-height: 1.2;
}

.widget_shopping_cart_content .cart-item__price .woocommerce-Price-amount {
	color: inherit;
	font-size: inherit;
	font-weight: inherit;
}

.cart-item__unit-price {
	color: var( --e-global-color-secondary );
	font-size: 13.5px;
	line-height: 1.3;
}

/* A variable product's chosen options, as WooCommerce writes them. */
.widget_shopping_cart_content li.woocommerce-mini-cart-item dl.variation {
	grid-area: variation;
	display: grid;
	grid-template-columns: auto minmax( 0, 1fr );
	gap: 2px 6px;
	margin: 0;
	color: var( --e-global-color-secondary );
	font-size: 13px;
	line-height: 1.4;
}

.widget_shopping_cart_content li.woocommerce-mini-cart-item dl.variation dt,
.widget_shopping_cart_content li.woocommerce-mini-cart-item dl.variation dd {
	margin: 0;
	padding: 0;
	font-weight: 400;
}

.widget_shopping_cart_content li.woocommerce-mini-cart-item dl.variation dd p {
	margin: 0;
}

/* -- The quantity stepper -------------------------------------------------- */

.cart-item__quantity {
	grid-area: quantity;
	display: flex;
	align-items: center;
}

.quantity-stepper {
	display: inline-grid;
	grid-template-columns: 54px 91px 54px;
	align-items: stretch;
	border: 1px solid var( --e-global-color-border );
	border-radius: 8px;
	background-color: #FFFFFF;
	overflow: hidden;
}

.widget_shopping_cart_content .quantity-stepper__button {
	display: grid;
	place-items: center;
	height: 52px;
	padding: 0;
	border: 0;
	background: none;
	color: var( --e-global-color-primary );
	font-size: 22px;
	line-height: 1;
	cursor: pointer;
	transition: background-color 0.15s ease, color 0.15s ease;
}

.widget_shopping_cart_content .quantity-stepper__button:hover:not(:disabled) {
	background-color: var( --e-global-color-surface );
	color: var( --e-global-color-accent );
}

.widget_shopping_cart_content .quantity-stepper__button:disabled {
	color: var( --e-global-color-border );
	cursor: default;
}

.widget_shopping_cart_content .quantity-stepper__button:focus-visible {
	outline: 2px solid var( --e-global-color-accent );
	outline-offset: -2px;
}

.widget_shopping_cart_content .quantity-stepper__input {
	width: 100%;
	height: 52px;
	padding: 0 4px;
	border: 0;
	border-left: 1px solid var( --e-global-color-border );
	border-right: 1px solid var( --e-global-color-border );
	border-radius: 0;
	background-color: #FFFFFF;
	color: var( --e-global-color-primary );
	font-family: var( --e-global-typography-text-font-family ), sans-serif;
	font-size: 17px;
	font-weight: 500;
	text-align: center;
	-moz-appearance: textfield;
	appearance: textfield;
}

.widget_shopping_cart_content .quantity-stepper__input::-webkit-outer-spin-button,
.widget_shopping_cart_content .quantity-stepper__input::-webkit-inner-spin-button {
	margin: 0;
	-webkit-appearance: none;
	appearance: none;
}

.widget_shopping_cart_content .quantity-stepper__input:focus-visible {
	outline: 2px solid var( --e-global-color-accent );
	outline-offset: -2px;
}

/* -- Taking a product out -------------------------------------------------- */

.widget_shopping_cart_content a.cart-item__remove {
	grid-area: remove;
	display: grid;
	place-items: center;
	align-self: center;
	width: 48px;
	height: 48px;
	border-radius: 8px;
	color: var( --e-global-color-secondary );
	font-size: 0;
	text-decoration: none;
	transition: background-color 0.15s ease, color 0.15s ease;
}

.widget_shopping_cart_content a.cart-item__remove:hover,
.widget_shopping_cart_content a.cart-item__remove:focus-visible {
	background-color: var( --e-global-color-surface );
	color: #C1352B;
}

.widget_shopping_cart_content a.cart-item__remove:focus-visible {
	outline: 2px solid var( --e-global-color-accent );
	outline-offset: 2px;
}

.cart-item__remove-icon {
	width: 24px;
	height: 24px;
	background-color: currentColor;
	-webkit-mask-image: var( --cart-bin-icon );
	mask-image: var( --cart-bin-icon );
	-webkit-mask-repeat: no-repeat;
	mask-repeat: no-repeat;
	-webkit-mask-position: center;
	mask-position: center;
	-webkit-mask-size: 24px 24px;
	mask-size: 24px 24px;
}

/* -- The delivery choice --------------------------------------------------- */

.cart-shipping {
	margin: 4px 0 6px;
	padding-top: 18px;
	border-top: 1px solid var( --e-global-color-border );
}

.cart-shipping__header {
	display: flex;
	align-items: flex-start;
	gap: 12px;
	margin-bottom: 14px;
}

.cart-shipping__icon {
	flex: 0 0 auto;
	width: 32px;
	height: 32px;
	background-color: var( --e-global-color-primary );
	-webkit-mask-image: var( --cart-truck-icon );
	mask-image: var( --cart-truck-icon );
	-webkit-mask-repeat: no-repeat;
	mask-repeat: no-repeat;
	-webkit-mask-position: center;
	mask-position: center;
	-webkit-mask-size: 32px 32px;
	mask-size: 32px 32px;
}

.cart-shipping__text {
	display: grid;
	gap: 2px;
	min-width: 0;
}

.cart-shipping__title {
	color: var( --e-global-color-primary );
	font-family: var( --e-global-typography-primary-font-family ), sans-serif;
	font-size: 19px;
	font-weight: 600;
	line-height: 1.3;
}

.cart-shipping__note {
	color: var( --e-global-color-secondary );
	font-size: 15px;
	line-height: 1.4;
}

.widget_shopping_cart_content .shipping-options {
	display: grid;
	gap: 10px;
	margin: 0;
	padding: 0;
	border: 0;
}

.shipping-option {
	position: relative;
	display: flex;
}

/* The radio keeps doing the choosing; the card is its label. */
.widget_shopping_cart_content .shipping-option__input {
	position: absolute;
	top: 18px;
	left: 18px;
	width: 1px;
	height: 1px;
	margin: 0;
	opacity: 0;
	pointer-events: none;
}

.shipping-option__label {
	display: grid;
	grid-template-columns: auto minmax( 0, 1fr ) auto;
	align-items: center;
	gap: 14px;
	width: 100%;
	margin: 0;
	padding: 19px 18px;
	border: 1px solid var( --e-global-color-border );
	border-radius: 10px;
	background-color: #FFFFFF;
	cursor: pointer;
	transition: border-color 0.18s ease, background-color 0.18s ease;
}

.shipping-option__label:hover {
	border-color: #C9CDD4;
}

.shipping-option__input:checked + .shipping-option__label {
	border-color: var( --cart-drawer-selection );
	background-color: var( --cart-drawer-selection-surface );
}

.shipping-option__input:focus-visible + .shipping-option__label {
	outline: 2px solid var( --e-global-color-accent );
	outline-offset: 2px;
}

.shipping-option__marker {
	flex: 0 0 auto;
	width: 24px;
	height: 24px;
	border: 1px solid #C9CDD4;
	border-radius: 50%;
	background-color: #FFFFFF;
	transition: border-color 0.18s ease, box-shadow 0.18s ease;
}

.shipping-option__input:checked + .shipping-option__label .shipping-option__marker {
	border-color: var( --cart-drawer-selection );
	box-shadow: inset 0 0 0 5.5px var( --cart-drawer-selection );
}

.shipping-option__text {
	display: grid;
	gap: 2px;
	min-width: 0;
}

.shipping-option__title {
	color: var( --e-global-color-primary );
	font-size: 16px;
	font-weight: 500;
	line-height: 1.35;
}

.shipping-option__note {
	color: var( --e-global-color-secondary );
	font-size: 14.5px;
	line-height: 1.35;
}

.shipping-option__price {
	color: var( --e-global-color-primary );
	font-family: var( --e-global-typography-primary-font-family ), sans-serif;
	font-size: 16px;
	font-weight: 600;
	white-space: nowrap;
}

.cart-shipping__disclaimer {
	display: flex;
	align-items: flex-start;
	gap: 12px;
	margin: 16px 0 0;
	color: var( --e-global-color-secondary );
	font-size: 14px;
	line-height: 1.55;
}

.cart-shipping__disclaimer-icon {
	flex: 0 0 auto;
	width: 22px;
	height: 22px;
	margin-top: 1px;
	background-color: var( --e-global-color-secondary );
	-webkit-mask-image: var( --cart-info-icon );
	mask-image: var( --cart-info-icon );
	-webkit-mask-repeat: no-repeat;
	mask-repeat: no-repeat;
	-webkit-mask-position: center;
	mask-position: center;
	-webkit-mask-size: 22px 22px;
	mask-size: 22px 22px;
}

/* -- What the cart comes to ------------------------------------------------ */

.cart-summary {
	padding: 20px 0 20px;
}

.cart-summary__row {
	display: flex;
	align-items: baseline;
	justify-content: space-between;
	gap: 16px;
	margin-bottom: 10px;
	font-size: 16px;
}

.cart-summary__label {
	color: var( --e-global-color-text );
}

.cart-summary__value {
	color: var( --e-global-color-primary );
	font-weight: 500;
	white-space: nowrap;
}

.widget_shopping_cart_content .cart-summary__value .woocommerce-Price-amount {
	color: inherit;
	font-weight: inherit;
}

.cart-summary__total {
	display: flex;
	align-items: center;
	justify-content: space-between;
	gap: 16px;
	margin-top: 16px;
	padding: 20px 20px;
	border-radius: 10px;
	background-color: var( --e-global-color-surface );
}

.cart-summary__total-label {
	color: var( --e-global-color-primary );
	font-family: var( --e-global-typography-primary-font-family ), sans-serif;
	font-size: 22px;
	font-weight: 700;
}

.cart-summary__total-value {
	display: grid;
	justify-items: end;
	gap: 2px;
	color: var( --e-global-color-primary );
	font-family: var( --e-global-typography-primary-font-family ), sans-serif;
	font-size: 30px;
	font-weight: 700;
	line-height: 1.2;
	text-align: right;
	white-space: nowrap;
}

.widget_shopping_cart_content .cart-summary__total-value .woocommerce-Price-amount {
	color: inherit;
	font-size: inherit;
	font-weight: inherit;
}

.cart-summary__tax-note {
	color: var( --e-global-color-secondary );
	font-family: var( --e-global-typography-text-font-family ), sans-serif;
	font-size: 14px;
	font-weight: 400;
}

/* -- The two actions ------------------------------------------------------- */

.widget_shopping_cart_content p.woocommerce-mini-cart__buttons {
	display: grid;
	grid-template-columns: 148px minmax( 0, 1fr );
	gap: 11px;
	margin: 0 0 20px;
}

.widget_shopping_cart_content p.woocommerce-mini-cart__buttons a.button {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	gap: 12px;
	min-height: 62px;
	margin: 0;
	padding: 0 18px;
	border: 1px solid var( --e-global-color-border );
	border-radius: 10px;
	background-color: #FFFFFF;
	color: var( --e-global-color-primary );
	font-family: var( --e-global-typography-primary-font-family ), sans-serif;
	font-size: 16px;
	font-weight: 600;
	line-height: 1.2;
	text-align: center;
	text-decoration: none;
	transition: background-color 0.18s ease, border-color 0.18s ease, color 0.18s ease;
}

.widget_shopping_cart_content p.woocommerce-mini-cart__buttons a.button:hover {
	border-color: var( --e-global-color-primary );
}

.widget_shopping_cart_content p.woocommerce-mini-cart__buttons a.button.checkout {
	border-color: var( --e-global-color-accent );
	background-color: var( --e-global-color-accent );
	font-size: 17px;
}

.widget_shopping_cart_content p.woocommerce-mini-cart__buttons a.button.checkout::after {
	content: "";
	width: 18px;
	height: 18px;
	background-color: currentColor;
	-webkit-mask-image: var( --cart-arrow-icon );
	mask-image: var( --cart-arrow-icon );
	-webkit-mask-repeat: no-repeat;
	mask-repeat: no-repeat;
	-webkit-mask-position: center;
	mask-position: center;
	-webkit-mask-size: 18px 18px;
	mask-size: 18px 18px;
}

.widget_shopping_cart_content p.woocommerce-mini-cart__buttons a.button.checkout:hover {
	border-color: var( --e-global-color-primary );
	background-color: var( --e-global-color-primary );
	color: #FFFFFF;
}

.widget_shopping_cart_content p.woocommerce-mini-cart__buttons a.button:focus-visible {
	outline: 2px solid var( --e-global-color-primary );
	outline-offset: 2px;
}

/* -- The promises under them ----------------------------------------------- */

.cart-assurances {
	display: grid;
	grid-template-columns: repeat( 3, minmax( 0, 1fr ) );
	gap: 0;
	margin: 0;
	padding: 22px 0 0;
	border-top: 1px solid var( --e-global-color-border );
	list-style: none;
}

.cart-assurances__item {
	display: grid;
	justify-items: center;
	gap: 3px;
	margin: 0;
	padding: 0 8px;
	text-align: center;
}

.cart-assurances__item + .cart-assurances__item {
	border-left: 1px solid var( --e-global-color-border );
}

.cart-assurances__icon {
	width: 34px;
	height: 34px;
	margin-bottom: 8px;
	background-color: var( --e-global-color-primary );
	-webkit-mask-repeat: no-repeat;
	mask-repeat: no-repeat;
	-webkit-mask-position: center;
	mask-position: center;
	-webkit-mask-size: 34px 34px;
	mask-size: 34px 34px;
}

.cart-assurances__icon--delivery {
	-webkit-mask-image: var( --cart-truck-icon );
	mask-image: var( --cart-truck-icon );
}

.cart-assurances__icon--secure {
	-webkit-mask-image: var( --cart-shield-icon );
	mask-image: var( --cart-shield-icon );
}

.cart-assurances__icon--support {
	-webkit-mask-image: var( --cart-support-icon );
	mask-image: var( --cart-support-icon );
}

.cart-assurances__title {
	color: var( --e-global-color-primary );
	font-size: 14px;
	font-weight: 600;
	line-height: 1.3;
}

.cart-assurances__note {
	color: var( --e-global-color-secondary );
	font-size: 13px;
	line-height: 1.35;
}

/* -- An empty cart --------------------------------------------------------- */

.elementor-menu-cart__main .widget_shopping_cart_content .woocommerce-mini-cart__empty-message {
	--empty-message-alignment: center;

	margin: 0;
	color: var( --e-global-color-primary );
	font-family: var( --e-global-typography-primary-font-family ), sans-serif;
	font-size: 17px;
	font-weight: 600;
	text-align: center;
}

.empty-cart-state {
	display: grid;
	justify-items: center;
	gap: 10px;
	padding: 18px 0 40px;
	text-align: center;
}

.empty-cart-state__icon {
	width: 54px;
	height: 54px;
	background-color: var( --e-global-color-border );
	-webkit-mask-image: var( --cart-basket-icon );
	mask-image: var( --cart-basket-icon );
	-webkit-mask-repeat: no-repeat;
	mask-repeat: no-repeat;
	-webkit-mask-position: center;
	mask-position: center;
	-webkit-mask-size: 54px 54px;
	mask-size: 54px 54px;
}

.empty-cart-state__note {
	max-width: 30ch;
	margin: 0;
	color: var( --e-global-color-secondary );
	font-size: 13.5px;
	line-height: 1.5;
}

.widget_shopping_cart_content .empty-cart-state__action {
	display: inline-flex;
	align-items: center;
	gap: 10px;
	min-height: 50px;
	margin-top: 6px;
	padding: 0 24px;
	border-radius: 8px;
	background-color: var( --e-global-color-accent );
	color: var( --e-global-color-primary );
	font-family: var( --e-global-typography-primary-font-family ), sans-serif;
	font-size: 14.5px;
	font-weight: 600;
	text-decoration: none;
	transition: background-color 0.18s ease, color 0.18s ease;
}

.widget_shopping_cart_content .empty-cart-state__action:hover {
	background-color: var( --e-global-color-primary );
	color: #FFFFFF;
}

.cart-action__arrow {
	width: 18px;
	height: 18px;
	background-color: currentColor;
	-webkit-mask-image: var( --cart-arrow-icon );
	mask-image: var( --cart-arrow-icon );
	-webkit-mask-repeat: no-repeat;
	mask-repeat: no-repeat;
	-webkit-mask-position: center;
	mask-position: center;
	-webkit-mask-size: 18px 18px;
	mask-size: 18px 18px;
}

/* -- The page behind ------------------------------------------------------- */

/* The drawer scrolls; the page under it stays where the customer left it. */
body.cart-drawer-open {
	overflow: hidden;
}

/* -- Tablet ---------------------------------------------------------------- */

@media (max-width: 1024px) {
	.elementor-widget-woocommerce-menu-cart {
		--cart-drawer-width: 430px;
		--cart-drawer-gutter: 22px;
	}

	.cart-drawer__header {
		padding-top: 36px;
	}

	.elementor-widget-woocommerce-menu-cart .elementor-menu-cart__close-button,
	.elementor-widget-woocommerce-menu-cart .elementor-menu-cart__close-button-custom {
		top: 36px;
	}

	.widget_shopping_cart_content .cart-drawer__title {
		font-size: 27px;
	}

	.cart-drawer__count {
		min-width: 34px;
		height: 34px;
	}

	.widget_shopping_cart_content li.woocommerce-mini-cart-item {
		grid-template-columns: 132px minmax( 0, 1fr ) auto;
		column-gap: 18px;
	}

	.cart-item__image {
		width: 132px;
		height: 161px;
	}

	.widget_shopping_cart_content .cart-item__title {
		font-size: 18px;
	}

	.cart-item__price {
		font-size: 23px;
	}

	.quantity-stepper {
		grid-template-columns: 50px 80px 50px;
	}

	.widget_shopping_cart_content .quantity-stepper__button,
	.widget_shopping_cart_content .quantity-stepper__input {
		height: 50px;
	}

	.cart-summary__total-label {
		font-size: 20px;
	}

	.cart-summary__total-value {
		font-size: 27px;
	}

	.widget_shopping_cart_content p.woocommerce-mini-cart__buttons {
		grid-template-columns: 132px minmax( 0, 1fr );
	}

	.widget_shopping_cart_content p.woocommerce-mini-cart__buttons a.button {
		min-height: 58px;
	}
}

/* -- Mobile ---------------------------------------------------------------- */

@media (max-width: 767px) {
	.elementor-widget-woocommerce-menu-cart {
		--cart-drawer-width: 100vw;
		--cart-drawer-gutter: 18px;
	}

	/* Full width, so the corners have nothing to round against. */
	.elementor-widget-woocommerce-menu-cart .elementor-menu-cart__main {
		--cart-border-radius: 0;
	}

	.elementor-widget-woocommerce-menu-cart .elementor-menu-cart__close-button,
	.elementor-widget-woocommerce-menu-cart .elementor-menu-cart__close-button-custom {
		top: 28px;
	}

	.cart-drawer__header {
		padding-top: 28px;
		padding-bottom: 18px;
	}

	.widget_shopping_cart_content .cart-drawer__title {
		font-size: 24px;
	}

	.cart-drawer__count {
		min-width: 32px;
		height: 32px;
		font-size: 14px;
	}

	.cart-drawer__note {
		margin-top: 10px;
		font-size: 14px;
	}

	.widget_shopping_cart_content li.woocommerce-mini-cart-item {
		grid-template-columns: 112px minmax( 0, 1fr ) auto;
		column-gap: 16px;
		row-gap: 18px;
		padding: 16px;
	}

	.cart-item__image {
		width: 112px;
		height: 136px;
	}

	.widget_shopping_cart_content .cart-item__title {
		font-size: 17px;
	}

	.cart-item__stock,
	.cart-item__fact {
		font-size: 13.5px;
	}

	.cart-item__price {
		font-size: 22px;
	}

	.quantity-stepper {
		grid-template-columns: 46px 68px 46px;
	}

	.widget_shopping_cart_content .quantity-stepper__button,
	.widget_shopping_cart_content .quantity-stepper__input {
		height: 48px;
	}

	.widget_shopping_cart_content a.cart-item__remove {
		width: 44px;
		height: 44px;
	}

	.shipping-option__label {
		padding: 16px;
	}

	.shipping-option__title {
		font-size: 15px;
	}

	.shipping-option__note {
		font-size: 13.5px;
	}

	.cart-summary__total-label {
		font-size: 19px;
	}

	.cart-summary__total-value {
		font-size: 25px;
	}

	/* Side by side there is no room for either label, so they take a line each. */
	.widget_shopping_cart_content p.woocommerce-mini-cart__buttons {
		grid-template-columns: minmax( 0, 1fr );
		gap: 10px;
	}

	.widget_shopping_cart_content p.woocommerce-mini-cart__buttons a.button {
		min-height: 56px;
	}

	.cart-assurances__item {
		padding: 0 6px;
	}

	.cart-assurances__icon {
		width: 28px;
		height: 28px;
		-webkit-mask-size: 28px 28px;
		mask-size: 28px 28px;
	}

	.cart-assurances__title {
		font-size: 12.5px;
	}

	.cart-assurances__note {
		font-size: 11.5px;
	}
}
/* -- Motion ---------------------------------------------------------------- */

@media (prefers-reduced-motion: reduce) {
	.elementor-widget-woocommerce-menu-cart .elementor-menu-cart__main,
	.widget_shopping_cart_content * {
		transition-duration: 0.01ms !important;
	}
}
