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

.tag-page{
    width:min(1400px,95%);
    margin:40px auto 60px;
}

.tag-page>h1{
    font-size:clamp(2rem,5vw,3rem);
    font-weight:700;
    color:#111;
    margin-bottom:8px;
}

.tag-page>p{
    color:#777;
    font-size:1rem;
    margin-bottom:35px;
}


/* ==========================================================
   ARTICLE GRID
========================================================== */

.article-grid{
    display:grid;
    grid-template-columns:repeat(3,1fr);
    gap:28px;
}


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

.article-card{
    background:#fff;
    border-radius:14px;
    overflow:hidden;
    box-shadow:0 8px 20px rgba(0,0,0,.08);
    transition:.25s;
    display:flex;
    flex-direction:column;
}

.article-card:hover{
    transform:translateY(-6px);
    box-shadow:0 18px 30px rgba(0,0,0,.12);
}


/* ==========================================================
   IMAGE
========================================================== */

.article-card>a{
    display:block;
}

.article-card img{
    width:100%;
    height:230px;
    object-fit:cover;
    display:block;
    transition:.35s;
}

.article-card:hover img{
    transform:scale(1.04);
}


/* ==========================================================
   BODY
========================================================== */

.article-body{
    padding:22px;
    display:flex;
    flex-direction:column;
    flex:1;
}


/* ==========================================================
   CATEGORY
========================================================== */

.category{
    display:inline-flex;
    align-self:flex-start;

    padding:6px 14px;

    border-radius:50px;

    background:#e8f1ff;

    color:#0d6efd;

    font-size:.82rem;

    font-weight:600;

    margin-bottom:16px;
}


/* ==========================================================
   TITLE
========================================================== */

.article-body h2{
    margin:0 0 15px;
    font-size:1.35rem;
    line-height:1.45;
}

.article-body h2 a{
    color:#111;
    text-decoration:none;
    transition:.2s;
}

.article-body h2 a:hover{
    color:#0d6efd;
}


/* ==========================================================
   EXCERPT
========================================================== */

.article-body p{
    margin:0;
    color:#666;
    line-height:1.8;
    font-size:.95rem;
}


/* ==========================================================
   EMPTY STATE
========================================================== */

.no-articles{

    text-align:center;

    padding:120px 20px;

    font-size:1.4rem;

    color:#888;
}


/* ==========================================================
   PAGINATION
========================================================== */

.pagination{

    display:flex;

    justify-content:center;

    align-items:center;

    gap:10px;

    flex-wrap:wrap;

    margin-top:55px;
}

.pagination a{

    min-width:44px;

    height:44px;

    padding:0 16px;

    display:flex;

    align-items:center;

    justify-content:center;

    border:1px solid #ddd;

    border-radius:8px;

    text-decoration:none;

    background:#fff;

    color:#222;

    transition:.25s;

    font-weight:500;
}

.pagination a:hover{

    background:#111;

    border-color:#111;

    color:#fff;
}

.pagination a.active{

    background:#111;

    color:#fff;

    border-color:#111;
}

.pagination .dots{

    font-size:1.1rem;

    color:#666;

    padding:0 4px;
}


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

@media (max-width:1200px){

    .article-grid{

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

}

@media (max-width:768px){

    .tag-page{

        width:94%;
    }

    .article-grid{

        grid-template-columns:1fr;

        gap:24px;
    }

    .article-card img{

        height:220px;
    }

    .article-body{

        padding:18px;
    }

    .article-body h2{

        font-size:1.2rem;
    }

    .pagination{

        gap:8px;
    }

    .pagination a{

        min-width:40px;

        height:40px;

        padding:0 12px;

        font-size:.9rem;
    }

}

@media (max-width:480px){

    .tag-page{

        margin:25px auto 40px;
    }

    .article-card img{

        height:190px;
    }

    .article-body h2{

        font-size:1.08rem;
    }

    .article-body p{

        font-size:.9rem;
    }

    .pagination{

        gap:6px;
    }

    .pagination a{

        min-width:36px;

        height:36px;

        padding:0 10px;

        font-size:.85rem;
    }

}