/* ESSEC Bundels: block on the device page and the bundle page. Colours follow the theme (Bootstrap variables). */
.essec-bundle-block,
.essec-bundle-page {
	margin: 1.25rem 0;
	padding: 1rem 1.1rem 1.1rem;
	border: 1px solid var(--bs-primary-border-subtle, #a9bcda);
	border-radius: 12px;
	background: #fff;
}
.essec-bundle-block__head {
	display: flex;
	align-items: center;
	gap: .5rem;
	margin-bottom: .6rem;
}
.essec-bundle-block__badge {
	padding: .1rem .55rem;
	border-radius: 999px;
	background: var(--bs-primary, #2958A3);
	color: #fff;
	font-size: .75rem;
	font-weight: 600;
	text-transform: uppercase;
	letter-spacing: .03em;
}
.essec-bundle-block__title {
	font-weight: 600;
	color: inherit;
	text-decoration: none;
}
.essec-bundle-block__title:hover { text-decoration: underline; }
.essec-bundle-items {
	list-style: none;
	margin: 0 0 .75rem;
	padding: 0;
}
.essec-bundle-item {
	display: flex;
	align-items: center;
	gap: .6rem;
	padding: .3rem 0;
}
.essec-bundle-item__img img {
	width: 44px;
	height: 44px;
	object-fit: contain;
	border-radius: 6px;
	background: #f6f7f9;
}
.essec-bundle-item__name { flex: 1; font-size: .92rem; line-height: 1.3; }
.essec-bundle-item__incl {
	font-size: .78rem;
	color: #1f7a3d;
	font-weight: 600;
	white-space: nowrap;
}
.essec-bundle-price { margin: .25rem 0 .35rem; display: flex; flex-wrap: wrap; align-items: baseline; gap: .5rem; }
.essec-bundle-price del { color: #6b7280; }
.essec-bundle-price strong { font-size: 1.3rem; }
.essec-bundle-save { font-size: .85rem; color: #1f7a3d; font-weight: 600; }
.essec-bundle-stock { margin: 0 0 .75rem; font-size: .88rem; color: #1f7a3d; }
.essec-bundle-stock.available-on-backorder { color: #6b7280; }
.essec-bundle-form { display: flex; flex-wrap: wrap; align-items: center; gap: .75rem; }
.essec-bundle-block .essec-bundle-form { margin: 0; }
.essec-bundle-more { font-size: .9rem; }
.essec-bundle-page { display: block; }
.essec-bundle-devices { border: 0; margin: 0 0 .75rem; padding: 0; }
.essec-bundle-devices legend,
.essec-bundle-incl-title { font-weight: 600; font-size: .95rem; margin-bottom: .4rem; }
.essec-bundle-device {
	display: flex;
	align-items: center;
	gap: .6rem;
	padding: .45rem .6rem;
	margin-bottom: .4rem;
	border: 1px solid #e5e7eb;
	border-radius: 8px;
	cursor: pointer;
}
.essec-bundle-device:has(input:checked) { border-color: var(--bs-primary, #2958A3); background: var(--bs-primary-bg-subtle, #d4deed); }
.essec-bundle-device__text { display: flex; flex-direction: column; }
.essec-bundle-device .essec-bundle-stock { margin: 0; font-size: .8rem; }
.essec-bundle-page__buy { display: flex; align-items: center; gap: .75rem; margin-top: .5rem; }
.essec-bundle-card { display: block; margin: 0 0 6px; font-size: 13px; color: #374151; }
.essec-bundle-page__buy .quantity { flex: 0 0 auto; }
.essec-bundle-page__buy .quantity input.qty { width: 5rem; }
.essec-bundle-device__price { font-size: .85rem; font-weight: 600; }
.essec-bundle-from { font-size: .8em; font-weight: 400; }
/* Storage/colour buttons, same look as the variant buttons on the device page (snippet "Product variaties keuzemenu"). */
.essec-bundle-dims { display: flex; flex-direction: column; gap: 14px; margin-bottom: 1rem; }
.essec-bundle-dim__label { font-size: 14px; color: #374151; margin-bottom: 8px; }
.essec-bundle-dim__current { font-weight: 700; color: #111; }
.essec-bundle-dim__options { display: flex; flex-wrap: wrap; gap: 8px; }
.essec-bundle-dim__btn {
	display: inline-flex; align-items: center; justify-content: center;
	min-width: 64px; padding: 10px 14px; border: 1.5px solid #d1d5db; border-radius: 10px;
	background: #fff; color: #111; font-size: 14px; font-weight: 600; cursor: pointer;
	transition: border-color .12s ease, box-shadow .12s ease;
}
.essec-bundle-dim__btn:hover { border-color: #1d4ed8; }
.essec-bundle-dim__btn.is-active { border-color: #1d4ed8; box-shadow: 0 0 0 1px #1d4ed8 inset; }
.essec-bundle-dim__btn.is-other { opacity: .55; }
.essec-bundle-legend-dims { display: none; }
.has-dims .essec-bundle-legend-list { display: none; }
.has-dims .essec-bundle-legend-dims { display: inline; }
.has-dims .essec-bundle-device { display: none; cursor: default; }
.has-dims .essec-bundle-device:has(input:checked) { display: flex; }
.has-dims .essec-bundle-device input[type="radio"] { display: none; }
/* The theme gives buttons in the summary a left margin; not for these. */
.essec-bundle-page .essec-bundle-dim__options .essec-bundle-dim__btn { margin: 0 !important; }
.essec-bundle-return { margin: .6rem 0 0; font-size: .78rem; color: #6b7280; line-height: 1.35; }
