/* Taller than the shared default — the title sat almost flush against the
   header otherwise (same fix as the Contact page's band). */
.page-hero { min-height: 380px; }

/* Blog listing — named .blog-listing rather than .blog: WordPress's own
   body_class() also puts "blog" on <body> for this page, and a bare .blog
   selector here would silently re-style <body> and every .container on the
   page too (matching as a descendant selector), not just this section. */
.blog-listing {
    display:        flex;
    flex-direction: column;
    padding:        80px 0 100px;
}
.blog-listing .container {
    display:        flex;
    flex-direction: column;
    gap:            60px;
}

.blog__head {
    display:         flex;
    align-items:     center;
    justify-content: space-between;
    gap:             20px;
    margin-bottom:   -20px;
}

/* Category filter — pills that wrap instead of scrolling out of reach */
.blog__cats-list {
    display:   flex;
    flex-wrap: wrap;
    gap:       8px;
    margin:    0;
    padding:   0;
    list-style: none;
}
.blog__cat {
    display:         inline-flex;
    align-items:     center;
    gap:             6px;
    padding:         8px 16px;
    border:          1px solid var(--color-border);
    border-radius:   var(--radius-pill);
    font-size:       14px;
    line-height:     20px;
    font-weight:     500;
    text-decoration: none;
    color:           var(--color-text);
    transition:      background var(--transition), border-color var(--transition), color var(--transition);
}
.blog__cat:hover { border-color: var(--color-primary); color: var(--color-primary); }
.blog__cat.is-active {
    border-color: var(--color-primary);
    background:   var(--color-primary);
    color:        #ffffff;
}

.blog__cat-count {
    font-size: 12px;
    opacity:   0.6;
}

.blog__select {
    min-width:     240px;
    padding:       10px 16px;
    border:        1px solid var(--color-border);
    border-radius: var(--radius-pill);
    background:    #ffffff;
    font-family:   inherit;
    font-size:     14px;
    line-height:   20px;
    color:         var(--color-text);
    cursor:        pointer;
}
.blog__select:focus {
    outline:      none;
    border-color: var(--color-primary);
}

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

.blog__empty {
    margin:     0;
    text-align: center;
    color:      var(--color-muted);
}

@media (max-width: 1024px) {
    .page-hero { min-height: 260px; }
    .page-hero__title { font-size: 44px; line-height: 50px; }
    .blog-listing { padding: 60px 0 80px; }
    .blog-listing .container { gap: 40px; }
    .blog__grid { grid-template-columns: repeat(2, 1fr); }

}

@media (max-width: 767px) {
    .page-hero { min-height: 240px; }
    .blog-listing { padding: 40px 0 60px; }
    .blog__grid { grid-template-columns: 1fr; }

    /* The select needs a row of its own once the pills take theirs */
    .blog__head {
        flex-direction: column;
        align-items:    stretch;
        gap:            16px;
    }
    .blog__select { min-width: 0; width: 100%; }
}
