/* OnlyTicket (2026-11-03): favourites heart (js/favourites.js). */
.ot-fav-host { position: relative; }
.ot-fav {
    position: absolute; top: 10px; right: 10px; z-index: 3; width: 36px; height: 36px; border: 0; border-radius: 50%;
    display: inline-flex; align-items: center; justify-content: center; cursor: pointer;
    background: rgba(255, 255, 255, .92); color: #9aa3b2; font-size: 16px; box-shadow: 0 2px 10px rgba(20, 26, 38, .18);
    transition: transform .15s ease, color .15s ease, background-color .15s ease;
}
.ot-fav:hover { transform: scale(1.08); color: #e11d48; }
.ot-fav:focus-visible { outline: 2px solid #e11d48; outline-offset: 2px; }
.ot-fav.saved { color: #e11d48; background: #fff; }
.ot-fav.saved i { animation: ot-fav-pop .3s ease; }
@keyframes ot-fav-pop { 0% { transform: scale(.6); } 60% { transform: scale(1.25); } 100% { transform: scale(1); } }

/* Product page "Save" (next to Share) */
.hero-meta-action.ot-fav-inline { border: 0; background: none; padding: 0; font: inherit; color: inherit; cursor: pointer; }
.hero-meta-action.ot-fav-inline.saved, .hero-meta-action.ot-fav-inline.saved i { color: #e11d48; }

/* Profile > My Saved Favourites: as many cards as fit */
.ot-tsug.ot-fav-list { max-width: none; margin: 0; }
.ot-fav-list .ot-tsug-grid, .ot-fav-list .ot-tsug-grid:has(> :only-child) { grid-template-columns: repeat(auto-fill, minmax(220px, 1fr)); }

/* Fallback toast when toastr is not on the page */
.ot-fav-toast {
    position: fixed; left: 50%; bottom: 24px; transform: translateX(-50%); z-index: 2000; padding: 10px 18px; border-radius: 10px;
    background: #1d2433; color: #fff; font-size: 14px; box-shadow: 0 8px 24px rgba(0, 0, 0, .2); transition: opacity .4s;
}
.ot-fav-toast.out { opacity: 0; }

@media (prefers-reduced-motion: reduce) { .ot-fav, .ot-fav.saved i { transition: none; animation: none; } }
