/*=====================================================
    K-VOTE
    ON-GOING VOTING
    PART 3A
======================================================*/

/*==============================
    HERO
==============================*/

.voting-hero{

    position:relative;

    overflow:hidden;

    padding:90px 0 70px;

    background:
    linear-gradient(
        135deg,
        #ff4fa2 0%,
        #7b5cff 100%
    );

    color:#fff;

}

.voting-hero::before{

    content:"";

    position:absolute;

    top:-120px;
    right:-120px;

    width:350px;
    height:350px;

    border-radius:50%;

    background:rgba(255,255,255,.08);

}

.voting-hero::after{

    content:"";

    position:absolute;

    bottom:-100px;
    left:-100px;

    width:280px;
    height:280px;

    border-radius:50%;

    background:rgba(255,255,255,.08);

}

.hero-content{

    position:relative;

    z-index:2;

    max-width:750px;

}

.hero-badge{

    display:inline-block;

    padding:10px 22px;

    border-radius:30px;

    background:rgba(255,255,255,.18);

    backdrop-filter:blur(8px);

    margin-bottom:20px;

    font-size:14px;

    font-weight:600;

    letter-spacing:.5px;

}

.hero-content h1{

    font-size:56px;

    font-weight:700;

    margin-bottom:18px;

}

.hero-content p{

    font-size:18px;

    line-height:1.8;

    opacity:.95;

    max-width:650px;

}

/*==============================
    SEARCH
==============================*/

.search-section{

    margin-top:-35px;

    position:relative;

    z-index:5;

}

.search-box{

    background:#fff;

    border-radius:60px;

    display:flex;

    align-items:center;

    box-shadow:0 20px 45px rgba(0,0,0,.08);

    padding:10px 20px;

}

.search-box i{

    color:#999;

    font-size:22px;

    margin-right:12px;

}

.search-box input{

    width:100%;

    border:none;

    outline:none;

    font-size:16px;

    background:transparent;

    padding:10px 0;

}

.ongoing-selection{

    display:grid;

    grid-template-columns:repeat(2,minmax(0,1fr));

    gap:16px;

    margin:30px 0 10px;

    padding:20px;

    background:#fff;

    border:1px solid rgba(35,25,55,.08);

    border-radius:18px;

    box-shadow:0 10px 30px rgba(25,15,45,.06);

}

.ongoing-selection label{

    display:flex;

    flex-direction:column;

    gap:7px;

    min-width:0;

    color:#5f596b;

    font-size:12px;

    font-weight:600;

}

.ongoing-selection select{

    width:100%;

    min-width:0;

    height:46px;

    padding:0 14px;

    border:1px solid #e8e4ef;

    border-radius:12px;

    background:#faf9fc;

    color:#282334;

    font:inherit;

    font-size:14px;

}

.ongoing-selection select:focus{

    outline:none;

    border-color:#a86aff;

    box-shadow:0 0 0 3px rgba(168,106,255,.13);

}

.ongoing-search{

    grid-column:1 / -1;

    min-width:0;

}

/*==============================
    SECTION TITLE
==============================*/

.section-title{

    display:flex;

    justify-content:space-between;

    align-items:center;

    margin-bottom:30px;

}

.section-title h2{

    font-size:34px;

    font-weight:700;

    margin-bottom:8px;

}

.section-title p{

    color:#777;

    margin:0;

}

/*==============================
    FEATURED CARD
==============================*/

.featured-card{

    background:#fff;

    border-radius:30px;

    padding:45px;

    box-shadow:0 20px 45px rgba(0,0,0,.08);

    overflow:hidden;

    position:relative;

}

.featured-card::before{

    content:"";

    position:absolute;

    top:-80px;
    right:-80px;

    width:220px;
    height:220px;

    border-radius:50%;

    background:rgba(255,79,162,.08);

}

.featured-content{

    position:relative;

    z-index:2;

}

.featured-badge{

    display:inline-block;

    padding:8px 18px;

    border-radius:30px;

    background:#ffe4f1;

    color:#ff4fa2;

    font-weight:600;

    margin-bottom:18px;

}

.featured-content h2{

    font-size:38px;

    font-weight:700;

    margin-bottom:18px;

}

.featured-content p{

    color:#666;

    line-height:1.8;

    margin-bottom:30px;

}

/*==============================
    INFO BOX
==============================*/

.featured-info{

    display:flex;

    gap:18px;

    flex-wrap:wrap;

    margin-bottom:30px;

}

.info-box{

    display:flex;

    align-items:center;

    gap:15px;

    background:#fafafa;

    padding:15px 18px;

    border-radius:18px;

}

.info-box i{

    width:55px;

    height:55px;

    border-radius:50%;

    display:flex;

    justify-content:center;

    align-items:center;

    background:linear-gradient(
        135deg,
        #ff4fa2,
        #7b5cff
    );

    color:#fff;

    font-size:22px;

}

.info-box small{

    display:block;

    color:#777;

}

.info-box strong{

    font-size:18px;

}

/*==============================
    COUNTDOWN
==============================*/

.countdown-card{

    background:linear-gradient(
        135deg,
        #ff4fa2,
        #7b5cff
    );

    color:#fff;

    border-radius:28px;

    padding:35px;

    text-align:center;

    box-shadow:0 20px 45px rgba(123,92,255,.35);

}

.status-live{

    display:inline-block;

    padding:8px 20px;

    background:#fff;

    color:#ff4fa2;

    border-radius:30px;

    font-weight:700;

    margin-bottom:20px;

}

.countdown{

    display:grid;

    grid-template-columns:repeat(4,1fr);

    gap:15px;

    margin-top:30px;

}

.time-box{

    background:rgba(255,255,255,.18);

    border-radius:18px;

    padding:18px 10px;

    backdrop-filter:blur(8px);

}

.time-box span{

    display:block;

    font-size:34px;

    font-weight:700;

}

.time-box small{

    opacity:.9;

}

.progress{

    height:12px;

    border-radius:20px;

    background:rgba(255,255,255,.25);

}

.progress-info{

    display:flex;

    justify-content:space-between;

    margin-top:15px;

    font-size:14px;

}

/*==============================
    FEATURED BUTTON
==============================*/

.vote-feature-btn{

    padding:14px 32px;

    border-radius:40px;

    font-size:16px;

    font-weight:600;

}

.vote-feature-btn i{

    margin-right:8px;

}

/*=====================================================
    K-VOTE
    ON-GOING VOTING
    PART 3B
======================================================*/

/*==============================
    NOMINEE SECTION
==============================*/

#nomineeContainer{

    margin-top:15px;

}

/*==============================
    NOMINEE CARD
==============================*/

.nominee-card{

    background:#ffffff;

    border-radius:24px;

    overflow:hidden;

    box-shadow:0 15px 35px rgba(0,0,0,.08);

    transition:.35s ease;

    position:relative;

    height:100%;

}

.nominee-card:hover{

    transform:translateY(-10px);

    box-shadow:0 25px 50px rgba(0,0,0,.15);

}

.nominee-image-wrapper{
    position:relative;
    overflow:hidden;
}

.nominee-image{
    display:block;
    width:100%;
    height:340px;
    object-fit:cover;
    transition:.4s;
}

.nominee-card:hover .nominee-image{
    transform:scale(1.06);
}

.nominee-rank{
    position:absolute;
    top:14px;
    left:14px;
    padding:7px 12px;
    border-radius:30px;
    color:#fff;
    background:linear-gradient(135deg,#ff4fa2,#7b5cff);
    font-size:13px;
    font-weight:700;
}

.nominee-champion-crown{
    position:absolute;
    right:12px;
    top:12px;
    padding:7px 10px;
    border-radius:22px;
    color:#6c4b00;
    background:#ffe7a3;
    font-size:11px;
    font-weight:800;
}

.nominee-round{
    margin:0 0 10px;
    color:#6e617f;
    font-size:12px;
    line-height:1.5;
}

.nominee-description{
    margin:0 0 12px;
    color:#777;
    font-size:13px;
    line-height:1.5;
}

.nominee-round{
    color:#7b5cff;
}

.nominee-card .vote-btn:disabled{
    cursor:not-allowed;
    opacity:.55;
}

/*==============================
    NOMINEE IMAGE
==============================*/

.nominee-image-wrap{

    position:relative;

    overflow:hidden;

}

.nominee-img{

    width:100%;

    height:340px;

    object-fit:cover;

    transition:.4s;

    display:block;

}

.nominee-card:hover .nominee-img{

    transform:scale(1.08);

}

/*==============================
    RANK BADGE
==============================*/

.rank-badge{

    position:absolute;

    top:18px;

    left:18px;

    background:linear-gradient(
        135deg,
        #ff4fa2,
        #7b5cff
    );

    color:#fff;

    padding:8px 16px;

    border-radius:50px;

    font-weight:700;

    font-size:15px;

    z-index:10;

    box-shadow:0 8px 20px rgba(0,0,0,.15);

}

/*==============================
    CARD BODY
==============================*/

.nominee-body{

    padding:25px;

}

.nominee-category{

    display:inline-block;

    padding:6px 14px;

    border-radius:30px;

    background:#ffe6f2;

    color:#ff4fa2;

    font-size:13px;

    font-weight:600;

    margin-bottom:12px;

}

.nominee-body h4{

    font-size:24px;

    font-weight:700;

    margin-bottom:15px;

    color:#222;

}

/*==============================
    VOTE COUNT
==============================*/

.vote-count{

    display:flex;

    align-items:center;

    gap:8px;

    color:#777;

    margin-bottom:18px;

    font-weight:500;

}

.vote-count i{

    color:#ff4fa2;

}

/*==============================
    PROGRESS BAR
==============================*/

.nominee-progress{

    height:10px;

    background:#ececec;

    border-radius:20px;

    overflow:hidden;

    margin-bottom:22px;

}

.nominee-progress .progress-bar{

    background:linear-gradient(
        90deg,
        #ff4fa2,
        #7b5cff
    );

    border-radius:20px;

    transition:width .8s ease;

}

/*==============================
    VOTE BUTTON
==============================*/

.vote-btn{

    width:100%;

    border:none;

    border-radius:50px;

    padding:14px;

    font-size:16px;

    font-weight:600;

    transition:.35s;

}

.vote-btn i{

    margin-right:8px;

}

.vote-btn:hover{

    transform:translateY(-4px);

    box-shadow:0 12px 25px rgba(255,79,162,.35);

}

/*==============================
    CARD SHINE EFFECT
==============================*/

.nominee-card::before{

    content:"";

    position:absolute;

    top:-120%;

    left:-60%;

    width:80px;

    height:300%;

    background:rgba(255,255,255,.35);

    transform:rotate(25deg);

    transition:.7s;

}

.nominee-card:hover::before{

    left:140%;

}

/*==============================
    PAGINATION
==============================*/

.pagination-section{

    margin-top:60px;

    margin-bottom:70px;

}

.pagination .page-item{

    margin:0 6px;

}

.pagination .page-link{

    width:48px;

    height:48px;

    border-radius:50%;

    border:none;

    display:flex;

    align-items:center;

    justify-content:center;

    font-weight:600;

    color:#555;

    background:#fff;

    box-shadow:0 8px 20px rgba(0,0,0,.08);

    transition:.3s;

}

.pagination .page-link:hover{

    color:#fff;

    background:linear-gradient(
        135deg,
        #ff4fa2,
        #7b5cff
    );

}

.pagination .page-item.active .page-link{

    color:#fff;

    background:linear-gradient(
        135deg,
        #ff4fa2,
        #7b5cff
    );

    box-shadow:0 12px 30px rgba(123,92,255,.35);

}

.pagination .page-item.disabled .page-link{

    opacity:.45;

    pointer-events:none;

}

/*==============================
    ANIMATIONS
==============================*/

.nominee-card{

    animation:cardFade .6s ease both;

}

@keyframes cardFade{

    from{

        opacity:0;

        transform:translateY(30px);

    }

    to{

        opacity:1;

        transform:translateY(0);

    }

}

/*==============================
    STAGGER EFFECT
==============================*/

#nomineeContainer .col-xl-3:nth-child(1){

    animation-delay:.1s;

}

#nomineeContainer .col-xl-3:nth-child(2){

    animation-delay:.2s;

}

#nomineeContainer .col-xl-3:nth-child(3){

    animation-delay:.3s;

}

#nomineeContainer .col-xl-3:nth-child(4){

    animation-delay:.4s;

}

/*=====================================================
    K-VOTE
    ON-GOING VOTING
    PART 3C
    RESPONSIVE + FINAL POLISH
======================================================*/


/*==============================
    GLASSMORPHISM
==============================*/

.glass{

    background:rgba(255,255,255,.18);

    backdrop-filter:blur(18px);

    -webkit-backdrop-filter:blur(18px);

    border:1px solid rgba(255,255,255,.25);

}

.glass-dark{

    background:rgba(0,0,0,.18);

    backdrop-filter:blur(18px);

    -webkit-backdrop-filter:blur(18px);

}


/*==============================
    FLOATING ANIMATION
==============================*/

.float{

    animation:float 4s ease-in-out infinite;

}

@keyframes float{

    0%{

        transform:translateY(0);

    }

    50%{

        transform:translateY(-10px);

    }

    100%{

        transform:translateY(0);

    }

}


/*==============================
    FADE UP
==============================*/

.fade-up{

    animation:fadeUp .7s ease forwards;

}

@keyframes fadeUp{

    from{

        opacity:0;

        transform:translateY(35px);

    }

    to{

        opacity:1;

        transform:translateY(0);

    }

}


/*==============================
    PULSE
==============================*/

.pulse{

    animation:pulse 2s infinite;

}

@keyframes pulse{

    0%{

        box-shadow:0 0 0 0 rgba(255,79,162,.45);

    }

    70%{

        box-shadow:0 0 0 16px rgba(255,79,162,0);

    }

    100%{

        box-shadow:0 0 0 0 rgba(255,79,162,0);

    }

}


/*==============================
    IMAGE EFFECT
==============================*/

.nominee-img{

    transition:
    transform .45s ease,
    filter .45s ease;

}

.nominee-card:hover .nominee-img{

    filter:brightness(1.05);

}


/*==============================
    BUTTON EFFECT
==============================*/

.vote-btn:active{

    transform:scale(.97);

}

.vote-feature-btn:active{

    transform:scale(.97);

}


/*==============================
    SMOOTH SCROLL
==============================*/

html{

    scroll-behavior:smooth;

}


/*==============================
    CUSTOM SCROLLBAR
==============================*/

::-webkit-scrollbar{

    width:10px;

}

::-webkit-scrollbar-track{

    background:#f4f4f4;

}

::-webkit-scrollbar-thumb{

    background:linear-gradient(
        180deg,
        #ff4fa2,
        #7b5cff
    );

    border-radius:30px;

}

::-webkit-scrollbar-thumb:hover{

    opacity:.9;

}


/*==============================
    TABLET
==============================*/

@media (max-width:991px){

    .voting-hero{

        padding:70px 0 55px;

    }

    .hero-content h1{

        font-size:42px;

    }

    .featured-card{

        padding:35px;

    }

    .featured-content{

        margin-bottom:35px;

    }

    .countdown{

        grid-template-columns:repeat(4,1fr);

    }

    .nominee-img{

        height:300px;

    }

}


/*==============================
    MOBILE
==============================*/

@media (max-width:768px){

    .voting-hero{

        padding:60px 0 45px;

        text-align:center;

    }

    .hero-content h1{

        font-size:34px;

    }

    .hero-content p{

        font-size:15px;

    }

    .hero-badge{

        font-size:13px;

    }

    .search-section{

        margin-top:-25px;

    }

    .search-box{

        padding:8px 16px;

    }

    .search-box input{

        font-size:15px;

    }

    .featured-card{

        padding:25px;

        border-radius:22px;

    }

    .featured-content h2{

        font-size:28px;

    }

    .featured-info{

        flex-direction:column;

    }

    .countdown{

        grid-template-columns:repeat(2,1fr);

        gap:12px;

    }

    .time-box span{

        font-size:26px;

    }

    .progress-info{

        flex-direction:column;

        gap:8px;

        text-align:center;

    }

    .section-title{

        flex-direction:column;

        align-items:flex-start;

    }

    .section-title h2{

        font-size:28px;

    }

    .nominee-img{

        height:280px;

    }

    .nominee-body{

        padding:20px;

    }

    .pagination .page-link{

        width:42px;

        height:42px;

    }

}


/*==============================
    SMALL MOBILE
==============================*/

@media (max-width:576px){

    .pagination{

        flex-wrap:wrap;

        row-gap:8px;

    }

    .hero-content h1{

        font-size:30px;

    }

    .featured-content h2{

        font-size:24px;

    }

    .ongoing-selection{

        grid-template-columns:minmax(0,1fr);

        gap:12px;

        margin-top:22px;

        padding:16px;

    }

    .vote-btn{

        font-size:15px;

        padding:12px;

    }

    .vote-feature-btn{

        width:100%;

    }

    .nominee-img{

        height:240px;

    }

    .rank-badge{

        font-size:13px;

        padding:6px 12px;

    }

}


/*==============================
    EXTRA SMALL DEVICES
==============================*/

@media (max-width:400px){

    .hero-content h1{

        font-size:26px;

    }

    .hero-content p{

        font-size:14px;

    }

    .featured-card{

        padding:20px;

    }

    .countdown{

        gap:10px;

    }

    .time-box{

        padding:14px;

    }

    .time-box span{

        font-size:22px;

    }

    .nominee-img{

        height:220px;

    }

}


/*==============================
    UTILITIES
==============================*/

.shadow-hover{

    transition:.3s;

}

.shadow-hover:hover{

    box-shadow:0 20px 45px rgba(0,0,0,.15);

}

.rounded-xl{

    border-radius:24px;

}

.rounded-xxl{

    border-radius:32px;

}

.text-gradient{

    background:linear-gradient(
        90deg,
        #ff4fa2,
        #7b5cff
    );

    -webkit-background-clip:text;

    -webkit-text-fill-color:transparent;

}

.bg-gradient{

    background:linear-gradient(
        135deg,
        #ff4fa2,
        #7b5cff
    );

}

.transition{

    transition:.35s ease;

}

.cursor-pointer{

    cursor:pointer;

}

.overflow-hidden{

    overflow:hidden;

}

.object-cover{

    object-fit:cover;

}

.w-fit{

    width:fit-content;

}


/*==============================
    END
==============================*/
.nominee-event-status {
    display: inline-flex;
    align-items: center;
    margin: 7px 0 2px;
    padding: 5px 9px;
    border-radius: 20px;
    color: #7954c7;
    background: #f2edff;
    font-size: 10px;
    font-weight: 600;
}

.nominee-country {
    position:absolute;
    top:18px;
    right:18px;
    z-index:10;
    display:inline-flex;
    align-items: center;
    justify-content: center;
    width:42px;
    height:42px;
    border:2px solid #fff;
    border-radius:50%;
    background:#fff;
    font-size:23px;
    line-height: 1;
    box-shadow:0 5px 14px rgba(0,0,0,.2);
}

.nominee-country-flag{
    display:block;
    width:100%;
    height:100%;
    border-radius:50%;
    object-fit:cover;
}

.vote-btn:disabled {
    cursor: not-allowed;
    opacity: .65;
}