/* ===================================================
   MUSICSTREAM
   SONGS PAGE
=================================================== */

/* =========================
   PAGE
========================= */

.songs-page{

    max-width:1400px;

    margin:0 auto;

    padding-bottom:40px;

}

/* =========================
   HERO
========================= */

.songs-hero{

    background:linear-gradient(
        135deg,
        #242424,
        #181818
    );

    border:1px solid rgba(255,255,255,.05);

    border-radius:28px;

    padding:50px;

    margin-bottom:35px;

    position:relative;

    overflow:hidden;

}

.songs-hero::before{

    content:"";

    position:absolute;

    right:-80px;

    top:-80px;

    width:260px;

    height:260px;

    border-radius:50%;

    background:rgba(165,60,245,.08);

}

.songs-hero-content{

    position:relative;

    z-index:2;

}

.songs-badge{

    display:inline-flex;

    align-items:center;

    gap:10px;

    padding:8px 18px;

    background:rgba(165,60,245,.12);

    color:#A53CF5;

    border-radius:999px;

    font-size:14px;

    font-weight:600;

    margin-bottom:20px;

}

.songs-hero h1{

    color:#fff;

    font-size:48px;

    font-weight:800;

    margin-bottom:10px;

}

.songs-hero p{

    color:#999;

    font-size:16px;

    margin:0;

}
/* ===================================================
   SONGS TOOLBAR
=================================================== */

.songs-toolbar{

    display:flex;

    align-items:center;

    gap:16px;

    margin-bottom:35px;

    flex-wrap:wrap;

}

/* =========================
   SEARCH
========================= */

.songs-search{

    flex:1;

    min-width:320px;

    position:relative;

}

.songs-search i{

    position:absolute;

    left:20px;

    top:50%;

    transform:translateY(-50%);

    color:#777;

    font-size:16px;

}

.songs-search input{

    width:100%;

    height:58px;

    background:#181818;

    border:1px solid transparent;

    border-radius:18px;

    color:#fff;

    font-size:15px;

    padding:0 22px 0 52px;

    transition:.25s;

}

.songs-search input::placeholder{

    color:#777;

}

.songs-search input:focus{

    outline:none;

    border-color:#A53CF5;

    background:#202020;

    box-shadow:0 0 0 4px rgba(165,60,245,.12);

}

/* =========================
   FILTERS
========================= */

.songs-toolbar select{

    min-width:180px;

    height:58px;

    padding:0 18px;

    border:none;

    outline:none;

    border-radius:18px;

    background:#181818;

    color:#fff;

    font-size:15px;

    cursor:pointer;

    transition:.25s;

}

.songs-toolbar select:hover{

    background:#202020;

}

.songs-toolbar select:focus{

    box-shadow:0 0 0 4px rgba(165,60,245,.12);

}

/* =========================
   TOOLBAR CARD EFFECT
========================= */

.songs-toolbar>*{

    transition:.25s;

}

.songs-search:hover input{

    background:#1e1e1e;

}

.songs-toolbar select:hover{

    transform:translateY(-1px);

}

/* ===================================================
   MOBILE
=================================================== */

@media (max-width:768px){

    .songs-toolbar{

        flex-direction:column;

        align-items:stretch;

        gap:14px;

    }

    .songs-search{

        min-width:100%;

    }

    .songs-toolbar select{

        width:100%;

    }

}
/* ===================================================
   SONG LIST
=================================================== */

#songsContainer{

    display:flex;

    flex-direction:column;

    gap:16px;

}

/* ===================================================
   SONG CARD
=================================================== */

.song-card{

    display:flex;

    align-items:center;

    gap:22px;

    padding:22px;

    background:#181818;

    border:1px solid transparent;

    border-radius:22px;

    cursor:pointer;

    transition:all .3s ease;

}

.song-card:hover{

    background:#232323;

    border-color:#303030;

    transform:translateY(-3px);

    box-shadow:0 15px 35px rgba(0,0,0,.35);

}

/* ===================================================
   COVER
=================================================== */

.song-cover{

    position:relative;

    width:82px;

    height:82px;

    border-radius:18px;

    overflow:hidden;

    flex-shrink:0;

}

.song-cover img{

    width:100%;

    height:100%;

    object-fit:cover;

    transition:.35s;

}

.song-card:hover .song-cover img{

    transform:scale(1.08);

}

/* ===================================================
   PLAY OVERLAY
=================================================== */

.cover-overlay{

    position:absolute;

    inset:0;

    display:flex;

    justify-content:center;

    align-items:center;

    background:rgba(0,0,0,.45);

    opacity:0;

    transition:.3s;

}

.song-card:hover .cover-overlay{

    opacity:1;

}

.cover-overlay i{

    width:52px;

    height:52px;

    background:#A53CF5;

    color:#000;

    border-radius:50%;

    display:flex;

    justify-content:center;

    align-items:center;

    font-size:20px;

    box-shadow:0 8px 20px rgba(0,0,0,.4);

}

/* ===================================================
   PLAYING
=================================================== */

.cover-equalizer{

    display:none;

    position:absolute;

    inset:0;

    justify-content:center;

    align-items:center;

    gap:4px;

    background:rgba(0,0,0,.45);

}

.song-card.playing .cover-overlay{

    display:none;

}

.song-card.playing .cover-equalizer{

    display:flex;

}

.cover-equalizer span{

    width:4px;

    height:18px;

    background:#A53CF5;

    border-radius:4px;

    animation:equalizer .8s infinite ease-in-out;

}

.cover-equalizer span:nth-child(2){

    animation-delay:.15s;

}

.cover-equalizer span:nth-child(3){

    animation-delay:.3s;

}

@keyframes equalizer{

    0%,100%{

        transform:scaleY(.45);

    }

    50%{

        transform:scaleY(1);

    }

}
/* ===================================================
   SONG INFO
=================================================== */

.song-info{

    flex:1;

    min-width:0;

}

.song-info h3{

    color:#fff;

    font-size:21px;

    font-weight:700;

    margin:0 0 8px;

    white-space:nowrap;

    overflow:hidden;

    text-overflow:ellipsis;

    transition:.25s;

}

.song-card.playing .song-info h3{

    color:#A53CF5;

}

.song-info p{

    color:#b3b3b3;

    font-size:15px;

    margin:0 0 8px;

    white-space:nowrap;

    overflow:hidden;

    text-overflow:ellipsis;

}

.song-meta{

    display:flex;

    align-items:center;

    gap:8px;

    flex-wrap:wrap;

    color:#7d7d7d;

    font-size:13px;

}

.song-meta span{

    white-space:nowrap;

}

/* ===================================================
   RIGHT SIDE
=================================================== */

.song-right{

    display:flex;

    align-items:center;

    gap:14px;

    margin-left:auto;

    flex-shrink:0;

}

.song-duration{

    min-width:48px;

    text-align:center;

    color:#8a8a8a;

    font-size:14px;

    font-weight:500;

}

/* ===================================================
   BUTTONS
=================================================== */

.favorite-btn,

.song-menu{

    width:44px;

    height:44px;

    border:none;

    outline:none;

    border-radius:50%;

    background:#202020;

    color:#9a9a9a;

    cursor:pointer;

    display:flex;

    justify-content:center;

    align-items:center;

    transition:all .25s ease;

}

.favorite-btn i,

.song-menu i{

    font-size:16px;

}

/* Favorite */

.favorite-btn:hover{

    background:#A53CF5;

    color:#000;

    transform:scale(1.08);

}

/* Menu */

.song-menu:hover{

    background:#303030;

    color:#fff;

    transform:scale(1.08);

}

/* ===================================================
   PLAYING CARD
=================================================== */

.song-card.playing{

    border-color:#A53CF555;

    background:#1c1c1c;

    box-shadow:0 0 0 1px rgba(165,60,245,.18);

}

/* ===================================================
   HOVER EFFECTS
=================================================== */

.song-card:hover .favorite-btn,

.song-card:hover .song-menu{

    opacity:1;

}

.song-card:active{

    transform:scale(.99);

}
/* ===================================================
   RESPONSIVE
=================================================== */

@media (max-width:992px){

    .songs-hero{

        padding:35px 28px;

    }

    .songs-hero h1{

        font-size:36px;

    }

    .song-card{

        padding:18px;

        gap:16px;

    }

    .song-cover{

        width:70px;

        height:70px;

    }

    .song-info h3{

        font-size:18px;

    }

}

/* ===================================================
   MOBILE
=================================================== */

@media (max-width:768px){

    .songs-page{

        padding-bottom:100px;

    }

    .songs-toolbar{

        flex-direction:column;

        align-items:stretch;

        gap:14px;

    }

    .songs-search{

        min-width:100%;

    }

    .songs-toolbar select{

        width:100%;

    }

    .songs-hero{

        padding:28px 20px;

        border-radius:22px;

    }

    .songs-hero h1{

        font-size:30px;

    }

    .songs-hero p{

        font-size:14px;

    }

    .song-card{

        padding:14px;

        gap:14px;

        border-radius:18px;

    }

    .song-cover{

        width:62px;

        height:62px;

        border-radius:14px;

    }

    .song-info h3{

        font-size:17px;

    }

    .song-info p{

        font-size:13px;

    }

    .song-meta{

        font-size:12px;

        gap:6px;

    }

    .song-duration{

        display:none;

    }

    .song-right{

        gap:8px;

    }

    .favorite-btn,

    .song-menu{

        width:38px;

        height:38px;

    }

}

/* ===================================================
   SMALL PHONES
=================================================== */

@media (max-width:480px){

    .songs-hero{

        padding:22px 18px;

    }

    .songs-badge{

        font-size:12px;

        padding:7px 14px;

    }

    .songs-hero h1{

        font-size:26px;

    }

    .song-card{

        padding:12px;

    }

    .song-cover{

        width:56px;

        height:56px;

    }

    .song-info h3{

        font-size:16px;

    }

    .song-info p{

        font-size:12px;

    }

    .song-meta{

        font-size:11px;

    }

    .favorite-btn,

    .song-menu{

        width:34px;

        height:34px;

    }

}

/* ===================================================
   SCROLLBAR
=================================================== */

#songsContainer::-webkit-scrollbar{

    width:8px;

}

#songsContainer::-webkit-scrollbar-thumb{

    background:#333;

    border-radius:20px;

}

#songsContainer::-webkit-scrollbar-thumb:hover{

    background:#555;

}

/* ===================================================
   ANIMATIONS
=================================================== */

.song-card{

    animation:fadeUp .35s ease;

}

@keyframes fadeUp{

    from{

        opacity:0;

        transform:translateY(18px);

    }

    to{

        opacity:1;

        transform:translateY(0);

    }

}

/* ===================================================
   SELECTION
=================================================== */

.song-card::selection{

    background:#A53CF5;

    color:#fff;

}

.song-info h3::selection,

.song-info p::selection{

    background:#A53CF5;

    color:#fff;

}

.favorite-btn.active{

    background:#A53CF5;

    color:#000;

}

.favorite-btn.active i{

    color:#000;

}

/* ===================================================
   SONG DETAILS
=================================================== */

.song-details{

    max-width:1400px;

    margin:0 auto;

    padding-bottom:50px;

}

/*==================================================
    SONG HERO
==================================================*/

.song-hero{

    position:relative;

    overflow:hidden;

    min-height:430px;

    border-radius:30px;

    display:flex;

    align-items:center;

    background:#151515;

    isolation:isolate;

}

.song-hero-bg{

    position:absolute;

    inset:0;

    z-index:0;

}

.song-hero-bg img{

    width:100%;

    height:100%;

    object-fit:cover;

    transform:scale(1.35);

    filter:blur(80px) brightness(.45) saturate(1.3);

    opacity:.9;

}

.song-hero-overlay{

    position:absolute;

    inset:0;

    z-index:1;

    background:

        linear-gradient(

            90deg,

            rgba(10,10,10,.92),

            rgba(10,10,10,.60),

            rgba(10,10,10,.90)

        );

}

.song-hero-content{

    position:relative;

    z-index:2;

    width:100%;

    display:flex;

    align-items:center;

    gap:50px;

   padding:60px 60px 100px;

}

.song-cover-large img{

    width:260px;

    height:260px;

    object-fit:cover;

    border-radius:24px;

    box-shadow:0 25px 60px rgba(0,0,0,.45);

}

.song-info-large{

    flex:1;

}

.song-badge{

    display:inline-flex;

    align-items:center;

    gap:8px;

    padding:8px 18px;

    border-radius:999px;

    background:rgba(139,92,246,.18);

    color:#a970ff;

    font-weight:700;

    margin-bottom:18px;

}

.song-info-large h1{

    margin:0;

    color:#fff;

    font-size:3rem;

    font-weight:800;

}

.song-info-large h3{

    margin:15px 0;

}

.song-info-large h3 a{

    color:#ddd;

    text-decoration:none;

    font-size:1.3rem;

}

.song-info-large h3 a:hover{

    color:#9d5cff;

}

.song-meta{

    display:flex;

    align-items:center;

    flex-wrap:wrap;

    gap:12px;

    color:#ddd;

    font-size:15px;

}

.song-meta a{

    color:#ddd;

    text-decoration:none;

}

.song-meta a:hover{

    color:#9d5cff;

}

.meta-dot{

    color:#888;

}

@media(max-width:768px){

.song-hero-content{

    flex-direction:column;

    text-align:center;

    padding:30px 20px;

}

.song-cover-large img{

    width:200px;

    height:200px;

}

.song-info-large h1{

    font-size:2rem;

}

.song-meta{

    justify-content:center;

}

}
/* ===================================================
   ACTIONS
=================================================== */

.song-actions{

    display:flex;

    align-items:center;

    gap:16px;

    margin:0 0 40px;
    
    margin-top:30px;

    flex-wrap:wrap;

}

.play-song{

    display:flex;

    align-items:center;

    justify-content:center;

    gap:12px;

    height:58px;

    padding:0 34px;

    border:none;

    border-radius:999px;

    background:#A53CF5;

    color:#000;

    font-size:17px;

    font-weight:700;

    cursor:pointer;

    transition:.3s;

}

.play-song:hover{

    transform:translateY(-3px);

    background:#22d760;

    box-shadow:0 18px 40px rgba(165,60,245,.35);

}

.play-song i{

    font-size:18px;

}


/* ==========================================
   ICON BUTTONS
========================================== */

.song-actions .favorite-btn,

.song-actions .share-song,

.song-actions .song-menu{

    width:56px;

    height:56px;

    border:none;

    border-radius:50%;

    background:#1d1d1d;

    border:1px solid rgba(255,255,255,.05);

    color:#a0a0a0;

    display:flex;

    justify-content:center;

    align-items:center;

    cursor:pointer;

    transition:.25s;

}

.song-actions .favorite-btn:hover{

    background:#A53CF5;

    color:#000;

    transform:translateY(-3px);

}

.song-actions .favorite-btn.active{

    background:#A53CF5;

    color:#000;

}

.song-actions .share-song:hover,

.song-actions .song-menu:hover{

    background:#2b2b2b;

    color:#fff;

    transform:translateY(-3px);

}

/* ===================================================
   SONG INFORMATION
=================================================== */

.song-information{

    display:grid;

    grid-template-columns:repeat(auto-fit,minmax(220px,1fr));

    gap:22px;

    margin-bottom:40px;

}

.info-card{

    position:relative;

    overflow:hidden;

    background:#181818;

    border:1px solid rgba(255,255,255,.05);

    border-radius:22px;

    padding:24px;

    transition:.3s;

}

.info-card::before{

    content:"";

    position:absolute;

    left:0;

    top:0;

    width:100%;

    height:4px;

    background:#A53CF5;

    transform:scaleX(0);

    transform-origin:left;

    transition:.3s;

}

.info-card:hover{

    transform:translateY(-5px);

    background:#202020;

    border-color:#303030;

}

.info-card:hover::before{

    transform:scaleX(1);

}

.info-card small{

    display:block;

    color:#888;

    font-size:12px;

    text-transform:uppercase;

    letter-spacing:.8px;

    margin-bottom:10px;

}

.info-card strong{

    display:block;

    color:#fff;

    font-size:22px;

    font-weight:700;

    line-height:1.3;

}

.song-duration{

    color:#A53CF5;

}

/* ===================================================
   PLAYING STATE
=================================================== */

.related-song.playing{

    border-color:#A53CF5;

    background:#1d2a21;

}

.related-song.playing h4{

    color:#A53CF5;

}

.related-song.playing .related-overlay{

    opacity:1;

}

.related-song.playing .related-overlay i{

    background:#fff;

    color:#000;

}

/* ===================================================
   ANIMATIONS
=================================================== */

.song-hero,
.song-actions,
.song-information,
.song-section{

    animation:fadeUp .45s ease;

}

@keyframes fadeUp{

    from{

        opacity:0;

        transform:translateY(20px);

    }

    to{

        opacity:1;

        transform:translateY(0);

    }

}

/* ===================================================
   TABLET
=================================================== */

@media(max-width:1100px){

.song-hero{

grid-template-columns:260px 1fr;

gap:35px;

padding:40px;

}

.song-cover-large img{

max-width:260px;

}

.song-information{

grid-template-columns:repeat(2,1fr);

}

.related-grid{

grid-template-columns:repeat(2,1fr);

}

}

/* ===================================================
   MOBILE
=================================================== */

@media(max-width:768px){

.song-details{

padding-bottom:20px;

}

.song-hero{

grid-template-columns:1fr;

text-align:center;

padding:28px;

gap:25px;

}

.song-cover-large{

display:flex;

justify-content:center;

}

.song-cover-large img{

max-width:220px;

}

.song-info-large{

display:flex;

flex-direction:column;

align-items:center;

}

.song-info-large h1{

font-size:38px;

}

.song-info-large h3{

font-size:22px;

}

.song-info-large p{

justify-content:center;

font-size:15px;

}

.song-actions{

justify-content:center;

margin-top:30px;

}

.play-song{

width:50%;

}

.song-actions .favorite-btn,

.song-actions .share-song,

.song-actions .song-menu{

width:52px;

height:52px;

}

.song-information{

grid-template-columns:1fr;

}

.song-section{

padding:22px;

}

.song-details .section-header{

    flex-direction:column;

    align-items:flex-start;

    gap:10px;

}

.related-grid{

grid-template-columns:1fr;

gap:18px;

}

}

/* ===================================================
   SMALL PHONES
=================================================== */

@media(max-width:480px){

.song-hero{

padding:20px;

border-radius:22px;

}

.song-cover-large img{

max-width:180px;

border-radius:18px;

}

.song-badge{

font-size:12px;

padding:7px 14px;

}

.song-info-large h1{

font-size:30px;

}

.song-info-large h3{

font-size:18px;

}

.song-info-large p{

font-size:14px;

}

.info-card{

padding:18px;

}

.info-card strong{

font-size:18px;

}

.related-info{

padding:15px;

}

.related-info h4{

font-size:17px;

}

.related-info p{

font-size:13px;

}

}

/* ==========================================
   SONG LINKS
========================================== */

.song-link{

    color:inherit;

    text-decoration:none;

    transition:.25s;

}

.song-link:hover{

    color:#A53CF5;

}

.song-info-large h3 .song-link{

    font-weight:700;

}

.song-info-large p .song-link{

    color:#bdbdbd;

}

.song-info-large p .song-link:hover{

    color:#A53CF5;

}

.info-card .song-link{

    color:#fff;

}

.info-card .song-link:hover{

    color:#A53CF5;

}