/* =========================================
   BLOG PAGE
========================================= */

.blog-page,
.post-detail-page{

    padding-top:90px;
    padding-bottom:120px;

    background:
    linear-gradient(
        to bottom,
        #ffffff,
        #f7f8fa
    );
}


/* =========================================
   HERO
========================================= */

.blog-hero{

    max-width:760px;

    margin-bottom:60px;
}

.blog-title{

    font-size:3rem;

    line-height:1.2;

    font-weight:700;

    letter-spacing:-1px;

    color:#111;
}

.blog-subtitle{

    font-size:1rem;

    line-height:1.9;

    color:#7b8190;
}


/* =========================================
   FEATURED POST
========================================= */

.featured-post{

    position:relative;

    overflow:hidden;

    border-radius:42px;

    background:#0f1115;

    box-shadow:
    0 20px 60px rgba(0,0,0,.06);

    transition:
    transform .35s ease,
    box-shadow .35s ease;
}

.featured-post:hover{

    transform:translateY(-5px);

    box-shadow:
    0 30px 90px rgba(0,0,0,.12);
}

/* THUMB */

.featured-thumb{

    position:relative;

    width:100%;

    aspect-ratio:19 / 6;

    overflow:hidden;

    background:#0f1115;
}

/* IMAGE */

.featured-thumb img{

    width:100%;
    height:100%;

    object-fit:contain;

    object-position:center;

    display:block;

    background:#0f1115;
}

/* OVERLAY */

.featured-overlay{

    position:absolute;

    inset:0;

    background:
    linear-gradient(
        to top,
        rgba(0,0,0,.75),
        rgba(0,0,0,.08)
    );
}

/* CONTENT */

.featured-content{

    position:absolute;

    left:50px;
    right:50px;
    bottom:44px;

    z-index:5;
}

/* BADGE */

.featured-badge,
.featured-badge-detail{

    display:inline-flex;

    align-items:center;

    gap:10px;

    padding:10px 16px;

    border-radius:999px;

    background:
    rgba(17,17,17,.92);

    color:#fff;

    font-size:.8rem;

    font-weight:600;

    backdrop-filter:blur(10px);
}

.featured-dot{

    width:8px;
    height:8px;

    border-radius:50%;

    background:#22c55e;

    box-shadow:
    0 0 0 5px rgba(34,197,94,.15);
}

/* TITLE */

.featured-title{

    font-size:2.5rem;

    line-height:1.2;

    font-weight:700;

    color:#fff;

    margin-bottom:20px;

    max-width:920px;
}

/* SUMMARY */

.featured-summary{

    max-width:760px;

    font-size:1rem;

    line-height:1.9;

    color:
    rgba(255,255,255,.84);

    margin-bottom:24px;

    overflow:hidden;

    display:-webkit-box;

    -webkit-box-orient:vertical;

    -webkit-line-clamp:2;
}


/* =========================================
   META
========================================= */

.featured-meta,
.blog-card-meta,
.post-meta-detail{

    display:flex;
    align-items:center;

    gap:24px;

    flex-wrap:wrap;
}

.meta-item{

    display:flex;
    align-items:center;

    gap:8px;

    color:#7b8190;

    font-size:.9rem;
}


/* =========================================
   BLOG CARD
========================================= */

.blog-card{

    position:relative;

    display:flex;
    flex-direction:column;

    overflow:hidden;

    border-radius:32px;

    background:
    rgba(255,255,255,.82);

    backdrop-filter:blur(12px);

    border:
    1px solid rgba(0,0,0,.04);

    transition:
    transform .35s ease,
    box-shadow .35s ease;

    box-shadow:
    0 10px 40px rgba(0,0,0,.045);

    height:100%;
}

.blog-card:hover{

    transform:translateY(-5px);

    box-shadow:
    0 25px 60px rgba(0,0,0,.08);
}

/* THUMB */

.blog-card-thumb{

    position:relative;

    aspect-ratio:16 / 9;

    overflow:hidden;

    flex-shrink:0;

    background:#f3f4f6;
}

.blog-card-thumb img{

    width:100%;
    height:100%;

    object-fit:cover;

    transition:.45s ease;
}

.blog-card:hover .blog-card-thumb img{

    transform:scale(1.04);
}

/* FEATURED MINI */

.mini-featured-badge{

    position:absolute;

    top:16px;
    left:16px;

    z-index:5;

    display:inline-flex;
    align-items:center;

    padding:9px 14px;

    border-radius:999px;

    background:
    rgba(17,17,17,.92);

    color:#fff;

    font-size:.76rem;

    font-weight:600;

    backdrop-filter:blur(10px);

    box-shadow:
    0 10px 24px rgba(0,0,0,.18);
}

/* BODY */

.blog-card-body{

    display:flex;
    flex-direction:column;

    flex:1;

    padding:28px;
}

/* TITLE */

.blog-card-title{

    font-size:1.25rem;

    line-height:1.5;

    font-weight:700;

    color:#111;

    margin-bottom:16px;

    overflow:hidden;

    display:-webkit-box;

    -webkit-box-orient:vertical;

    -webkit-line-clamp:2;

    text-overflow:ellipsis;

    min-height:60px;

    max-height:60px;
}

/* SUMMARY */

.blog-card-summary{

    color:#7b8190;

    font-size:.95rem;

    line-height:1.9;

    margin-bottom:26px;

    overflow:hidden;

    display:-webkit-box;

    -webkit-box-orient:vertical;

    -webkit-line-clamp:3;

    text-overflow:ellipsis;

    min-height:86px;

    max-height:86px;
}

/* META */

.blog-card-meta{

    margin-top:auto;

    display:flex;
    align-items:center;
    justify-content:space-between;

    gap:16px;

    padding-top:18px;

    border-top:
    1px solid rgba(0,0,0,.06);
}


/* =========================================
   DETAIL PAGE
========================================= */

.post-hero{

    padding-top:40px;

    margin-bottom:50px;
}

.post-hero-content{

    max-width:900px;

    text-align:center;
}

.post-title-detail{

    font-size:4rem;

    line-height:1.15;

    font-weight:800;

    letter-spacing:-2px;

    color:#111;

    margin-bottom:26px;
}

.post-summary-detail{

    max-width:760px;

    margin:auto;

    font-size:1.08rem;

    line-height:1.9;

    color:#7b8190;

    margin-bottom:30px;
}


/* =========================================
   DETAIL THUMB
========================================= */

.post-main-thumb{

    overflow:hidden;

    border-radius:40px;

    margin-bottom:60px;

    box-shadow:
    0 30px 80px rgba(0,0,0,.08);
}

.post-main-thumb img{

    width:100%;

    display:block;
}


/* =========================================
   CONTENT
========================================= */

.post-content-wrap{

    max-width:860px;
}

.post-content{

    padding:60px;

    border-radius:36px;

    background:#fff;

    box-shadow:
    0 20px 60px rgba(0,0,0,.04);
}


/* TYPOGRAPHY */

.post-content p{

    margin-bottom:28px;

    line-height:2;

    color:#374151;

    font-size:1.05rem;
}

.post-content h1,
.post-content h2,
.post-content h3{

    margin-top:50px;
    margin-bottom:22px;

    font-weight:700;

    line-height:1.35;

    color:#111;
}

.post-content img{

    max-width:100%;

    border-radius:28px;

    margin:40px 0;
}


/* =========================================
   RELATED
========================================= */

.related-wrap{

    margin-top:80px;
}


/* =========================================
   MOBILE
========================================= */

@media(max-width:991px){

    .blog-title{

        font-size:2.2rem;
    }

    .featured-thumb{

        aspect-ratio:16 / 8;
    }

    .featured-content{

        left:28px;
        right:28px;
        bottom:28px;
    }

    .featured-title{

        font-size:1.7rem;
    }

    .post-title-detail{

        font-size:2.3rem;
    }

    .post-content{

        padding:30px;
    }

    .featured-summary{

        font-size:.92rem;
    }

}