/* BYJEJU media.php responsive grid v2.5
   4 cols large PC / 3 cols PC / 2 cols tablet / 1 col mobile */

.media-page{
    width:100%;
}

.media-wall-section > .wrap{
    width:min(1440px, calc(100% - 48px)) !important;
    max-width:1440px !important;
    margin-left:auto !important;
    margin-right:auto !important;
}

.media-card-grid{
    display:grid !important;
    grid-template-columns:repeat(4, minmax(0, 1fr)) !important;
    gap:22px !important;
    align-items:stretch;
    width:100%;
}

.media-wall-card{
    display:flex;
    flex-direction:column;
    min-width:0;
    width:100%;
    overflow:hidden;
    border:1px solid #ebe5ec;
    border-radius:18px;
    background:#fff;
    box-shadow:0 10px 34px rgba(52,35,57,.055);
}

.media-wall-card__image{
    position:relative;
    display:block;
    width:100%;
    overflow:hidden;
    aspect-ratio:16/10;
    background:#f2edf4;
}

.media-wall-card__image img{
    position:relative;
    z-index:1;
    display:block;
    width:100%;
    height:100%;
    object-fit:cover;
}

.media-wall-card__placeholder{
    position:absolute;
    inset:0;
    display:flex;
    align-items:center;
    justify-content:flex-end;
    padding:0 12px;
}

.media-wall-card__image--placeholder{
    height:52px;
    min-height:52px;
    aspect-ratio:auto;
}

.media-wall-card__image--placeholder .media-wall-card__placeholder{
    position:relative;
    inset:auto;
    width:100%;
    height:52px;
}

.media-wall-card__badge{
    position:absolute;
    z-index:2;
    left:14px;
    top:14px;
}

.media-wall-card__body{
    display:flex;
    flex:1;
    flex-direction:column;
    padding:12px 20px 20px;
}

.media-wall-card__body--compact{
    padding-top:5px;
}

.media-wall-card__body > p{
    display:-webkit-box;
    overflow:hidden;
    -webkit-line-clamp:3;
    -webkit-box-orient:vertical;
}

.media-wall-card__meta{
    margin-top:auto;
}

.media-wall-card__out{
    display:inline-block;
}

@media (max-width:1319px){
    .media-wall-section > .wrap{
        width:min(1200px, calc(100% - 44px)) !important;
    }

    .media-card-grid{
        grid-template-columns:repeat(3, minmax(0, 1fr)) !important;
        gap:20px !important;
    }
}

@media (max-width:980px){
    .media-wall-section > .wrap{
        width:calc(100% - 36px) !important;
    }

    .media-card-grid{
        grid-template-columns:repeat(2, minmax(0, 1fr)) !important;
        gap:18px !important;
    }
}

@media (max-width:640px){
    .media-wall-section > .wrap{
        width:calc(100% - 28px) !important;
    }

    .media-card-grid{
        grid-template-columns:minmax(0, 1fr) !important;
        gap:16px !important;
    }
}


/* v2.7 keyword assignment tags */
.media-wall-card__keywords{display:flex;flex-wrap:wrap;gap:7px;margin:0 0 10px}
.media-keyword-link{display:inline-flex;align-items:center;max-width:100%;padding:6px 9px;border:1px solid #e4dfea;border-radius:999px;background:#f7f4f8;color:#58415f;font-size:11px;font-weight:800;line-height:1.25;text-decoration:none;transition:.16s ease}
.media-keyword-link:hover{transform:translateY(-1px);border-color:#cdbfd3;background:#f0eaf3}
.media-keyword-link.is-current{border-color:#9d83a8;background:#eee6f1}
.media-keyword-hero{padding:52px 0 26px;background:#faf8fb;border-bottom:1px solid #eee9ef}
.media-keyword-hero .wrap{width:min(1440px,calc(100% - 48px));max-width:1440px;margin:0 auto}
.media-keyword-hero h1{margin:5px 0 12px;font-size:clamp(30px,4vw,54px);line-height:1.05}
.media-keyword-hero p{margin:0 0 18px}.media-keyword-back{display:inline-flex;align-items:center;text-decoration:none;font-weight:800}
@media(max-width:980px){.media-keyword-hero .wrap{width:calc(100% - 36px)}}
@media(max-width:640px){.media-keyword-hero{padding:42px 0 22px}.media-keyword-hero .wrap{width:calc(100% - 28px)}}

.media-wall-card__keyword{display:flex;align-items:center;gap:7px;width:fit-content;max-width:100%;margin:0 0 10px;padding:6px 9px;border-radius:8px;background:#f0f8fb;color:#58415f;font-size:11px;line-height:1.3}
.media-wall-card__keyword span{color:#71828a;font-weight:700}
.media-wall-card__keyword strong{overflow:hidden;font-weight:900;white-space:nowrap;text-overflow:ellipsis}

/* v2.8 high-visibility pagination */
.media-pagination{
    display:flex !important;
    align-items:center;
    justify-content:center;
    flex-wrap:wrap;
    gap:12px !important;
    margin-top:54px !important;
    padding:18px 20px;
    border:1px solid #e8e0ea;
    border-radius:20px;
    background:#fff;
    box-shadow:0 10px 30px rgba(52,35,57,.06);
}
.media-pagination__numbers{
    display:flex;
    align-items:center;
    justify-content:center;
    flex-wrap:wrap;
    gap:8px;
}
.media-pagination a{
    display:inline-flex !important;
    align-items:center;
    justify-content:center;
    width:46px !important;
    height:46px !important;
    min-width:46px;
    border:2px solid #ded4e1 !important;
    border-radius:12px !important;
    background:#fff !important;
    color:#3e3740 !important;
    font-size:15px !important;
    font-weight:900 !important;
    line-height:1;
    box-shadow:none;
    transition:transform .16s ease,border-color .16s ease,background .16s ease,box-shadow .16s ease;
}
.media-pagination a:hover,
.media-pagination a:focus-visible{
    transform:translateY(-2px);
    border-color:#71347f !important;
    outline:0;
    box-shadow:0 6px 16px rgba(113,52,127,.16);
}
.media-pagination a.is-active{
    border-color:#71347f !important;
    background:#ffe400 !important;
    color:#71347f !important;
    box-shadow:0 0 0 3px rgba(113,52,127,.12),0 8px 18px rgba(113,52,127,.18);
}
.media-pagination a.media-pagination__move{
    width:auto !important;
    min-width:96px;
    padding:0 16px;
    border-color:#71347f !important;
    color:#71347f !important;
}
.media-pagination__move span{
    margin:0 3px;
    font-size:24px;
    line-height:1;
}
@media(max-width:640px){
    .media-pagination{
        gap:10px !important;
        margin-top:40px !important;
        padding:14px 10px;
        border-radius:16px;
    }
    .media-pagination__numbers{
        order:1;
        width:100%;
        gap:6px;
    }
    .media-pagination a{
        width:42px !important;
        height:42px !important;
        min-width:42px;
        border-radius:10px !important;
        font-size:14px !important;
    }
    .media-pagination a.media-pagination__move{
        order:2;
        flex:1;
        min-width:0;
        max-width:150px;
    }
}
