.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__load-more.is-finished {
    cursor: default;
    opacity: .72;
}

.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;
    }
}

/* Freizeitplaner cards integrated into Baptisten Loop Grid */
.baptisten-loop-grid__item--bfp-event .elementor-post__card {
    border-color: rgba(0, 122, 139, .22);
}
.baptisten-loop-grid__item--bfp-event .elementor-post__card::before {
    content: "";
    position: absolute;
    inset: 0 auto 0 0;
    width: 5px;
    background: var(--baptisten-accent, #007a8b);
    opacity: .9;
    z-index: 1;
}
.baptisten-loop-grid__item--bfp-event .baptisten-loop-grid__bfp-badge {
    background: color-mix(in srgb, var(--baptisten-accent, #007a8b) 92%, #ffffff 8%);
}
.baptisten-loop-grid__item--bfp-event .baptisten-loop-grid__bfp-meta {
    color: var(--baptisten-muted, #5d7f91);
    font-weight: 700;
}
body.baptisten-contrast-mode .baptisten-loop-grid__item--bfp-event .elementor-post__card,
body.contrast-mode .baptisten-loop-grid__item--bfp-event .elementor-post__card,
html[data-contrast="1"] .baptisten-loop-grid__item--bfp-event .elementor-post__card {
    border-color: rgba(255,255,255,.28);
}

/* v1.0.15: dezente News-Actions und ChurchTools-Platzhalter */
.baptisten-loop-grid__actions {
    display: flex;
    justify-content: flex-end;
    align-items: center;
    gap: 12px;
    margin-top: clamp(22px, 3vw, 34px);
}

.baptisten-loop-grid__actions .baptisten-loop-grid__load-more,
.baptisten-loop-grid__actions .baptisten-loop-grid__all-news {
    margin: 0;
    min-height: 38px;
    padding: 9px 16px;
    border-radius: 999px;
    font-size: 14px;
    line-height: 1;
    text-decoration: none;
    box-shadow: 0 10px 24px rgba(0, 90, 122, .12);
}

.baptisten-loop-grid__actions .baptisten-loop-grid__load-more {
    background: var(--e-global-color-primary, var(--wp--preset--color--primary, #00758a));
}

.baptisten-loop-grid__actions .baptisten-loop-grid__all-news {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    gap: 8px;
    border: 1px solid rgba(0,90,122,.16);
    background: color-mix(in srgb, var(--e-global-color-primary, #00758a) 10%, #fff 90%);
    color: var(--e-global-color-primary, #00758a);
    font-weight: 800;
}

.baptisten-loop-grid__actions .baptisten-loop-grid__all-news:hover,
.baptisten-loop-grid__actions .baptisten-loop-grid__all-news:focus {
    transform: translateY(-1px);
    background: color-mix(in srgb, var(--e-global-color-primary, #00758a) 15%, #fff 85%);
}

.baptisten-loop-grid__ct-placeholder-img {
    position: absolute;
    inset: 0;
    display: grid;
    place-items: center;
    overflow: hidden;
    background:
        radial-gradient(circle at 18% 18%, rgba(200,0,110,.14), transparent 30%),
        radial-gradient(circle at 85% 20%, rgba(203,180,73,.18), transparent 34%),
        linear-gradient(135deg, rgba(0,90,122,.12), rgba(255,255,255,.84) 52%, rgba(0,90,122,.09));
    color: var(--e-global-color-primary, #005a7a);
    isolation: isolate;
}

.baptisten-loop-grid__ct-placeholder-img::before,
.baptisten-loop-grid__ct-placeholder-img::after {
    content: "";
    position: absolute;
    width: 54%;
    height: 72%;
    border-radius: 28px;
    background: rgba(0,90,122,.16);
    transform: rotate(-10deg);
    z-index: -1;
}

.baptisten-loop-grid__ct-placeholder-img::before { left: -12%; bottom: -24%; }
.baptisten-loop-grid__ct-placeholder-img::after { right: -14%; top: -28%; background: rgba(200,0,110,.10); transform: rotate(12deg); }

.baptisten-loop-grid__ct-placeholder-icon {
    display: inline-grid;
    place-items: center;
    width: 54px;
    height: 54px;
    border-radius: 18px;
    background: rgba(255,255,255,.82);
    box-shadow: 0 18px 40px rgba(0,90,122,.14);
    font-size: 24px;
}

.baptisten-loop-grid__ct-placeholder-img strong {
    position: absolute;
    left: 22px;
    bottom: 20px;
    font-family: var(--baptisten-heading-font, Bitter, serif);
    font-size: clamp(18px, 2.2vw, 26px);
    line-height: 1;
}

@media (max-width: 1024px) {
    .baptisten-loop-grid__actions {
        justify-content: center;
    }
}

@media (max-width: 767px) {
    .baptisten-loop-grid__actions {
        flex-wrap: wrap;
        justify-content: center;
        gap: 10px;
        margin-top: 24px;
    }
    .baptisten-loop-grid__actions .baptisten-loop-grid__load-more,
    .baptisten-loop-grid__actions .baptisten-loop-grid__all-news {
        min-height: 40px;
        padding: 10px 15px;
    }
}

html.contrast-mode .baptisten-loop-grid__actions .baptisten-loop-grid__all-news,
body.contrast-mode .baptisten-loop-grid__actions .baptisten-loop-grid__all-news,
html[data-contrast="true"] .baptisten-loop-grid__actions .baptisten-loop-grid__all-news,
body[data-contrast="true"] .baptisten-loop-grid__actions .baptisten-loop-grid__all-news,
html.px-contrast .baptisten-loop-grid__actions .baptisten-loop-grid__all-news,
body.px-contrast .baptisten-loop-grid__actions .baptisten-loop-grid__all-news,
html.baptisten-contrast .baptisten-loop-grid__actions .baptisten-loop-grid__all-news,
body.baptisten-contrast .baptisten-loop-grid__actions .baptisten-loop-grid__all-news {
    background: rgba(255,255,255,.08);
    color: var(--baptisten-contrast-text, #f8fafc);
    border-color: rgba(255,255,255,.18);
}

html.contrast-mode .baptisten-loop-grid__ct-placeholder-img,
body.contrast-mode .baptisten-loop-grid__ct-placeholder-img,
html[data-contrast="true"] .baptisten-loop-grid__ct-placeholder-img,
body[data-contrast="true"] .baptisten-loop-grid__ct-placeholder-img,
html.px-contrast .baptisten-loop-grid__ct-placeholder-img,
body.px-contrast .baptisten-loop-grid__ct-placeholder-img,
html.baptisten-contrast .baptisten-loop-grid__ct-placeholder-img,
body.baptisten-contrast .baptisten-loop-grid__ct-placeholder-img {
    background: linear-gradient(135deg, #0f172a, #1f2937 54%, #073b4c);
    color: var(--baptisten-contrast-text, #f8fafc);
}
