.baptisten-loop-grid-wrap {
    width: 100%;
}

.baptisten-loop-grid {
    --blg-columns: 3;
    display: grid;
    grid-template-columns: repeat(var(--blg-columns), minmax(0, 1fr));
    gap: 28px;
}

.baptisten-loop-grid--masonry {
    align-items: start;
}

.baptisten-loop-grid .elementor-post {
    min-width: 0;
    width: 100%;
}

.baptisten-loop-grid .elementor-post__card {
    position: relative;
    height: 100%;
    display: flex;
    flex-direction: column;
    background: var(--e-global-color-astglobalcolor5, var(--wp--preset--color--base, #fff));
    color: var(--e-global-color-text, var(--wp--preset--color--contrast, #1f2933));
    border-radius: var(--baptisten-card-radius, 18px);
    overflow: hidden;
    box-shadow: var(--baptisten-card-shadow, 0 14px 35px rgba(15, 23, 42, .08));
    border: 1px solid var(--baptisten-card-border, rgba(15, 23, 42, .06));
    transition: transform .22s ease, box-shadow .22s ease, border-color .22s ease;
}

.baptisten-loop-grid .elementor-post__card:hover {
    transform: translateY(-3px);
    box-shadow: var(--baptisten-card-shadow-hover, 0 20px 45px rgba(15, 23, 42, .13));
}

.baptisten-loop-grid .elementor-post__thumbnail__link {
    display: block;
    width: 100%;
    overflow: hidden;
}

.baptisten-loop-grid .elementor-post__thumbnail {
    position: relative;
    overflow: hidden;
    padding-bottom: 66%;
    background: rgba(127, 127, 127, .12);
}

.baptisten-loop-grid .elementor-post__thumbnail img {
    position: absolute;
    inset: 0;
    width: 100%;
    height: 100%;
    object-fit: cover;
    transform: scale(1.001);
    transition: transform .35s ease;
}

.baptisten-loop-grid .elementor-post__card:hover .elementor-post__thumbnail img {
    transform: scale(1.045);
}

.baptisten-loop-grid .elementor-post__badge {
    position: absolute;
    top: 14px;
    right: 14px;
    z-index: 2;
    display: inline-flex;
    align-items: center;
    max-width: calc(100% - 28px);
    min-height: 28px;
    padding: 5px 11px;
    border-radius: 999px;
    background: var(--e-global-color-primary, var(--wp--preset--color--primary, #2563eb));
    color: #fff;
    font-size: 12px;
    font-weight: 700;
    line-height: 1.25;
    letter-spacing: .01em;
    box-shadow: 0 8px 20px rgba(0,0,0,.16);
}

.baptisten-loop-grid .elementor-post__text {
    display: flex;
    flex-direction: column;
    flex: 1 1 auto;
    padding: clamp(18px, 2.6vw, 26px);
}

.baptisten-loop-grid .elementor-post__title {
    margin: 0 0 10px;
    line-height: 1.18;
}

.baptisten-loop-grid .elementor-post__title a {
    color: inherit;
    text-decoration: none;
}

.baptisten-loop-grid .elementor-post__title a:hover,
.baptisten-loop-grid .elementor-post__title a:focus {
    color: var(--e-global-color-primary, var(--wp--preset--color--primary, #2563eb));
}

.baptisten-loop-grid .elementor-post__meta-data {
    margin: 0 0 12px;
    color: var(--e-global-color-secondary, #64748b);
    font-size: 13px;
    line-height: 1.45;
}

.baptisten-loop-grid .elementor-post__excerpt {
    margin: 0 0 18px;
    color: var(--e-global-color-text, #334155);
    hyphens: auto;
    text-align: justify;
    text-align-last: left;
}

.baptisten-loop-grid .elementor-post__excerpt p {
    margin: 0;
}

.baptisten-loop-grid .elementor-post__read-more {
    display: inline-flex;
    align-items: center;
    align-self: flex-start;
    margin-top: auto;
    color: var(--e-global-color-primary, var(--wp--preset--color--primary, #2563eb));
    font-weight: 700;
    text-decoration: none;
}

.baptisten-loop-grid .elementor-post__read-more:hover,
.baptisten-loop-grid .elementor-post__read-more:focus {
    text-decoration: underline;
}

.baptisten-loop-grid--align-buttons .elementor-post__text {
    min-height: 100%;
}

.baptisten-loop-grid .elementor-post__avatar {
    position: absolute;
    left: 18px;
    top: 18px;
    z-index: 3;
}

.baptisten-loop-grid .elementor-post__avatar img {
    border-radius: 999px;
    border: 2px solid #fff;
    box-shadow: 0 8px 20px rgba(0,0,0,.18);
}

.baptisten-loop-grid__pagination {
    margin-top: 34px;
}

.baptisten-loop-grid__pagination ul {
    display: flex;
    flex-wrap: wrap;
    justify-content: center;
    gap: 8px;
    list-style: none;
    padding: 0;
    margin: 0;
}

.baptisten-loop-grid__pagination a,
.baptisten-loop-grid__pagination span {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    min-width: 40px;
    min-height: 40px;
    padding: 8px 12px;
    border-radius: 12px;
    background: rgba(127, 127, 127, .10);
    text-decoration: none;
}

.baptisten-loop-grid__pagination .current {
    background: var(--e-global-color-primary, var(--wp--preset--color--primary, #2563eb));
    color: #fff;
}

.baptisten-loop-grid__load-more {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    gap: 10px;
    margin: 34px auto 0;
    padding: 12px 22px;
    border: 0;
    border-radius: 999px;
    background: var(--e-global-color-primary, var(--wp--preset--color--primary, #2563eb));
    color: #fff;
    font-weight: 700;
    cursor: pointer;
    transition: opacity .2s ease, transform .2s ease;
}

.baptisten-loop-grid__load-more:hover {
    transform: translateY(-1px);
}

.baptisten-loop-grid__load-more[disabled] {
    opacity: .55;
    cursor: wait;
}

.baptisten-loop-grid__sentinel {
    min-height: 1px;
    display: flex;
    justify-content: center;
    padding-top: 26px;
}

.baptisten-loop-grid__spinner {
    display: none;
    width: 20px;
    height: 20px;
    border: 2px solid currentColor;
    border-right-color: transparent;
    border-radius: 999px;
    animation: baptisten-loop-grid-spin .8s linear infinite;
}

.baptisten-loop-grid-wrap.is-loading .baptisten-loop-grid__spinner {
    display: inline-block;
}

.baptisten-loop-grid__nomore,
.baptisten-loop-grid__empty {
    margin-top: 28px;
    color: var(--e-global-color-secondary, #64748b);
}

@keyframes baptisten-loop-grid-spin {
    to { transform: rotate(360deg); }
}

html.contrast-mode .baptisten-loop-grid .elementor-post__card,
body.contrast-mode .baptisten-loop-grid .elementor-post__card,
html[data-contrast="true"] .baptisten-loop-grid .elementor-post__card,
body[data-contrast="true"] .baptisten-loop-grid .elementor-post__card,
html.px-contrast .baptisten-loop-grid .elementor-post__card,
body.px-contrast .baptisten-loop-grid .elementor-post__card,
html.baptisten-contrast .baptisten-loop-grid .elementor-post__card,
body.baptisten-contrast .baptisten-loop-grid .elementor-post__card {
    background: var(--baptisten-contrast-card-bg, #111827);
    color: var(--baptisten-contrast-text, #f8fafc);
    border-color: rgba(255,255,255,.12);
    box-shadow: 0 18px 45px rgba(0,0,0,.35);
}

html.contrast-mode .baptisten-loop-grid .elementor-post__excerpt,
body.contrast-mode .baptisten-loop-grid .elementor-post__excerpt,
html[data-contrast="true"] .baptisten-loop-grid .elementor-post__excerpt,
body[data-contrast="true"] .baptisten-loop-grid .elementor-post__excerpt,
html.px-contrast .baptisten-loop-grid .elementor-post__excerpt,
body.px-contrast .baptisten-loop-grid .elementor-post__excerpt,
html.baptisten-contrast .baptisten-loop-grid .elementor-post__excerpt,
body.baptisten-contrast .baptisten-loop-grid .elementor-post__excerpt {
    color: var(--baptisten-contrast-muted-text, #e5e7eb);
}

html.contrast-mode .baptisten-loop-grid .elementor-post__meta-data,
body.contrast-mode .baptisten-loop-grid .elementor-post__meta-data,
html[data-contrast="true"] .baptisten-loop-grid .elementor-post__meta-data,
body[data-contrast="true"] .baptisten-loop-grid .elementor-post__meta-data,
html.px-contrast .baptisten-loop-grid .elementor-post__meta-data,
body.px-contrast .baptisten-loop-grid .elementor-post__meta-data,
html.baptisten-contrast .baptisten-loop-grid .elementor-post__meta-data,
body.baptisten-contrast .baptisten-loop-grid .elementor-post__meta-data {
    color: var(--baptisten-contrast-subtle-text, #cbd5e1);
}

@media (max-width: 1024px) {
    .baptisten-loop-grid {
        --blg-columns: 2;
    }
}

@media (max-width: 767px) {
    .baptisten-loop-grid {
        --blg-columns: 1;
    }
    .baptisten-loop-grid .elementor-post__text {
        padding: 18px;
    }
}
