/* Winkelwagen Upsells: aanbiedingen boven de winkelwagen, als rij kaartjes die schuift.
 * Kleuren en vormen zijn per shop te overschrijven met de variabelen hieronder, in
 * winkelwagen-upsells-shop.css (komt uit shops/<shop>/ in de repository). */

.dq-upsells {
	--dq-upsell-achtergrond: #f7f7f7;
	--dq-upsell-rand: none;
	--dq-upsell-radius: 14px;
	--dq-upsell-kop-font: inherit;
	--dq-upsell-kop-kleur: inherit;
	--dq-upsell-kaart: #fff;
	--dq-upsell-kaart-rand: none;
	--dq-upsell-kaart-radius: 12px;
	--dq-upsell-foto-achtergrond: transparent;
	--dq-upsell-foto-radius: 6px;
	--dq-upsell-tekst: inherit;
	--dq-upsell-zacht: #6b6b6b;
	--dq-upsell-prijs: inherit;
	--dq-upsell-knop: #7cd320;
	--dq-upsell-knop-tekst: #fff;
	--dq-upsell-knop-hover: #000;
	--dq-upsell-knop-hover-tekst: #fff;
	--dq-upsell-knop-radius: 10px;
	--dq-upsell-knop-font: inherit;
	--dq-upsell-korting: #f36522;
	--dq-upsell-korting-tekst: #fff;
	--dq-upsell-pijl: #fff;
	--dq-upsell-pijl-kleur: #111;
	--dq-upsell-pijl-rand: #d0d0d0;
	--dq-upsell-stip: #cfcfcf;
	--dq-upsell-stip-actief: #111;
	--dq-upsell-gap: 12px;
	--dq-upsell-per-rij: 4;

	background: var(--dq-upsell-achtergrond);
	border: var(--dq-upsell-rand);
	border-radius: var(--dq-upsell-radius);
	color: var(--dq-upsell-tekst);
	padding: 16px;
	margin: 0 0 24px;
	box-sizing: border-box;
	max-width: 100%;
}

.dq-upsells *,
.dq-upsells *::before,
.dq-upsells *::after {
	box-sizing: border-box;
}

.dq-upsells-kop {
	display: flex;
	align-items: center;
	justify-content: space-between;
	gap: 8px;
	margin: 0 0 12px;
}

.dq-upsells .dq-upsells-titel {
	margin: 0;
	padding: 0;
	font-family: var(--dq-upsell-kop-font);
	color: var(--dq-upsell-kop-kleur);
	font-size: 16px;
	line-height: 1.3;
	font-weight: 800;
}

.dq-upsells-pijlen {
	display: none;
	gap: 6px;
}

.dq-upsells--scrollbaar .dq-upsells-pijlen {
	display: flex;
}

.dq-upsells .dq-upsells-pijl {
	width: 32px;
	height: 32px;
	min-height: 0;
	padding: 0;
	margin: 0;
	border: 1px solid var(--dq-upsell-pijl-rand);
	border-radius: 50%;
	background: var(--dq-upsell-pijl);
	color: var(--dq-upsell-pijl-kleur);
	font-size: 20px;
	line-height: 1;
	cursor: pointer;
	display: inline-flex;
	align-items: center;
	justify-content: center;
}

.dq-upsells .dq-upsells-pijl:hover:not(:disabled) {
	border-color: var(--dq-upsell-pijl-kleur);
}

.dq-upsells .dq-upsells-pijl:disabled {
	opacity: .35;
	cursor: default;
}

.dq-upsells-slider {
	display: flex;
	gap: var(--dq-upsell-gap);
	overflow-x: auto;
	scroll-snap-type: x mandatory;
	scroll-behavior: smooth;
	-webkit-overflow-scrolling: touch;
	scrollbar-width: none;
	overscroll-behavior-x: contain;
}

.dq-upsells-slider::-webkit-scrollbar {
	display: none;
}

.dq-upsell {
	position: relative;
	flex: 0 0 calc((100% - (var(--dq-upsell-per-rij) - 1) * var(--dq-upsell-gap)) / var(--dq-upsell-per-rij));
	min-width: 0;
	scroll-snap-align: start;
	display: flex;
	flex-direction: column;
	background: var(--dq-upsell-kaart);
	border: var(--dq-upsell-kaart-rand);
	border-radius: var(--dq-upsell-kaart-radius);
	padding: 12px;
}

.dq-upsell-korting {
	position: absolute;
	top: 10px;
	left: 10px;
	z-index: 1;
	background: var(--dq-upsell-korting);
	color: var(--dq-upsell-korting-tekst);
	font-size: 12px;
	font-weight: 700;
	line-height: 1;
	border-radius: 6px;
	padding: 4px 7px;
}

.dq-upsell-foto {
	height: 130px;
	margin: 0 0 10px;
	display: flex;
	align-items: center;
	justify-content: center;
	background: var(--dq-upsell-foto-achtergrond);
	border-radius: var(--dq-upsell-foto-radius);
}

.dq-upsells .dq-upsell-foto img {
	width: 100%;
	height: 100%;
	max-height: 130px;
	object-fit: contain;
	margin: 0;
	border-radius: var(--dq-upsell-foto-radius);
}

.dq-upsell-titel {
	font-size: 14px;
	font-weight: 700;
	line-height: 1.3;
	margin: 0 0 4px;
}

.dq-upsell-titel p,
.dq-upsell-tekst p {
	margin: 0;
}

.dq-upsell-tekst {
	font-size: 13px;
	line-height: 1.4;
	color: var(--dq-upsell-zacht);
	margin: 0 0 8px;
}

/* Maximaal 2 regels, zodat één lange tekst niet alle kaartjes oprekt. */
.dq-upsell-titel,
.dq-upsell-tekst {
	display: -webkit-box;
	-webkit-line-clamp: 2;
	-webkit-box-orient: vertical;
	overflow: hidden;
}

.dq-upsell-prijs {
	margin: auto 0 10px;
	padding-top: 4px;
	font-size: 16px;
	line-height: 1.3;
}

.dq-upsell-prijs del,
.dq-upsells .dq-upsell-prijs del .amount {
	color: var(--dq-upsell-zacht);
	font-size: 13px;
	margin-right: 4px;
}

.dq-upsell-prijs strong {
	color: var(--dq-upsell-prijs);
	font-weight: 800;
}

.dq-upsells a.button.dq-upsell-knop {
	display: flex;
	align-items: center;
	justify-content: center;
	width: 100%;
	margin: 0;
	padding: 10px 12px;
	background: var(--dq-upsell-knop);
	border: 0;
	border-radius: var(--dq-upsell-knop-radius);
	color: var(--dq-upsell-knop-tekst);
	font-family: var(--dq-upsell-knop-font);
	font-size: 14px;
	font-weight: 700;
	line-height: 1.2;
	text-align: center;
	text-decoration: none;
	white-space: nowrap;
	transition: background-color .2s;
}

.dq-upsells a.button.dq-upsell-knop:hover,
.dq-upsells a.button.dq-upsell-knop:focus {
	background: var(--dq-upsell-knop-hover);
	color: var(--dq-upsell-knop-hover-tekst);
}

.dq-upsells-stippen {
	display: flex;
	justify-content: center;
	gap: 6px;
}

.dq-upsells-stippen:not(:empty) {
	margin-top: 10px;
}

.dq-upsells .dq-upsells-stip {
	width: 8px;
	height: 8px;
	min-height: 0;
	padding: 0;
	margin: 0;
	border: 0;
	border-radius: 4px;
	background: var(--dq-upsell-stip);
	cursor: pointer;
	transition: width .2s, background-color .2s;
}

.dq-upsells .dq-upsells-stip.actief {
	width: 20px;
	background: var(--dq-upsell-stip-actief);
}

@media (max-width: 1024px) {
	.dq-upsells {
		--dq-upsell-per-rij: 3;
	}
}

@media (max-width: 767px) {
	.dq-upsells {
		padding: 12px;
		--dq-upsell-gap: 10px;
	}

	/* Het volgende kaartje steekt half in beeld, zodat duidelijk is dat je kunt vegen. */
	.dq-upsell {
		flex-basis: 72%;
	}

	.dq-upsells[data-aantal="1"] .dq-upsell {
		flex-basis: 100%;
	}

	/* Op mobiel veeg je; de pijltjes nemen alleen ruimte in. */
	.dq-upsells--scrollbaar .dq-upsells-pijlen {
		display: none;
	}

	.dq-upsell {
		padding: 10px;
	}

	.dq-upsell-foto {
		height: 90px;
		margin-bottom: 8px;
	}

	.dq-upsells .dq-upsell-foto img {
		max-height: 90px;
	}
}
