.header__cart {
	position: relative;
	z-index: 20;
}

.header__cart-toggle {
	position: relative;
	display: block;
	width: 24px;
	height: 24px;
	padding: 0;
	border: 0;
	background: transparent;
	cursor: pointer;
}

.header__cart-toggle svg {
	display: block;
	width: 100%;
	height: 100%;
}

.header__cart-count {
	position: absolute;
	top: -10px;
	right: -12px;
	min-width: 19px;
	height: 19px;
	padding: 0 5px;
	border: 2px solid var(--blue);
	border-radius: 10px;
	background: var(--orange);
	color: var(--white);
	font-size: 11px;
	font-weight: 700;
	line-height: 15px;
	text-align: center;
}

.header__cart-dropdown {
	position: absolute;
	top: calc(100% + 14px);
	right: -10px;
	width: 360px;
	max-width: calc(100vw - 30px);
	padding: 15px;
	border-radius: 8px;
	background: var(--white);
	box-shadow: 0 8px 30px rgba(0, 0, 0, 0.18);
	opacity: 0;
	visibility: hidden;
	transform: translateY(-8px);
	transition: var(--transition);
}

.header__cart-dropdown::before {
	content: '';
	position: absolute;
	right: 9px;
	bottom: 100%;
	width: 70px;
	height: 18px;
}

.header__cart:hover .header__cart-dropdown,
.header__cart.is-open .header__cart-dropdown {
	opacity: 1;
	visibility: visible;
	transform: translateY(0);
}

.header__cart-list {
	max-height: 320px;
	overflow-y: auto;
	overscroll-behavior: contain;
	padding-right: 5px;
}

.header__cart-item + .header__cart-item {
	border-top: 1px solid var(--grey);
}

.header__cart-item-link {
	display: grid;
	grid-template-columns: 64px minmax(0, 1fr);
	gap: 12px;
	align-items: center;
	padding: 10px 0;
}

.header__cart-item-image,
.cart-image-placeholder {
	display: block;
	width: 64px;
	height: 52px;
	border-radius: 4px;
	background: var(--grey);
	object-fit: cover;
}

.header__cart-item-content {
	display: block;
	min-width: 0;
}

.header__cart-item-title {
	display: -webkit-box;
	overflow: hidden;
	color: var(--blue);
	font-size: 14px;
	font-weight: 600;
	line-height: 1.25;
	-webkit-box-orient: vertical;
	-webkit-line-clamp: 2;
}

.header__cart-item-meta {
	display: block;
	margin-top: 5px;
	color: var(--orange);
	font-size: 13px;
	font-weight: 600;
}

.header__cart-empty {
	padding: 12px 0;
	text-align: center;
}

.header__cart-link {
	display: block;
	margin-top: 12px;
	text-align: center;
	padding: 10px;
	font-size: 14px;
}

.cart__empty {
	padding: 35px;
	border-radius: 10px;
	background: var(--white);
	text-align: center;
}

.cart__empty p {
	margin-bottom: 20px;
	font-size: 20px;
}

.cart__table-wrap {
	overflow-x: auto;
	border-radius: 10px;
	background: var(--white);
}

.cart__table {
	width: 100%;
	border-collapse: collapse;
}

.cart__table th,
.cart__table td {
	padding: 16px;
	border-bottom: 1px solid var(--grey);
	vertical-align: middle;
	text-align: left;
}

.cart__table th {
	color: var(--blue);
	font-size: 14px;
	font-weight: 600;
}

.cart__table tbody tr:last-child td {
	border-bottom: 0;
}

.cart__image {
	display: block;
	width: 120px;
	height: 80px;
	border-radius: 6px;
	object-fit: cover;
}

.cart__title-cell {
	min-width: 260px;
	font-weight: 600;
}

.cart__title-cell a {
	color: var(--blue);
}

.cart__title-cell a:hover {
	color: var(--orange);
}

.cart__price-cell {
	min-width: 165px;
	color: var(--orange);
	font-weight: 700;
}

.cart__quantity {
	display: inline-flex;
	align-items: center;
	overflow: hidden;
	border: 1px solid #d4d7df;
	border-radius: 5px;
}

.cart__quantity-btn {
	width: 34px;
	height: 34px;
	border: 0;
	background: var(--grey-light);
	color: var(--blue);
	font-size: 20px;
	line-height: 1;
	cursor: pointer;
}

.cart__quantity-btn:hover,
.cart__quantity-btn:focus-visible {
	background: var(--blue);
	color: var(--white);
}

.cart__quantity-value {
	min-width: 38px;
	padding: 0 5px;
	text-align: center;
}

.cart__remove {
	padding: 5px;
	border: 0;
	background: transparent;
	color: #dc3545;
	font-size: 14px;
	text-decoration: underline;
	cursor: pointer;
	padding: 0;
}

.cart__actions {
	display: flex;
	justify-content: space-between;
	gap: 15px;
	margin-top: 25px;
}

.cart__clear {
	background: var(--black);
}

[data-cart-page][hidden],
[data-cart-page-empty][hidden],
[data-cart-page-content][hidden],
[data-cart-mini-list][hidden],
[data-cart-mini-empty][hidden],
.header__cart-link[hidden] {
	display: none !important;
}

@media (max-width: 767px) {
	.header__cart-dropdown {
		position: fixed;
		top: 72px;
		right: 15px;
		left: 15px;
		width: auto;
		max-width: none;
	}

	.header__cart-dropdown::before {
		display: none;
	}

	.header__cart-list {
		max-height: 50vh;
	}

	.cart__table-wrap {
		overflow: visible;
		background: transparent;
	}

	.cart__table,
	.cart__table tbody {
		display: block;
	}

	.cart__table thead {
		display: none;
	}

	.cart__table tr {
		display: grid;
		grid-template-columns: 82px minmax(0, 1fr) auto;
		gap: 12px;
		align-items: center;
		margin-bottom: 15px;
		padding: 15px;
		border-radius: 8px;
		background: var(--white);
	}

	.cart__table td {
		display: block;
		min-width: 0;
		padding: 0;
		border: 0!important;
	}

	.cart__image-cell {
		grid-row: 1 / 4;
	}

	.cart__image,
	.cart__image-cell .cart-image-placeholder {
		width: 82px;
		height: 72px;
	}

	.cart__title-cell {
		grid-column: 2 / 4;
	}

	.cart__price-cell {
		grid-column: 2;
		font-size: 14px;
	}

	.cart__quantity-cell {
		grid-column: 3;
	}

	.cart__remove-cell {
		grid-column: 2 / 4;
	}

	.cart__actions {
		flex-direction: column;
	}

	.cart__actions .btn {
		width: 100%;
		text-align: center;
	}
}

@media (max-width: 420px) {
	.header__cart-dropdown {
		top: 65px;
	}

	.header__cart-item-link {
		grid-template-columns: 54px minmax(0, 1fr);
	}

	.header__cart-item-image,
	.header__cart-item-link .cart-image-placeholder {
		width: 54px;
		height: 46px;
	}

	.cart__table tr {
		grid-template-columns: 68px minmax(0, 1fr);
	}

	.cart__image-cell {
		grid-row: 1 / 3;
	}

	.cart__image,
	.cart__image-cell .cart-image-placeholder {
		width: 68px;
		height: 62px;
	}

	.cart__title-cell,
	.cart__price-cell,
	.cart__quantity-cell,
	.cart__remove-cell {
		grid-column: 2;
	}
}
