/* blog.css: blog index + blog list/archive (layout: blog-index/blog-list) — part of the per-template CSS split (md-shared/article/blog/glossary). */

/* ==========================================================================
 * Blog Index — Header & Grid
 *
 * Styles for the dynamic blog listing page (blog-index layout).
 * The header shows a centered title and description. The grid displays
 * blog post cards in a responsive 3-column layout matching the original
 * Elementor "Discover more topics" card design.
 * ========================================================================== */

/* ==========================================================================
 * Blog index / archive — featured hero, editor's pick, card grid, pagination.
 * ========================================================================== */
.blog-index {
    max-width: 1160px;
    margin: 0 auto;
    padding: 48px 20px 56px;
    font-family: "Poppins", Sans-serif;
}

.blog-index__header {
    text-align: center;
    max-width: 760px;
    margin: auto;
    padding: 50px 0;
}

.blog-index__header h1 {
    font-size: 36px;
    font-weight: 600;
    line-height: 1.3em;
    color: #1b2a4a;
    margin: 0 0 1rem;
}

.blog-index__description {
    font-size: 1.02rem;
    font-weight: 400;
    line-height: 1.6;
    color: #0F1115;
    margin: 0 auto;
}

.blog-featured .blog-card__category {
    background-color: white;
}

/* ---- Featured post ---- */
.blog-featured {
    display: flex;
    flex-direction: row;
    gap: 36px;
    align-items: stretch;
    padding: 50px 0;
}

.blog-featured__main {
    display: flex;
    flex: 1;
    flex-direction: column;
    gap: 22px;
}

.blog-featured__content {
    background-color: #edecfb;
    border-radius: 18px;
    padding: 16px;
    display: flex;
    flex-direction: column;
    justify-content: center;
}

.blog-featured__title {
    font-size: 24px;
    font-weight: 500;
    line-height: 32px;
    color: #0F1115;
    margin: 14px 0 12px;
}

.blog-featured__title a {
    color: #0F1115;
    text-decoration: none;
}

.blog-featured__excerpt {
    font-size: 16px;
    font-weight: 400;
    line-height: 24px;
    color: #0F1115;
    margin: 0 0 .8rem;
}

.blog-featured__read-more {
    font-size: 16px;
    font-weight: 400;
    line-height: 24px;
    color: #3b46d6;
    text-decoration: underline;
    display: inline-block;
    margin-bottom: 12px;
}

.blog-featured__read-more:hover {
    color: #0E2F7E;
}

.blog-featured__author {
    display: flex;
    gap: 16px;
    align-items: flex-start;
    padding: 0 6px;
}

.blog-featured__author-avatar {
    width: 70px;
    height: 70px;
    border-radius: 50%;
    object-fit: cover;
    flex: 0 0 auto;
}

.blog-featured__author-name {
    font-size: 24px;
    font-weight: 600;
    text-decoration: none;
}


.blog-featured__image {
    background-size: cover;
    display: block;
    flex: 1;
    min-height: 300px;
    overflow: hidden;
    border-radius: 18px;
}

.blog-featured__image img {
    width: 100%;
    height: 100%;
    max-height: 420px;
    object-fit: cover;
    display: block;
    border-radius: 0;
    border: none;
    margin: 0;
}

/* ---- Section title ---- */
h3.blog-section__title {
    font-size: 24px;
    font-weight: 600;
    line-height: 1.3em;
    color: #1b2a4a;
    margin: 44px 0 22px;
}

/* ---- Editor's pick ---- */
.blog-editors-pick {
    padding: 50px 0;
}

.blog-editors-pick__grid {
    display: grid;
    grid-template-columns: 1fr 1fr;
    gap: 26px;
}

.blog-pick-card {
    display: grid;
    grid-template-columns: 38% 1fr;
    background-color: #fff;
    border: 1px solid #ececf3;
    border-radius: 16px;
    overflow: hidden;
    box-shadow: 0 4px 18px rgba(20, 30, 60, .04);
    color: #0F1115;
    transition: box-shadow .2s, transform .2s;
}

.blog-pick-card:hover {
    box-shadow: 0 4px 20px rgba(0, 0, 0, .08);
    transform: translateY(-2px);
}

.blog-pick-card__image {
    display: block;
    overflow: hidden;
}

.blog-pick-card__image img {
    width: 100%;
    height: 100%;
    min-height: 150px;
    object-fit: cover;
    display: block;
    border-radius: 0;
    border: none;
    margin: 0;
}

.blog-pick-card__body {
    padding: 16px;
    display: flex;
    flex-direction: column;
}

.blog-pick-card__title {
    font-size: 18px;
    font-weight: 500;
    line-height: 1.3;
    color: #0F1115;
    margin: .5rem 0 .4rem;
    padding-bottom: 16px;
    border-bottom: 1px solid #EAECFA;
}

.blog-pick-card__title a {
    color: #1b2a4a;
    text-decoration: none;
}

/* ---- Category filter pills ---- */
.blog-categories {
    display: flex;
    flex-wrap: wrap;
    gap: 12px;
    margin: 6px 0 30px;
}

a.blog-categories__pill {
    background-color: #EAECFA;
    color: #0F1115;
    font-size: .9rem;
    font-weight: 400;
    padding: 9px 20px;
    border-radius: 30px;
    text-decoration: none;
    transition: background-color .15s, color .15s;
}

a.blog-categories__pill:hover {
    background-color: #0E2F7E;
    color: white;
}

a.blog-categories__pill.is-active {
    background-color: #0E2F7E;
    color: white;
}

/* ---- Discover grid ---- */
.blog-discover {
    padding: 50px 0;
}

/* ---- Pagination ---- */
.blog-pagination {
    display: flex;
    justify-content: center;
    align-items: center;
    gap: 10px;
    margin: 46px 0 8px;
    font-family: "Poppins", Sans-serif;
}

.blog-pagination .page-numbers {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    min-width: 44px;
    height: 44px;
    border-radius: 50%;
    border: 1px solid #e3e6ef;
    color: #1b2a4a;
    font-size: 14px;
    font-weight: 600;
    text-decoration: none;
    transition: background-color .2s, color .2s;
}

.blog-pagination a.page-numbers:hover {
    background-color: #f1f3f9;
}

.blog-pagination .page-numbers.current {
    background-color: #16306e;
    border-color: #16306e;
    color: #fff;
}

.blog-pagination .page-numbers.dots {
    border: none;
    min-width: auto;
}

/* ---- CTA ---- */
.blog-cta {
    background: linear-gradient(120deg, #eef0fb 0%, #e7e7fa 100%);
    border-radius: 22px;
    text-align: center;
    padding: 50px 32px;
}

.blog-cta__title {
    font-size: 24px;
    font-weight: 600;
    color: #0F1115;
    margin: 0 0 1rem;
}

.blog-cta__text {
    color: #4b5468;
    max-width: 620px;
    margin: 0 auto 1.6rem;
    line-height: 1.6;
}

a.blog-cta__btn {
    display: inline-block;
    background-color: #16306e;
    color: #fff;
    padding: 14px 32px;
    border-radius: 50px;
    text-decoration: none;
}

a.blog-cta__btn:hover {
    background-color: #112759;
    color: #fff;
}

/* ---- Responsive ---- */