/*
 * Basket drawer, matching the former Elementor menu cart (350px wide, slides in from the right).
 */
.ew-minicart[hidden] { display: none; }
.ew-minicart { position: fixed; inset: 0; z-index: 10004; }
.ew-minicart__overlay { position: absolute; inset: 0; background-color: rgba(0, 0, 0, .25); }
.ew-minicart__main {
	position: absolute;
	top: 0;
	right: 0;
	display: flex;
	flex-direction: column;
	width: 350px;
	max-width: 100%;
	height: 100%;
	overflow-y: auto;
	padding: 2%;
	border-radius: 20px 0 0 20px;
	background-color: var(--ew-white);
	box-shadow: 0 0 20px rgba(0, 0, 0, .2);
	color: var(--ew-body-text);
	font-size: 14px;
	line-height: 1.5;
	animation: ew-slide-in-right .3s both;
}
@keyframes ew-slide-in-right { from { transform: translateX(100%); } to { transform: none; } }

.ew-minicart__close,
.ew-minicart__close:hover,
.ew-minicart__close:focus {
	display: block;
	align-self: flex-start;
	width: 25px;
	height: 23.7px;
	margin-bottom: 20px;
	padding: 0;
	background: transparent;
	color: var(--ew-body-text);
	line-height: 0;
}
.ew-minicart__close svg { width: 20px; height: 20px; }

.ew-minicart .widget_shopping_cart_content { display: flex; flex-direction: column; flex: 1 1 auto; }

.ew-minicart__product {
	position: relative;
	display: grid;
	grid-template-columns: 28% auto;
	grid-template-rows: auto auto;
	padding: 0 30px 20px 0;
}
.ew-minicart__image { grid-row: 1 / span 2; }
.ew-minicart__image img { display: block; width: 100%; height: auto; }
.ew-minicart__name { padding-left: 20px; }
.ew-minicart__name a,
.ew-minicart__name a:hover {
	color: var(--ew-purple);
	font-family: var(--ew-font-gibson);
	font-size: 14px;
	font-weight: 700;
	line-height: 1em;
}
.ew-minicart__price { padding-left: 20px; color: var(--ew-steel-blue); font-weight: 300; }
.ew-minicart__remove { position: absolute; top: 50%; right: 0; transform: translateY(-50%); }
.ew-minicart__remove .remove {
	position: relative;
	display: block;
	width: 20px;
	height: 20px;
	border: 1px solid var(--ew-steel-blue);
	border-radius: 20px;
	transition: border-color .3s;
}
.ew-minicart__remove .remove::before,
.ew-minicart__remove .remove::after {
	content: "";
	position: absolute;
	top: 50%;
	left: 50%;
	width: 8px;
	height: 1px;
	background-color: var(--ew-steel-blue);
}
.ew-minicart__remove .remove::before { transform: translate(-50%, -50%) rotate(45deg); }
.ew-minicart__remove .remove::after { transform: translate(-50%, -50%) rotate(-45deg); }
.ew-minicart__remove .remove:hover { border-color: var(--ew-purple); }

.ew-minicart__subtotal {
	margin: 0;
	padding: 20px 0;
	border-top: 1px solid #d5d8dc;
	border-bottom: 1px solid #d5d8dc;
	color: var(--ew-purple);
	font-family: var(--ew-font-gibson);
	font-size: 20px;
	font-weight: 700;
	line-height: 1em;
	text-align: right;
	text-transform: uppercase;
}
.ew-minicart__subtotal strong { font-weight: inherit; }

.ew-minicart__buttons { display: grid; gap: 10px; padding-top: 20px; }
.ew-minicart__btn,
.ew-minicart__btn:visited {
	display: block;
	padding: 15px;
	background-color: var(--ew-purple);
	color: var(--ew-white);
	font-family: var(--ew-font-gibson);
	font-size: 16px;
	font-weight: 700;
	line-height: 1em;
	text-align: center;
	text-transform: uppercase;
	transition: all .3s;
}
.ew-minicart__btn:hover,
.ew-minicart__btn:focus { background-color: var(--ew-off-white); color: var(--ew-purple); }
.ew-minicart__btn--checkout,
.ew-minicart__btn--checkout:visited { background-color: var(--ew-mustard); color: var(--ew-purple); }

.ew-minicart__empty { margin: 0; color: var(--ew-purple); text-align: center; }

@media (prefers-reduced-motion: reduce) { .ew-minicart__main { animation: none; } }
