/**
 * Empty vs filled favorites heart (Jet Engine data store + logged-out stand-in).
 * Jet toggles .in-store / icons client-side — icons themselves differ visually.
 */

.tsak-fav .jet-add-to-store .jet-data-store-link__icon.is-svg-icon svg,
.tsak-fav .in-store .jet-data-store-link__icon.is-svg-icon svg,
.tsak-fav .jet-remove-from-store .jet-data-store-link__icon.is-svg-icon svg,
.tsak-fav.brxe-button svg,
.tsal-fav-logged-out svg {
	fill: var(--primary) !important;
	color: var(--primary) !important;
	opacity: 1;
}

/**
 * Upcoming cards: match dark product-card fav pill, pin bottom-right.
 * (Default .tsak-fav is top-right; logged-in icons are SVG, not Font Awesome.)
 */
.tsak-product_upcoming .tsak-fav,
.tsak-upcoming-slider .tsak-fav,
.bg--ultra-dark .tsak-product_upcoming .tsak-fav {
	top: auto !important;
	bottom: 0 !important;
	right: 0 !important;
	left: auto !important;
	width: 32px !important;
	min-width: 32px !important;
	height: 32px !important;
	padding: 0 !important;
	display: flex !important;
	align-items: center !important;
	justify-content: center !important;
	z-index: 50 !important;
	--btn-background: var(--neutral-ultra-dark, #18191b);
	--btn-background-hover: var(--base-light);
	--btn-border-color: var(--neutral-dark-trans-20);
	--btn-border-color-hover: var(--neutral-dark-trans-20);
	background-color: var(--neutral-ultra-dark, #18191b) !important;
	background: var(--neutral-ultra-dark, #18191b) !important;
	border-color: var(--neutral-dark-trans-20) !important;
}

.tsak-product_upcoming .tsak-fav:hover,
.tsak-upcoming-slider .tsak-fav:hover,
.bg--ultra-dark .tsak-product_upcoming .tsak-fav:hover {
	background-color: var(--base-light) !important;
	background: var(--base-light) !important;
	border-color: var(--neutral-dark-trans-20) !important;
}

.tsak-product_upcoming .tsak-fav svg,
.tsak-upcoming-slider .tsak-fav svg,
.tsak-product_upcoming .tsak-fav .jet-data-store-link__icon.is-svg-icon svg,
.tsak-upcoming-slider .tsak-fav .jet-data-store-link__icon.is-svg-icon svg {
	width: 14px !important;
	height: 14px !important;
	max-width: 14px !important;
	max-height: 14px !important;
	fill: var(--primary) !important;
}

/* Pulse while favorite AJAX is in flight (until heart fills / empties) */
.tsak-fav-pulse,
.tsak-fav-pulse.jet-store-processing,
.jet-data-store-link.tsak-fav-pulse,
.jet-add-to-store.tsak-fav-pulse,
.jet-remove-from-store.tsak-fav-pulse {
	pointer-events: none;
	animation: tsakFavHeartPulse 0.85s ease-in-out infinite;
}

.tsak-fav-pulse .jet-data-store-link__icon,
.tsak-fav-pulse .jet-listing-dynamic-link__icon,
.tsak-fav-pulse svg {
	animation: inherit;
}

@keyframes tsakFavHeartPulse {
	0%,
	100% {
		opacity: 1;
	}
	50% {
		opacity: 0.28;
	}
}

@media (prefers-reduced-motion: reduce) {
	.tsak-fav-pulse,
	.tsak-fav-pulse.jet-store-processing,
	.jet-data-store-link.tsak-fav-pulse,
	.jet-add-to-store.tsak-fav-pulse,
	.jet-remove-from-store.tsak-fav-pulse {
		animation: none;
		opacity: 0.55;
	}
}

/**
 * Favorites compare strip: aligned columns for spec-by-spec comparison.
 */
.tsak-favorites-compare .brxe-slider-nested {
	width: 100%;
}

.tsak-favorites-compare .splide__track,
.tsak-favorites-compare .splide__list {
	align-items: stretch;
}

.tsak-favorites-compare .splide__slide {
	height: auto;
	align-self: stretch;
}

.tsak-favorite-product {
	box-sizing: border-box;
	display: flex;
	flex-direction: column;
	height: 100%;
	min-height: 100%;
}

/* Top: image + title + ATC — equalized across cards */
.tsak-favorite-product > .brxe-cxlihs {
	display: flex;
	flex-direction: column;
	align-items: stretch;
	flex: 0 0 auto;
	width: 100%;
	margin-bottom: 0;
}

.tsak-favorite-product > .brxe-cxlihs > .brxe-image,
.tsak-favorite-product > .brxe-cxlihs > .brxe-image img {
	width: 100%;
	height: 160px;
	max-height: 160px;
	object-fit: contain;
	object-position: center;
}

.tsak-favorite-product > .brxe-cxlihs > .brxe-heading {
	display: -webkit-box;
	-webkit-box-orient: vertical;
	-webkit-line-clamp: 3;
	line-clamp: 3;
	overflow: hidden;
	min-height: calc(1.25em * 3);
	max-height: calc(1.25em * 3);
	margin: var(--space-xs, 0.5rem) 0;
	line-height: 1.25;
}

.tsak-favorite-product > .brxe-cxlihs > .brxe-product-add-to-cart {
	display: flex;
	align-items: center;
	min-height: 2.75rem;
	margin-top: auto;
}

.tsak-favorite-product > .brxe-cxlihs > .brxe-product-add-to-cart .button,
.tsak-favorite-product > .brxe-cxlihs > .brxe-product-add-to-cart a.button {
	width: 100%;
	justify-content: center;
	text-align: center;
}

.tsak-favorite-product > .brxe-cxlihs > .brxe-divider {
	margin-top: var(--space-xs, 0.5rem);
	margin-bottom: var(--space-xs, 0.5rem);
}

/* Specs column */
.tsak-favorite-product .tsak-favorite-specs,
.tsak-favorite-product .brxe-vvltfg {
	display: flex;
	flex-direction: column;
	gap: var(--space-xs, 0.5rem);
	flex: 1 1 auto;
	width: 100%;
}

.tsak-favorite-product .brxe-wjnujn,
.tsak-favorite-product .brxe-yscmya,
.tsak-favorite-product .brxe-okziva {
	display: flex;
	flex-direction: row;
	align-items: center;
	gap: calc(var(--space-xs, 0.5rem) / 2);
	min-height: 1.75rem;
	flex-shrink: 0;
}

.tsak-favorite-product .brxe-okziva .brxe-image,
.tsak-favorite-product .brxe-okziva img {
	width: 24px !important;
	height: 24px !important;
	max-width: 24px !important;
	max-height: 24px !important;
	object-fit: contain;
	flex-shrink: 0;
}

/* Icon + label on one line */
.tsak-favorite-product .tsak-product-attributes {
	display: flex !important;
	flex-direction: row !important;
	flex-wrap: nowrap;
	align-items: center !important;
	gap: calc(var(--space-xs, 0.5rem) / 2);
	min-height: 1.75rem;
	flex-shrink: 0;
	width: 100%;
}

.tsak-favorite-product .tsak-product-attribute-terms,
.tsak-favorite-product .jet-listing-dynamic-terms {
	flex: 1 1 auto;
	min-width: 0;
	line-height: 1.25;
}

.tsak-favorite-product .tsak-product-attribute-icon,
.tsak-favorite-product .tsak-product-attributes > .brxe-svg,
.tsak-favorite-product .tsak-product-attributes > svg,
.tsak-favorite-product .brxe-icon-box .icon svg,
.tsak-favorite-product .brxe-icon-box svg {
	width: 18px !important;
	height: 18px !important;
	max-width: 18px !important;
	max-height: 18px !important;
	flex: 0 0 18px;
	display: block;
}

.tsak-favorite-product .brxe-icon-box {
	display: flex !important;
	flex-direction: row !important;
	align-items: center !important;
	gap: calc(var(--space-xs, 0.5rem) / 2);
	min-height: 1.75rem;
}

.tsak-favorite-product .brxe-icon-box .icon {
	width: 18px;
	height: 18px;
	flex: 0 0 18px;
	line-height: 0;
}

.tsak-favorite-product .brxe-icon-box .content,
.tsak-favorite-product .brxe-icon-box .content p {
	margin: 0;
	line-height: 1.25;
}

/* Package block stays compact under specs */
.tsak-favorite-product .brxe-blxyqe {
	display: flex;
	flex-direction: column;
	gap: calc(var(--space-xs, 0.5rem) / 2);
	margin-top: auto;
}
