/* TVWS Bundle - frontend additions for thumbnails */
.tvws-bundle-list__items { list-style: none; margin: 0; padding: 0; }
.tvws-bundle-list__item { display: flex; align-items: center; gap: 10px; padding: 6px 0; flex-wrap: wrap; }
.tvws-bundle-list__content { display: flex; flex-direction: column; gap: 4px; min-width: 0; }
.tvws-bundle-list__meta { display: flex; align-items: center; gap: 8px; font-size: 0.9em; color: var(--tvws-bundle-text); }
.tvws-bundle-list__price { font-weight: 600; color: var(--tvws-bundle-text); }
.tvws-bundle-list__price--savings { color: var(--tvws-bundle-oos-text); }
.tvws-bundle-list__oos-label { font-weight: 600; color: var(--tvws-bundle-oos-text); }
.tvws-bundle-list__stock-label { font-weight: 600; }
.tvws-bundle-list__stock-label--oos { color: var(--tvws-bundle-oos-text); }
.tvws-bundle-list__stock-label--instock { color: var(--tvws-bundle-text); }
.tvws-bundle-replacements { margin-top: 0; font-size: 0.9em; color: var(--tvws-bundle-replacements-text, var(--tvws-bundle-text)); }
.tvws-bundle-list__replacements { margin-top: var(--tvws-bundle-replacements-margin, 6px); }
.tvws-bundle-replacements__title { font-size: var(--tvws-bundle-replacements-title-size, 13px); font-weight: var(--tvws-bundle-replacements-title-weight, 600); color: var(--tvws-bundle-title); }
.tvws-bundle-replacements__items { list-style: none; margin: 6px 0 0; padding: 0; display: grid; grid-template-columns: repeat(var(--tvws-bundle-replacements-cols, 1), minmax(0, 1fr)); gap: var(--tvws-bundle-replacements-gap, 8px); }
.tvws-bundle-replacements__item { margin: 0; }
.tvws-bundle-replacements__option { display: block; cursor: pointer; position: relative; }
.tvws-bundle-replacements__input { position: absolute; opacity: 0; pointer-events: none; }
.tvws-bundle-replacements__pill { display: flex; align-items: center; gap: 8px; padding: var(--tvws-bundle-replacements-padding, 8px); border: var(--tvws-bundle-replacements-border-width, 1px) solid var(--tvws-bundle-replacements-border, var(--tvws-bundle-border)); border-radius: var(--tvws-bundle-replacements-radius, 10px); background: var(--tvws-bundle-replacements-bg, transparent); transition: border-color 0.2s ease, background-color 0.2s ease, box-shadow 0.2s ease; }
.tvws-bundle-replacements__pill--none { border-style: dashed; }
.tvws-bundle-replacements__option:hover .tvws-bundle-replacements__pill { border-color: var(--tvws-bundle-replacements-accent, var(--tvws-bundle-oos-text)); }
.tvws-bundle-replacements__input:focus-visible + .tvws-bundle-replacements__pill { outline: 2px solid var(--tvws-bundle-replacements-accent, var(--tvws-bundle-oos-text)); outline-offset: 2px; }
.tvws-bundle-replacements__input:checked + .tvws-bundle-replacements__pill { border-color: var(--tvws-bundle-replacements-selected-border, var(--tvws-bundle-replacements-accent, var(--tvws-bundle-oos-text))); background: var(--tvws-bundle-replacements-selected-bg, transparent); box-shadow: 0 0 0 1px rgba(0,0,0,0.03); }
.tvws-bundle-replacements__text { display: flex; flex-direction: column; gap: 2px; min-width: 0; }
.tvws-bundle-replacements__name { font-weight: 600; color: var(--tvws-bundle-replacements-text, var(--tvws-bundle-text)); }
.tvws-bundle-replacements__price { font-size: 0.85em; color: var(--tvws-bundle-replacements-text, var(--tvws-bundle-text)); }
.tvws-bundle-replacements__check { margin-left: auto; width: 16px; height: 16px; border-radius: 999px; border: 2px solid var(--tvws-bundle-replacements-accent, var(--tvws-bundle-oos-text)); position: relative; flex: 0 0 auto; }
.tvws-bundle-replacements__input:checked + .tvws-bundle-replacements__pill .tvws-bundle-replacements__check::after { content: ''; width: 8px; height: 8px; border-radius: 999px; background: var(--tvws-bundle-replacements-accent, var(--tvws-bundle-oos-text)); position: absolute; top: 50%; left: 50%; transform: translate(-50%, -50%); }
.tvws-bundle-replacements__variation { margin-top: 6px; display: none; }
.tvws-bundle-replacements__input:checked ~ .tvws-bundle-replacements__variation { display: block; }
.tvws-bundle-replacements__variation .variations { margin-bottom: 0; }
.tvws-bundle-category { margin-top: var(--tvws-bundle-replacements-margin, 6px); font-size: 0.9em; color: var(--tvws-bundle-text); }
.tvws-bundle-category__title { font-size: var(--tvws-bundle-replacements-title-size, 13px); font-weight: var(--tvws-bundle-replacements-title-weight, 600); color: var(--tvws-bundle-title); }
.tvws-bundle-category__items { list-style: none; margin: 6px 0 0; padding: 0; display: grid; grid-template-columns: repeat(var(--tvws-bundle-replacements-cols, 1), minmax(0, 1fr)); gap: var(--tvws-bundle-replacements-gap, 8px); }
.tvws-bundle-category__item { margin: 0; }
.tvws-bundle-category__option { display: block; cursor: pointer; position: relative; }
.tvws-bundle-category__input { position: absolute; opacity: 0; pointer-events: none; }
.tvws-bundle-category__pill { display: flex; align-items: center; gap: 8px; padding: var(--tvws-bundle-replacements-padding, 8px); border: var(--tvws-bundle-replacements-border-width, 1px) solid var(--tvws-bundle-replacements-border, var(--tvws-bundle-border)); border-radius: var(--tvws-bundle-replacements-radius, 10px); background: var(--tvws-bundle-replacements-bg, transparent); transition: border-color 0.2s ease, background-color 0.2s ease, box-shadow 0.2s ease; }
.tvws-bundle-category__pill--none { border-style: dashed; }
.tvws-bundle-category__option:hover .tvws-bundle-category__pill { border-color: var(--tvws-bundle-replacements-accent, var(--tvws-bundle-oos-text)); }
.tvws-bundle-category__input:focus-visible + .tvws-bundle-category__pill { outline: 2px solid var(--tvws-bundle-replacements-accent, var(--tvws-bundle-oos-text)); outline-offset: 2px; }
.tvws-bundle-category__input:checked + .tvws-bundle-category__pill { border-color: var(--tvws-bundle-replacements-selected-border, var(--tvws-bundle-replacements-accent, var(--tvws-bundle-oos-text))); background: var(--tvws-bundle-replacements-selected-bg, transparent); box-shadow: 0 0 0 1px rgba(0,0,0,0.03); }
.tvws-bundle-category__thumb { width: var(--tvws-bundle-category-thumb-size, 36px); height: var(--tvws-bundle-category-thumb-size, 36px); flex: 0 0 var(--tvws-bundle-category-thumb-size, 36px); border-radius: 6px; overflow: hidden; background: var(--tvws-bundle-bg); }
.tvws-bundle-category__thumb img { width: 100%; height: 100%; object-fit: cover; display: block; }
.tvws-bundle-category__text { display: flex; flex-direction: column; gap: 2px; min-width: 0; font-size: var(--tvws-bundle-category-text-size, 14px); }
.tvws-bundle-category__name { font-weight: var(--tvws-bundle-category-text-weight, 600); color: var(--tvws-bundle-category-text, var(--tvws-bundle-text)); }
.tvws-bundle-category__price { font-size: 0.85em; color: var(--tvws-bundle-category-text, var(--tvws-bundle-text)); }
.tvws-bundle-category__check { margin-left: auto; width: 16px; height: 16px; border-radius: 999px; border: 2px solid var(--tvws-bundle-replacements-accent, var(--tvws-bundle-oos-text)); position: relative; flex: 0 0 auto; }
.tvws-bundle-category__input:checked + .tvws-bundle-category__pill .tvws-bundle-category__check::after { content: ''; width: 8px; height: 8px; border-radius: 999px; background: var(--tvws-bundle-replacements-accent, var(--tvws-bundle-oos-text)); position: absolute; top: 50%; left: 50%; transform: translate(-50%, -50%); }
.tvws-bundle-category__variation { margin-top: 6px; display: none; }
.tvws-bundle-category__variation.is-active { display: block; }
.tvws-bundle-category__variation .variations { margin-bottom: 0; }
.tvws-bundle-category__empty { font-size: 0.9em; color: var(--tvws-bundle-text); }
.tvws-bundle-category-dropdown { position: relative; margin-top: 6px; }
.tvws-bundle-category-dropdown__trigger { width: 100%; display: flex; align-items: center; gap: 10px; padding: var(--tvws-bundle-replacements-padding, 8px); border: var(--tvws-bundle-replacements-border-width, 1px) solid var(--tvws-bundle-replacements-border, var(--tvws-bundle-border)); border-radius: var(--tvws-bundle-replacements-radius, 10px); background: var(--tvws-bundle-category-dropdown-bg, var(--tvws-bundle-replacements-bg, transparent)); text-align: left; cursor: pointer; text-transform: none; transition: border-color 0.2s ease, box-shadow 0.2s ease; }
.tvws-bundle-category-dropdown__trigger:hover { border-color: var(--tvws-bundle-replacements-accent, var(--tvws-bundle-oos-text)); }
.tvws-bundle-category-dropdown__trigger:focus-visible { outline: 2px solid var(--tvws-bundle-replacements-accent, var(--tvws-bundle-oos-text)); outline-offset: 2px; }
.tvws-bundle-category-dropdown__thumb { width: var(--tvws-bundle-category-thumb-size, 36px); height: var(--tvws-bundle-category-thumb-size, 36px); flex: 0 0 var(--tvws-bundle-category-thumb-size, 36px); border-radius: 8px; overflow: hidden; background: var(--tvws-bundle-bg); }
.tvws-bundle-category-dropdown__thumb img { width: 100%; height: 100%; object-fit: cover; display: block; }
.tvws-bundle-category-dropdown__text { display: flex; flex-direction: column; gap: 2px; min-width: 0; font-size: var(--tvws-bundle-category-text-size, 14px); }
.tvws-bundle-category-dropdown__name { font-weight: var(--tvws-bundle-category-text-weight, 600); color: var(--tvws-bundle-category-text, var(--tvws-bundle-text)); text-transform: none; }
.tvws-bundle-category-dropdown__price { font-size: 0.85em; color: var(--tvws-bundle-category-text, var(--tvws-bundle-text)); }
.tvws-bundle-category-dropdown__price:empty { display: none; }
.tvws-bundle-category-dropdown__chevron { margin-left: auto; width: 10px; height: 10px; border-right: 2px solid var(--tvws-bundle-replacements-accent, var(--tvws-bundle-oos-text)); border-bottom: 2px solid var(--tvws-bundle-replacements-accent, var(--tvws-bundle-oos-text)); transform: rotate(45deg); }
.tvws-bundle-category-dropdown__menu { position: absolute; left: 0; right: 0; top: calc(100% + 6px); z-index: 20; background: var(--tvws-bundle-category-dropdown-bg, var(--tvws-bundle-bg)); border: 1px solid var(--tvws-bundle-border); border-radius: 10px; padding: 6px; box-shadow: 0 10px 24px rgba(0,0,0,0.08); }
.tvws-bundle-category-dropdown__menu[hidden] { display: none; }
.tvws-bundle-category-dropdown .tvws-bundle-category__items { display: grid; grid-template-columns: minmax(0, 1fr); max-height: 260px; overflow-y: auto; gap: 6px; }
.tvws-bundle-category-dropdown .tvws-bundle-category__pill { padding: 8px 10px; }
.tvws-bundle-category__variations { margin-top: 6px; }
.tvws-bundle-list__item--oos { background: var(--tvws-bundle-oos-bg); }
.tvws-bundle-list__item--oos:not(.tvws-bundle-list__item--selectable) { border-left: 3px solid var(--tvws-bundle-oos-border); padding-left: 8px; border-radius: 6px; }
.tvws-bundle-list__thumb img { max-width: var(--tvws-bundle-thumb-size, 48px); height: auto; display: block; border-radius: 6px; transition: box-shadow 0.2s ease, filter 0.2s ease; }
.tvws-bundle-list__thumb { display: inline-flex; border-radius: 6px; transition: box-shadow 0.2s ease, filter 0.2s ease; }
.tvws-bundle-list--lightbox .tvws-bundle-list__thumb { cursor: zoom-in; }
.tvws-bundle-list__thumb .woocommerce-product-gallery { width: auto; margin: 0; }
.tvws-bundle-list__thumb .woocommerce-product-gallery__wrapper { margin: 0; }
.tvws-bundle-list__thumb .woocommerce-product-gallery__image { margin: 0; border-radius: 6px; width:48px; height: auto; }
.tvws-bundle-list__thumb .woocommerce-product-gallery__image a { display: block; }
.tvws-bundle-list__thumb .woocommerce-product-gallery__trigger { display: none; }
.tvws-bundle-list__thumb:hover {
	box-shadow: 0 0 0 1px var(--tvws-bundle-thumb-glow, rgba(0,0,0,0.18)),
		0 0 var(--tvws-bundle-thumb-glow-size, 6px) var(--tvws-bundle-thumb-glow, rgba(0,0,0,0.18));
	filter: drop-shadow(0 0 var(--tvws-bundle-thumb-glow-size, 6px) var(--tvws-bundle-thumb-glow, rgba(0,0,0,0.18)));
}
.tvws-bundle-list__thumb:hover img,
.tvws-bundle-list__thumb:hover .woocommerce-product-gallery__image,
.tvws-bundle-list__thumb a:hover img {
	box-shadow: 0 0 0 1px var(--tvws-bundle-thumb-glow, rgba(0,0,0,0.18)),
		0 0 var(--tvws-bundle-thumb-glow-size, 6px) var(--tvws-bundle-thumb-glow, rgba(0,0,0,0.18));
	filter: drop-shadow(0 0 var(--tvws-bundle-thumb-glow-size, 6px) var(--tvws-bundle-thumb-glow, rgba(0,0,0,0.18)));
}
.tvws-bundle-list__replacements { flex-basis: 100%; }
.tvws-bundle-list--selectable .tvws-bundle-list__items { display: grid; grid-template-columns: repeat(var(--tvws-bundle-cols, 2), minmax(0, 1fr)); gap: var(--tvws-bundle-item-gap, 16px); }
.tvws-bundle-list--selectable .tvws-bundle-list__item { display: block; border: 1px solid var(--tvws-bundle-border); background: var(--tvws-bundle-bg); border-radius: 8px; padding: var(--tvws-bundle-item-padding, 12px); }
.tvws-bundle-list--selectable .tvws-bundle-list__item--oos { border-color: var(--tvws-bundle-oos-border); }
.tvws-bundle-list--selectable .tvws-bundle-list__item--oos { background: var(--tvws-bundle-oos-bg); }
.tvws-bundle-list--selectable .tvws-bundle-list__item-head { display: flex; align-items: center; gap: var(--tvws-bundle-item-head-gap, 10px); }
.tvws-bundle-list--selectable .tvws-bundle-list__item-variation { margin-top: var(--tvws-bundle-item-variation-gap, 8px); }
@media (max-width: 782px) {
	.tvws-bundle-list--selectable .tvws-bundle-list__items { grid-template-columns: minmax(0, 1fr); }
}
.tvws-bundle-variations { margin: 16px 0; display: grid; gap: 16px; }
.tvws-bundle-variation-item { border: 1px solid var(--tvws-bundle-border); background: var(--tvws-bundle-bg); border-radius: 8px; padding: 12px; }
.tvws-bundle-variation-title { display: flex; align-items: baseline; justify-content: space-between; gap: 10px; font-weight: 600; color: var(--tvws-bundle-title); }
.tvws-bundle-variation-qty { font-size: 0.9em; color: var(--tvws-bundle-text); }
.tvws-bundle-variation.product { margin: 0; padding: 0; box-shadow: none; background: transparent; }
.tvws-bundle-variation { --wvs-single-product-item-height: var(--tvws-bundle-swatch-size, 34px); --wvs-single-product-item-width: var(--tvws-bundle-swatch-size, 34px); --wvs-single-product-item-font-size: var(--tvws-bundle-swatch-font, 14px); --wvs-single-product-large-item-height: var(--tvws-bundle-swatch-size, 34px); --wvs-single-product-large-item-width: var(--tvws-bundle-swatch-size, 34px); --wvs-single-product-large-item-font-size: var(--tvws-bundle-swatch-font, 14px); }
.tvws-bundle-variation .variations { margin-bottom: 0; }
.tvws-bundle-variation .variations th.label { display: var(--tvws-bundle-variation-label-display, table-cell); }
.tvws-bundle-variation .variations td.value { padding-right: 0; }
.tvws-bundle-variation select { font-size: var(--tvws-bundle-variation-font, 14px); padding: var(--tvws-bundle-variation-padding, 8px 12px); }
.tvws-bundle-variation .select2-container .select2-selection--single { font-size: var(--tvws-bundle-variation-font, 14px); padding: var(--tvws-bundle-variation-padding, 8px 12px); height: auto; }
.tvws-bundle-variation .select2-container .select2-selection--single .select2-selection__rendered { line-height: 1.4; padding: 0; }
.tvws-bundle-variation .single_variation_wrap { margin-top: 8px; }
.tvws-bundle-summary { margin-top: 14px; border: 1px solid var(--tvws-bundle-border); background: var(--tvws-bundle-bg); border-radius: 8px; padding: 10px 12px; }
.tvws-bundle-summary table { width: 100%; border-collapse: collapse; }
.tvws-bundle-summary th { text-align: left; font-weight: 600; color: var(--tvws-bundle-title); padding: 4px 0; }
.tvws-bundle-summary td { text-align: right; padding: 4px 0; color: var(--tvws-bundle-text); }
.tvws-bundle-summary__savings th, .tvws-bundle-summary__savings td { color: var(--tvws-bundle-oos-text); }
.tvws-bundle-summary__note td { text-align: left; font-size: 0.9em; color: var(--tvws-bundle-text); padding-top: 6px; }
.tvws-bundle-oos-notice {
	margin-top: 10px;
	font-size: var(--tvws-bundle-oos-notice-font-size, 0.95em);
	font-weight: var(--tvws-bundle-oos-notice-font-weight, inherit);
	color: var(--tvws-bundle-oos-notice-text, var(--tvws-bundle-oos-text));
	background: var(--tvws-bundle-oos-notice-bg, transparent);
	border: var(--tvws-bundle-oos-notice-border-width, 0) solid var(--tvws-bundle-oos-notice-border, transparent);
	border-radius: var(--tvws-bundle-oos-notice-radius, 0);
	padding: var(--tvws-bundle-oos-notice-padding, 0);
}
