.fp-icon {
    width: 22px;
    height: 22px;
    display: inline-block;
    position: relative;
    flex: 0 0 22px;
    color: currentColor;
}

.fp-icon.small {
    width: 18px;
    height: 18px;
    flex-basis: 18px;
}

.fp-icon.big {
    width: 30px;
    height: 30px;
    flex-basis: 30px;
}

/* Search */
.fp-icon-search::before {
    content: "";
    position: absolute;
    width: 12px;
    height: 12px;
    border: 3px solid currentColor;
    border-radius: 50%;
    top: 2px;
    left: 2px;
}

.fp-icon-search::after {
    content: "";
    position: absolute;
    width: 10px;
    height: 3px;
    border-radius: 999px;
    background: currentColor;
    right: 2px;
    bottom: 3px;
    transform: rotate(45deg);
}

/* Bell */
.fp-icon-bell::before {
    content: "";
    position: absolute;
    width: 16px;
    height: 15px;
    left: 3px;
    top: 4px;
    border: 3px solid currentColor;
    border-bottom: 0;
    border-radius: 12px 12px 4px 4px;
}

.fp-icon-bell::after {
    content: "";
    position: absolute;
    width: 18px;
    height: 3px;
    left: 2px;
    bottom: 3px;
    border-radius: 999px;
    background: currentColor;
    box-shadow: 7px 5px 0 -1px currentColor;
}

/* Heart */
.fp-icon-heart::before,
.fp-icon-heart::after {
    content: "";
    position: absolute;
    width: 12px;
    height: 18px;
    top: 2px;
    background: currentColor;
    border-radius: 12px 12px 0 0;
}

.fp-icon-heart::before {
    left: 10px;
    transform: rotate(-45deg);
    transform-origin: 0 100%;
}

.fp-icon-heart::after {
    left: 0;
    transform: rotate(45deg);
    transform-origin: 100% 100%;
}

.fp-icon-heart-outline::before,
.fp-icon-heart-outline::after {
    content: "";
    position: absolute;
    width: 12px;
    height: 18px;
    top: 2px;
    border: 3px solid currentColor;
    border-bottom: 0;
    border-radius: 12px 12px 0 0;
}

.fp-icon-heart-outline::before {
    left: 10px;
    transform: rotate(-45deg);
    transform-origin: 0 100%;
}

.fp-icon-heart-outline::after {
    left: 0;
    transform: rotate(45deg);
    transform-origin: 100% 100%;
}

/* Bookmark */
.fp-icon-bookmark {
    border-radius: 4px 4px 2px 2px;
    background: currentColor;
    clip-path: polygon(0 0, 100% 0, 100% 100%, 50% 72%, 0 100%);
}

/* Plus */
.fp-icon-plus::before,
.fp-icon-plus::after {
    content: "";
    position: absolute;
    left: 50%;
    top: 50%;
    width: 18px;
    height: 3px;
    border-radius: 999px;
    background: currentColor;
    transform: translate(-50%, -50%);
}

.fp-icon-plus::after {
    transform: translate(-50%, -50%) rotate(90deg);
}

/* Check / Close */
.fp-icon-check::before {
    content: "";
    position: absolute;
    width: 16px;
    height: 8px;
    left: 3px;
    top: 5px;
    border-left: 4px solid currentColor;
    border-bottom: 4px solid currentColor;
    transform: rotate(-45deg);
}

.fp-icon-close::before,
.fp-icon-close::after {
    content: "";
    position: absolute;
    width: 20px;
    height: 3px;
    left: 1px;
    top: 10px;
    border-radius: 999px;
    background: currentColor;
}

.fp-icon-close::before {
    transform: rotate(45deg);
}

.fp-icon-close::after {
    transform: rotate(-45deg);
}

/* Lock */
.fp-icon-lock::before {
    content: "";
    position: absolute;
    width: 14px;
    height: 11px;
    left: 4px;
    bottom: 2px;
    border-radius: 5px;
    background: currentColor;
}

.fp-icon-lock::after {
    content: "";
    position: absolute;
    width: 12px;
    height: 12px;
    left: 5px;
    top: 2px;
    border: 3px solid currentColor;
    border-bottom: 0;
    border-radius: 12px 12px 0 0;
}

/* Wave */
.fp-icon-wave {
    border: 3px solid currentColor;
    border-radius: 50%;
}

.fp-icon-wave::before {
    content: "";
    position: absolute;
    width: 14px;
    height: 4px;
    right: -10px;
    top: 6px;
    border-radius: 999px;
    background: currentColor;
    transform: rotate(-35deg);
}

.fp-icon-wave::after {
    content: "";
    position: absolute;
    width: 10px;
    height: 4px;
    right: -9px;
    top: 13px;
    border-radius: 999px;
    background: currentColor;
    transform: rotate(28deg);
}

/* Smile */
.fp-icon-smile {
    border: 3px solid currentColor;
    border-radius: 50%;
}

.fp-icon-smile::before {
    content: "";
    position: absolute;
    width: 3px;
    height: 3px;
    left: 5px;
    top: 6px;
    border-radius: 50%;
    background: currentColor;
    box-shadow: 8px 0 0 currentColor;
}

.fp-icon-smile::after {
    content: "";
    position: absolute;
    width: 10px;
    height: 6px;
    left: 3px;
    bottom: 4px;
    border-bottom: 3px solid currentColor;
    border-radius: 0 0 20px 20px;
}

/* Flower */
.fp-icon-flower::before {
    content: "";
    position: absolute;
    inset: 7px;
    border-radius: 50%;
    background: currentColor;
    box-shadow:
        0 -8px 0 currentColor,
        0 8px 0 currentColor,
        -8px 0 0 currentColor,
        8px 0 0 currentColor;
}

.fp-icon-flower::after {
    content: "";
    position: absolute;
    width: 4px;
    height: 10px;
    left: 9px;
    bottom: -1px;
    border-radius: 999px;
    background: currentColor;
}

/* Popcorn */
.fp-icon-popcorn {
    border: 3px solid currentColor;
    border-top: 0;
    border-radius: 0 0 6px 6px;
}

.fp-icon-popcorn::before {
    content: "";
    position: absolute;
    top: -6px;
    left: 1px;
    width: 6px;
    height: 6px;
    border-radius: 50%;
    background: currentColor;
    box-shadow: 6px -2px 0 currentColor, 12px 0 0 currentColor;
}

.fp-icon-popcorn::after {
    content: "";
    position: absolute;
    width: 3px;
    height: 14px;
    top: 4px;
    left: 5px;
    background: currentColor;
    box-shadow: 7px 0 0 currentColor;
    opacity: .35;
}

/* Film */
.fp-icon-film {
    border: 3px solid currentColor;
    border-radius: 5px;
}

.fp-icon-film::before {
    content: "";
    position: absolute;
    inset: 4px;
    border-top: 3px solid currentColor;
    border-bottom: 3px solid currentColor;
}

.fp-icon-film::after {
    content: "";
    position: absolute;
    width: 3px;
    top: 2px;
    bottom: 2px;
    left: 5px;
    background: currentColor;
    box-shadow: 9px 0 0 currentColor;
    opacity: .45;
}

/* Buddy */
.fp-icon-buddy::before,
.fp-icon-buddy::after {
    content: "";
    position: absolute;
    top: 4px;
    width: 9px;
    height: 14px;
    border-radius: 999px;
    background: currentColor;
}

.fp-icon-buddy::before {
    left: 2px;
}

.fp-icon-buddy::after {
    right: 2px;
}

.fp-icon-buddy {
    border-bottom: 4px solid currentColor;
    border-radius: 0 0 10px 10px;
}

/* Mic / Subtitle */
.fp-icon-mic::before {
    content: "";
    position: absolute;
    width: 10px;
    height: 16px;
    left: 6px;
    top: 1px;
    border-radius: 999px;
    border: 3px solid currentColor;
}

.fp-icon-mic::after {
    content: "";
    position: absolute;
    width: 16px;
    height: 9px;
    left: 3px;
    top: 10px;
    border-bottom: 3px solid currentColor;
    border-radius: 0 0 14px 14px;
    box-shadow: 6px 8px 0 -4px currentColor;
}

.fp-icon-subtitle::before {
    content: "";
    position: absolute;
    inset: 2px;
    border: 3px solid currentColor;
    border-radius: 6px;
}

.fp-icon-subtitle::after {
    content: "";
    position: absolute;
    width: 12px;
    height: 3px;
    left: 5px;
    top: 8px;
    border-radius: 999px;
    background: currentColor;
    box-shadow: 0 6px 0 currentColor;
}

/* Profile follow button — standard person silhouette (legacy CSS icon; prefer SVG glyph partials) */
.fp-icon-person-btn::before {
    content: "";
    position: absolute;
    width: 7px;
    height: 7px;
    left: 50%;
    top: 2px;
    transform: translateX(-50%);
    border-radius: 50%;
    background: currentColor;
}

.fp-icon-person-btn::after {
    content: "";
    position: absolute;
    width: 14px;
    height: 7px;
    left: 50%;
    bottom: 2px;
    transform: translateX(-50%);
    border-radius: 9px 9px 3px 3px;
    background: currentColor;
}

/* User */
.fp-icon-user::before {
    content: "";
    position: absolute;
    width: 10px;
    height: 10px;
    left: 6px;
    top: 2px;
    border-radius: 50%;
    background: currentColor;
}

.fp-icon-user::after {
    content: "";
    position: absolute;
    width: 18px;
    height: 10px;
    left: 2px;
    bottom: 2px;
    border-radius: 12px 12px 4px 4px;
    background: currentColor;
}

/* Reaction buttons */
.fp-reaction-icon {
    width: 42px;
    height: 42px;
    display: grid;
    place-items: center;
    border-radius: 16px;
    color: #cfe5ff;
    background:
        radial-gradient(circle at 30% 20%, rgba(255,255,255,.2), transparent 38%),
        rgba(47,123,255,.14);
    border: 1px solid rgba(87,161,255,.28);
}

.fp-reaction-icon .fp-icon {
    width: 24px;
    height: 24px;
    flex-basis: 24px;
}

/* Search button override: remove tiny text icons like ⌕ */
.search-open-btn {
    font-size: 0 !important;
    position: relative;
}

.search-open-btn::before {
    content: "";
    width: 24px;
    height: 24px;
    display: block;
    color: currentColor;
    background: none;
}

.search-open-btn::after {
    content: "";
    position: absolute;
    width: 12px;
    height: 12px;
    border: 3px solid currentColor;
    border-radius: 50%;
    top: 10px;
    left: 10px;
    box-shadow: 9px 9px 0 -7px currentColor;
}

.search-open-btn i,
.search-open-btn svg,
.search-open-btn span {
    display: none !important;
}
.fp-icon-ban::before {
    content: "";
    position: absolute;
    inset: 2px;
    border: 3px solid currentColor;
    border-radius: 50%;
}

.fp-icon-ban::after {
    content: "";
    position: absolute;
    width: 20px;
    height: 3px;
    left: 1px;
    top: 10px;
    border-radius: 999px;
    background: currentColor;
    transform: rotate(-45deg);
}

.fp-icon-key::before {
    content: "";
    position: absolute;
    width: 9px;
    height: 9px;
    left: 1px;
    top: 6px;
    border: 3px solid currentColor;
    border-radius: 50%;
}

.fp-icon-key::after {
    content: "";
    position: absolute;
    width: 15px;
    height: 4px;
    right: 1px;
    top: 10px;
    border-radius: 999px;
    background: currentColor;
    box-shadow: -4px 5px 0 -1px currentColor;
}

.wishlist-heart,
.notification-bell-btn,
.profile-block-btn {
    display: inline-flex !important;
    align-items: center !important;
    justify-content: center !important;
}

.wishlist-heart .fp-icon,
.notification-bell-btn .fp-icon,
.profile-block-btn .fp-icon {
    display: block;
    margin: auto;
}

.wishlist-heart .fp-icon-heart,
.wishlist-heart .fp-icon-heart-outline {
    transform: translateX(1px);
}

.notification-bell-btn .fp-icon-bell {
    transform: translateY(1px);
}

.profile-block-btn {
    min-height: 44px;
    width: 52px;
    border: none;
    border-radius: 15px;
    color: #ffd5db;
    cursor: pointer;
    background: rgba(255,48,79,.12);
    border: 1px solid rgba(255,48,79,.28);
}

.profile-block-btn.active {
    color: white;
    background: rgba(255,48,79,.28);
}
.wishlist-heart,
.notification-bell-btn {
    display: inline-flex !important;
    align-items: center !important;
    justify-content: center !important;
    text-align: center !important;
    line-height: 1 !important;
    padding: 0 !important;
}

.wishlist-heart .fp-icon,
.notification-bell-btn .fp-icon {
    position: relative !important;
    display: block !important;
    margin: 0 auto !important;
    left: auto !important;
    right: auto !important;
    top: auto !important;
    transform: none !important;
}

.wishlist-heart .fp-icon-heart,
.wishlist-heart .fp-icon-heart-outline {
    transform: translateX(1px) translateY(1px) !important;
}

.notification-bell-btn .fp-icon-bell {
    transform: translateY(1px) !important;
}
/* FilmParty custom notification bell - clean glass/neon bell */
.fp-icon-bell {
    width: 24px !important;
    height: 24px !important;
    flex: 0 0 24px !important;
    display: inline-block !important;
    position: relative !important;
    color: currentColor !important;
    transform: none !important;
}

/* Bell dome/body */
.fp-icon-bell::before {
    content: "" !important;
    position: absolute !important;
    left: 5px !important;
    top: 4px !important;
    width: 14px !important;
    height: 15px !important;
    box-sizing: border-box !important;
    border: 2.4px solid currentColor !important;
    border-bottom: none !important;
    border-radius: 12px 12px 5px 5px !important;
    background:
        radial-gradient(circle at 50% 20%, rgba(255,255,255,.22), transparent 34%),
        rgba(255,255,255,.04) !important;
    box-shadow: none !important;
    transform: none !important;
}

/* Bell bottom line + clapper */
.fp-icon-bell::after {
    content: "" !important;
    position: absolute !important;
    left: 3px !important;
    top: 17px !important;
    width: 18px !important;
    height: 3px !important;
    border-radius: 999px !important;
    background: currentColor !important;
    box-shadow:
        6.5px 4.5px 0 -1px currentColor,
        8.5px -15px 0 -2px currentColor !important;
    transform: none !important;
}

/* Better centering inside notification button */
.notification-bell-btn .fp-icon-bell {
    margin: 0 auto !important;
    transform: translateY(0) !important;
}
/* Fix FilmParty bell extra underline */
.fp-icon-bell::after {
    content: "" !important;
    position: absolute !important;
    left: 4px !important;
    top: 17px !important;
    width: 16px !important;
    height: 3px !important;
    border-radius: 999px !important;
    background: currentColor !important;
    box-shadow: 7px 4px 0 -1px currentColor !important;
    transform: none !important;
}

/* Small top handle of bell */
.fp-icon-bell .bell-handle {
    display: none !important;
}
.notification-bell-btn::before,
.notification-bell-btn::after {
    content: none !important;
    display: none !important;
}

/* FilmParty custom poster hearts */
.wishlist-heart {
    position: absolute;
    width: 42px !important;
    height: 42px !important;
    min-width: 42px !important;
    min-height: 42px !important;
    display: inline-flex !important;
    align-items: center !important;
    justify-content: center !important;
    padding: 0 !important;
    border-radius: 16px !important;
    color: #ffd5db !important;
    background:
        radial-gradient(circle at 32% 22%, rgba(255,255,255,.24), transparent 34%),
        rgba(7,17,31,.52) !important;
    border: 1px solid rgba(255,255,255,.18) !important;
    backdrop-filter: blur(18px) saturate(1.25) !important;
    -webkit-backdrop-filter: blur(18px) saturate(1.25) !important;
    box-shadow:
        0 14px 34px rgba(0,0,0,.34),
        inset 0 1px 0 rgba(255,255,255,.13) !important;
    overflow: visible !important;
    cursor: pointer !important;
    transition: .22s ease !important;
}

.wishlist-heart:hover {
    color: #ffffff !important;
    background:
        radial-gradient(circle at 32% 22%, rgba(255,255,255,.30), transparent 34%),
        rgba(255,48,79,.24) !important;
    border-color: rgba(255,135,154,.42) !important;
    transform: translateY(-1px) scale(1.03);
}

.wishlist-heart:active {
    transform: scale(.96);
}

.wishlist-heart .fp-icon {
    position: relative !important;
    display: block !important;
    width: 22px !important;
    height: 22px !important;
    flex: 0 0 22px !important;
    margin: 0 !important;
    left: auto !important;
    right: auto !important;
    top: auto !important;
    transform: translateX(1px) translateY(1px) !important;
}

/* Active heart state */
.wishlist-heart.active {
    color: white !important;
    background:
        radial-gradient(circle at 32% 22%, rgba(255,255,255,.28), transparent 34%),
        linear-gradient(135deg, rgba(255,48,79,.82), rgba(255,99,132,.58)) !important;
    border-color: rgba(255,170,185,.62) !important;
    box-shadow:
        0 16px 38px rgba(255,48,79,.28),
        inset 0 1px 0 rgba(255,255,255,.16) !important;
}

/* Make filled heart more premium */
.wishlist-heart.active .fp-icon-heart {
    filter: drop-shadow(0 5px 12px rgba(255,48,79,.42));
}
/* Final precise centering for poster wishlist hearts */
.wishlist-heart {
    width: 42px !important;
    height: 42px !important;
    min-width: 42px !important;
    min-height: 42px !important;
    display: flex !important;
    align-items: center !important;
    justify-content: center !important;
    padding: 0 !important;
    line-height: 0 !important;
    text-align: center !important;
    overflow: hidden !important;
}

/* Reset icon box */
.wishlist-heart .fp-icon,
.wishlist-heart .fp-icon-heart,
.wishlist-heart .fp-icon-heart-outline {
    position: relative !important;
    width: 22px !important;
    height: 22px !important;
    min-width: 22px !important;
    min-height: 22px !important;
    flex: 0 0 22px !important;
    display: block !important;
    margin: 0 !important;
    padding: 0 !important;
    inset: auto !important;
    left: auto !important;
    right: auto !important;
    top: auto !important;
    bottom: auto !important;
    transform: none !important;
    translate: none !important;
}

/* Filled heart: rebuild centered */
.wishlist-heart .fp-icon-heart::before,
.wishlist-heart .fp-icon-heart::after {
    content: "" !important;
    position: absolute !important;
    top: 3px !important;
    width: 11px !important;
    height: 17px !important;
    background: currentColor !important;
    border: none !important;
    border-radius: 11px 11px 0 0 !important;
    box-shadow: none !important;
}

.wishlist-heart .fp-icon-heart::before {
    left: 11px !important;
    transform: rotate(-45deg) !important;
    transform-origin: 0 100% !important;
}

.wishlist-heart .fp-icon-heart::after {
    left: 0 !important;
    transform: rotate(45deg) !important;
    transform-origin: 100% 100% !important;
}

/* Outline heart: rebuild centered */
.wishlist-heart .fp-icon-heart-outline::before,
.wishlist-heart .fp-icon-heart-outline::after {
    content: "" !important;
    position: absolute !important;
    top: 3px !important;
    width: 11px !important;
    height: 17px !important;
    background: transparent !important;
    border: 2.4px solid currentColor !important;
    border-bottom: 0 !important;
    border-radius: 11px 11px 0 0 !important;
    box-shadow: none !important;
    box-sizing: border-box !important;
}

.wishlist-heart .fp-icon-heart-outline::before {
    left: 11px !important;
    transform: rotate(-45deg) !important;
    transform-origin: 0 100% !important;
}

.wishlist-heart .fp-icon-heart-outline::after {
    left: 0 !important;
    transform: rotate(45deg) !important;
    transform-origin: 100% 100% !important;
}

/* Prevent inherited pseudo/extra effects */
.wishlist-heart::before,
.wishlist-heart::after {
    pointer-events: none !important;
}

/* Keep button position on poster only */
.movie-card .wishlist-heart,
.film-card .wishlist-heart,
.poster-card .wishlist-heart,
.home-movie-card .wishlist-heart {
    top: 10px !important;
    left: 10px !important;
    right: auto !important;
    z-index: 20 !important;
}
/* FilmParty clean bell icon - final redesign, no underline */
.fp-icon-bell {
    width: 24px !important;
    height: 24px !important;
    min-width: 24px !important;
    min-height: 24px !important;
    flex: 0 0 24px !important;
    display: inline-block !important;
    position: relative !important;
    color: currentColor !important;
    background: none !important;
    border: none !important;
    box-shadow: none !important;
    transform: none !important;
    overflow: visible !important;
}

/* Bell body */
.fp-icon-bell::before {
    content: "" !important;
    position: absolute !important;
    left: 4px !important;
    top: 5px !important;
    width: 16px !important;
    height: 15px !important;
    box-sizing: border-box !important;

    background:
        radial-gradient(circle at 50% 18%, rgba(255,255,255,.22), transparent 34%),
        rgba(255,255,255,.035) !important;

    border: 2.4px solid currentColor !important;
    border-top-left-radius: 12px !important;
    border-top-right-radius: 12px !important;
    border-bottom-left-radius: 7px !important;
    border-bottom-right-radius: 7px !important;

    box-shadow:
        inset 0 1px 0 rgba(255,255,255,.16),
        0 0 10px rgba(120,180,255,.12) !important;

    transform: none !important;
}

/* Bell handle + clapper, no underline */
.fp-icon-bell::after {
    content: "" !important;
    position: absolute !important;
    left: 9.5px !important;
    top: 20px !important;
    width: 5px !important;
    height: 5px !important;
    border-radius: 999px !important;
    background: currentColor !important;
    border: none !important;

    /* top small handle only */
    box-shadow: 0 -18.5px 0 -1px currentColor !important;

    transform: none !important;
}

/* Keep bell centered inside notification button */
.notification-bell-btn .fp-icon-bell {
    margin: 0 auto !important;
    transform: translateY(0) !important;
}

/* Remove any accidental pseudo effects from the button itself */
.notification-bell-btn::before,
.notification-bell-btn::after {
    content: none !important;
    display: none !important;
}
