/* GSWA site-specific overrides — kept separate from the vendor styles.min.css
   so theme updates don't clobber these, and so it's obvious what's custom. */

/* Brand-maroon tint over every hero slide photo, for contrast + brand mood. */
.promo-slider__item::before {
    content: "";
    position: absolute;
    inset: 0;
    background: rgba(179, 40, 45, 0.28);
    z-index: 0;
    pointer-events: none;
}

.promo-slider__item .container {
    position: relative;
    z-index: 1;
}

/* Equal-height blog/news cards — titles of different lengths otherwise leave
   ragged card bottoms in the grid, since the theme's .blog-item has no
   height/flex rules of its own. */
.blog .row > [class*="col-"],
.blog-item {
    display: flex;
}

.blog-item {
    flex-direction: column;
    width: 100%;
}

.blog-item__content {
    display: flex;
    flex-direction: column;
    flex: 1;
}

.blog-item__content p {
    flex: 1;
}

.blog-item__details {
    margin-top: auto;
    padding-top: 20px;
}

/* Gallery event-filter tabs — reuses the theme's own horizontal-tabs__header
   look (see tabs.html) as plain links rather than the JS show/hide widget,
   since gallery filtering needs a real page reload to keep pagination working. */
.horizontal-tabs__header--center {
    display: flex;
    flex-wrap: wrap;
    justify-content: center;
    list-style: none;
    padding: 0;
    margin: 0 0 20px;
}

.horizontal-tabs__header--center li {
    margin: 0 15px 10px !important;
}

.horizontal-tabs__header--center li a {
    padding: 8px 4px;
}

.horizontal-tabs__header--center li.r-tabs-state-active a {
    color: #343877;
    border-bottom: 3px solid #efc940;
}
