/* Bundle Management - "Build your bundle" block (product page).
   Colours come from the CSS variables printed on :is(#bm-builder,.bmb-block).bmb (dark or light theme, set in the plugin). */
:is(#bm-builder,.bmb-block).bmb {
	--bmb-accent: #d71920; --bmb-accent-text: #fff; --bmb-heading: #111; --bmb-sub: #666;
	--bmb-card-bg: #fff; --bmb-card-border: #ddd; --bmb-card-text: #222;
	--bmb-badge-bg: #fff0f2; --bmb-badge-text: #d71920; --bmb-save-bg: #e8f6ee; --bmb-save-text: #0a7a3d; --bmb-piece-text: #333;
	display: block; clear: both; float: none; width: 100%; max-width: 100%; min-width: 0;
	margin: 12px 0 16px; box-sizing: border-box; overflow: hidden; contain: inline-size;
	color: var(--bmb-heading) !important;
}
:is(#bm-builder,.bmb-block).bmb *, :is(#bm-builder,.bmb-block).bmb *::before, :is(#bm-builder,.bmb-block).bmb *::after { box-sizing: border-box; }
:is(#bm-builder,.bmb-block).bmb span, :is(#bm-builder,.bmb-block).bmb strong, :is(#bm-builder,.bmb-block).bmb b, :is(#bm-builder,.bmb-block).bmb button, :is(#bm-builder,.bmb-block).bmb a, :is(#bm-builder,.bmb-block).bmb div { -webkit-text-fill-color: currentColor; text-shadow: none; opacity: 1; }
:is(#bm-builder,.bmb-block).bmb .bmb-cards button, :is(#bm-builder,.bmb-block).bmb .bmb-slider button { text-shadow: none; }
:is(#bm-builder,.bmb-block).bmb [hidden] { display: none !important; }

/* 1) free shipping line (first) */
:is(#bm-builder,.bmb-block).bmb .bmb-ship { display: flex; align-items: center; gap: 8px; margin: 0 0 12px; font-size: 14px; font-weight: 700; line-height: 1.3; color: var(--bmb-heading) !important; }
:is(#bm-builder,.bmb-block).bmb .bmb-ship .bmb-flag, :is(#bm-builder,.bmb-block).bmb > .bmb-moved .bmb-flag { flex: 0 0 auto; border-radius: 2px; }
:is(#bm-builder,.bmb-block).bmb > .bmb-moved { margin: 0 0 12px !important; }

/* 2) heading */
:is(#bm-builder,.bmb-block).bmb .bmb-heading { display: flex; align-items: center; gap: 7px; flex-wrap: wrap; margin: 0 0 3px; font-size: 18px; font-weight: 800; line-height: 1.25; color: var(--bmb-heading) !important; }
:is(#bm-builder,.bmb-block).bmb .bmb-heading > span:not(.bmb-gift) { color: var(--bmb-heading) !important; }
:is(#bm-builder,.bmb-block).bmb .bmb-heading strong { color: var(--bmb-badge-text) !important; }
:is(#bm-builder,.bmb-block).bmb .bmb-gift { width: 26px; height: 26px; display: inline-flex; align-items: center; justify-content: center; border-radius: 50%; background: var(--bmb-badge-bg) !important; color: var(--bmb-badge-text) !important; font-size: 16px; font-weight: 700; flex: 0 0 auto; }
:is(#bm-builder,.bmb-block).bmb .bmb-sub { margin: 2px 0 10px; font-size: 12px; color: var(--bmb-sub) !important; line-height: 1.35; }

/* ---- scrolling rows ---- */
:is(#bm-builder,.bmb-block).bmb .bmb-scroll { position: relative; width: 100%; max-width: 100%; min-width: 0; }
:is(#bm-builder,.bmb-block).bmb .bmb-cards, :is(#bm-builder,.bmb-block).bmb .bmb-slider { display: flex; flex-wrap: nowrap; gap: 8px; width: 100%; max-width: 100%; min-width: 0; overflow-x: auto; overflow-y: hidden; padding: 2px 1px 6px; scroll-behavior: smooth; scroll-snap-type: x proximity; scrollbar-width: none; -webkit-overflow-scrolling: touch; overscroll-behavior-x: contain; }
:is(#bm-builder,.bmb-block).bmb .bmb-cards::-webkit-scrollbar, :is(#bm-builder,.bmb-block).bmb .bmb-slider::-webkit-scrollbar { display: none; }
:is(#bm-builder,.bmb-block).bmb .bmb-arrow { display: none; position: absolute; top: 50%; transform: translateY(-60%); z-index: 3; width: 28px; height: 28px; min-height: 0; padding: 0; margin: 0; border: 1px solid var(--bmb-card-border); border-radius: 50%; background: var(--bmb-card-bg) !important; color: var(--bmb-card-text) !important; font-size: 19px; line-height: 1; box-shadow: 0 2px 8px rgba(0, 0, 0, .35); cursor: pointer; align-items: center; justify-content: center; }
:is(#bm-builder,.bmb-block).bmb .bmb-left { left: 2px; }
:is(#bm-builder,.bmb-block).bmb .bmb-right { right: 2px; }
@media (hover: hover) and (pointer: fine) {
	:is(#bm-builder,.bmb-block).bmb .bmb-scroll.can-left > .bmb-left,
	:is(#bm-builder,.bmb-block).bmb .bmb-scroll.can-right > .bmb-right { display: inline-flex; }
}

/* 3) cards (small) */
:is(#bm-builder,.bmb-block).bmb button.bmb-card { position: relative; flex: 0 0 112px; width: 112px; min-width: 112px; margin: 0; padding: 8px 5px 9px; display: flex; flex-direction: column; align-items: center; scroll-snap-align: start; background: var(--bmb-card-bg) !important; color: var(--bmb-card-text) !important; border: 1px solid var(--bmb-card-border); border-radius: 9px; box-shadow: none; text-align: center; text-transform: none; letter-spacing: 0; font-family: inherit; font-weight: inherit; line-height: normal; min-height: 0; cursor: pointer; transition: border-color .15s, box-shadow .15s; }
:is(#bm-builder,.bmb-block).bmb button.bmb-card:hover { border-color: var(--bmb-accent); }
:is(#bm-builder,.bmb-block).bmb button.bmb-card.is-active { border: 2px solid var(--bmb-accent); padding: 7px 4px 8px; background: var(--bmb-card-bg) !important; background: color-mix(in srgb, var(--bmb-accent) 8%, var(--bmb-card-bg)) !important; box-shadow: 0 0 0 1px var(--bmb-accent); }
:is(#bm-builder,.bmb-block).bmb .bmb-badge { display: inline-flex; align-items: center; justify-content: center; gap: 3px; max-width: 100%; padding: 4px 6px; min-height: 18px; border-radius: 20px; background: var(--bmb-badge-bg) !important; color: var(--bmb-badge-text) !important; font-size: 8px; font-weight: 800; line-height: 1; white-space: nowrap; }
:is(#bm-builder,.bmb-block).bmb .is-active .bmb-badge { background: var(--bmb-accent) !important; color: var(--bmb-accent-text) !important; }
:is(#bm-builder,.bmb-block).bmb .bmb-buy { display: block; margin-top: 7px; font-size: 11px; font-weight: 800; color: var(--bmb-card-text) !important; line-height: 1.1; white-space: nowrap; }
:is(#bm-builder,.bmb-block).bmb .bmb-buy b { color: var(--bmb-badge-text) !important; font-size: 17px; font-weight: 900; }
:is(#bm-builder,.bmb-block).bmb .bmb-price { display: block; width: 100%; margin-top: 7px; padding: 6px 2px; border-radius: 6px; background: var(--bmb-accent) !important; color: var(--bmb-accent-text) !important; font-size: 12px; font-weight: 800; line-height: 1.1; white-space: nowrap; }
:is(#bm-builder,.bmb-block).bmb .bmb-save { display: block; width: 100%; margin-top: 6px; padding: 4px 2px; border-radius: 5px; background: var(--bmb-save-bg) !important; color: var(--bmb-save-text) !important; font-size: 9px; font-weight: 800; line-height: 1.2; white-space: nowrap; }

/* 4) picker + buttons: only while a card is selected */
:is(#bm-builder,.bmb-block).bmb .bmb-select { margin-top: 8px; padding-top: 10px; border-top: 1px dashed var(--bmb-card-border); animation: bmb-in .18s ease-out; }
@keyframes bmb-in { from { opacity: 0; transform: translateY(-4px); } to { opacity: 1; transform: none; } }
:is(#bm-builder,.bmb-block).bmb .bmb-select-title { margin: 0 0 8px; font-size: 14px; font-weight: 800; color: var(--bmb-heading) !important; text-align: center; }
:is(#bm-builder,.bmb-block).bmb button.bmb-piece { flex: 0 0 82px; width: 82px; margin: 0; padding: 0; background: none !important; border: 0; box-shadow: none; text-transform: none; letter-spacing: 0; line-height: normal; min-height: 0; text-align: center; cursor: pointer; scroll-snap-align: start; font-family: inherit; color: var(--bmb-piece-text) !important; }
:is(#bm-builder,.bmb-block).bmb .bmb-img { position: relative; display: block; width: 82px; height: 82px; border-radius: 9px; overflow: hidden; border: 2px solid var(--bmb-card-border); background: var(--bmb-card-bg) !important; transition: border-color .15s, box-shadow .15s; }
:is(#bm-builder,.bmb-block).bmb .bmb-img img { display: block; width: 100%; height: 100%; object-fit: cover; margin: 0; }
:is(#bm-builder,.bmb-block).bmb .bmb-piece.is-selected .bmb-img { border-color: var(--bmb-accent); box-shadow: 0 0 0 1px var(--bmb-accent); }
:is(#bm-builder,.bmb-block).bmb .bmb-check { position: absolute; top: 4px; right: 4px; width: 20px; height: 20px; border-radius: 50%; background: var(--bmb-accent) !important; color: var(--bmb-accent-text) !important; font-size: 12px; font-weight: 700; display: none; align-items: center; justify-content: center; }
:is(#bm-builder,.bmb-block).bmb .bmb-piece.is-selected .bmb-check { display: flex; }
:is(#bm-builder,.bmb-block).bmb .bmb-code { display: block; margin-top: 4px; font-size: 11px; font-weight: 800; color: var(--bmb-piece-text) !important; }
:is(#bm-builder,.bmb-block).bmb .bmb-progress { margin: 4px 0 10px; text-align: center; font-size: 13px; font-weight: 800; color: var(--bmb-heading) !important; }
:is(#bm-builder,.bmb-block).bmb button.bmb-add, :is(#bm-builder,.bmb-block).bmb a.bmb-wa { display: flex; align-items: center; justify-content: center; gap: 8px; width: 100%; margin: 0 0 8px; padding: 13px 10px; border-radius: 8px; font-size: 14px; font-weight: 800; letter-spacing: .3px; text-transform: uppercase; line-height: 1.2; min-height: 0; cursor: pointer; font-family: inherit; text-decoration: none; box-shadow: none; }
:is(#bm-builder,.bmb-block).bmb button.bmb-add { background: var(--bmb-accent) !important; color: var(--bmb-accent-text) !important; border: 1px solid var(--bmb-accent); }
:is(#bm-builder,.bmb-block).bmb a.bmb-wa { background: #0e7f3f !important; color: #fff !important; border: 1px solid #0e7f3f; }
:is(#bm-builder,.bmb-block).bmb a.bmb-wa:hover { background: #0b6a35 !important; color: #fff !important; }
:is(#bm-builder,.bmb-block).bmb button.bmb-add:disabled, :is(#bm-builder,.bmb-block).bmb a.bmb-wa[aria-disabled="true"] { opacity: .45; cursor: not-allowed; pointer-events: none; }

/* phones */
@media (max-width: 480px) {
	:is(#bm-builder,.bmb-block).bmb { margin: 10px 0 14px; }
	:is(#bm-builder,.bmb-block).bmb .bmb-heading { font-size: 16px; }
	:is(#bm-builder,.bmb-block).bmb .bmb-ship { font-size: 13px; }
	:is(#bm-builder,.bmb-block).bmb button.bmb-card { flex-basis: 104px; width: 104px; min-width: 104px; }
	:is(#bm-builder,.bmb-block).bmb button.bmb-piece { flex-basis: 76px; width: 76px; }
	:is(#bm-builder,.bmb-block).bmb .bmb-img { width: 76px; height: 76px; }
	:is(#bm-builder,.bmb-block).bmb button.bmb-add, :is(#bm-builder,.bmb-block).bmb a.bmb-wa { padding: 14px 8px; }
}
@media (prefers-reduced-motion: reduce) {
	:is(#bm-builder,.bmb-block).bmb .bmb-cards, :is(#bm-builder,.bmb-block).bmb .bmb-slider { scroll-behavior: auto; }
	:is(#bm-builder,.bmb-block).bmb .bmb-select { animation: none; }
	:is(#bm-builder,.bmb-block).bmb button.bmb-card { transition: none; }
}

/* ---- Zagam Style: fixed look on a white panel, whatever the site theme is ---- */
:is(#bm-builder,.bmb-block).bmb.bmb-zagam { background: #fff !important; color: #111 !important; border: 1px solid #ececec; border-radius: 12px; padding: 14px 12px 8px; box-shadow: 0 2px 10px rgba(0, 0, 0, .12); }
:is(#bm-builder,.bmb-block).bmb.bmb-zagam .bmb-ship, :is(#bm-builder,.bmb-block).bmb.bmb-zagam > .bmb-moved, :is(#bm-builder,.bmb-block).bmb.bmb-zagam > .bmb-moved * { color: #111 !important; }
:is(#bm-builder,.bmb-block).bmb.bmb-zagam .bmb-heading, :is(#bm-builder,.bmb-block).bmb.bmb-zagam .bmb-heading > span:not(.bmb-gift) { color: #111 !important; }
:is(#bm-builder,.bmb-block).bmb.bmb-zagam .bmb-heading strong { color: #d71920 !important; }
:is(#bm-builder,.bmb-block).bmb.bmb-zagam .bmb-gift { background: #fff0f2 !important; color: #e31e24 !important; }
:is(#bm-builder,.bmb-block).bmb.bmb-zagam .bmb-sub { color: #666 !important; }
:is(#bm-builder,.bmb-block).bmb.bmb-zagam button.bmb-card { background: #fff !important; border: 1px solid #e2e2e2; box-shadow: 0 2px 8px rgba(0, 0, 0, .04); }
:is(#bm-builder,.bmb-block).bmb.bmb-zagam button.bmb-card.is-active { background: #fffafa !important; border: 2px solid #e31e24; box-shadow: 0 4px 15px rgba(227, 30, 36, .15); }
:is(#bm-builder,.bmb-block).bmb.bmb-zagam .bmb-buy { color: #222 !important; }
:is(#bm-builder,.bmb-block).bmb.bmb-zagam .bmb-select { border-top-color: #e4e4e4; }
:is(#bm-builder,.bmb-block).bmb.bmb-zagam .bmb-select-title, :is(#bm-builder,.bmb-block).bmb.bmb-zagam .bmb-progress { color: #111 !important; }
:is(#bm-builder,.bmb-block).bmb.bmb-zagam .bmb-code { color: #333 !important; }
:is(#bm-builder,.bmb-block).bmb.bmb-zagam .bmb-img { background: #fff !important; border-color: #e2e2e2; }
:is(#bm-builder,.bmb-block).bmb.bmb-zagam .bmb-arrow { background: #fff !important; color: #222 !important; border-color: #ddd; }

/* Make sure no theme rule (span / button / a colour with !important) can hide the text */
:is(#bm-builder,.bmb-block).bmb .bmb-card, :is(#bm-builder,.bmb-block).bmb .bmb-card * { text-shadow: none !important; -webkit-text-fill-color: currentColor !important; opacity: 1; }
:is(#bm-builder,.bmb-block).bmb .bmb-heading, :is(#bm-builder,.bmb-block).bmb .bmb-heading *, :is(#bm-builder,.bmb-block).bmb .bmb-select-title, :is(#bm-builder,.bmb-block).bmb .bmb-progress, :is(#bm-builder,.bmb-block).bmb .bmb-code { -webkit-text-fill-color: currentColor !important; text-shadow: none !important; }
:is(#bm-builder,.bmb-block).bmb .bmb-badge, :is(#bm-builder,.bmb-block).bmb .bmb-badge * { color: var(--bmb-badge-text) !important; }
:is(#bm-builder,.bmb-block).bmb .bmb-card.is-active .bmb-badge, :is(#bm-builder,.bmb-block).bmb .bmb-card.is-active .bmb-badge * { color: var(--bmb-accent-text) !important; }
:is(#bm-builder,.bmb-block).bmb .bmb-buy { color: var(--bmb-card-text) !important; }
:is(#bm-builder,.bmb-block).bmb .bmb-buy b { color: var(--bmb-badge-text) !important; }
:is(#bm-builder,.bmb-block).bmb .bmb-price, :is(#bm-builder,.bmb-block).bmb .bmb-price * { color: var(--bmb-accent-text) !important; }
:is(#bm-builder,.bmb-block).bmb .bmb-save, :is(#bm-builder,.bmb-block).bmb .bmb-save * { color: var(--bmb-save-text) !important; }
:is(#bm-builder,.bmb-block).bmb .bmb-heading > span:not(.bmb-gift) { color: var(--bmb-heading) !important; }
:is(#bm-builder,.bmb-block).bmb .bmb-heading > strong { color: var(--bmb-badge-text) !important; }
:is(#bm-builder,.bmb-block).bmb .bmb-heading > .bmb-gift { color: var(--bmb-badge-text) !important; }
:is(#bm-builder,.bmb-block).bmb .bmb-sub { color: var(--bmb-sub) !important; }
:is(#bm-builder,.bmb-block).bmb .bmb-ship, :is(#bm-builder,.bmb-block).bmb .bmb-ship * { color: var(--bmb-heading) !important; }
:is(#bm-builder,.bmb-block).bmb button.bmb-add, :is(#bm-builder,.bmb-block).bmb button.bmb-add * { color: var(--bmb-accent-text) !important; }
:is(#bm-builder,.bmb-block).bmb a.bmb-wa, :is(#bm-builder,.bmb-block).bmb a.bmb-wa * { color: #fff !important; }

:is(#bm-builder,.bmb-block).bmb, :is(#bm-builder,.bmb-block).bmb * { text-shadow: none !important; -webkit-text-fill-color: currentColor; }
:is(#bm-builder,.bmb-block).bmb button, :is(#bm-builder,.bmb-block).bmb a { opacity: 1; }
:is(#bm-builder,.bmb-block).bmb button:disabled, :is(#bm-builder,.bmb-block).bmb a[aria-disabled="true"] { opacity: .45; }

/* ---- side cart blocks ---- */
:is(#bm-builder,.bmb-block).bmb.bmb-mini { margin: 10px 0 12px; padding: 10px 8px 4px; border-radius: 10px; }
:is(#bm-builder,.bmb-block).bmb.bmb-mini .bmb-heading { font-size: 14px; gap: 5px; }
:is(#bm-builder,.bmb-block).bmb.bmb-mini .bmb-gift { width: 22px; height: 22px; font-size: 13px; }
:is(#bm-builder,.bmb-block).bmb.bmb-mini .bmb-sub { margin: 1px 0 8px; font-size: 11px; font-weight: 700; }
:is(#bm-builder,.bmb-block).bmb.bmb-mini .bmb-select { margin-top: 6px; }
:is(#bm-builder,.bmb-block).bmb.bmb-mini button.bmb-add, :is(#bm-builder,.bmb-block).bmb.bmb-mini a.bmb-wa { padding: 11px 8px; font-size: 13px; }
:is(#bm-builder,.bmb-block).bmb.bmb-mini.bmb-zagam { box-shadow: 0 1px 6px rgba(0, 0, 0, .15); }

/* ---- side cart: shared buttons + summary under the category blocks ---- */
:is(#bm-builder,.bmb-block):is(#bm-builder,.bmb-block).bmb.bmb-mini .bmb-sum { margin: 0 0 10px; padding: 8px 10px; border-radius: 8px; background: var(--bmb-save-bg) !important; }
:is(#bm-builder,.bmb-block).bmb.bmb-mini .bmb-sum-row { display: flex; justify-content: space-between; gap: 8px; font-size: 13px; line-height: 1.5; }
:is(#bm-builder,.bmb-block).bmb.bmb-mini .bmb-sum-row span, :is(#bm-builder,.bmb-block).bmb.bmb-mini .bmb-sum-row strong { color: var(--bmb-save-text) !important; }
:is(#bm-builder,.bmb-block).bmb.bmb-mini .bmb-sum-total { margin-top: 2px; padding-top: 4px; border-top: 1px solid rgba(0, 0, 0, .12); font-weight: 800; }
/* solid single-colour buttons, white text */
:is(#bm-builder,.bmb-block).bmb.bmb-mini button.bmb-add { background: var(--bmb-mini-add, #c85a00) !important; border: 1px solid var(--bmb-mini-add, #c85a00) !important; color: #fff !important; font-size: 14px; font-weight: 800; box-shadow: none; background-image: none !important; }
:is(#bm-builder,.bmb-block).bmb.bmb-mini button.bmb-add * { color: #fff !important; }
:is(#bm-builder,.bmb-block).bmb.bmb-mini a.bmb-wa { background: var(--bmb-mini-wa, #25d366) !important; border: 1px solid var(--bmb-mini-wa, #25d366) !important; color: #fff !important; font-size: 14px; font-weight: 800; background-image: none !important; text-shadow: 0 1px 2px rgba(0, 0, 0, .35) !important; }
:is(#bm-builder,.bmb-block).bmb.bmb-mini a.bmb-wa:hover { filter: brightness(.93); }
:is(#bm-builder,.bmb-block).bmb.bmb-mini a.bmb-wa * { color: #fff !important; }

:is(#bm-builder,.bmb-block).bmb.bmb-mini button.bmb-add span, :is(#bm-builder,.bmb-block).bmb.bmb-mini a.bmb-wa span { color: #fff !important; -webkit-text-fill-color: #fff !important; }
:is(#bm-builder,.bmb-block).bmb.bmb-mini a.bmb-wa svg path { fill: #fff !important; }

/* suits of the category that are already in the cart */
:is(#bm-builder,.bmb-block).bmb .bmb-incart { margin: -2px 0 8px; text-align: center; font-size: 12px; font-weight: 700; color: var(--bmb-sub) !important; }
:is(#bm-builder,.bmb-block).bmb.bmb-done { padding-bottom: 8px; }
