/* Default (TRANSPARENT) -> ikut tema */
.rating-badge{
margin: 0;
line-height: 1.5;
text-align: right;
}
.rating-label{
display: block;
font-size: 10px;
font-weight: 500;
color: inherit;
opacity: .75;
}
.rating-row{
display: flex;
align-items: center;
gap: 8px;
justify-content: flex-start;
}
.rating-score,
.rating-stars{
font-size: 13px;
color: inherit;
}
/* ============================
BINTANG + GLOW (INFINITE)
============================ */
.rating-stars{
display: inline-flex;
gap: 1px;
}
.rating-stars .star{
display: inline-block;
transform: scale(0);
opacity: 0;
/* glow */
filter: drop-shadow(0 0 0 rgba(255, 200, 0, 0));
animation: clingGlow 1.8s cubic-bezier(.2,1.2,.3,1) infinite;
}
.rating-stars .star:nth-child(1){ animation-delay: 0.00s; }
.rating-stars .star:nth-child(2){ animation-delay: 0.10s; }
.rating-stars .star:nth-child(3){ animation-delay: 0.20s; }
.rating-stars .star:nth-child(4){ animation-delay: 0.30s; }
.rating-stars .star:nth-child(5){ animation-delay: 0.40s; }
@keyframes clingGlow{
0%{
transform: scale(0);
opacity: 0;
filter: drop-shadow(0 0 0 rgba(255, 200, 0, 0));
}
18%{
transform: scale(1.35);
opacity: 1;
filter:
drop-shadow(0 0 6px rgba(255, 200, 0, .9))
drop-shadow(0 0 14px rgba(255, 200, 0, .6));
}
28%{
transform: scale(1);
opacity: 1;
filter:
drop-shadow(0 0 3px rgba(255, 200, 0, .7))
drop-shadow(0 0 8px rgba(255, 200, 0, .35));
}
80%{
transform: scale(1);
opacity: 1;
filter: drop-shadow(0 0 0 rgba(255, 200, 0, 0));
}
100%{
transform: scale(0);
opacity: 0;
filter: drop-shadow(0 0 0 rgba(255, 200, 0, 0));
}
}
/* Mode STICKY -> style kamu */
body.is-sticky .rating-label{
color: #666;
opacity: 1;
}
body.is-sticky .rating-score{
color: #3E4B3C;
font-weight: 800;
}
body.is-sticky .rating-stars{
color: #3E4B3C;
letter-spacing: 1px;
}
document.addEventListener("DOMContentLoaded", () => {
const stickyTarget = document.querySelector(".elementor-sticky--effects");
const checkSticky = () => {
const isSticky =
stickyTarget && stickyTarget.classList.contains("elementor-sticky--active");
document.body.classList.toggle("is-sticky", !!isSticky);
};
checkSticky();
window.addEventListener("scroll", checkSticky, { passive: true });
});
/* Default (TRANSPARENT) -> ikut tema */
.rating-badge{
margin: 0;
line-height: 1.5;
text-align: right;
}
.rating-label{
display: block;
font-size: 10px;
font-weight: 500;
color: inherit;
opacity: .75;
}
.rating-row{
display: flex;
align-items: center;
gap: 8px;
justify-content: flex-start;
}
.rating-score,
.rating-stars{
font-size: 13px;
color: inherit;
}
/* ============================
BINTANG + GLOW (INFINITE)
============================ */
.rating-stars{
display: inline-flex;
gap: 1px;
}
.rating-stars .star{
display: inline-block;
transform: scale(0);
opacity: 0;
/* glow */
filter: drop-shadow(0 0 0 rgba(255, 200, 0, 0));
animation: clingGlow 1.8s cubic-bezier(.2,1.2,.3,1) infinite;
}
.rating-stars .star:nth-child(1){ animation-delay: 0.00s; }
.rating-stars .star:nth-child(2){ animation-delay: 0.10s; }
.rating-stars .star:nth-child(3){ animation-delay: 0.20s; }
.rating-stars .star:nth-child(4){ animation-delay: 0.30s; }
.rating-stars .star:nth-child(5){ animation-delay: 0.40s; }
@keyframes clingGlow{
0%{
transform: scale(0);
opacity: 0;
filter: drop-shadow(0 0 0 rgba(255, 200, 0, 0));
}
18%{
transform: scale(1.35);
opacity: 1;
filter:
drop-shadow(0 0 6px rgba(255, 200, 0, .9))
drop-shadow(0 0 14px rgba(255, 200, 0, .6));
}
28%{
transform: scale(1);
opacity: 1;
filter:
drop-shadow(0 0 3px rgba(255, 200, 0, .7))
drop-shadow(0 0 8px rgba(255, 200, 0, .35));
}
80%{
transform: scale(1);
opacity: 1;
filter: drop-shadow(0 0 0 rgba(255, 200, 0, 0));
}
100%{
transform: scale(0);
opacity: 0;
filter: drop-shadow(0 0 0 rgba(255, 200, 0, 0));
}
}
/* Mode STICKY -> style kamu */
body.is-sticky .rating-label{
color: #666;
opacity: 1;
}
body.is-sticky .rating-score{
color: #3E4B3C;
font-weight: 800;
}
body.is-sticky .rating-stars{
color: #3E4B3C;
letter-spacing: 1px;
}
document.addEventListener("DOMContentLoaded", () => {
const stickyTarget = document.querySelector(".elementor-sticky--effects");
const checkSticky = () => {
const isSticky =
stickyTarget && stickyTarget.classList.contains("elementor-sticky--active");
document.body.classList.toggle("is-sticky", !!isSticky);
};
checkSticky();
window.addEventListener("scroll", checkSticky, { passive: true });
});






