/* Snooby Wishlist: scoped to .snwl-wl* classes. */
.snwl-wl { position: relative; margin: .5em 0; }
.snwl-wl-btn { display: inline-flex; align-items: center; gap: .4em; text-decoration: none; cursor: pointer; color: inherit; }
.snwl-wl-heart { width: 20px; height: 20px; fill: none; stroke: var(--snwl-wl-color, #e2401c); stroke-width: 2; transition: transform .15s ease, fill .15s ease; }
.snwl-wl-btn:hover .snwl-wl-heart { transform: scale(1.12); }
.snwl-wl.is-added .snwl-wl-heart { fill: var(--snwl-wl-color, #e2401c); }
.snwl-wl.is-loading { opacity: .55; pointer-events: none; }
.snwl-wl--icon .snwl-wl-label { position: absolute !important; width: 1px; height: 1px; overflow: hidden; clip: rect(0 0 0 0); }
.snwl-wl--button .snwl-wl-btn { padding: .5em 1em; }
/* Image heart (YITH look): grey heart on a transparent background, shown when the image is hovered; red when the heart itself is hovered or the product is saved. */
.snwl-wl--overlay { position: absolute; top: 10px; right: 10px; z-index: 5; margin: 0 !important; padding: 0; line-height: 0; opacity: 0; transition: opacity .2s ease; }
.snwl-wl.snwl-wl--overlay .snwl-wl-btn { display: flex !important; align-items: center; justify-content: center; box-sizing: border-box; width: 36px; height: 36px; min-height: 0; margin: 0 !important; padding: 0 !important; background: transparent !important; border: 0 !important; box-shadow: none !important; line-height: 0; }
.snwl-wl.snwl-wl--overlay .snwl-wl-heart { display: block; flex: 0 0 auto; width: 26px; height: 26px; margin: 0; fill: #b5b5b5; stroke: #fff; stroke-width: 1.2; filter: drop-shadow(0 1px 2px rgba(0,0,0,.25)); transition: fill .15s ease, transform .15s ease; }
.snwl-wl--overlay .snwl-wl-btn:hover .snwl-wl-heart, .snwl-wl--overlay .snwl-wl-btn:focus-visible .snwl-wl-heart, .snwl-wl--overlay.is-added .snwl-wl-heart { fill: var(--snwl-wl-color, #e2401c); }
.snwl-wl.snwl-wl--overlay .snwl-wl-label { position: absolute !important; top: calc(100% + 4px); right: 0; width: auto; height: auto; overflow: visible; clip: auto; white-space: nowrap; background: rgba(0,0,0,.85); color: #fff; font-size: 13px; font-weight: 600; line-height: 1.3; padding: 5px 9px; border-radius: 4px; opacity: 0; visibility: hidden; pointer-events: none; transition: opacity .15s ease; }
.snwl-wl--overlay .snwl-wl-btn:hover .snwl-wl-label, .snwl-wl--overlay .snwl-wl-btn:focus-visible .snwl-wl-label { opacity: 1; visibility: visible; }
:is(.product-gallery, .woocommerce-product-gallery, .product-images, .product-small, li.product, .box-image):hover .snwl-wl--overlay,
.snwl-wl--overlay:focus-within, .snwl-wl--overlay.is-added { opacity: 1; }
@media (hover: none) { .snwl-wl--overlay { opacity: 1; } .snwl-wl.snwl-wl--overlay .snwl-wl-label { display: none; } }
.snwl-wl--loop:not(.snwl-wl--overlay) { margin: .4em 0 0; font-size: .9em; }
.woocommerce-product-gallery, ul.products li.product, .product-small .box-image { position: relative; }
/* Flatsome: sit inside its image-tools corner and stay visible (it hides tools until hover). */
.snwl-wl--flatsome { position: relative; top: auto; right: auto; pointer-events: auto; }
.image-tools:has(.snwl-wl--flatsome) { opacity: 1 !important; visibility: visible; }
.snwl-wl--overlay .snwl-wl-chooser { left: auto; right: 0; }

.snwl-wl-chooser { position: absolute; z-index: 50; top: 100%; left: 0; min-width: 240px; background: #fff; border: 1px solid rgba(0,0,0,.12); border-radius: 6px; box-shadow: 0 6px 20px rgba(0,0,0,.12); padding: 12px; display: grid; gap: 8px; }
.snwl-wl-chooser p { margin: 0; font-weight: 600; }
.snwl-wl-chooser .button { margin: 0; }

.snwl-wl-toast { position: fixed; left: 50%; bottom: 24px; transform: translate(-50%, 20px); background: #222; color: #fff; padding: 10px 16px; border-radius: 6px; font-size: 14px; opacity: 0; pointer-events: none; transition: all .2s ease; z-index: 99999; max-width: calc(100% - 32px); }
.snwl-wl-toast.is-visible { opacity: 1; transform: translate(-50%, 0); pointer-events: auto; }
.snwl-wl-toast a { color: #fff; text-decoration: underline; margin-left: 6px; }

.snwl-wl-counter { display: inline-flex; align-items: center; gap: 4px; position: relative; text-decoration: none; color: inherit; }
.snwl-wl-counter .snwl-wl-heart { width: 22px; height: 22px; }
.snwl-wl-count { font-size: 11px; line-height: 1; min-width: 16px; padding: 2px 4px; border-radius: 10px; background: var(--snwl-wl-color, #e2401c); color: #fff; text-align: center; }
.snwl-wl-count[data-count="0"] { display: none; }

.snwl-wishlist .snwl-wl-lists { display: flex; flex-wrap: wrap; gap: 8px; align-items: center; margin: 0 0 1.2em; }
.snwl-wl-pill { padding: 6px 12px; border: 1px solid rgba(0,0,0,.15); border-radius: 20px; text-decoration: none; font-size: .9em; }
.snwl-wl-pill.is-active { border-color: var(--snwl-wl-color, #e2401c); color: var(--snwl-wl-color, #e2401c); }
.snwl-wl-pill span { opacity: .6; }
.snwl-wishlist details summary { cursor: pointer; font-size: .9em; }
.snwl-wl-inline-form { display: flex; flex-wrap: wrap; gap: 6px; margin-top: 8px; }
.snwl-wl-inline-form input, .snwl-wl-inline-form select { margin: 0; max-width: 260px; }
.snwl-wl-head { display: flex; flex-wrap: wrap; align-items: center; gap: 10px 16px; margin-bottom: 1em; }
.snwl-wl-title { margin: 0; }
.snwl-wl-visibility { font-size: .8em; padding: 2px 8px; border-radius: 10px; background: rgba(0,0,0,.06); }
.snwl-wl-table td, .snwl-wl-table th { vertical-align: middle; }
.snwl-wl-col-thumb img { width: 64px; height: auto; }
.snwl-wl-col-check { width: 30px; }
.snwl-wl-name { font-weight: 600; }
.snwl-wl-date, .snwl-wl-drop { display: block; opacity: .75; }
.snwl-wl-drop { color: #2e7d32; opacity: 1; font-weight: 600; }
.snwl-wl-stock.in { color: #2e7d32; }
.snwl-wl-stock.out { color: #c62828; }
.snwl-wl-col-actions { white-space: nowrap; text-align: right; }
.snwl-wl-col-actions .button { margin: 0; }
.snwl-wl-remove { background: none; border: 0; font-size: 22px; line-height: 1; cursor: pointer; padding: 4px 8px; opacity: .6; color: inherit; }
.snwl-wl-remove:hover { opacity: 1; color: #c62828; }
.snwl-wl-actions { display: flex; flex-wrap: wrap; gap: 8px; align-items: center; margin: 1em 0; }
.snwl-wl-actions select { margin: 0; width: auto; }
.snwl-wl-actions .button { margin: 0; }
.snwl-wl-all { margin-left: auto !important; }
.snwl-wl-share { display: flex; flex-wrap: wrap; gap: 8px; align-items: center; margin: 1.5em 0; }
.snwl-wl-share-btn { display: inline-block; padding: 6px 12px; border-radius: 4px; border: 1px solid rgba(0,0,0,.15); background: #fff; font-size: .85em; text-decoration: none; cursor: pointer; color: inherit; }
.snwl-wl-share-btn:hover { border-color: var(--snwl-wl-color, #e2401c); color: var(--snwl-wl-color, #e2401c); }
.snwl-wl-empty { text-align: center; padding: 2em 1em; }
.snwl-wl-empty .snwl-wl-heart { width: 48px; height: 48px; }
.snwl-wl-recommend { margin-top: 2.5em; }
.snwl-wl-danger { color: #c62828 !important; }
/* Phones: each wishlist row becomes a card (image left, details right, buttons underneath). */
@media (max-width: 768px) {
	.snwl-wl-table, .snwl-wl-table tbody { display: block; width: 100%; border: 0; }
	.snwl-wl-table thead { display: none; }
	.snwl-wl-table tr { display: grid; grid-template-columns: auto 72px minmax(0, 1fr); grid-template-areas: "check thumb name" "check thumb price" "check thumb stock" "actions actions actions"; column-gap: 12px; row-gap: 2px; align-items: start; padding: 14px 0; border-bottom: 1px solid rgba(0,0,0,.1); }
	.snwl-wl-table tr:not(:has(.snwl-wl-col-check)) { grid-template-columns: 72px minmax(0, 1fr); grid-template-areas: "thumb name" "thumb price" "thumb stock" "actions actions"; }
	.snwl-wl-table td { display: block !important; padding: 0 !important; border: 0 !important; text-align: left !important; width: auto !important; }
	.snwl-wl-table td::before { display: none !important; }
	.snwl-wl-table .snwl-wl-col-check { grid-area: check; align-self: center; }
	.snwl-wl-table .snwl-wl-col-thumb { grid-area: thumb; }
	.snwl-wl-table .snwl-wl-col-thumb img { width: 72px; height: auto; display: block; border-radius: 6px; }
	.snwl-wl-table .snwl-wl-col-name { grid-area: name; font-size: .95em; line-height: 1.3; }
	.snwl-wl-table .snwl-wl-col-price { grid-area: price; }
	.snwl-wl-table .snwl-wl-col-stock { grid-area: stock; font-size: .9em; }
	.snwl-wl-table .snwl-wl-col-actions { grid-area: actions; display: flex !important; align-items: center; gap: 8px; margin-top: 10px; white-space: normal; }
	.snwl-wl-table .snwl-wl-col-actions .button { flex: 1 1 auto; text-align: center; }
	.snwl-wl-actions > * { flex: 1 1 auto; }
	.snwl-wl-actions select { width: 100%; }
	.snwl-wl-all { margin-left: 0 !important; width: 100%; }
}
