/* <mln:wishHeart>: a round heart pinned to the bottom-right corner of its card.
   Pressed = filled accent, keyed off aria-pressed so the look cannot drift from the state
   a screen reader hears. */
.mln-wish-host { position: relative; }
.mln-wish-host > .mln-feed-card { height: 100%; padding-right: 3.3rem; }

.mln-wish-heart {
    position: absolute; right: 0.6rem; bottom: 0.6rem; z-index: 3;
    width: 2.25rem; height: 2.25rem; padding: 0; border: 1px solid var(--mln-line, #e3e8e4);
    border-radius: 50%; cursor: pointer;
    display: inline-flex; align-items: center; justify-content: center;
    background: var(--mln-surface, #fff); color: var(--mln-accent, #bc4e2c);
    box-shadow: var(--mln-shadow-sm, 0 1px 2px rgba(0,0,0,.08));
    transition: transform .12s ease, background .12s ease, color .12s ease;
}
.mln-wish-heart:hover { transform: scale(1.08); }
.mln-wish-heart:focus-visible { outline: 2px solid var(--mln-primary, #00594c); outline-offset: 2px; }
.mln-wish-heart[aria-pressed="true"] { background: var(--mln-accent, #bc4e2c); color: #fff; border-color: transparent; }
.mln-wish-heart[aria-busy="true"] { opacity: 0.6; cursor: progress; }

/* A card unsaved on the wish list page stays until reload, dimmed, so an accidental
   click can be undone in place. */
.mln-wish-item.is-removed > :not(.mln-wish-heart) { opacity: 0.45; }

@media (prefers-reduced-motion: reduce) {
    .mln-wish-heart { transition: none; }
    .mln-wish-heart:hover { transform: none; }
}
