/* TOCLIC Offres & Relances – panier latéral */
.tco-sidecart {
	position: fixed;
	inset: 0;
	z-index: 100001;
}
.tco-sidecart[hidden] { display: none; }
.tco-sidecart__overlay {
	position: absolute;
	inset: 0;
	background: rgba(0, 0, 0, .45);
	opacity: 0;
	transition: opacity .3s ease;
}
.tco-sidecart__panel {
	position: absolute;
	top: 0;
	right: 0;
	bottom: 0;
	display: flex;
	flex-direction: column;
	width: 420px;
	max-width: 92vw;
	background: #fff;
	box-shadow: -10px 0 40px rgba(0, 0, 0, .2);
	transform: translateX(100%);
	transition: transform .3s ease;
	outline: none;
}
.tco-sidecart.is-open .tco-sidecart__overlay { opacity: 1; }
.tco-sidecart.is-open .tco-sidecart__panel { transform: none; }
@media (prefers-reduced-motion: reduce) {
	.tco-sidecart__overlay, .tco-sidecart__panel { transition: none; }
}
.tco-sidecart-open, .tco-sidecart-open body { overflow: hidden; }

.tco-sidecart__header {
	display: flex;
	align-items: center;
	justify-content: space-between;
	padding: 16px 20px;
	border-bottom: 1px solid #eee;
}
.tco-sidecart__title { margin: 0 !important; padding: 0 !important; font-size: 18px; font-weight: 700; color: #222; }
.tco-sidecart__close {
	width: 36px;
	height: 36px;
	padding: 0;
	border: 0;
	border-radius: 50%;
	background: transparent;
	color: #222;
	font-size: 28px;
	line-height: 36px;
	cursor: pointer;
}
.tco-sidecart__close:hover { background: #f3f3f3; }

.tco-sidecart__body {
	display: flex;
	flex: 1;
	flex-direction: column;
	min-height: 0;
}
.tco-sidecart__body > .tco-progress { margin: 16px 20px 0; padding: 12px 14px; }

.tco-sidecart__items {
	flex: 1;
	overflow-y: auto;
	margin: 0 !important;
	padding: 8px 20px !important;
	list-style: none !important;
}
.tco-sidecart__item {
	position: relative;
	display: flex;
	gap: 12px;
	margin: 0 !important;
	padding: 14px 28px 14px 0;
	border-bottom: 1px solid #f0f0f0;
	transition: opacity .2s;
}
.tco-sidecart__item:last-child { border-bottom: 0; }
.tco-sidecart__item.is-loading { opacity: .5; pointer-events: none; }
.tco-sidecart__thumb { flex: 0 0 72px; }
.tco-sidecart__thumb img { display: block; width: 72px !important; height: 72px !important; object-fit: cover; border-radius: 6px; }
.tco-sidecart__info { flex: 1; min-width: 0; }
.tco-sidecart__name { margin: 0 0 4px !important; padding: 0 !important; font-size: 14px; font-weight: 600; line-height: 1.3; }
.tco-sidecart__name a { color: #222; text-decoration: none; }
.tco-sidecart__info dl.variation { margin: 0 0 6px; font-size: 12px; color: #777; }
.tco-sidecart__info dl.variation dt, .tco-sidecart__info dl.variation dd { display: inline; margin: 0; }
.tco-sidecart__info dl.variation dd p { display: inline; margin: 0; }
.tco-sidecart__row { display: flex; align-items: center; justify-content: space-between; gap: 8px; margin-top: 8px; }
.tco-sidecart__price { font-size: 14px; font-weight: 600; color: #222; white-space: nowrap; }
.tco-sidecart__qty-fixed { font-size: 13px; color: #777; }

.tco-sidecart__qty {
	display: inline-flex;
	align-items: center;
	border: 1px solid #ddd;
	border-radius: 4px;
	overflow: hidden;
}
.tco-sidecart__qty button {
	width: 32px;
	height: 32px;
	padding: 0;
	border: 0;
	background: #f7f7f7;
	color: #222;
	font-size: 16px;
	line-height: 32px;
	cursor: pointer;
}
.tco-sidecart__qty button:hover { background: #eee; }
.tco-sidecart__qty input {
	width: 40px;
	height: 32px;
	margin: 0;
	padding: 0;
	border: 0;
	background: #fff;
	text-align: center;
	font-size: 14px;
	-moz-appearance: textfield;
}
.tco-sidecart__qty input::-webkit-outer-spin-button,
.tco-sidecart__qty input::-webkit-inner-spin-button { -webkit-appearance: none; margin: 0; }

.tco-sidecart__remove {
	position: absolute;
	top: 12px;
	right: 0;
	width: 24px;
	height: 24px;
	padding: 0;
	border: 0;
	border-radius: 50%;
	background: transparent;
	color: #999;
	font-size: 20px;
	line-height: 24px;
	cursor: pointer;
}
.tco-sidecart__remove:hover { background: #f3f3f3; color: #222; }

.tco-sidecart__footer {
	padding: 16px 20px 20px;
	border-top: 1px solid #eee;
	background: #fff;
}
.tco-sidecart__subtotal { display: flex; justify-content: space-between; margin: 0 0 4px !important; padding: 0 !important; font-size: 16px; color: #222; }
.tco-sidecart__note { margin: 0 0 14px !important; padding: 0 !important; font-size: 12px; color: #888; }
.tco-sidecart__btn {
	display: block;
	margin-top: 8px;
	padding: 13px 16px;
	border: 1px solid #222;
	border-radius: 4px;
	color: #222 !important;
	font-weight: 700;
	text-align: center;
	text-decoration: none !important;
}
.tco-sidecart__btn--primary {
	border-color: var(--tco-sidecart-color, #fbb416);
	background: var(--tco-sidecart-color, #fbb416);
	color: #1f1a17 !important;
}
.tco-sidecart__btn--primary:hover { filter: brightness(.95); }
.tco-sidecart__empty { padding: 40px 20px; text-align: center; color: #666; }
.tco-sidecart__empty .tco-sidecart__btn { display: inline-block; }

/* Bouton flottant */
.tco-sidecart-fab {
	position: fixed;
	right: 20px;
	bottom: 20px;
	z-index: 99998;
	display: flex;
	align-items: center;
	justify-content: center;
	width: 60px;
	height: 60px;
	padding: 0;
	border: 0;
	border-radius: 50%;
	background: var(--tco-sidecart-color, #fbb416);
	color: #1f1a17;
	box-shadow: 0 6px 20px rgba(0, 0, 0, .2);
	cursor: pointer;
	transition: transform .2s ease, box-shadow .2s ease;
}
.tco-sidecart-fab:hover { transform: translateY(-2px); box-shadow: 0 10px 24px rgba(0, 0, 0, .25); }
.tco-sidecart-fab:focus-visible { outline: 3px solid #1f1a17; outline-offset: 3px; }
.tco-sidecart-fab svg { display: block; }
.tco-sidecart-fab__count {
	position: absolute;
	top: -4px;
	right: -4px;
	min-width: 24px;
	height: 24px;
	padding: 0 6px;
	border: 2px solid #fff;
	border-radius: 12px;
	background: #1f1a17;
	color: #fff;
	font-size: 12px;
	font-weight: 700;
	line-height: 20px;
	text-align: center;
	box-sizing: border-box;
}
.tco-sidecart-fab__count[hidden] { display: none; }
.tco-sidecart-open .tco-sidecart-fab { visibility: hidden; }
@media (max-width: 600px) {
	.tco-sidecart-fab { right: 14px; bottom: 14px; width: 54px; height: 54px; }
}
@media (prefers-reduced-motion: reduce) {
	.tco-sidecart-fab { transition: none; }
}
