/* ============================================================
 *  Pluffie side cart (uitschuivend winkelmandje)
 *  Werkt op desktop (paneel rechts) en mobiel (90% slide-out).
 * ============================================================ */

body.pluffie-no-scroll { overflow: hidden; }

.pluffie-sidecart-overlay {
	position: fixed;
	inset: 0;
	z-index: 1200;
	background: rgba(46, 38, 32, 0.5);
	opacity: 0;
	transition: opacity 0.25s ease;
}
.pluffie-sidecart-overlay.is-visible { opacity: 1; }
.pluffie-sidecart-overlay[hidden] { display: none; }

.pluffie-sidecart {
	position: fixed;
	top: 0;
	right: 0;
	z-index: 1300;
	width: min(420px, 90vw);
	height: 100%;
	background: var(--pluffie-bg);
	display: flex;
	flex-direction: column;
	transform: translateX(100%);
	transition: transform 0.3s cubic-bezier(0.4, 0, 0.2, 1);
	box-shadow: -12px 0 40px rgba(59, 46, 36, 0.18);
}
.pluffie-sidecart.is-open { transform: translateX(0); }

.pluffie-sidecart__head {
	display: flex;
	align-items: center;
	justify-content: space-between;
	padding: var(--pluffie-space-md) var(--pluffie-space-lg);
	border-bottom: 1px solid var(--pluffie-border-soft);
	flex-shrink: 0;
}
.pluffie-sidecart__title {
	font-family: var(--pluffie-font-display);
	font-weight: var(--pluffie-fw-extra);
	font-size: var(--pluffie-fs-md);
	color: var(--pluffie-fg);
}
.pluffie-sidecart__close {
	background: none;
	border: 0;
	font-size: 1.9rem;
	line-height: 1;
	color: var(--pluffie-fg-muted);
	cursor: pointer;
}

.pluffie-sidecart__inner {
	flex: 1 1 auto;
	overflow-y: auto;
	padding: var(--pluffie-space-lg);
	display: flex;
	flex-direction: column;
}

.pluffie-sidecart__empty { text-align: center; margin: auto 0; color: var(--pluffie-fg-muted); }
.pluffie-sidecart__empty .pluffie-btn { margin-top: var(--pluffie-space-md); }

/* Gratis-verzending balk */
.pluffie-sidecart__ship { margin-bottom: var(--pluffie-space-md); }
.pluffie-sidecart__ship-msg {
	display: flex;
	align-items: center;
	gap: 8px;
	font-size: var(--pluffie-fs-2xs);
	color: var(--pluffie-fg);
	margin: 0 0 8px;
}
.pluffie-sidecart__truck { color: var(--pluffie-accent); flex-shrink: 0; }
.pluffie-sidecart__ship-bar { display: block; height: 8px; background: var(--pluffie-bg-warm); border-radius: 9999px; overflow: hidden; }
.pluffie-sidecart__ship-bar > span { display: block; height: 100%; background: var(--pluffie-accent); border-radius: 9999px; transition: width 0.3s ease; }

/* Items */
.pluffie-sidecart__items { list-style: none; margin: 0 0 var(--pluffie-space-md); padding: 0; display: flex; flex-direction: column; gap: var(--pluffie-space-sm); }
.pluffie-sidecart__item { display: grid; grid-template-columns: 56px 1fr auto; gap: var(--pluffie-space-2xs); align-items: center; }
.pluffie-sidecart__item-media img { width: 56px; height: 56px; object-fit: cover; border-radius: var(--pluffie-radius-md); display: block; }
.pluffie-thumb-emoji { display: flex; align-items: center; justify-content: center; width: 100%; aspect-ratio: 1 / 1; background: var(--pluffie-bg-warm); border-radius: var(--pluffie-radius-md); font-size: 1.5rem; line-height: 1; }
.pluffie-sidecart__item-naam { display: block; font-family: var(--pluffie-font-display); font-weight: var(--pluffie-fw-bold); font-size: var(--pluffie-fs-2xs); color: var(--pluffie-fg); }
.pluffie-sidecart__qty { display: inline-flex; align-items: center; gap: 8px; margin-top: 4px; }
.pluffie-sidecart__qty-btn { width: 26px; height: 26px; min-width: 0; padding: 0; flex: 0 0 auto; display: inline-flex; align-items: center; justify-content: center; border: 1px solid var(--pluffie-border); background: var(--pluffie-bg-card); border-radius: 50%; cursor: pointer; line-height: 1; color: var(--pluffie-fg); font-family: var(--pluffie-font-display); font-size: 1rem; }
.pluffie-sidecart__qty-num { min-width: 18px; text-align: center; font-weight: var(--pluffie-fw-bold); }
.pluffie-sidecart__item-right { display: flex; flex-direction: column; align-items: flex-end; gap: 4px; }
.pluffie-sidecart__item-price { font-family: var(--pluffie-font-display); font-weight: var(--pluffie-fw-bold); color: var(--pluffie-accent-dark); white-space: nowrap; }
.pluffie-sidecart__remove { background: none; border: 0; color: var(--pluffie-fg-muted); font-size: 1.2rem; line-height: 1; cursor: pointer; }

/* Cross-sells */
.pluffie-sidecart__cross { border-top: 1px solid var(--pluffie-border-soft); padding-top: var(--pluffie-space-sm); margin-bottom: var(--pluffie-space-md); }
.pluffie-sidecart__cross-title { display: block; font-family: var(--pluffie-font-display); font-weight: var(--pluffie-fw-bold); font-size: var(--pluffie-fs-2xs); color: var(--pluffie-fg); margin-bottom: var(--pluffie-space-2xs); }
.pluffie-sidecart__cross-list { list-style: none; margin: 0; padding: 0; display: flex; flex-direction: column; gap: var(--pluffie-space-2xs); }
.pluffie-sidecart__cross-item { display: grid; grid-template-columns: 40px 1fr auto auto; gap: 8px; align-items: center; }
.pluffie-sidecart__cross-media img { width: 40px; height: 40px; object-fit: cover; border-radius: var(--pluffie-radius-sm); display: block; }
.pluffie-sidecart__cross-naam { font-size: var(--pluffie-fs-3xs); color: var(--pluffie-fg); }
.pluffie-sidecart__cross-price { font-size: var(--pluffie-fs-3xs); color: var(--pluffie-fg-muted); white-space: nowrap; }
.pluffie-sidecart__cross-add { width: 28px; height: 28px; min-width: 0; padding: 0; flex: 0 0 auto; display: inline-flex; align-items: center; justify-content: center; border-radius: 50%; border: 0; background: var(--pluffie-accent); color: #fff; cursor: pointer; line-height: 1; font-size: 1.1rem; }
.pluffie-sidecart__cross-add:hover { background: var(--pluffie-accent-dark); }

/* Totalen + CTAs */
.pluffie-sidecart__totals { margin-top: auto; border-top: 1px solid var(--pluffie-border-soft); padding-top: var(--pluffie-space-sm); }
.pluffie-sidecart__row { display: flex; justify-content: space-between; font-size: var(--pluffie-fs-2xs); color: var(--pluffie-fg-muted); padding: 3px 0; }
.pluffie-sidecart__row--korting { color: var(--pluffie-accent-dark); font-weight: var(--pluffie-fw-semibold); }
.pluffie-sidecart__row--total { font-family: var(--pluffie-font-display); font-weight: var(--pluffie-fw-bold); font-size: var(--pluffie-fs-sm); color: var(--pluffie-fg); border-top: 1px dashed var(--pluffie-border-soft); margin-top: 4px; padding-top: 8px; }
.pluffie-sidecart__checkout { width: 100%; text-align: center; margin-top: var(--pluffie-space-sm); }
.pluffie-sidecart__continue { width: 100%; background: none; border: 0; color: var(--pluffie-fg-muted); text-decoration: underline; cursor: pointer; padding: var(--pluffie-space-sm) 0 0; font-family: var(--pluffie-font-body); font-size: var(--pluffie-fs-2xs); }
