.single-jfp_aktivitaet .wp-block-post-title,
.single-jfp_aktivitaet .wp-block-post-date,
.single-jfp_aktivitaet .wp-block-post-featured-image,
.single-jfp_aktivitaet main .entry-title,
.single-jfp_aktivitaet main .entry-meta { display: none !important; }

body.single-jfp_aktivitaet,
body.single-jfp_aktivitaet .wp-site-blocks { overflow-x: clip; }

/* Falls das Single-Template den Abstand als Layout-Gap der
   Website-Huelle ausgibt, direkt an der Huelle aufheben. */
body.single-jfp_aktivitaet .wp-site-blocks {
    gap: 0 !important;
    --wp--style--block-gap: 0;
}

/* Auch freie Zwischencontainer des Templates duerfen oberhalb des
   Aktivitaets-Heros keinen Abstand hinzufuegen. :has() trifft nur
   Vorfahren unserer Aktivitaetsausgabe, nicht deren Inhaltsbereiche. */
body.single-jfp_aktivitaet .wp-site-blocks :has(.jfp-new-activity) {
    margin-block-start: 0 !important;
    padding-block-start: 0 !important;
    row-gap: 0 !important;
}

/* Der Gutenberg-Single-Template-Container hat eigene Seitenabstaende und
   einen Block-Gap. Nur die Vorfahren unserer Ausgabe auf volle Breite
   setzen; die Innenabstaende der Aktivitaetsabschnitte bleiben erhalten. */
body.single-jfp_aktivitaet .wp-site-blocks > main,
body.single-jfp_aktivitaet .wp-site-blocks > main article:has(.jfp-new-activity),
body.single-jfp_aktivitaet .wp-site-blocks > main .wp-block-group:has(.jfp-new-activity),
body.single-jfp_aktivitaet .wp-site-blocks > main .entry-content:has(.jfp-new-activity),
body.single-jfp_aktivitaet .wp-site-blocks > main .wp-block-post-content {
    width: 100% !important;
    max-width: none !important;
    margin: 0 !important;
    padding: 0 !important;
    gap: 0 !important;
    --wp--style--block-gap: 0;
}

body.single-jfp_aktivitaet .wp-block-post-content {
    width: 100% !important;
    max-width: none !important;
    margin-block: 0 !important;
    padding-block: 0 !important;
}

body.single-jfp_aktivitaet .wp-site-blocks > main .wp-block-post-content > .jfp-new-activity {
    margin-block: 0 !important;
}

/* Manche Single-Templates legen oberhalb des Post-Inhalts noch einen
   zusaetzlichen Layout-Block an. Dessen Gutenberg-Block-Gap erzeugt den
   weissen Streifen direkt unter der Kopfzeile. Die Regel erfasst den
   tatsaechlichen Vorfahren unabhaengig von seiner Block-Art. */
body.single-jfp_aktivitaet .wp-site-blocks > :has(.jfp-new-activity),
body.single-jfp_aktivitaet .wp-site-blocks :is(main, article, .wp-block-group, .wp-block-post-content, .entry-content):has(.jfp-new-activity) {
    margin-block-start: 0 !important;
    padding-block-start: 0 !important;
    --wp--style--block-gap: 0;
}

body.single-jfp_aktivitaet .wp-block-group:has(> .wp-block-post-content),
body.single-jfp_aktivitaet .wp-block-group:has(> .wp-block-post-date) {
    margin-block: 0 !important;
    padding-block: 0 !important;
    gap: 0 !important;
}

.jfp-new-activity,
.jfp-new-activity * { box-sizing: border-box; }

:root .wp-site-blocks .jfp-new-activity,
.jfp-new-activity {
    width: 100% !important;
    max-width: 100% !important;
    margin: 0 !important;
    color: var(--jfp-new-ink);
    background: var(--jfp-new-paper);
    font-family: var(--jfp-new-font-body);
    font-size: var(--jfp-new-size-body);
}

/* Das Extendable-Single-Template laesst vor dem gerenderten Inhalt einen
   rund 40px hohen Leerraum stehen, der nicht zu unserer Ausgabe gehoert.
   Die Aktivitaetsausgabe rueckt darueber; der negative untere Rand
   verhindert einen entsprechenden Leerraum vor der Fusszeile. */
body.single-jfp_aktivitaet .wp-site-blocks .jfp-new-activity {
    position: relative;
    top: -40px;
    margin-bottom: -40px !important;
}

.jfp-new-activity img { max-width: 100%; }
.jfp-new-activity h1,
.jfp-new-activity h2,
.jfp-new-activity h3 { color: inherit; font-family: var(--jfp-new-font-heading); }
.jfp-new-activity h1 { margin: 0 0 1rem; font-size: var(--jfp-new-size-h1); font-weight: 700; line-height: .98; letter-spacing: -.052em; }
.jfp-new-activity h2 { margin: 0; font-size: var(--jfp-new-size-h2); font-weight: 650; line-height: 1.08; letter-spacing: -.035em; }
.jfp-new-activity h3 { margin: 0; font-size: var(--jfp-new-size-h3); font-weight: 650; line-height: 1.18; letter-spacing: -.02em; }
.jfp-new-activity p { line-height: 1.6; }
.jfp-new-eyebrow { margin: 0 0 .7rem; color: var(--jfp-new-gold); font-size: var(--jfp-new-size-meta); font-weight: 700; line-height: 1.3; letter-spacing: .16em; text-transform: uppercase; }

.jfp-new-hero { min-height: 360px; background: var(--jfp-new-gradient-hero); }
.jfp-new-hero__image {
    display: grid;
    height: clamp(320px, 42vw, 560px);
    min-height: 280px;
    max-height: 560px;
    overflow: hidden;
    place-items: center;
    padding: clamp(.7rem, 1.4vw, 1.2rem);
}
.jfp-new-activity .jfp-new-hero__image img {
    display: block;
    width: auto;
    height: auto !important;
    max-width: 100%;
    max-height: 100%;
    border-radius: 12px;
    object-fit: contain !important;
    object-position: center;
}
.jfp-new-hero__copy { padding: clamp(1.6rem, 3vw, 3rem); }
.jfp-new-hero__lead { max-width: 650px; margin: 0; font-size: var(--jfp-new-size-lead); line-height: 1.55; }
.jfp-new-intro { display: grid; grid-template-columns: minmax(0, 1.35fr) minmax(240px, .65fr); gap: clamp(1.4rem, 3vw, 3rem); width: min(100%, var(--jfp-new-content)); margin-inline: auto; padding: clamp(1.5rem, 2.8vw, 2.6rem) var(--jfp-new-gutter); background: var(--jfp-new-paper); }
.jfp-new-intro__content { max-width: var(--jfp-new-reading); }
.jfp-new-intro__content > :first-child,
.jfp-new-intro aside > :first-child { margin-top: 0; }
.jfp-new-intro__content > :last-child,
.jfp-new-intro aside > :last-child { margin-bottom: 0; }
.jfp-new-intro aside { align-self: center; padding: 1.2rem 1.3rem; background: var(--jfp-new-blue-pale); border-left: 3px solid var(--jfp-new-gold); border-radius: 0 var(--jfp-new-radius-small) var(--jfp-new-radius-small) 0; }

.jfp-new-offers,
.jfp-new-moments { padding: var(--jfp-new-section-y) var(--jfp-new-gutter); }
.jfp-new-offers {
    /* Einheitliche, bewusst kompakte Bildbuehne fuer alle vier Varianten.
       Beim Wechseln eines Galeriebilds bleibt die Karte unveraendert gross. */
    --jfp-new-offer-image-max-width: 400px;
    --jfp-new-offer-image-height: 280px;
}
.jfp-new-offers--count-1 {
    --jfp-new-offer-image-max-width: 520px;
    --jfp-new-offer-image-height: 360px;
}
.jfp-new-offers--current.jfp-new-offers--count-1 {
    padding-top: clamp(1.1rem, 2vw, 2.2rem);
}
.jfp-new-offers--count-2 {
    --jfp-new-offer-image-max-width: 470px;
    --jfp-new-offer-image-height: 320px;
}
.jfp-new-offers--count-3 {
    --jfp-new-offer-image-max-width: 400px;
    --jfp-new-offer-image-height: 280px;
}
.jfp-new-offers--current { background: var(--jfp-new-gradient-current); }
.jfp-new-moments { background: var(--jfp-new-gradient-moments); }
.jfp-new-offers--past { background: var(--jfp-new-gradient-past); }
.jfp-new-offers > *,
.jfp-new-moments > * { width: min(100%, var(--jfp-new-content)); margin-inline: auto; }
.jfp-new-section-head { display: flex; justify-content: space-between; align-items: end; gap: 2rem; margin-bottom: 1.4rem; }
.jfp-new-section-head > p { max-width: 520px; margin: 0; color: var(--jfp-new-ink-soft); }

.jfp-new-offers__grid { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: var(--jfp-new-gap); }
.jfp-new-offers--count-1 > .jfp-new-offers__grid { max-width: 1120px; }
.jfp-new-offers--count-2 > .jfp-new-offers__grid { grid-template-columns: repeat(2, minmax(0, 1fr)); }
.jfp-new-offer { min-width: 0; overflow: hidden; scroll-margin-top: 120px; background: var(--jfp-new-surface-strong); border: 1px solid var(--jfp-new-line); border-radius: var(--jfp-new-radius); box-shadow: var(--jfp-new-shadow); }
.jfp-new-offers--current .jfp-new-offer {
    border-top: 3px solid var(--jfp-new-gold);
    box-shadow: 0 18px 46px rgb(22 59 70 / 12%);
}
.jfp-new-offer--featured { grid-column: 1/-1; }
.jfp-new-offer--featured.has-media { display: grid; grid-template-columns: minmax(300px, 1fr) minmax(0, 1fr); }
.jfp-new-offer__gallery {
    position: relative;
    display: grid;
    align-self: center;
    width: min(100%, var(--jfp-new-offer-image-max-width));
    height: min(var(--jfp-new-offer-image-height), 70svh);
    min-height: 0;
    max-height: var(--jfp-new-offer-image-height);
    margin-inline: auto;
    overflow: hidden;
    place-items: center;
}

/* Bilder stehen direkt auf der jeweiligen Hero- bzw. Kartenflaeche.
   Eigene Bildbuehnen-Verlaeufe wuerden bei Hochformaten und schmaleren
   Fotos als andersfarbige Raender sichtbar. Die Varianten definieren
   teils spaeter eigene Hintergruende; hier gilt bewusst eine
   einheitliche Regel fuer alle vier Varianten. */
.jfp-new-activity .jfp-new-hero__image,
.jfp-new-activity .jfp-new-offer__gallery {
    background: transparent !important;
}

.jfp-new-activity--v4 .jfp-new-hero__image,
.jfp-new-activity .jfp-new-offers--past .jfp-new-offer__gallery {
    border: 0 !important;
    box-shadow: none !important;
}
.jfp-new-offer__slides,
.jfp-new-offer__slide {
    width: 100%;
    height: 100%;
    min-height: 0;
    margin: 0;
}
.jfp-new-offer__slide {
    display: grid;
    place-items: center;
}
.jfp-new-offer__slide[hidden] { display: none !important; }
.jfp-new-activity .jfp-new-offer__slide img {
    display: block;
    width: 100%;
    height: 100% !important;
    max-width: 100%;
    max-height: min(var(--jfp-new-offer-image-height), 70svh);
    object-fit: contain !important;
    object-position: center;
}
.jfp-new-offer__gallery-controls {
    position: absolute;
    z-index: 2;
    inset: 0;
    color: var(--jfp-new-on-dark);
    pointer-events: none;
}
.jfp-new-offer__gallery-controls span {
    position: absolute;
    top: .7rem;
    right: .7rem;
    min-width: 3.25rem;
    padding: .38rem .58rem;
    background: rgb(15 52 63 / 66%);
    border: 1px solid rgb(255 255 255 / 35%);
    border-radius: 999px;
    box-shadow: 0 4px 14px rgb(4 28 36 / 13%);
    font-size: var(--jfp-new-size-micro);
    line-height: 1;
    text-align: center;
    backdrop-filter: blur(6px);
}
.jfp-new-offer__gallery-controls button {
    position: absolute;
    top: 50%;
    display: grid;
    width: 38px;
    height: 38px;
    padding: 0 0 3px;
    place-items: center;
    color: var(--jfp-new-on-dark);
    background: rgb(15 52 63 / 46%);
    border: 1px solid rgb(255 255 255 / 40%);
    border-radius: 50%;
    box-shadow: 0 4px 15px rgb(4 28 36 / 12%);
    font: 400 1.7rem/1 var(--jfp-new-font-body);
    opacity: .62;
    cursor: pointer;
    pointer-events: auto;
    transform: translateY(-50%);
    transition: opacity .18s ease, background-color .18s ease, transform .18s ease;
    backdrop-filter: blur(6px);
}
.jfp-new-offer__gallery-controls button[data-jfp-prev] { left: .7rem; }
.jfp-new-offer__gallery-controls button[data-jfp-next] { right: .7rem; }
.jfp-new-offer__gallery:hover .jfp-new-offer__gallery-controls button,
.jfp-new-offer__gallery:focus-within .jfp-new-offer__gallery-controls button { opacity: .9; }
.jfp-new-offer__gallery-controls button:hover,
.jfp-new-offer__gallery-controls button:focus-visible {
    background: rgb(15 52 63 / 78%);
    opacity: 1;
    transform: translateY(-50%) scale(1.04);
}
.jfp-new-offer__gallery-controls button:focus-visible { outline: 2px solid var(--jfp-new-gold-light); outline-offset: 2px; }
.jfp-new-carousel__controls button { display: inline-grid; width: 34px; height: 34px; padding: 0; place-items: center; color: var(--jfp-new-on-dark); background: var(--jfp-new-blue-deep); border: 0; border-radius: 50%; font: inherit; cursor: pointer; }
.jfp-new-offer__body { padding: clamp(1rem, 2vw, 1.6rem); }
.jfp-new-offer__date { display: inline-block; margin: 0 0 .75rem; padding: .35rem .65rem; color: var(--jfp-new-ink); background: var(--jfp-new-gold-light); border-radius: 999px; font-size: var(--jfp-new-size-meta); font-weight: 700; }
.jfp-new-offer__term-title { margin-top: .75rem; font-size: var(--jfp-new-size-small); font-weight: 650; }
.jfp-new-offer__term-title p,
.jfp-new-offer__content p,
.jfp-new-offer__info p { margin: .65rem 0 0; }
.jfp-new-offer__content { color: var(--jfp-new-ink-soft); font-size: var(--jfp-new-size-small); }
.jfp-new-offer__content :where(p, ul, ol, li, span, strong, em, a, font) {
    font-family: inherit !important;
    font-size: inherit !important;
    line-height: inherit !important;
    letter-spacing: inherit !important;
}
.jfp-new-offer__content :where(ul, ol) { margin: .65rem 0 0; padding-left: 1.35rem; }
.jfp-new-offer__content li + li { margin-top: .3rem; }
.jfp-new-offer__info { margin-top: 1rem; padding-top: .85rem; color: var(--jfp-new-ink-soft); border-top: 1px solid var(--jfp-new-line); font-size: var(--jfp-new-size-small); }

/* Der Rueckblick ist bewusst magazinartiger und ruhiger als die aktuellen
   Angebote. So sind beide Bereiche auch ohne Lesen sofort unterscheidbar. */
.jfp-new-offers--past {
    --jfp-new-offer-image-max-width: 460px;
    --jfp-new-offer-image-height: 320px;
    background:
        radial-gradient(circle at 96% 8%, rgb(219 197 143 / 18%), transparent 22rem),
        linear-gradient(145deg, #fbf7ed 0%, #f3ecdc 55%, #edf3f3 125%);
}
.jfp-new-offers--past .jfp-new-section-head {
    padding-bottom: 1rem;
    border-bottom: 1px solid rgb(179 143 66 / 28%);
}
.jfp-new-offers--past .jfp-new-offers__grid { gap: clamp(1.25rem, 2.4vw, 2.1rem); }
.jfp-new-offers--past .jfp-new-offer {
    position: relative;
    overflow: visible;
    background: rgb(255 253 247 / 78%);
    border: 0;
    border-radius: 8px 28px 28px 8px;
    box-shadow: 0 12px 34px rgb(86 69 35 / 7%);
}
.jfp-new-offers--past .jfp-new-offer::before {
    position: absolute;
    z-index: 1;
    inset: 1rem auto 1rem 0;
    width: 3px;
    content: "";
    background: linear-gradient(180deg, var(--jfp-new-gold), rgb(91 129 143 / 62%));
    border-radius: 999px;
}
.jfp-new-offers--past .jfp-new-offer:nth-child(even) {
    background: rgb(241 247 248 / 84%);
    border-radius: 28px 8px 8px 28px;
}
.jfp-new-offers--past .jfp-new-offer:nth-child(even)::before { inset-inline: auto 0; }
.jfp-new-offers--past .jfp-new-offer--featured.has-media {
    grid-template-columns: minmax(260px, .76fr) minmax(0, 1.24fr);
    align-items: center;
}
.jfp-new-offers--past .jfp-new-offer__gallery {
    width: calc(100% - clamp(1.2rem, 2vw, 2rem));
    height: min(var(--jfp-new-offer-image-height), 58svh);
    margin: clamp(.6rem, 1.4vw, 1.1rem);
    background:
        radial-gradient(circle at 12% 8%, rgb(255 255 255 / 82%), transparent 12rem),
        linear-gradient(145deg, #e8f1f2, #f2ecdc);
    border: 1px solid rgb(179 143 66 / 18%);
    border-radius: 18px 5px 18px 5px;
    box-shadow: 0 10px 26px rgb(39 67 73 / 9%);
}
.jfp-new-offers--past .jfp-new-offer__body { padding: clamp(1.25rem, 2.6vw, 2.3rem); }
.jfp-new-offers--past .jfp-new-offer__date {
    color: #765c25;
    background: transparent;
    border: 1px solid rgb(179 143 66 / 38%);
}

.jfp-new-offers__more { width: min(100%, var(--jfp-new-content)); margin: 1rem auto 0; }
.jfp-new-offers__more summary { width: fit-content; margin-inline: auto; padding: .72rem 1.2rem; color: var(--jfp-new-on-dark); background: var(--jfp-new-blue-deep); border-radius: 999px; font-size: var(--jfp-new-size-small); font-weight: 650; cursor: pointer; }
.jfp-new-offers__more[open] summary { margin-bottom: 1rem; }

.jfp-new-carousel__controls { display: flex; justify-content: flex-end; align-items: center; gap: .55rem; margin-bottom: .8rem; }
.jfp-new-carousel__controls span { margin-right: .35rem; color: var(--jfp-new-ink-soft); font-size: var(--jfp-new-size-meta); }
.jfp-new-carousel .jfp-new-offers__grid { display: flex; overflow: hidden; scroll-snap-type: x mandatory; }
.jfp-new-carousel .jfp-new-offer { flex: 0 0 calc((100% - (2 * var(--jfp-new-gap))) / 3); scroll-snap-align: start; }
.jfp-new-carousel button:disabled { opacity: .4; cursor: default; }

.jfp-new-moments__grid { display: grid; grid-template-columns: 1.25fr .75fr .75fr; gap: .7rem; }
.jfp-new-moments__grid figure { display: grid; min-height: 170px; margin: 0; overflow: hidden; place-items: center; background: var(--jfp-new-blue-light); border-radius: var(--jfp-new-radius-small); }
.jfp-new-moments__grid figure:first-child { grid-row: span 2; min-height: 350px; }
.jfp-new-activity .jfp-new-moments__grid img { display: block; width: 100%; height: 100%; object-fit: contain !important; object-position: center; }
.jfp-new-moments__texts { display: flex; flex-wrap: wrap; gap: .65rem; margin-top: 1rem; }
.jfp-new-moments__texts p { margin: 0; padding: .65rem .85rem; background: var(--jfp-new-surface-soft); border: 1px solid var(--jfp-new-line); border-radius: var(--jfp-new-radius-small); font-size: var(--jfp-new-size-small); }

@media (max-width: 850px) {
    .jfp-new-intro { grid-template-columns: 1fr; }
    .jfp-new-offer--featured.has-media { grid-template-columns: 1fr; }
    .jfp-new-offers__grid { grid-template-columns: repeat(2, minmax(0, 1fr)); }
    .jfp-new-carousel .jfp-new-offer { flex-basis: calc((100% - var(--jfp-new-gap)) / 2); }
    .jfp-new-offers--past .jfp-new-offer--featured.has-media { grid-template-columns: 1fr; }
}
@media (max-width: 700px) {
    .jfp-new-section-head { display: block; }
    .jfp-new-section-head > p { margin-top: .6rem; }
    .jfp-new-offers__grid,
    .jfp-new-offers--count-2 > .jfp-new-offers__grid { grid-template-columns: 1fr; }
    .jfp-new-offers--count-1 {
        --jfp-new-offer-image-height: clamp(240px, 65vw, 320px);
    }
    .jfp-new-offers--count-2 {
        --jfp-new-offer-image-height: clamp(230px, 62vw, 290px);
    }
    .jfp-new-offers--count-3 {
        --jfp-new-offer-image-height: clamp(220px, 60vw, 270px);
    }
    .jfp-new-carousel .jfp-new-offer { flex-basis: 100%; }
    .jfp-new-moments__grid { grid-template-columns: 1fr 1fr; }
    .jfp-new-moments__grid figure:first-child { grid-column: 1/-1; grid-row: auto; min-height: 240px; }
}
@media (prefers-reduced-motion: reduce) {
    .jfp-new-carousel .jfp-new-offers__grid { scroll-behavior: auto; }
}
