/*
Theme Name: rosa
Author: Helmut
Version: 1.0
Text Domain: rosa
*/


/* =========================================================
   1. DESIGN TOKENS
   ========================================================= */
:root {
    /* Colors */
    --color-red: #ff5c5c;
    --color-pink: #fdecef;
    --color-green: #dfe8aa;
    --color-turquoise: #449ab3;
    --color-black: #0b0b0b;
    --color-white: #ffffff;

    /* Typography */
    --font-main: "Noto Sans", Arial, sans-serif;

    /*
    ========================================
    FLUID TYPE SCALE
    balanced version
    ========================================
    */

    --font-size-xs: clamp(0.78rem, 0.72rem + 0.18vw, 0.85rem);
    /* 12.5 → 13.6 */

    --font-size-sm: clamp(0.9rem, 0.82rem + 0.3vw, 1rem);
    /* 14.4 → 16 */

    --font-size-base: clamp(1rem, 0.99rem + 0.2vw, 1.2625rem);
    /* 16 → 17 */

    --font-size-s1: clamp(1.15rem, 0.98rem + 0.55vw, 1.3rem);
    /* 18.4 → 20.8 */

    --font-size-h3: var(--font-size-base);
    /* Matches the larger paragraph style, including on mobile. */

    --font-size-h2: clamp(1.5rem, 1.0rem + 2.9vw, 1.96rem);
    /* 30 → 35 */

    --font-size-h1: clamp(2.65rem, 1.3rem + 1.785vw, 3.75rem);
    /* 42 → 60 */

    --font-size-nav-mobile: clamp(1.75rem, 7.5vw, 3.5rem);

    /*
    ========================================
    LINE HEIGHTS
    ========================================
    */

    --line-height-h1: 1.1;
    --line-height-h2: 1.2;
    --line-height-h3: 1.28;
    --line-height-s1: 1.4;
    --line-height-copy: 1.4;
    --line-height-small: 1.5;
    --line-height-ui: 1.2;
    --line-height-tight: 1.1;

    /*
    ========================================
    FONT WEIGHTS
    ========================================
    */

    --font-weight-regular: 400;
        --font-weight-semibold: 600;
    --font-weight-bold: 700;
    --font-weight-black: 800;

    /*
    ========================================
    LAYOUT
    ========================================
    */

    --container: 1440px;
    --container-narrow: 760px;

    --page-padding: clamp(1rem, 5vw, 5rem);

    /*
    ========================================
    SPACING
    ========================================
    */

    --space-05: 0.5rem;
    --space-10: 1rem;
    --space-17: 1.7rem;
    --space-20: 2rem;
    --space-24: 2.4rem;
    --space-30: 3rem;
    --space-40: 4rem;
    --space-47: 4.7rem;
    --space-60: 6rem;

    /*
    ========================================
    UI
    ========================================
    */

    --focus: 2px solid var(--color-black);
}
/* =========================================================
   2. FONTS LOCAL
   ========================================================= */

@font-face {
    font-family: "Noto Sans";
    src: url("/wp-content/themes/rosa/assets/fonts/NotoSans-Regular.woff2") format("woff2");
    font-weight: 400;
    font-display: swap;
}

@font-face {
    font-family: "Noto Sans";
    src: url("/wp-content/themes/rosa/assets/fonts/NotoSans-Bold.woff2") format("woff2");
    font-weight: 700;
    font-display: swap;
}

@font-face {
    font-family: "Noto Sans";
    src: url("/wp-content/themes/rosa/assets/fonts/NotoSans-ExtraBold.woff2") format("woff2");
    font-weight: 800;
    font-display: swap;
}


/* =========================================================
   3. BASE
   ========================================================= */

html {
    font-size: 100%;
    overflow-x: clip;
}

body {
    font-family: var(--font-main);
    font-size: var(--font-size-base);
    font-weight: var(--font-weight-regular);
    line-height: var(--line-height-copy);
    color: var(--color-black);
    background: var(--color-white);
    overflow-x: hidden;
}

h1,
h2,
h3 {
    font-weight: var(--font-weight-black);
}

h1 {
    font-size: var(--font-size-h1);
    line-height: var(--line-height-h1);
}

h2 {
    font-size: var(--font-size-h2);
    line-height: var(--line-height-h2);
       margin-bottom: var(--space-17);
      font-weight:var(--font-weight-semibold); 
}

h3 {
    font-size: var(--font-size-h3);
    line-height: var(--line-height-h3);
        margin-bottom: 0.4rem;
         font-weight:var(--font-weight-semibold); 
}

p + p {
    margin-top: 1em;
}

a {
    text-decoration-thickness: 0.08em;
    text-underline-offset: 0.2em;
}

:focus-visible {
    outline: var(--focus);
    outline-offset: 3px;
}


/* =========================================================
   4. LAYOUT
   ========================================================= */

.container {
    max-width: var(--container);
    margin: 0 auto;
    padding-inline: var(--page-padding);
}

.container--narrow {
    max-width: var(--container-narrow);
}

.section {
    padding-block: var(--space-lg);
}

/*
 * Gutenberg columns fallback.
 *
 * The WordPress block-library stylesheet is not present on the public site,
 * so core/columns would otherwise render as ordinary block elements.
 */
.wp-block-columns {
    display: flex;
    align-items: stretch;
    flex-wrap: wrap;
    gap: var(--space-40);
}

.wp-block-column {
    flex-grow: 1;
    min-width: 0;
    overflow-wrap: break-word;
    word-break: break-word;
}

@media (min-width: 782px) {
    .wp-block-columns {
        flex-wrap: nowrap;
    }
}

@media (max-width: 781px) {
    .wp-block-columns {
        gap: var(--space-05);
    }

    .wp-block-columns:not(.is-not-stacked-on-mobile) > .wp-block-column {
        flex-basis: 100% !important;
    }

    .wp-block-columns.is-not-stacked-on-mobile {
        flex-wrap: nowrap;
    }
}

.rosa-block-width--content,
.rosa-block-width--two-thirds,
.rosa-block-width--half,
.rosa-block-width--third {
    box-sizing: border-box;
    width: 100%;
    margin-inline: auto;
}

.rosa-block-width--content {
    max-width: var(--container);
}

.rosa-block-width--two-thirds {
    max-width: 960px;
}

.rosa-block-width--half {
    max-width: 720px;
}

.rosa-block-width--third {
    max-width: 480px;
}

.rosa-block-width--full {
    box-sizing: border-box;
    width: 100vw;
    max-width: none;
    margin-left: calc(50% - 50vw);
    margin-right: calc(50% - 50vw);
}

.container > .rosa-block-width--content > .container,
.container > .rosa-block-width--two-thirds > .container,
.container > .rosa-block-width--half > .container,
.container > .rosa-block-width--third > .container {
    padding-inline: 0;
}

.rosa-block-width--full > .container {
    max-width: none;
}

@media (min-width: 782px) {
    .rosa-block-width--two-thirds {
        width: 66.666%;
    }

    .rosa-block-width--half {
        width: 50%;
    }

    .rosa-block-width--third {
        width: 33.333%;
    }

    .rosa-block-width--two-thirds,
    .rosa-block-width--half,
    .rosa-block-width--third {
        margin-left: max(0px, calc((100% - var(--container)) / 2));
        margin-right: auto;
    }
}

.section--white {
    background: var(--color-white);
    color: var(--color-black);
}

.section--green {
    background: var(--color-green);
    color: var(--color-black);
}

.section--pink {
    background: var(--color-pink);
    color: var(--color-black);
}

.section--red {
    background: var(--color-red);
    color: var(--color-white);
}

/* =========================================================
   LOKALGRUPPE — EINZELANSICHT
   ========================================================= */

.rosa-lokalgruppe__intro {
    padding-block: clamp(3.5rem, 8vw, 8rem);
}

.rosa-lokalgruppe__eyebrow {
    margin: 0 0 var(--space-10);
    font-size: var(--font-size-sm);
    font-weight: var(--font-weight-black);
    letter-spacing: 0.08em;
    line-height: var(--line-height-ui);
    text-transform: uppercase;
}

.rosa-lokalgruppe__type-line {
    position: relative;
    z-index: 2;
    display: flex;
    align-items: center;
    flex-wrap: wrap;
    gap: 0.75rem;
    max-width: min(56rem, 72vw);
    color: var(--rosa-page-hero-text-color, var(--color-white));
}

.rosa-lokalgruppe__type-nav,
.rosa-page-hero__news-nav {
    display: inline-flex;
    align-items: center;
    gap: 0.15rem;
    flex: 0 0 auto;
}

.rosa-lokalgruppe__type-nav a,
.rosa-page-hero__news-nav a {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    width: 1.35rem;
    height: 1.35rem;
    color: inherit;
    text-decoration: none;
}

.rosa-lokalgruppe__type-nav a:hover,
.rosa-page-hero__news-nav a:hover {
    opacity: 0.75;
}

.rosa-lokalgruppe__type-nav a:focus-visible,
.rosa-page-hero__news-nav a:focus-visible {
    outline: 2px solid currentColor;
    outline-offset: 0.15rem;
}

.rosa-lokalgruppe__type-nav svg,
.rosa-page-hero__news-nav svg {
    display: block;
    width: 1rem;
    height: 1rem;
}

.rosa-lokalgruppe__intro h1,
.rosa-lokalgruppe__instagram h2 {
    overflow-wrap: anywhere;
}

.rosa-lokalgruppe__intro h1 {
    margin: 0;
    font-size: var(--font-size-h1);
    line-height: var(--line-height-tight);
}

.rosa-lokalgruppe__description {
    max-width: 65ch;
    margin-top: var(--space-24);
    font-size: var(--font-size-s1);
    line-height: var(--line-height-copy);
}

.rosa-lokalgruppe__description > :last-child {
    margin-bottom: 0;
}

.rosa-lokalgruppe__content {
    padding-top: var(--space-47);
}

.rosa-lokalgruppe__content > .container > .rosa-news-block__header {
    margin-bottom: var(--space-20);
}

.rosa-lokalgruppe__content-action {
    margin-top: var(--space-20);
}

.rosa-lokalgruppe__contact {
    display: flex;
    flex-wrap: wrap;
    gap: var(--space-10) var(--space-24);
    margin-top: var(--space-30);
}

.rosa-lokalgruppe__contact a {
    color: inherit;
    font-weight: var(--font-weight-black);
    text-underline-offset: 0.2em;
}

.rosa-lokalgruppe__email-link,
.rosa-lokalgruppe__instagram-link {
    display: inline-flex;
    align-items: center;
    gap: 0.45em;
    max-width: 100%;
}

.rosa-lokalgruppe__email-link span:last-child {
    min-width: 0;
    overflow-wrap: anywhere;
}

.rosa-lokalgruppe__email-icon,
.rosa-lokalgruppe__instagram-icon {
    display: inline-block;
    flex: 0 0 1.25rem;
    width: 1.25rem;
    height: 1.25rem;
    background-color: currentColor;
}

.rosa-lokalgruppe__email-icon {
    -webkit-mask: url("assets/img/social-email.svg") center / contain no-repeat;
    mask: url("assets/img/social-email.svg") center / contain no-repeat;
}

.rosa-lokalgruppe__instagram-icon {
    -webkit-mask: url("assets/img/social-instagram.svg") center / contain no-repeat;
    mask: url("assets/img/social-instagram.svg") center / contain no-repeat;
}

.rosa-lokalgruppe__hero .rosa-lokalgruppe__email-link,
.rosa-lokalgruppe__hero .rosa-lokalgruppe__instagram-link {
    color: var(--color-white);
}

.rosa-lokalgruppe__hero .rosa-page-hero__image {
    object-position: center var(--rosa-location-image-position-y, 50%);
}

.rosa-page-hero--news .rosa-page-hero__image {
    object-position: center var(--rosa-news-image-position-y, 50%);
}

.rosa-lokalgruppe__hero .rosa-lokalgruppe__eyebrow,
.rosa-lokalgruppe__hero .rosa-lokalgruppe__contact {
    position: relative;
    z-index: 2;
    max-width: min(56rem, 72vw);
    color: var(--rosa-page-hero-text-color, var(--color-white));
}

.rosa-lokalgruppe__hero .rosa-lokalgruppe__eyebrow,
.rosa-lokalgruppe__hero .rosa-lokalgruppe__description {
    margin: 0;
}

.rosa-lokalgruppe__hero .rosa-lokalgruppe__contact {
    margin-top: var(--space-05);
    font-size: var(--font-size-xs);
}

.rosa-lokalgruppe__hero .rosa-lokalgruppe__contact a:focus-visible {
    outline: 2px solid currentColor;
    outline-offset: 0.25rem;
}

.rosa-lokalgruppe__hero.rosa-page-hero--style-01 .rosa-page-hero__inner {
    --rosa-location-related-bottom: clamp(3rem, 8vw, 7rem);
    padding-bottom: calc(var(--rosa-location-related-bottom) + 5rem);
}

.rosa-lokalgruppe__related-actions {
    position: absolute;
    z-index: 2;
    right: var(--rosa-page-hero-overlay-inset);
    bottom: var(--rosa-location-related-bottom);
    left: var(--rosa-page-hero-overlay-inset);
    display: flex;
    flex-wrap: wrap;
    gap: var(--space-10);
    margin: 0;
}

.rosa-lokalgruppe__related-actions .rosa-lokalgruppe__related-button {
    gap: 0.35em;
    margin-top: 0;
    color: var(--color-white);
    background: var(--color-red);
}

.rosa-lokalgruppe__related-actions .rosa-lokalgruppe__related-button--safer-space {
    background: #f0b52d;
}

.rosa-lokalgruppe__related-button:hover span:first-child,
.rosa-lokalgruppe__related-button:focus-visible span:first-child {
    text-decoration: underline;
}

.rosa-lokalgruppe__related-button:focus-visible {
    outline: 2px solid var(--color-white);
    outline-offset: 0.2rem;
}

.rosa-lokalgruppe__mobile-links {
    display: none;
}

.rosa-lokalgruppe__description a {
    color: inherit;
    font-weight: var(--font-weight-bold);
    text-decoration: underline;
}

.rosa-location-email-link__arrow {
    display: inline-block;
    margin-inline-start: 0.2em;
    width: 0.8em;
    height: 0.8em;
    vertical-align: -0.05em;
}

.rosa-lokalgruppe__related-arrow {
    flex: none;
    align-self: center;
    width: 0.8em;
    height: 0.8em;
}

.rosa-lokalgruppe__details {
    padding-top: var(--space-20);
    padding-bottom: var(--space-30);
}

.rosa-lokalgruppe__detail + .rosa-lokalgruppe__detail {
    margin-top: var(--space-40);
}

.rosa-lokalgruppe__detail h2 {
    margin: 0;
    padding-block: var(--space-10);
    font-size: var(--font-size-h2);
    line-height: var(--line-height-h2);
}

.rosa-lokalgruppe__detail-copy {
    max-width: 69ch;
    font-size: var(--font-size-sm);
    font-weight: var(--font-weight-regular);
    line-height: var(--line-height-copy);
}

.rosa-lokalgruppe__detail-copy p {
    padding-block: var(--space-10);
}

.rosa-lokalgruppe__detail-copy > :last-child {
    margin-bottom: 0;
}

.rosa-lokalgruppe__image {
    margin: 0;
}

.rosa-lokalgruppe__image img {
    display: block;
    width: 100%;
    max-height: 75vh;
    object-fit: cover;
}

.rosa-lokalgruppe__instagram {
    padding-top: var(--space-47);
    padding-bottom: 0;
}

.rosa-lokalgruppe__instagram .rosa-news-block__header {
    margin-bottom: var(--space-20);
}

.rosa-lokalgruppe__instagram-feed,
.rosa-lokalgruppe__instagram-feed > .spotlight-instagram-feed,
.rosa-lokalgruppe__instagram-feed .FeedGridLayout__grid {
    margin-top: 0 !important;
    padding-top: 0 !important;
}

.rosa-lokalgruppe__instagram-feed,
.rosa-lokalgruppe__instagram-feed > .spotlight-instagram-feed,
.rosa-lokalgruppe__instagram-feed .FeedGridLayout__grid {
    margin-bottom: 0 !important;
    padding-bottom: 0 !important;
}

.rosa-lokalgruppe__instagram .rosa-news-block__header a {
    color: inherit;
    text-decoration: underline;
    text-decoration-thickness: 0.06em;
    text-underline-offset: 0.14em;
}

.rosa-lokalgruppe__instagram .rosa-news-block__header a:hover,
.rosa-lokalgruppe__instagram .rosa-news-block__header a:focus-visible {
    text-decoration-thickness: 0.1em;
}

.rosa-lokalgruppe__instagram-feed .FeedGridLayout__grid {
    gap: var(--space-10) !important;
}

/* Spotlight can render portrait media wider than its grid track. Keep each
   location post, including its hover state, inside its own tile. */
.rosa-lokalgruppe__instagram.rosa-instagram--hover-zoom .rosa-lokalgruppe__instagram-feed .FeedGridLayout__cell {
    min-width: 0;
    overflow: hidden !important;
}

.rosa-lokalgruppe__instagram-feed :is(.MediaTile, .MediaTile__root, .FeedGridLayout__media-container, .MediaThumbnail__root) {
    min-width: 0;
    max-width: 100%;
}

.rosa-lokalgruppe__instagram-feed :is(.FeedGridLayout__media-container, .MediaThumbnail__root) {
    overflow: hidden !important;
}

@media (max-width: 700px) {
    .rosa-lokalgruppe__hero.rosa-page-hero--style-01 .rosa-page-hero__inner {
        padding-bottom: var(--space-24);
    }

    .rosa-lokalgruppe__type-line,
    .rosa-lokalgruppe__hero .rosa-lokalgruppe__eyebrow,
    .rosa-lokalgruppe__hero .rosa-lokalgruppe__contact {
        max-width: 100%;
    }

    .rosa-lokalgruppe__hero .rosa-lokalgruppe__contact,
    .rosa-lokalgruppe__hero .rosa-lokalgruppe__related-actions {
        display: none;
    }

    .rosa-lokalgruppe__mobile-links {
        display: block;
        padding-block: var(--space-20);
        background: var(--color-white);
    }

    .rosa-lokalgruppe__mobile-links .rosa-lokalgruppe__contact {
        margin: 0;
        color: var(--color-red);
        font-size: var(--font-size-sm);
    }

    .rosa-lokalgruppe__mobile-links .rosa-lokalgruppe__contact a {
        color: var(--color-red);
    }

    .rosa-lokalgruppe__mobile-links .rosa-lokalgruppe__related-actions {
        position: static;
        margin-top: var(--space-20);
    }

    .rosa-lokalgruppe__mobile-links .rosa-lokalgruppe__related-actions:first-child {
        margin-top: 0;
    }

    .rosa-lokalgruppe__mobile-links + .rosa-lokalgruppe__instagram {
        padding-top: var(--space-30);
    }

}

.has-white-background-color,
.rosa-block-bg--white {
    --rosa-block-background: #ffffff;
    background-color: #ffffff;
    color: var(--color-black);
}

.has-rosa-red-background-color,
.rosa-block-bg--red {
    --rosa-block-background: #ff5c5c;
    background-color: #ff5c5c;
    color: var(--color-black);
}

.has-rosa-pink-background-color,
.rosa-block-bg--pink {
    --rosa-block-background: #fdecef;
    background-color: #fdecef;
    color: var(--color-black);
}

.has-rosa-green-background-color,
.rosa-block-bg--green {
    --rosa-block-background: #dfe8aa;
    background-color: #dfe8aa;
    color: var(--color-black);
}

.has-rosa-turquoise-background-color,
.rosa-block-bg--turquoise {
    --rosa-block-background: #449ab3;
    background-color: #449ab3;
    color: var(--color-black);
}

.has-black-background-color,
.rosa-block-bg--black {
    --rosa-block-background: #0b0b0b;
    background-color: #0b0b0b;
    color: var(--color-white);
}

.rosa-section.has-background,
.rosa-block-bg {
    position: relative;
    isolation: isolate;
    background-color: var(--rosa-block-background, #ffffff);
}

.rosa-section.has-background::before,
.rosa-block-bg::before {
    content: "";
    position: absolute;
    z-index: 0;
    top: 0;
    bottom: 0;
    left: -100vw;
    right: -100vw;
    background-color: var(--rosa-block-background, #ffffff);
    pointer-events: none;
}

/* A full-bleed block background must not cover a neighbouring column. */
.wp-block-column .rosa-section.has-background::before,
.wp-block-column .rosa-block-bg::before {
    display: none;
}

.rosa-section.has-background > *,
.rosa-block-bg > * {
    position: relative;
    z-index: 1;
}

.rosa-block-bg--custom {
    background-color: var(--rosa-block-background, #ffffff);
}

.rosa-block-spacing-top--0 { --rosa-block-spacing-top: 0px; }
.rosa-block-spacing-top--05 { --rosa-block-spacing-top: calc(var(--space-05) * var(--rosa-block-spacing-scale, 1)); }
.rosa-block-spacing-top--10 { --rosa-block-spacing-top: calc(var(--space-10) * var(--rosa-block-spacing-scale, 1)); }
.rosa-block-spacing-top--17 { --rosa-block-spacing-top: calc(var(--space-17) * var(--rosa-block-spacing-scale, 1)); }
.rosa-block-spacing-top--20 { --rosa-block-spacing-top: calc(var(--space-20) * var(--rosa-block-spacing-scale, 1)); }
.rosa-block-spacing-top--24 { --rosa-block-spacing-top: calc(var(--space-24) * var(--rosa-block-spacing-scale, 1)); }
.rosa-block-spacing-top--30 { --rosa-block-spacing-top: calc(var(--space-30) * var(--rosa-block-spacing-scale, 1)); }
.rosa-block-spacing-top--40 { --rosa-block-spacing-top: calc(var(--space-40) * var(--rosa-block-spacing-scale, 1)); }
.rosa-block-spacing-top--47 { --rosa-block-spacing-top: calc(var(--space-47) * var(--rosa-block-spacing-scale, 1)); }
.rosa-block-spacing-top--60 { --rosa-block-spacing-top: calc(var(--space-60) * var(--rosa-block-spacing-scale, 1)); }

.rosa-block-spacing-bottom--0 { --rosa-block-spacing-bottom: 0px; }
.rosa-block-spacing-bottom--05 { --rosa-block-spacing-bottom: calc(var(--space-05) * var(--rosa-block-spacing-scale, 1)); }
.rosa-block-spacing-bottom--10 { --rosa-block-spacing-bottom: calc(var(--space-10) * var(--rosa-block-spacing-scale, 1)); }
.rosa-block-spacing-bottom--17 { --rosa-block-spacing-bottom: calc(var(--space-17) * var(--rosa-block-spacing-scale, 1)); }
.rosa-block-spacing-bottom--20 { --rosa-block-spacing-bottom: calc(var(--space-20) * var(--rosa-block-spacing-scale, 1)); }
.rosa-block-spacing-bottom--24 { --rosa-block-spacing-bottom: calc(var(--space-24) * var(--rosa-block-spacing-scale, 1)); }
.rosa-block-spacing-bottom--30 { --rosa-block-spacing-bottom: calc(var(--space-30) * var(--rosa-block-spacing-scale, 1)); }
.rosa-block-spacing-bottom--40 { --rosa-block-spacing-bottom: calc(var(--space-40) * var(--rosa-block-spacing-scale, 1)); }
.rosa-block-spacing-bottom--47 { --rosa-block-spacing-bottom: calc(var(--space-47) * var(--rosa-block-spacing-scale, 1)); }
.rosa-block-spacing-bottom--60 { --rosa-block-spacing-bottom: calc(var(--space-60) * var(--rosa-block-spacing-scale, 1)); }

/* Scale only manually selected block spacing, not shared layout tokens or Standard. */
@media (max-width: 600px) {
    [class*="rosa-block-spacing-top--"],
    [class*="rosa-block-spacing-bottom--"] {
        --rosa-block-spacing-scale: 0.5;
    }
}

[class*="rosa-block-spacing-top--"]:not(.has-background):not(.rosa-block-bg) {
    margin-top: var(--rosa-block-spacing-top);
}

[class*="rosa-block-spacing-bottom--"]:not(.has-background):not(.rosa-block-bg) {
    margin-bottom: var(--rosa-block-spacing-bottom);
}

[class*="rosa-block-spacing-top--"].has-background,
[class*="rosa-block-spacing-top--"].rosa-block-bg {
    padding-top: var(--rosa-block-spacing-top);
}

[class*="rosa-block-spacing-bottom--"].has-background,
[class*="rosa-block-spacing-bottom--"].rosa-block-bg {
    padding-bottom: var(--rosa-block-spacing-bottom);
}

/*
 * Page edge spacing for core content blocks using the "Standard" setting.
 * Explicit spacing classes always take precedence over these defaults.
 */
.rosa-page-content > .rosa-section:first-child:not([class*="rosa-block-spacing-top--"]):not(.has-background):not(.rosa-block-bg) {
    margin-top: var(--space-60);
}

.rosa-page-content > .rosa-section:first-child:not([class*="rosa-block-spacing-top--"]):is(.has-background, .rosa-block-bg) {
    padding-top: var(--space-60);
}

.rosa-page-content > :is(.rosa-section--paragraph, .rosa-section--list):last-child:not([class*="rosa-block-spacing-bottom--"]):not(.has-background):not(.rosa-block-bg) {
    margin-bottom: var(--space-60);
}

.rosa-page-content > :is(.rosa-section--paragraph, .rosa-section--list):last-child:not([class*="rosa-block-spacing-bottom--"]):is(.has-background, .rosa-block-bg) {
    padding-bottom: var(--space-60);
}

/* FundraisingBox Express on the homepage exposes design tokens on its host.
 * Its closed shadow root prevents styling the inner utility classes directly. */
body.home .rosa-page-content,
.rosa-donation-form {
    --rosa-express-body-font-size: var(--font-size-sm);
    --rosa-express-font-family: var(--font-main);
}

body.home frb-donation-form[form-uuid="01a03543-f33e-73ff-8c2e-d74ef21abc3f"],
.rosa-donation-form frb-donation-form {
    --container-width: 100%;
    --container-padding: var(--space-10);
    --color-background-subtle: transparent;
    --color-form-control-focus-outline: transparent;
    --color-form-control-border-focus: var(--color-black);
    --font-sans: var(--rosa-express-font-family);
    --default-font-family: var(--rosa-express-font-family);
    --checkbox-font-size: var(--rosa-express-body-font-size);
    --checkbox-group-font-size: var(--rosa-express-body-font-size);
    --checkbox-group-font-size-mobile: var(--rosa-express-body-font-size);
    --caption-font-size: var(--rosa-express-body-font-size);
    --caption-font-size-mobile: var(--rosa-express-body-font-size);
    --paragraph-font-size-sm: var(--rosa-express-body-font-size);
    --form-control-wrapper-label-font-size: var(--rosa-express-body-font-size);
    --form-control-wrapper-label-font-size-mobile: var(--rosa-express-body-font-size);
    --button-small-font-size: var(--rosa-express-body-font-size);
    display: block;
    width: 100%;
    margin-block-start: var(--space-20);
    font-family: var(--rosa-express-font-family);
    font-size: var(--rosa-express-body-font-size);
    background: transparent;
}
body.home frb-donation-form[form-uuid="01a03543-f33e-73ff-8c2e-d74ef21abc3f"] .bg-background-subtle,
.rosa-donation-form frb-donation-form .bg-background-subtle {
    background-color: transparent !important;
}

.rosa-donation-form {
    min-width: 0;
}

.rosa-donation-form iframe {
    max-width: 100%;
}

.rosa-donation-form [data-rosa-donation-mount] iframe {
    display: block;
    width: 100%;
    border: 0;
}

.rosa-donation-form__consent {
    max-width: 58ch;
    padding: var(--space-20);
    background: var(--color-pink);
    color: var(--color-black);
}

.rosa-donation-form__consent p {
    margin: 0 0 var(--space-17);
    font-size: var(--font-size-sm);
    font-weight: var(--font-weight-regular);
    line-height: var(--line-height-copy);
}

.rosa-donation-form__consent .rosa-donation-form__activate {
    margin-top: 0;
    border: 0;
    border-radius: 0;
    background: var(--color-red);
    color: var(--color-white);
    font-family: var(--font-main);
    cursor: pointer;
}

.rosa-consent[hidden],
.rosa-donation-form [hidden] {
    display: none !important;
}

body.rosa-consent-open {
    overflow: hidden;
}

.rosa-consent {
    position: fixed;
    z-index: 10001;
    inset: 0;
    display: grid;
    place-items: center;
    padding: var(--space-10);
}

.rosa-consent__backdrop {
    position: absolute;
    inset: 0;
    background: rgb(11 11 11 / 42%);
    -webkit-backdrop-filter: blur(7px);
    backdrop-filter: blur(7px);
    touch-action: none;
}

.rosa-consent__panel {
    position: relative;
    width: min(100%, 40rem);
    max-height: calc(100dvh - 2rem);
    overflow-y: auto;
    padding: clamp(1.5rem, 4vw, 2.7rem);
    border: 0;
    border-radius: 0;
    background: var(--color-pink);
    color: var(--color-black);
    box-shadow: 0 0.75rem 2.5rem rgb(0 0 0 / 16%);
}

.rosa-consent__copy h2 {
    margin: 0 0 var(--space-10);
    font-size: var(--font-size-base);
    line-height: var(--line-height-s1);
}

.rosa-consent__copy p {
    max-width: 76ch;
    margin: 0;
    font-size: var(--font-size-sm);
    font-weight: var(--font-weight-regular);
    line-height: var(--line-height-copy);
}

.rosa-consent__copy a {
    color: var(--color-red);
    text-decoration: underline;
}

.rosa-consent__actions {
    display: flex;
    flex-wrap: wrap;
    gap: var(--space-10);
    margin-top: var(--space-20);
}

.rosa-consent__button {
    min-height: 2.75rem;
    padding: 0.35rem 0.65rem;
    border: 0;
    border-radius: 0;
    background: var(--color-white);
    color: var(--color-red);
    font: inherit;
    font-size: var(--font-size-sm);
    font-weight: var(--font-weight-semibold);
    line-height: var(--line-height-ui);
    cursor: pointer;
}

.rosa-consent__button--primary {
    background: var(--color-red);
    color: var(--color-white);
}

.rosa-consent__button:hover,
.rosa-consent__button:focus-visible {
    text-decoration: underline;
}

.rosa-consent__button:focus-visible,
.rosa-consent__settings summary:focus-visible,
.rosa-consent__close:focus-visible,
.site-footer__consent-link:focus-visible {
    outline: 2px solid var(--color-black);
    outline-offset: 3px;
}

.rosa-consent__settings {
    margin-top: var(--space-17);
    font-size: var(--font-size-sm);
    line-height: var(--line-height-copy);
}

.rosa-consent__settings summary {
    width: fit-content;
    cursor: pointer;
    text-decoration: underline;
}

.rosa-consent__options {
    display: grid;
    gap: var(--space-10);
    max-width: 35rem;
    margin-top: var(--space-10);
}

.rosa-consent__options label {
    display: flex;
    align-items: baseline;
    gap: var(--space-05);
}

.rosa-consent__options input {
    accent-color: var(--color-red);
}

.rosa-consent__close {
    position: absolute;
    top: var(--space-10);
    right: var(--space-10);
    border: 0;
    background: transparent;
    color: var(--color-black);
    font-size: 1.5rem;
    cursor: pointer;
}

.site-footer__consent-link {
    padding: 0;
    border: 0;
    background: none;
    color: inherit;
    font: inherit;
    text-decoration: underline;
    cursor: pointer;
}

@media (max-width: 700px) {
    .rosa-consent__panel {
        padding: var(--space-17);
    }
    .rosa-consent__actions {
        display: grid;
        grid-template-columns: 1fr;
    }
}

/* =========================================================
   5. HEADER / NAVIGATION
   ========================================================= */

.site-header {
    background: var(--color-white);
    position: relative;
    z-index: 100;
}

.site-header .container {
    max-width: none;
    width: 100%;
    padding-inline: var(--page-padding);
}

.header-inner {
    min-height: clamp(5.5rem, 10vw, 9rem);
    display: flex;
    align-items: center;
    gap: clamp(1rem, 3vw, 3rem);
}

.site-logo {
    display: inline-flex;
    align-items: center;
    flex-shrink: 0;
    position: relative;
    z-index: 110;
}

.site-logo svg,
.site-logo img {
    width: clamp(10rem, 19vw, 18rem);
    height: auto;
}

.site-logo svg * {
    fill: var(--color-red);
}

.site-logo svg > path:nth-last-of-type(-n+2),
.site-footer__logo svg > path:nth-last-of-type(-n+2) {
    transform-box: view-box;
    transform-origin: 73px 73px;
}

@media (prefers-reduced-motion: no-preference) {
    .site-logo svg > path:nth-last-of-type(-n+2),
    .site-footer__logo svg > path:nth-last-of-type(-n+2) {
        will-change: transform;
    }
}

.site-nav {
    margin-left: auto;
}

.main-menu {
    display: flex;
    align-items: center;
    gap: clamp(1rem, 2vw, 2rem);
}

.main-menu a {
    font-size: var(--font-size-s1);
    font-weight: var(--font-weight-bold);
    line-height: var(--line-height-ui);
    text-decoration: none;
}

.site-nav:not(.has-open-mega-menu) .main-menu > .menu-item > a:hover,
.site-nav:not(.has-open-mega-menu) .main-menu > .menu-item > a:focus-visible {
    color: var(--color-black);
    text-decoration: underline;
}

.site-nav:not(.has-open-mega-menu) .main-menu > .current-menu-item > a,
.site-nav:not(.has-open-mega-menu) .main-menu > .current-menu-ancestor > a {
    color: var(--color-red);
    text-decoration: none;
}

.site-nav:not(.has-open-mega-menu) .main-menu > .current-menu-item > a:hover,
.site-nav:not(.has-open-mega-menu) .main-menu > .current-menu-item > a:focus-visible,
.site-nav:not(.has-open-mega-menu) .main-menu > .current-menu-ancestor > a:hover,
.site-nav:not(.has-open-mega-menu) .main-menu > .current-menu-ancestor > a:focus-visible {
    color: var(--color-red);
    text-decoration: underline;
}

.nav-toggle {
    display: none;
}

.nav-toggle:focus-visible {
    outline: none;
    box-shadow: inset 0 -2px currentColor;
}

.site-search {
    position: relative;
    z-index: 111;
    flex: 0 0 auto;
}

.site-search__toggle,
.site-search__submit {
    display: grid;
    width: 2.75rem;
    height: 2.75rem;
    place-items: center;
    padding: 0;
    border: 0;
    color: var(--color-black);
    background: transparent;
    font: inherit;
    cursor: pointer;
}

.site-search__toggle:hover,
.site-search__toggle:focus-visible,
.site-search__submit:hover,
.site-search__submit:focus-visible {
    color: var(--color-red);
}

.site-search__toggle:focus-visible,
.site-search__submit:focus-visible {
    outline: var(--focus);
    outline-offset: 2px;
}

.site-search__icon {
    display: block;
    width: 21px;
    height: 21px;
}

.site-search__panel {
    position: absolute;
    top: 50%;
    right: calc(100% + 0.5rem);
    width: min(30rem, calc(100vw - var(--page-padding) - var(--page-padding)));
    opacity: 0;
    visibility: hidden;
    pointer-events: none;
    transform: translate(1rem, -50%);
    transition:
        opacity 180ms ease,
        visibility 180ms ease,
        transform 180ms ease;
}

.site-search.is-open .site-search__panel {
    opacity: 1;
    visibility: visible;
    pointer-events: auto;
    transform: translate(0, -50%);
}

.site-search__form {
    display: grid;
    grid-template-columns: minmax(0, 1fr) auto;
    align-items: center;
    min-height: 3.25rem;
    padding-left: var(--space-10);
    border: 2px solid var(--color-black);
    background: var(--color-white);
}

.site-search__input {
    width: 100%;
    min-width: 0;
    padding: 0.65rem 0;
    border: 0;
    border-radius: 0;
    outline: 0;
    color: var(--color-black);
    background: transparent;
    font-size: var(--font-size-sm);
    line-height: var(--line-height-ui);
}

.site-search__input::placeholder {
    color: currentColor;
    opacity: 0.6;
}

.site-search__results {
    position: absolute;
    top: calc(100% + 0.25rem);
    right: 0;
    left: 0;
    max-height: min(24rem, 60vh);
    margin: 0;
    padding: 0.35rem;
    overflow-y: auto;
    border: 1px solid rgba(11, 11, 11, 0.2);
    background: var(--color-white);
    box-shadow: 0 0.8rem 2rem rgba(11, 11, 11, 0.16);
}

.site-search__results[hidden] {
    display: none !important;
}

.site-search__result-link {
    display: grid;
    grid-template-columns: minmax(0, 1fr) auto;
    align-items: center;
    gap: var(--space-10);
    min-height: 2.75rem;
    padding: 0.65rem 0.75rem;
    color: var(--color-black);
    text-decoration: none;
}

.site-search__result.is-active .site-search__result-link,
.site-search__result-link:hover,
.site-search__result-link:focus-visible {
    color: var(--color-black);
    background: var(--color-pink);
}

.site-search__result-title {
    min-width: 0;
    font-size: var(--font-size-sm);
    font-weight: var(--font-weight-bold);
    line-height: var(--line-height-ui);
    overflow-wrap: anywhere;
}

.site-search__result-type {
    font-size: var(--font-size-xs);
    line-height: var(--line-height-small);
    opacity: 0.65;
}

.site-search__empty {
    padding: 0.75rem;
    font-size: var(--font-size-sm);
    line-height: var(--line-height-copy);
}

.rosa-search-results__hero {
    padding-block: var(--space-47);
    color: var(--color-white);
    background: var(--color-red);
}

.rosa-search-results__heading {
    max-width: 28ch;
    margin: 0;
    color: var(--color-white);
    font-size: var(--font-size-h1);
    line-height: var(--line-height-tight);
    overflow-wrap: anywhere;
}

@media (max-width: 1024px) {
    .rosa-search-results__heading {
        margin-top: var(--space-60);
    }
}

.rosa-search-results__form {
    display: grid;
    grid-template-columns: minmax(0, 1fr) auto;
    width: min(100%, 48rem);
    margin-top: var(--space-24);
    border: 2px solid var(--color-white);
    background: var(--color-white);
}

.rosa-search-results__input {
    min-width: 0;
    padding: var(--space-10);
    border: 0;
    border-radius: 0;
    color: var(--color-black);
    background: transparent;
    font: inherit;
}

.rosa-search-results__submit {
    padding: var(--space-10) var(--space-17);
    border: 0;
    border-left: 2px solid var(--color-red);
    color: var(--color-red);
    background: var(--color-white);
    font: inherit;
    font-weight: var(--font-weight-bold);
    cursor: pointer;
}

.rosa-search-results__submit:hover,
.rosa-search-results__submit:focus-visible {
    color: var(--color-black);
    background: var(--color-pink);
}

.rosa-search-results__content {
    padding-block: var(--space-40) var(--space-60);
    background: var(--color-white);
}

.rosa-search-results__list {
    display: grid;
    gap: var(--space-30);
    margin: 0;
    padding: 0;
    list-style: none;
}

.rosa-search-results__item {
    max-width: var(--container-narrow);
}

.rosa-search-results__title a {
    color: inherit;
}

.rosa-search-results__excerpt {
    max-width: var(--container-narrow);
}

@media (max-width: 600px) {
    .rosa-search-results__hero {
        padding-block: var(--space-30);
    }

    .rosa-search-results__content {
        padding-block: var(--space-30) var(--space-40);
    }

    .rosa-search-results__form {
        margin-top: var(--space-17);
    }
}

.header-quick-links {
    position: fixed;
    top: clamp(5.5rem, 11vw, 11rem);
    right: 0;
    z-index: 102;
    display: flex;
    justify-content: flex-end;
    pointer-events: none;
}

.header-quick-links__list {
    display: flex;
    flex-direction: column;
    align-items: flex-end;
    gap: 0.5rem;
    margin: 0;
    padding: 0;
}

.header-quick-links[hidden],
.header-quick-links__item[hidden] {
    display: none !important;
}

.header-quick-links__link {
    display: inline-flex;
    align-items: center;
    justify-content: flex-end;
    gap: 0.45rem;
    width: max-content;
    max-width: min(32rem, calc(100vw - var(--page-padding)));
    padding: 0.35rem 0.65rem;
    color: var(--quick-link-color, #FF625D);
    background: var(--quick-link-background, #ffffff);
    font-size: var(--font-size-s1);
    font-weight: var(--font-weight-semibold);
    line-height: var(--line-height-ui);
    text-align: right;
    text-decoration: none;
    overflow-wrap: anywhere;
    pointer-events: auto;
}

.header-quick-links__link:hover,
.header-quick-links__link:focus-visible {
    text-decoration: underline;
}

.header-quick-links__link:focus-visible {
    outline: var(--focus);
    outline-offset: 2px;
}

.header-quick-links__arrow {
    flex: 0 0 auto;
    font-weight: var(--font-weight-bold);
}


/* =========================================================
   6. LANGUAGE SWITCH
   ========================================================= */

.language-switch {
    display: flex;
    align-items: center;
    margin-left: clamp(0.5rem, 2vw, 1.5rem);
}

.lang-item {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    min-width: 2.75rem;
    min-height: 2.75rem;
    padding: 0.25rem 0.35rem;
    border: 1px solid var(--color-black);
    color: var(--color-black);
    background: var(--color-white);
    font-size: var(--font-size-sm);
    font-weight: var(--font-weight-black);
    line-height: 1;
    text-decoration: none;
    opacity: 1;
}

.lang-item:hover,
.lang-item:focus-visible,
.lang-item.is-active {
    color: var(--color-black);
    background: var(--color-pink);
    text-decoration: underline;
}


/* =========================================================
   7. BUTTONS
   ========================================================= */

.button {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    font-size: var(--font-size-sm);
    font-weight: var(--font-weight-semibold);
    line-height: var(--line-height-ui);
    text-decoration: none;
}

.rosa-bildblock__youtube-button {    padding: 10px 16px;
       display: inline-flex;
    align-items: center;
  line-height: var(--line-height-ui);
    color: var(--rosa-bildblock-button-color, var(--color-white));
    background: var(--rosa-bildblock-button-background, var(--color-red));
   font-size: var(--font-size-sm);
    font-weight: var(--font-weight-semibold);
    cursor: pointer;
}
.FeedLayout__col-footer {

    align-items: start !important;
}
.rosa-bildblock__youtube-button:hover,
.rosa-bildblock__youtube-button:focus-visible {
    color: var(--rosa-bildblock-button-hover-color, var(--color-black));
    background: var(--rosa-bildblock-button-hover-background, var(--color-white));
}


.DesignedButton__button{
    display: inline-flex;
    align-items: center;
    justify-content: center;
    margin-top: var(--space-17) !important;
    background: var(--color-red) !important;
    font-size: var(--font-size-sm) !important;
    font-weight: var(--font-weight-semibold) !important;
    line-height: var(--line-height-ui) !important;
    text-decoration: none;
}

.spotlight-instagram-feed .LoadMoreButton {
    padding: 10px 16px !important;
    color: var(--color-white) !important;
    background: var(--color-red) !important;
    border: 0 !important;
    border-radius: 0 !important;
    cursor: pointer;
}

.spotlight-instagram-feed .LoadMoreButton span {
    text-decoration: none;
}

.spotlight-instagram-feed .LoadMoreButton:hover span,
.spotlight-instagram-feed .LoadMoreButton:focus-visible span {
    text-decoration: underline;
}

/* ROSA Instagram block: Spotlight keeps ownership of feed markup and loading. */
.rosa-instagram {
    --rosa-instagram-hover-scale: 1;
    --rosa-instagram-label-font-scale: 1;
    padding-block: var(--space-10);
}

.rosa-instagram__feeds {
    display: grid;
    gap: var(--space-40);
}

.rosa-instagram__feed {
    min-width: 0;
}

/* The post's Instagram account sits below its image; Spotlight adds tiles asynchronously. */
.rosa-instagram__feed .spotlight-instagram-feed,
.rosa-instagram__feed .spotlight-instagram-feed .FeedLayout__wrapper,
.rosa-instagram__feed .spotlight-instagram-feed [class*="FeedGridLayout__"] {
    overflow: visible !important;
}

.rosa-instagram__feed :is(.MediaTile, .MediaTile__root)[data-rosa-instagram-label] {
    position: relative;
    overflow: visible !important;
}

.rosa-instagram__feed :is(.MediaTile, .MediaTile__root, .FeedGridLayout__cell)[data-rosa-instagram-label]::after {
    content: attr(data-rosa-instagram-label);
    position: absolute;
    z-index: 30;
    top: 100%;
    left: 0;
    right: 0;
    box-sizing: border-box;
    padding: 0.35em 0.6em;
    overflow: hidden;
    text-overflow: ellipsis;
    white-space: nowrap;
    background: var(--rosa-block-background, #fff);
    color: var(--rosa-instagram-label-color, var(--color-black));
    font-family: var(--font-main);
    font-size: var(--font-size-sm);
    font-weight: var(--font-weight-regular);
    line-height: var(--line-height-copy);
    opacity: 0;
    visibility: hidden;
    transform: translateY(-0.25rem);
    transition: opacity 180ms ease, transform 180ms ease, visibility 180ms ease;
    pointer-events: none;
}

.rosa-instagram__feed :is(.MediaTile, .MediaTile__root)[data-rosa-instagram-label]:is(:hover, :focus-within)::after {
    opacity: 1;
    visibility: visible;
    transform: translateY(0);
}

@media (max-width: 1024px), (hover: none), (pointer: coarse) {
    .rosa-instagram__feed .FeedGridLayout__cell[data-rosa-instagram-has-label] {
        margin-bottom: 2.25rem;
    }

    .rosa-instagram__feed :is(.MediaTile, .MediaTile__root)[data-rosa-instagram-label]::after {
        display: none;
    }

    .rosa-instagram__feed .FeedGridLayout__cell[data-rosa-instagram-label]::after {
        opacity: 1;
        visibility: visible;
        transform: none;
        transition: none;
        padding-left: 0;
        text-align: left;
    }
}

/* Spotlight's feed/layout wrappers must not paint white into the gaps between posts. */
.rosa-instagram .spotlight-instagram-feed,
.rosa-instagram .spotlight-instagram-feed .FeedLayout__wrapper,
.rosa-instagram .spotlight-instagram-feed [class*="FeedGridLayout__"] {
    background-color: transparent !important;
}

@media (min-width: 601px) {
    .rosa-instagram__feed[data-rosa-instagram-compact] .FeedGridLayout__grid {
        gap: var(--rosa-instagram-post-gap) !important;
    }
}

@media (min-width: 1025px) {
    .rosa-instagram__feed[data-rosa-instagram-desktop-columns] .FeedGridLayout__grid {
        grid-template-columns: repeat(var(--rosa-instagram-desktop-columns), minmax(0, 1fr)) !important;
    }

    .rosa-instagram--hover-zoom-desktop {
        --rosa-instagram-hover-scale: 1.5;
        --rosa-instagram-label-font-scale: 0.666667;
    }
}

@media (min-width: 601px) and (max-width: 1024px) {
    .rosa-instagram__feed[data-rosa-instagram-tablet-columns] .FeedGridLayout__grid {
        grid-template-columns: repeat(var(--rosa-instagram-tablet-columns), minmax(0, 1fr)) !important;
    }

}

@media (max-width: 600px) {
    .rosa-instagram__feed .FeedGridLayout__cell[data-rosa-instagram-label]::after {
        font-size: 0.7rem;
        line-height: var(--line-height-copy);
    }

    .rosa-instagram__feed[data-rosa-instagram-mobile-columns] .FeedGridLayout__grid {
        grid-template-columns: repeat(var(--rosa-instagram-mobile-columns), minmax(0, 1fr)) !important;
    }

}

/* Portrait thumbnails must not stretch Spotlight's equal-height grid cells. */
.rosa-instagram .FeedGridLayout__media-container {
    min-height: 0;
}

.rosa-instagram__notice {
    margin: 0;
    font-size: var(--font-size-sm);
    line-height: var(--line-height-copy);
}

.rosa-instagram__feed [data-rosa-instagram-excess],
.rosa-instagram__feed[data-rosa-instagram-limit-reached] .LoadMoreButton {
    display: none !important;
}

.rosa-instagram--hover-zoom {
    position: relative;
    z-index: 1;
}

.rosa-instagram--hover-zoom:hover,
.rosa-instagram--hover-zoom:focus-within {
    z-index: 10;
}

.rosa-instagram--hover-zoom,
.rosa-instagram--hover-zoom > .container,
.rosa-instagram--hover-zoom .rosa-instagram__feeds,
.rosa-instagram--hover-zoom .rosa-instagram__feed,
.rosa-instagram--hover-zoom .spotlight-instagram-feed,
.rosa-instagram--hover-zoom .spotlight-instagram-feed [class*="FeedGridLayout__"] {
    overflow: visible !important;
}

.rosa-instagram--hover-zoom .MediaTile,
.rosa-instagram--hover-zoom .MediaTile__root {
    position: relative;
    z-index: 0;
    transform-origin: center center;
    transition: transform 220ms ease;
}

.rosa-instagram--post-treatment .MediaTile__root,
.rosa-instagram--post-treatment .MediaThumbnail__root {
    background-color: var(--rosa-instagram-post-background, #fdecef) !important;
}

.rosa-instagram--post-treatment .MediaThumbnail__root {
    isolation: isolate;
}

/* Spotlight applies its own image styles, so block settings must take precedence. */
.rosa-instagram--post-treatment .MediaThumbnail__image:not(.rosa-instagram__image-reveal) {
    opacity: var(--rosa-instagram-image-opacity, 0.5) !important;
    mix-blend-mode: var(--rosa-instagram-image-blend, overlay) !important;
    transition: opacity 220ms ease;
}

.rosa-instagram--grayscale .MediaThumbnail__image:not(.rosa-instagram__image-reveal) {
    filter: grayscale(1) !important;
}

.rosa-instagram--image-effect .MediaThumbnail__image.rosa-instagram__image-reveal {
    position: absolute !important;
    inset: 0;
    width: 100% !important;
    height: 100% !important;
    opacity: 0 !important;
    mix-blend-mode: normal !important;
    filter: none !important;
    pointer-events: none;
    transition: opacity 280ms ease;
}

.rosa-instagram--image-effect :is(.MediaTile, .MediaTile__root):hover .rosa-instagram__image-reveal,
.rosa-instagram--image-effect :is(.MediaTile, .MediaTile__root):focus-within .rosa-instagram__image-reveal {
    opacity: 1 !important;
}

.rosa-instagram--image-effect :is(.MediaTile, .MediaTile__root):hover .MediaThumbnail__root:not([data-rosa-instagram-crossfade]) .MediaThumbnail__image,
.rosa-instagram--image-effect :is(.MediaTile, .MediaTile__root):focus-within .MediaThumbnail__root:not([data-rosa-instagram-crossfade]) .MediaThumbnail__image {
    opacity: 1 !important;
    mix-blend-mode: normal !important;
    filter: none !important;
}

@media (min-width: 1025px) and (hover: hover) and (pointer: fine) {
    .rosa-instagram--hover-zoom .MediaTile:hover,
    .rosa-instagram--hover-zoom .MediaTile__root:hover,
    .rosa-instagram--hover-zoom .MediaTile:focus-within,
    .rosa-instagram--hover-zoom .MediaTile__root:focus-within {
        z-index: 20 !important;
        transform: scale(var(--rosa-instagram-hover-scale)) !important;
    }

    /* Compensate for the 1.5x tile zoom so the account text keeps its intended size. */
    .rosa-instagram--hover-zoom :is(.MediaTile, .MediaTile__root)[data-rosa-instagram-label]:is(:hover, :focus-within)::after {
        font-size: calc(var(--font-size-sm) * var(--rosa-instagram-label-font-scale));
    }
}

.rosa-instagram--hover-zoom .MediaTile .MediaTile__root:hover,
.rosa-instagram--hover-zoom .MediaTile .MediaTile__root:focus-within {
    transform: none !important;
}

@media (prefers-reduced-motion: reduce) {
    .rosa-instagram--hover-zoom .MediaTile,
    .rosa-instagram--hover-zoom .MediaTile__root,
    .rosa-instagram--image-effect .MediaThumbnail__image {
        transition: none;
    }
}
.button {
    margin-top: var(--space-17);
    padding: 10px 16px;
}

.button--light {
    background: var(--color-white);
    color: var(--color-red);
}

/* =========================================================
   8. MOBILE HEADER
   ========================================================= */

@media (max-width: 900px) {
    body.nav-is-open {
        overflow: hidden;
        padding-top: 5.5rem;
    }

    body.nav-is-open .site-header {
        position: fixed;
        top: 0;
        right: 0;
        left: 0;
        width: 100%;
    }

    .header-inner {
        min-height: 5.5rem;
        justify-content: flex-start;
        gap: 0.45rem;
    }

    .site-logo svg,
    .site-logo img {
        width: clamp(8rem, 34vw, 11rem);
    }

    .nav-toggle {
        display: inline-flex;
        align-items: center;
        justify-content: center;
        flex: 0 0 auto;
        gap: 0.5rem;
        min-width: 2.75rem;
        min-height: 2.75rem;
        margin-left: 0;
        position: relative;
        z-index: 110;
        font-size: var(--font-size-sm);
        font-weight: var(--font-weight-black);
        line-height: var(--line-height-ui);
        color: var(--color-black);
    }

    .site-search__panel {
        position: fixed;
        top: 5.5rem;
        right: 0;
        left: 0;
        width: 100%;
        padding: var(--space-10) var(--page-padding);
        background: var(--color-white);
        transform: translateY(-0.75rem);
    }

    .site-search.is-open .site-search__panel {
        transform: translateY(0);
    }

    .site-search__results {
        position: static;
        max-height: min(24rem, calc(100vh - 11rem));
        margin-top: 0.25rem;
    }

    .site-search__input {
        font-size: 1rem;
    }

    .nav-toggle__icon {
        width: 32px;
        height: 22px;
        position: relative;
        display: inline-block;
        background: linear-gradient(currentColor, currentColor) center / 32px 3px no-repeat;
        transition: background-size 180ms ease;
    }

    .nav-toggle__icon::before,
    .nav-toggle__icon::after {
        content: "";
        position: absolute;
        left: 0;
        width: 32px;
        height: 3px;
        background: currentColor;
        transition: transform 180ms ease, top 180ms ease;
    }

    .nav-toggle__icon::before {
        top: 3px;
    }

    .nav-toggle__icon::after {
        top: 16px;
    }

    .nav-toggle[aria-expanded="true"] .nav-toggle__icon {
        background-size: 0 3px;
    }

    .nav-toggle[aria-expanded="true"] .nav-toggle__icon::before {
        top: 10px;
        transform: rotate(45deg);
    }

    .nav-toggle[aria-expanded="true"] .nav-toggle__icon::after {
        top: 10px;
        transform: rotate(-45deg);
    }

    .site-nav {
        position: fixed;
        top: 5.5rem;
        right: 0;
        bottom: 0;
        left: 0;
        z-index: 100;
        background: var(--color-pink);
        padding: 0 var(--page-padding) var(--space-17);
        margin-left: 0;
        overflow-y: auto;
        overscroll-behavior-y: contain;
        -webkit-overflow-scrolling: touch;

        opacity: 0;
        visibility: hidden;
        pointer-events: none;
        transform: translateY(-1rem);
        transition:
            opacity 180ms ease,
            visibility 180ms ease,
            transform 180ms ease;
    }

    .site-nav.is-open {
        opacity: 1;
        visibility: visible;
        pointer-events: auto;
        transform: translateY(0);
    }

    .main-menu {
        display: flex;
        flex-direction: column;
        align-items: flex-start;
        gap: 1.2rem;
    }

    .main-menu > .menu-item > a,
    .main-menu > .menu-item > .main-menu__mobile-heading {
        font-size: var(--font-size-nav-mobile);
        line-height: 1;
    }

    .main-menu > .mega-menu-item > .main-menu__link--toggle {
        display: none;
    }

    .main-menu > .mega-menu-item > .main-menu__mobile-heading {
        position: relative;
        display: flex;
        align-items: center;
        width: calc(100% + var(--page-padding) + var(--page-padding));
        min-height: clamp(6.5rem, 26vw, 10rem);
        margin-inline: calc(0px - var(--page-padding));
        padding: var(--space-20) var(--page-padding);
        overflow: hidden;
        color: var(--color-red);
        background: var(--color-pink);
        font-weight: var(--font-weight-bold);
        isolation: isolate;
    }

    .main-menu__mobile-heading-media {
        position: absolute;
        z-index: 0;
        inset: 0;
        overflow: hidden;
        background: var(--color-pink);
    }

    .main-menu__mobile-heading-media::after {
        content: "";
        position: absolute;
        inset: 0;
        background: rgba(255, 255, 255, 0.2);
    }

    .main-menu__mobile-heading-image {
        width: 100%;
        height: 100%;
        object-fit: cover;
        mix-blend-mode: screen;
        filter: grayscale(1) brightness(1.2);
    }

    .main-menu__mobile-heading-text {
        position: relative;
        z-index: 1;
        max-width: 22ch;
    }

    .language-switch {
        margin-top: 0;
        margin-left: auto;
    }

    .header-quick-links {
        position: absolute;
        top: 100%;
        right: 0;
        z-index: 102;
        padding: 0;
        background: transparent;
    }

    body.nav-is-open .header-quick-links {
        display: none;
    }
}

@media (max-width: 420px) {
    .nav-toggle {
        gap: 0;
    }

    .nav-toggle__label {
        position: absolute;
        width: 1px;
        height: 1px;
        padding: 0;
        margin: -1px;
        overflow: hidden;
        clip: rect(0, 0, 0, 0);
        white-space: nowrap;
        border: 0;
    }
}

@media (prefers-reduced-motion: reduce) {
    .site-search__panel {
        transition: none;
    }

    .nav-toggle__icon,
    .nav-toggle__icon::before,
    .nav-toggle__icon::after {
        transition: none;
    }
}

/* =========================================================
   9. ACCESSIBLE MEGA MENU
   ========================================================= */

.screen-reader-text {
    position: absolute;
    width: 1px;
    height: 1px;
    padding: 0;
    margin: -1px;
    overflow: hidden;
    clip: rect(0, 0, 0, 0);
    white-space: nowrap;
    border: 0;
}

.main-menu,
.main-menu .sub-menu {
    list-style: none;
    margin: 0;
    padding: 0;
}

.main-menu > .menu-item {
    position: static;
}


.main-menu__link-text {
    display: inline-block;
}

.main-menu__mobile-heading {
    display: none;
}

.main-menu__link--toggle {
    cursor: pointer;
}

.main-menu__link--toggle[aria-expanded="true"] {
    color: var(--color-red);
    text-decoration: underline;
}


.mega-menu {
    position: absolute;
    top: 100%;
    left: var(--mega-menu-left, var(--page-padding));
    right: auto;
    z-index: 105;
    width: min(82rem, calc(100vw - var(--page-padding) - var(--page-padding)));
    max-height: min(72vh, 42rem);
    overflow: auto;
    background: var(--color-white);
    border: 0;

    opacity: 0;
    visibility: hidden;
    pointer-events: none;
    transform: translateY(0.6rem);
    transition:
        opacity 180ms ease,
        visibility 180ms ease,
        transform 180ms ease;
}

.mega-menu__inner {
    display: grid;
    grid-template-columns: minmax(20rem, 34rem) minmax(38rem, 1fr);
    gap: clamp(1.5rem, 5vw, 4.5rem);
    align-items: start;
    padding: clamp(1rem, 2.5vw, 2rem);
        padding-top: 0px;
}

.mega-menu__feature {
    display: block;
    max-width: 32rem;
    color: var(--color-black);
    text-decoration: none;
}

.mega-menu__feature:hover .mega-menu__feature-title,
.mega-menu__feature:focus-visible .mega-menu__feature-title {
    text-decoration: underline;
}

.mega-menu__feature:focus-visible {
    box-shadow: inset 0 -2px var(--color-red);
}

.mega-menu__feature-media {
    display: block;
    aspect-ratio: 4 / 3;
    overflow: hidden;
    background: var(--color-pink);
}

.mega-menu__feature-image {
    width: 100%;
    height: 100%;
    object-fit: cover;
}

.mega-menu__feature-copy {
    display: block;
    margin-top: 0.8rem;
}

.mega-menu__feature-title,
.mega-menu__feature-subline {
    display: block;
}

.mega-menu__feature-title {
    font-size: var(--font-size-sm);
    font-weight: var(--font-weight-black);
    line-height: var(--line-height-ui);
}

.mega-menu__feature-subline {
    max-width: 18rem;
    margin-top: 0.3rem;
    font-size: var(--font-size-xs);
    line-height: var(--line-height-small);
    font-weight: var(--font-weight-regular);
}

.mega-menu__columns {
    display: grid;
    grid-template-columns: repeat(3, minmax(12rem, 1fr));
    gap: clamp(1.2rem, 3vw, 2.6rem);
    align-items: start;
}

.mega-menu .mega-menu__heading {
    display: inline-flex;
    margin-bottom: 0.85rem;
    font-size: var(--font-size-sm);
    font-weight: var(--font-weight-black);
    line-height: var(--line-height-ui);
    text-decoration: none;
}

.mega-menu__group-list,
.mega-menu__nested-list {
    display: grid;
    gap: 0.8rem;
}

.mega-menu .mega-menu__link {
    display: inline-flex;
    font-size: var(--font-size-sm);
    font-weight: var(--font-weight-regular);
    line-height: var(--line-height-s1);
    text-decoration: none;
}

.mega-menu a:hover,
.mega-menu a:focus-visible {
    text-decoration: underline;
}

.site-nav .main-menu a:focus-visible {
    outline: none;
}

.mega-menu__nested-list {
    margin-top: 0.65rem;
    padding-left: 1rem;
    border-left: 2px solid var(--color-pink);
}

@media (min-width: 901px) {
    .main-menu > .mega-menu-item.is-open > .mega-menu {
        opacity: 1;
        visibility: visible;
        pointer-events: auto;
        transform: translateY(0);
    }
}

@media (max-width: 900px) {
    .main-menu {
        width: 100%;
        gap: 0.85rem;
    }

    .main-menu > .menu-item {
        width: 100%;
    }

    .mega-menu {
        position: static;
        display: block;
        width: 100%;
        max-width: none;
        max-height: none;
        margin-top: 1rem;
        margin-bottom: 0.375rem;
        overflow: visible;
        background: transparent;
        border: 0;
        box-shadow: none;
        opacity: 1;
        visibility: inherit;
        pointer-events: inherit;
        transform: none;
        transition: none;
    }

    .mega-menu__inner {
        grid-template-columns: 1fr;
        gap: var(--space-10);
        padding: 0 0 var(--space-10);
    }

    .mega-menu__feature {
        max-width: none;
    }

    .mega-menu__feature-media,
    .mega-menu__feature--image-only {
        display: none;
    }

    .mega-menu__feature-copy {
        margin-top: 0;
    }

    .mega-menu__columns {
        grid-template-columns: 1fr;
        gap: 1.3rem;
    }

    .mega-menu .mega-menu__heading {
        margin-bottom: 0.55rem;
        font-size: var(--font-size-s1);
    }

    .mega-menu .mega-menu__link {
        font-size: var(--font-size-base);
        line-height: var(--line-height-s1);
    }

    .mega-menu__group-list,
    .mega-menu__nested-list {
        gap: 0.55rem;
    }

    .mega-menu__nested-list {
        padding-inline: 0;
        border-left: 0;
    }
}

@media (prefers-reduced-motion: reduce) {
    .mega-menu {
        transition: none;
    }
}

/* =========================================================
   9. PAGE HERO
   ========================================================= */

.rosa-page-hero {
    background: var(--rosa-page-hero-background-color, var(--color-red));
    padding-block: var(--space-20) var(--space-30);
}

.rosa-page-hero__inner {
    display: grid;
    gap: var(--space-17);
}

.rosa-page-hero__title {
    max-width: 28ch;
    margin: 0;
    color: var(--rosa-page-hero-text-color, var(--color-white));
    font-size: var(--font-size-h1);
    line-height: var(--line-height-tight);
}

.rosa-page-hero__media {
    position: relative;
    width: 100%;
    aspect-ratio: var(--rosa-page-hero-aspect-ratio, 2.35 / 1);
    max-height: min(70vh, 44rem);
    margin: 0;
    overflow: hidden;
    border-radius: 0.25rem;
    background: var(--color-pink);
}

.rosa-page-hero__media--width-half {
    width: min(50%, calc((var(--container) - var(--page-padding) - var(--page-padding)) / 2));
}

.rosa-page-hero__media--width-two-thirds {
    width: min(66.666%, calc((var(--container) - var(--page-padding) - var(--page-padding)) * 0.66666));
}

.rosa-page-hero__media--width-third {
    width: min(33.333%, calc((var(--container) - var(--page-padding) - var(--page-padding)) / 3));
}

.rosa-page-hero__media--height-tallest,
.rosa-page-hero__media--height-dynamic {
    height: var(--rosa-page-hero-media-height, auto);
    max-height: none;
}

.rosa-page-hero__media--height-dynamic {
    transition: height 700ms ease;
}

.rosa-page-hero__slide {
    position: absolute;
    inset: 0;
    z-index: 0;
    opacity: 0;
    transition: opacity var(--rosa-page-hero-transition-duration, 1200ms) ease;
}

.rosa-page-hero__slide.is-active {
    z-index: 1;
    opacity: 1;
}

.rosa-page-hero__media--images:not(.is-slideshow) .rosa-page-hero__slide {
    opacity: 1;
}

.rosa-page-hero__media--effect-slide .rosa-page-hero__slide {
    opacity: 1;
    transform: translateX(100%);
    transition: transform var(--rosa-page-hero-transition-duration, 1200ms) ease;
}

.rosa-page-hero__media--effect-slide .rosa-page-hero__slide.is-active {
    transform: translateX(0);
}

.rosa-page-hero__media--effect-slide .rosa-page-hero__slide.is-exiting {
    z-index: 1;
    transform: translateX(-100%);
}

.rosa-page-hero__media--effect-slide:not(.is-slideshow) .rosa-page-hero__slide {
    transform: translateX(0);
}

.rosa-page-hero__media--effect-hardcut .rosa-page-hero__slide {
    transition: none;
}

.rosa-page-hero__image,
.rosa-page-hero__video {
    display: block;
    width: 100%;
    height: 100%;
    object-fit: cover;
    object-position: center;
}

[data-rosa-hero-autoplay] > .rosa-page-hero__fallback-image,
[data-rosa-hero-autoplay] > .rosa-hero__fallback-image {
    position: absolute;
    inset: 0;
    z-index: 0;
    display: block;
    width: 100%;
    height: 100%;
    object-fit: cover;
    object-position: center;
}

[data-rosa-hero-autoplay] > .rosa-page-hero__video,
[data-rosa-hero-autoplay] > .rosa-hero__video {
    position: relative;
    z-index: 1;
    opacity: 0;
    pointer-events: none;
}

[data-rosa-hero-autoplay].is-playing > .rosa-page-hero__video,
[data-rosa-hero-autoplay].is-playing > .rosa-hero__video {
    opacity: 1;
}

.rosa-page-hero__image {
    object-position: center var(--rosa-page-image-position-y, 50%);
}

.rosa-page-hero__media--height-dynamic .rosa-page-hero__image,
.rosa-page-hero__media--height-dynamic .rosa-page-hero__video {
    object-fit: contain;
}

.rosa-page-hero__caption {
    position: absolute;
    right: var(--space-10);
    bottom: var(--space-10);
    z-index: 2;
    display: grid;
    justify-items: end;
    max-width: min(26rem, calc(100% - 2rem));
    color: var(--color-white);
    font-weight: var(--font-weight-bold);
    line-height: var(--line-height-tight);
    text-align: right;
    text-shadow: 0 1px 4px rgba(0, 0, 0, 0.55);
    pointer-events: none;
}

.rosa-page-hero__caption-text {
    font-size: calc(var(--font-size-xs) * 0.82);
}

.rosa-page-hero__caption-source {
    margin-top: 0.12rem;
    font-size: calc(var(--font-size-xs) * 0.68);
    opacity: 0.86;
}

.rosa-page-hero__copy,
.rosa-section--paragraph > p,
.wp-block-paragraph,
.wp-block-list {
    max-width: 69ch;
    font-size: var(--font-size-sm);
    font-weight: var(--font-weight-regular);
    line-height: var(--line-height-copy);
}
.rosa-page-hero__copy {color: var(--rosa-page-hero-text-color, var(--color-white));}

.rosa-page-hero__copy a,
.rosa-spenden-diagramm__text a {
    color: inherit;
    text-decoration: underline;
    text-underline-offset: 0.16em;
}

.rosa-page-hero__news-topline {
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    gap: var(--space-10);
    color: var(--rosa-page-hero-text-color, var(--color-white));
}

@media (max-width: 700px) {
    .rosa-page-hero--style-01.rosa-page-hero--news .rosa-page-hero__news-topline {
        width: 100%;
        max-width: 100%;
    }
}

.rosa-page-hero__news-kicker {
    margin: 0;
    font-size: var(--font-size-sm);
    font-weight: var(--font-weight-bold);
    line-height: var(--line-height-ui);
}

.rosa-press-release-download-links {
    display: inline-flex;
    flex-wrap: wrap;
    gap: 0.4rem;
}

.rosa-press-release-download-link {
    display: inline-flex;
    align-items: center;
    gap: 0;
    min-height: 2.2rem;
    padding: 0 0.3rem 0 0.55rem;
    border: 1px solid currentColor;
    color: inherit;
    background: transparent;
    font-size: var(--font-size-xs);
    font-weight: var(--font-weight-black);
    line-height: var(--line-height-ui);
    text-decoration: none;
}

.rosa-press-release-download-link svg {
    width: 1.15rem;
    height: 1.15rem;
    fill: none;
    stroke: currentColor;
    stroke-linecap: round;
    stroke-linejoin: round;
    stroke-width: 1.6;
}

.rosa-press-release-download-link:hover,
.rosa-press-release-download-link:focus-visible {
    background: color-mix(in srgb, currentColor 22%, transparent);
}

.rosa-page-hero__news-meta {
    display: flex;
    flex-wrap: wrap;
    gap: 0.45rem;
    color: var(--rosa-page-hero-text-color, var(--color-white));
}

.rosa-page-hero__news-chip {
    display: inline-flex;
    align-items: center;
    min-height: 2rem;
    padding: 0.28rem 0.7rem;
    border: 1px solid currentColor;
    border-radius: 999px;
    color: inherit;
    background: color-mix(in srgb, currentColor 10%, transparent);
    font-size: var(--font-size-xs);
    font-weight: var(--font-weight-bold);
    line-height: var(--line-height-ui);
    text-decoration: none;
}

a.rosa-page-hero__news-chip:hover,
a.rosa-page-hero__news-chip:focus-visible {
    background: color-mix(in srgb, currentColor 22%, transparent);
    text-decoration: underline;
    text-underline-offset: 0.16em;
}

.wp-block-paragraph,
.wp-block-heading,
.wp-block-list {
    margin-bottom: 0;
    padding-top: var(--space-10);
    padding-bottom: var(--space-10);
}

/* Core adds horizontal padding to coloured paragraphs; ROSA colours the section instead. */
.rosa-section--paragraph > p.has-background,
.editor-styles-wrapper [data-type="core/paragraph"] p.has-background,
.editor-styles-wrapper p.wp-block-paragraph.has-background {
    padding-inline: 0;
}

p.is-style-rosa-wissen-source {
    color: #686868;
    font-size: var(--font-size-xs);
    line-height: var(--line-height-small);
}

/*
 * Core list blocks follow the paragraph typography. The reset stylesheet
 * removes browser markers globally, so restore every list type explicitly.
 */
.wp-block-list {
    padding-inline-start: 1.5em;
    list-style-position: outside;
}

ul.wp-block-list,
.wp-block-list ul {
    list-style-type: disc;
}

ol.wp-block-list,
.wp-block-list ol {
    list-style-type: decimal;
}

ol.wp-block-list[type="a"],
.wp-block-list ol[type="a"] {
    list-style-type: lower-alpha;
}

ol.wp-block-list[type="A"],
.wp-block-list ol[type="A"] {
    list-style-type: upper-alpha;
}

ol.wp-block-list[type="i"],
.wp-block-list ol[type="i"] {
    list-style-type: lower-roman;
}

ol.wp-block-list[type="I"],
.wp-block-list ol[type="I"] {
    list-style-type: upper-roman;
}

.wp-block-list ul {
    list-style-type: circle;
}

.wp-block-list ul ul {
    list-style-type: square;
}

.wp-block-list :is(ul, ol) {
    max-width: none;
    margin: 0.4em 0 0;
    padding: 0 0 0 1.5em;
}

.wp-block-list > li + li,
.wp-block-list :is(ul, ol) > li + li {
    margin-top: 0.35em;
}

.wp-block-list li > :is(p, ul, ol):first-child {
    margin-top: 0;
}

.rosa-section > .wp-block-heading.has-background {
    padding: var(--space-10) 0;
}

.rosa-section.has-background[class*="rosa-block-spacing-top--"] > .wp-block-heading.has-background {
    padding-top: 0;
}

.rosa-section.has-background[class*="rosa-block-spacing-bottom--"] > .wp-block-heading.has-background {
    padding-bottom: 0;
}

.wp-block-paragraph a,
.wp-block-list a,
.rosa-lokalgruppe__detail-copy a {
    color: var(--color-red);
    background: transparent;
    border-bottom: 1px solid var(--color-red);
}

.wp-block-paragraph a:has(.rosa-link-color),
.wp-block-list a:has(.rosa-link-color) {
    border-bottom-color: transparent;
}

.wp-block-paragraph a .rosa-link-color,
.wp-block-list a .rosa-link-color {
    border-bottom: 1px solid currentColor;
}

.rosa-page-hero__subtitle {
    position: relative;
    z-index: 2;
    margin: 0;
    font-size: var(--font-size-s1);
    font-weight: var(--font-weight-regular);
    line-height: var(--line-height-copy);
    color: var(--rosa-page-hero-text-color, var(--color-white));
}

.rosa-page-hero__copy > :last-child {
    margin-bottom: 0;
}

/* Style 01: full-bleed media with a legible editorial overlay. */
.rosa-page-hero--style-01 {
    padding: 0;
    --rosa-page-hero-overlay-color: color-mix(
        in srgb,
        var(--rosa-page-hero-background-color, var(--color-red)) 72%,
        var(--color-black) 28%
    );
}

.rosa-page-hero--style-01.rosa-page-hero--text-black {
    --rosa-page-hero-overlay-color: color-mix(
        in srgb,
        var(--rosa-page-hero-background-color, var(--color-red)) 72%,
        var(--color-white) 28%
    );
}

.rosa-page-hero--style-01 > .container {
    max-width: none;
    padding-inline: 0;
}

.rosa-page-hero--style-01 .rosa-page-hero__inner {
    --rosa-page-hero-overlay-inset: max(var(--page-padding), calc((100vw - var(--container)) / 2 + var(--page-padding)));
    position: relative;
    display: flex;
    box-sizing: border-box;
    min-height: clamp(30rem, 68vh, 54rem);
    padding: clamp(10rem, 25vh, 17rem) var(--rosa-page-hero-overlay-inset) clamp(3rem, 8vw, 7rem);
    flex-direction: column;
    justify-content: flex-end;
    align-items: flex-start;
    gap: var(--space-10);
    overflow: hidden;
    isolation: isolate;
}

.rosa-page-hero--style-01 .rosa-page-hero__inner::after {
    content: "";
    position: absolute;
    z-index: 1;
    inset: 0;
    background: linear-gradient(90deg, rgba(0, 0, 0, 0.76) 0%, rgba(0, 0, 0, 0.42) 45%, rgba(0, 0, 0, 0.08) 78%);
    background: linear-gradient(
        90deg,
        var(--rosa-page-hero-overlay-color) 0%,
        color-mix(in srgb, var(--rosa-page-hero-overlay-color) 72%, transparent) 48%,
        transparent 82%
    );
    pointer-events: none;
}

.rosa-page-hero--style-01.rosa-page-hero--text-black .rosa-page-hero__inner::after {
    background: linear-gradient(90deg, rgba(255, 255, 255, 0.9) 0%, rgba(255, 255, 255, 0.62) 45%, rgba(255, 255, 255, 0.08) 78%);
    background: linear-gradient(
        90deg,
        var(--rosa-page-hero-overlay-color) 0%,
        color-mix(in srgb, var(--rosa-page-hero-overlay-color) 72%, transparent) 48%,
        transparent 82%
    );
}

.rosa-page-hero--style-01 .rosa-page-hero__title,
.rosa-page-hero--style-01 .rosa-page-hero__subtitle,
.rosa-page-hero--style-01 .rosa-page-hero__news-topline,
.rosa-page-hero--style-01 .rosa-page-hero__news-meta,
.rosa-page-hero--style-01 .rosa-page-hero__copy {
    position: relative;
    z-index: 2;
    max-width: min(56rem, 72vw);
}

.rosa-page-hero--style-01 .rosa-page-hero__title {
    max-width: 16ch;
    font-size: var(--font-size-h1);
    text-wrap: balance;
}

.rosa-page-hero--style-01 .rosa-page-hero__copy {
    max-width: 55ch;
    font-size: var(--font-size-sm);
}

.rosa-page-hero--style-01 .rosa-page-hero__media {
    position: absolute;
    z-index: 0;
    inset: 0;
    width: 100%;
    max-width: none;
    height: 100%;
    max-height: none;
    margin: 0;
    aspect-ratio: auto;
    border-radius: 0;
}

.rosa-page-hero--style-01 .rosa-page-hero__caption {
    z-index: 3;
}

.rosa-page-hero--style-01.has-no-media .rosa-page-hero__inner {
    min-height: clamp(24rem, 52vh, 42rem);
}

.rosa-page-hero--style-01.has-no-media .rosa-page-hero__inner::after {
    display: none;
}

/* Style 03: asymmetric editorial split with a portrait-oriented media panel. */
.rosa-page-hero--style-03 {
    padding-block: 0;
    overflow: hidden;
}

.rosa-page-hero--style-03 > .container {
    max-width: none;
    padding-right: 0;
    padding-left: max(var(--page-padding), calc((100vw - var(--container)) / 2 + var(--page-padding)));
}

.rosa-page-hero--style-03 .rosa-page-hero__inner {
    grid-template-columns: minmax(0, 0.78fr) minmax(0, 1.22fr);
    grid-template-rows: auto 1fr;
    column-gap: clamp(2rem, 6vw, 7rem);
    row-gap: var(--space-17);
    align-items: start;
}

.rosa-page-hero--style-03 .rosa-page-hero__title {
    grid-column: 1;
    grid-row: 1;
    max-width: 12ch;
    min-width: 0;
    padding-top: var(--space-17);
    font-size: var(--font-size-h1);
    text-wrap: balance;
}

.rosa-page-hero--style-03 .rosa-page-hero__copy {
    grid-column: 1;
    grid-row: 2;
    max-width: 38ch;
    min-width: 0;
    padding-bottom: var(--space-20);
    font-size: var(--font-size-sm);
}

.rosa-page-hero--style-03 .rosa-page-hero__news-meta {
    grid-column: 1;
    grid-row: 2;
    max-width: 38rem;
}

.rosa-page-hero--style-03 .rosa-page-hero__news-topline {
    grid-column: 1;
    grid-row: 1;
    max-width: 38rem;
}

.rosa-page-hero--style-03 .rosa-page-hero__media {
    grid-column: 2;
    grid-row: 1 / span 2;
    min-width: 0;
    width: 100%;
    max-width: none;
    height: clamp(30rem, 48vw, 52rem);
    max-height: none;
    aspect-ratio: auto;
    border-radius: 0;
    box-shadow: none;
}

.rosa-page-hero--style-03.rosa-page-hero--news .rosa-page-hero__inner {
    grid-template-rows: auto auto auto 1fr;
}

.rosa-page-hero--style-03.rosa-page-hero--news .rosa-page-hero__title {
    grid-row: 2;
}

.rosa-page-hero--style-03.rosa-page-hero--news .rosa-page-hero__news-meta {
    grid-row: 3;
}

.rosa-page-hero--style-03.rosa-page-hero--news .rosa-page-hero__copy {
    grid-row: 4;
}

.rosa-page-hero--style-03.rosa-page-hero--news .rosa-page-hero__media {
    grid-row: 1 / span 4;
}

.rosa-page-hero--style-03.rosa-page-hero--has-subtitle .rosa-page-hero__inner {
    grid-template-rows: auto auto auto auto 1fr;
}

.rosa-page-hero--style-03.rosa-page-hero--has-subtitle .rosa-page-hero__subtitle {
    grid-column: 1;
    grid-row: 2;
    min-width: 0;
}

.rosa-page-hero--style-03.rosa-page-hero--has-subtitle .rosa-page-hero__title {
    grid-row: 3;
    padding-top: 0;
}

.rosa-page-hero--style-03.rosa-page-hero--has-subtitle .rosa-page-hero__news-meta {
    grid-row: 4;
}

.rosa-page-hero--style-03.rosa-page-hero--has-subtitle .rosa-page-hero__copy {
    grid-row: 5;
}

.rosa-page-hero--style-03.rosa-page-hero--has-subtitle .rosa-page-hero__media {
    grid-row: 1 / span 5;
}

.rosa-page-hero--news .rosa-page-hero__title {
    max-width: min(30ch, 100%);
}

.rosa-page-hero--style-03.has-no-media .rosa-page-hero__inner {
    grid-template-columns: minmax(0, 48rem);
}

@media (max-width: 1000px) {
    .rosa-page-hero--style-03 {
        padding-block: var(--space-24) var(--space-30);
    }

    .rosa-page-hero--style-03 > .container {
        padding-right: var(--page-padding);
        padding-left: var(--page-padding);
    }

    .rosa-page-hero--style-03 .rosa-page-hero__inner {
        grid-template-columns: 1fr;
        grid-template-rows: auto;
        gap: var(--space-17);
    }

    .rosa-page-hero--style-03.rosa-page-hero--news .rosa-page-hero__inner {
        grid-template-rows: auto;
    }

    .rosa-page-hero--style-03.rosa-page-hero--has-subtitle .rosa-page-hero__inner {
        grid-template-rows: auto;
    }

    .rosa-page-hero--style-03 .rosa-page-hero__title,
    .rosa-page-hero--style-03 .rosa-page-hero__subtitle,
    .rosa-page-hero--style-03 .rosa-page-hero__media,
    .rosa-page-hero--style-03 .rosa-page-hero__news-topline,
    .rosa-page-hero--style-03 .rosa-page-hero__news-meta,
    .rosa-page-hero--style-03 .rosa-page-hero__copy {
        grid-column: 1;
        grid-row: auto;
        width: 100%;
        max-width: 100%;
        padding: 0;
    }

    .rosa-page-hero--style-03.rosa-page-hero--news .rosa-page-hero__media,
    .rosa-page-hero--style-03.rosa-page-hero--news .rosa-page-hero__news-topline,
    .rosa-page-hero--style-03.rosa-page-hero--news .rosa-page-hero__title,
    .rosa-page-hero--style-03.rosa-page-hero--news .rosa-page-hero__subtitle,
    .rosa-page-hero--style-03.rosa-page-hero--news .rosa-page-hero__news-meta,
    .rosa-page-hero--style-03.rosa-page-hero--news .rosa-page-hero__copy {
        grid-row: auto;
    }

    .rosa-page-hero--style-03.rosa-page-hero--has-subtitle .rosa-page-hero__title,
    .rosa-page-hero--style-03.rosa-page-hero--has-subtitle .rosa-page-hero__subtitle,
    .rosa-page-hero--style-03.rosa-page-hero--has-subtitle .rosa-page-hero__media,
    .rosa-page-hero--style-03.rosa-page-hero--has-subtitle .rosa-page-hero__news-meta,
    .rosa-page-hero--style-03.rosa-page-hero--has-subtitle .rosa-page-hero__copy {
        grid-row: auto;
    }

    .rosa-page-hero--style-03 .rosa-page-hero__media {
        height: auto;
        aspect-ratio: 16 / 9;
    }
}

@media (max-width: 700px) {
    .rosa-page-hero {
        padding-block: var(--space-17) var(--space-24);
    }

    .rosa-page-hero__inner {
        gap: var(--space-10);
    }

    .rosa-page-hero__media:not(.rosa-page-hero__media--height-ratio) {
        aspect-ratio: 4 / 3;
    }

    .rosa-page-hero__media--height-ratio {
        aspect-ratio: var(--rosa-page-hero-mobile-aspect-ratio, 1 / 1);
    }

    .rosa-page-hero__media--mobile-width-content {
        width: 100%;
        max-width: 100%;
        margin-left: 0;
        margin-right: 0;
        border-radius: 0.25rem;
    }

    .rosa-page-hero__media--mobile-width-half {
        width: 50%;
        max-width: 50%;
        margin-left: 0;
        margin-right: 0;
        border-radius: 0.25rem;
    }

    .rosa-page-hero__media--mobile-width-two-thirds {
        width: 66.666%;
        max-width: 66.666%;
        margin-left: 0;
        margin-right: 0;
        border-radius: 0.25rem;
    }

    .rosa-page-hero__media--mobile-width-third {
        width: 33.333%;
        max-width: 33.333%;
        margin-left: 0;
        margin-right: 0;
        border-radius: 0.25rem;
    }

    .rosa-page-hero__caption {
        right: var(--space-05);
        bottom: var(--space-05);
        max-width: calc(100% - 1rem);
    }

    .rosa-page-hero--style-01 .rosa-page-hero__inner {
        --rosa-page-hero-overlay-inset: var(--page-padding);
        min-height: min(100vw, 34rem);
        padding-top: clamp(4.5rem, 18vw, 7rem);
        padding-bottom: var(--space-24);
    }

    .rosa-page-hero--style-01.has-no-media .rosa-page-hero__inner {
        min-height: min(100vw, 34rem);
    }

    .rosa-page-hero:not(.rosa-page-hero--style-01) .rosa-page-hero__media {
        height: auto;
        aspect-ratio: 16 / 9;
    }

    .rosa-page-hero--style-01 {
        padding: 0;
    }

    .rosa-page-hero--style-01 .rosa-page-hero__inner::after {
        background: linear-gradient(0deg, rgba(0, 0, 0, 0.78) 0%, rgba(0, 0, 0, 0.35) 58%, rgba(0, 0, 0, 0.08) 100%);
        background: linear-gradient(
            0deg,
            var(--rosa-page-hero-overlay-color) 0%,
            color-mix(in srgb, var(--rosa-page-hero-overlay-color) 68%, transparent) 62%,
            transparent 100%
        );
    }

    .rosa-page-hero--style-01.rosa-page-hero--text-black .rosa-page-hero__inner::after {
        background: linear-gradient(0deg, rgba(255, 255, 255, 0.94) 0%, rgba(255, 255, 255, 0.55) 58%, rgba(255, 255, 255, 0.08) 100%);
        background: linear-gradient(
            0deg,
            var(--rosa-page-hero-overlay-color) 0%,
            color-mix(in srgb, var(--rosa-page-hero-overlay-color) 68%, transparent) 62%,
            transparent 100%
        );
    }

    .rosa-page-hero--style-01 .rosa-page-hero__title,
    .rosa-page-hero--style-01 .rosa-page-hero__copy {
        max-width: 100%;
    }

    .rosa-page-hero--style-01 .rosa-page-hero__title {
        font-size: var(--font-size-h1);
    }

    .rosa-page-hero--style-03 {
        padding-block: var(--space-24) var(--space-30);
    }

    .rosa-page-hero--style-03 .rosa-page-hero__inner {
        display: grid;
        grid-template-columns: 1fr;
        grid-template-rows: auto;
        gap: var(--space-17);
    }

    .rosa-page-hero--style-03 .rosa-page-hero__title,
    .rosa-page-hero--style-03 .rosa-page-hero__media,
    .rosa-page-hero--style-03 .rosa-page-hero__copy {
        grid-column: 1;
        grid-row: auto;
        width: 100%;
        max-width: 100%;
        padding: 0;
    }

    .rosa-page-hero--style-03 .rosa-page-hero__media {
        aspect-ratio: 16 / 9;
        box-shadow: none;
    }
}

@media (prefers-reduced-motion: reduce) {
    .rosa-page-hero__media--height-dynamic {
        transition: none;
    }

    .rosa-page-hero__slide {
        transition: none;
    }

    .rosa-page-hero__media--effect-slide .rosa-page-hero__slide {
        transition: none;
    }
}

/* =========================================================
   10. HERO BLOCK
   ========================================================= */

.rosa-hero {
    position: relative;
    overflow: hidden;
    --hero-media-height: clamp(22rem, 72vw, 48rem);
}

@media (min-width: 700px) {
    .rosa-hero {
        --hero-media-height: clamp(28rem, 46vw, 46rem);
    }
}

@media (min-width: 1400px) {
    .rosa-hero {
        --hero-media-height: clamp(34rem, 42vw, 58rem);
    }
}

.rosa-hero__media {
    position: relative;
    z-index: 1;
    width: 100%;
    height: var(--hero-media-height);
    max-height: 78vh;
    margin-bottom: -2px;
    background: var(--color-pink);
    overflow: hidden;
}
.rosa-hero__media::after {
    content: "";
    position: absolute;
    left: 0;
    right: 0;
    bottom: -1px;
    z-index: 3;
    height: 3px;
    background: var(--color-red);
    pointer-events: none;
}

.rosa-hero__image,
.rosa-hero__video,
.rosa-hero__placeholder {
    width: 100%;
    height: 100%;
}

.rosa-hero__image,
.rosa-hero__video {
    display: block;
    width: 100%;
    height: calc(100% + 2px);
    object-fit: cover;
    object-position: center;
}

.rosa-hero__placeholder {
    display: grid;
    place-items: center;
    font-size: var(--font-size-h3);
    font-weight: var(--font-weight-black);
    line-height: var(--line-height-h3);
}

.rosa-hero__gear {
    position: absolute;
    z-index: 5;
    right: clamp(-8rem, -7vw, -2rem);
    /* The media overlaps the content by 2px and may be capped at 78vh. */
    top: calc(min(var(--hero-media-height), 78vh) - 2px);
    width: var(--hero-gear-width, clamp(13rem, 26vw, 40rem));
    height: auto;
    pointer-events: none;
    transform: translateY(-50%) rotate(var(--gear-rotation, 0deg));
    transform-origin: 50% 50%;
    will-change: transform;
}

.rosa-hero--page {
    --hero-gear-width: clamp(15rem, 26vw, 40rem);
}

.rosa-hero__content {
    position: relative;
    z-index: 2;
    background: var(--color-red);
    color: var(--color-white);
    padding-block: var(--space-47);
}

.rosa-hero--inverted .rosa-hero__media,
.rosa-hero--inverted .rosa-hero__content {
    background: var(--color-pink);
    color: var(--color-black);
}

.rosa-hero--page.rosa-hero--inverted .rosa-hero__text h1 {
    color: var(--color-red);
}

.rosa-hero--inverted .rosa-hero__media::after {
    background: var(--color-pink);
}

.rosa-hero--inverted .rosa-hero__gear {
    display: block;
    aspect-ratio: 293 / 292;
    background: var(--color-pink);
    -webkit-mask: url('assets/img/zahnrad.svg') center / contain no-repeat;
    mask: url('assets/img/zahnrad.svg') center / contain no-repeat;
}

.rosa-hero--inverted .rosa-hero__copy a {
    color: inherit;
}

.rosa-hero--inverted .rosa-hero__button {
    background: var(--color-red);
    color: var(--color-white);
}

.rosa-hero__text {
    max-width: min(78ch, 100%);
}

.rosa-hero__aside {
    width: min(26rem, 100%);
    min-width: 0;
    margin-top: var(--space-20);
}

.rosa-hero__side-media {
    --rosa-bildblock-video-background: var(--color-pink);
    --rosa-bildblock-video-controls-color: var(--color-red);
    position: relative;
    width: 100%;
    aspect-ratio: 16 / 9;
    overflow: hidden;
    background: var(--color-pink);
}

.rosa-hero__side-poster,
.rosa-hero__side-video {
    position: absolute;
    inset: 0;
    display: block;
    width: 100%;
    height: 100%;
    object-fit: contain;
}

.rosa-hero__side-video {
    opacity: 0;
    pointer-events: none;
}

.rosa-hero__side-media.is-playing .rosa-hero__side-video,
.rosa-hero__side-media.is-ready .rosa-hero__side-video {
    opacity: 1;
    pointer-events: auto;
}

.rosa-hero__side-media.is-playing .rosa-hero__side-poster,
.rosa-hero__side-media.is-ready .rosa-hero__side-poster,
.rosa-hero__side-media.is-playing .rosa-hero__side-play,
.rosa-hero__side-media.is-ready .rosa-hero__side-play {
    opacity: 0;
    pointer-events: none;
}

.rosa-hero__side-play {
    position: absolute;
    z-index: 2;
    top: 50%;
    left: 50%;
    display: grid;
    place-items: center;
    width: 3.5rem;
    height: 3.5rem;
    border-radius: 50%;
    background: var(--color-white);
    color: var(--color-red);
    box-shadow: 0 0.25rem 1rem rgb(0 0 0 / 15%);
    text-decoration: none;
    transform: translate(-50%, -50%);
    transition: transform 180ms ease, opacity 180ms ease;
}

.rosa-hero__side-play:hover,
.rosa-hero__side-play:focus-visible {
    color: var(--color-red);
    transform: translate(-50%, -50%) scale(1.08);
}

.rosa-hero__side-play[hidden] {
    display: none;
}

.rosa-hero__side-play-icon {
    width: 0;
    height: 0;
    margin-left: 0.22rem;
    border-top: 0.58rem solid transparent;
    border-bottom: 0.58rem solid transparent;
    border-left: 0.9rem solid currentColor;
}

.rosa-hero__side-media.is-loading .rosa-hero__side-play {
    pointer-events: none;
    opacity: 0;
}

.rosa-hero__side-media .rosa-bildblock__video-controls {
    gap: 0.3rem;
    min-height: 2.35rem;
    padding: 0.2rem 0.35rem;
    font-size: 0.72rem;
}

.rosa-hero__side-media .rosa-bildblock__video-control-button {
    min-width: 1.75rem;
    min-height: 1.75rem;
}

.rosa-hero__side-media .rosa-bildblock__video-control-button svg {
    width: 1rem;
    height: 1rem;
}

.rosa-hero__side-media .rosa-bildblock__video-progress {
    min-width: 2rem;
}

@media (min-width: 900px) {
    .rosa-hero__inner--with-video {
        display: grid;
        grid-template-columns: minmax(0, 1.75fr) minmax(0, 1fr);
        align-items: start;
        gap: clamp(1.5rem, 3vw, 3.5rem);
        padding-right: clamp(8rem, 16vw, 16rem);
    }

    .rosa-hero__inner--with-video .rosa-hero__text {
        max-width: min(66ch, 100%);
    }

    .rosa-hero__inner--with-video .rosa-hero__text h1 {
        max-width: 100%;
    }

    .rosa-hero__inner--with-video .rosa-hero__aside {
        width: 100%;
        margin-top: 0;
    }
}

@media (min-width: 1600px) {
    .rosa-hero__inner--with-video {
        padding-right: clamp(4rem, 5vw, 7rem);
    }
}

.rosa-hero__text h1 {
    max-width: 28ch;
    margin-bottom: var(--space-24);
    font-size: var(--font-size-h1);
    line-height: var(--line-height-tight);
}

.rosa-hero__subline {
    max-width: 70ch;
margin-bottom: var(--space-24);
    font-size: var(--font-size-s1);
    font-weight: var(--font-weight-black);
    line-height: var(--line-height-s1);
}

.rosa-hero__copy {
    max-width: 78ch;
    font-size: var(--font-size-sm);
    font-weight: var(--font-weight-bold);
    line-height: var(--line-height-copy);
}

.rosa-hero--page.rosa-hero--inverted .rosa-hero__copy {
    max-width: 69ch;
    font-family: var(--font-main);
    font-size: var(--font-size-sm);
    font-weight: var(--font-weight-regular);
    line-height: var(--line-height-copy);
}

@media (max-width: 600px) {
    .rosa-hero {
        --hero-gear-width: clamp(11rem, 48vw, 16rem);
        --hero-gear-right: clamp(-6rem, -20vw, -3rem);
    }

    .rosa-hero--page {
        --hero-gear-width: clamp(10rem, 44vw, 15rem);
    }

    .rosa-hero__content {
        padding-block: 2.5rem 3.5rem;
    }

    .rosa-hero__gear {
        right: var(--hero-gear-right);
        width: var(--hero-gear-width);
    }

    .rosa-hero__text h1 {
        /* Reserve the visible gear width, allowing for the container inset. */
        max-width: calc(100% - max(0px, var(--hero-gear-width) + var(--hero-gear-right) - var(--page-padding) + var(--space-05)));
        overflow-wrap: anywhere;
    }
}

@media (prefers-reduced-motion: reduce) {
    .rosa-hero__gear {
        transform: translateY(-50%) !important;
    }

    .rosa-hero__side-play {
        transition: none;
    }
}


/* =========================================================
   ROSA BUTTON BLOCK
   ========================================================= */

.rosa-button-block {
    padding-block: var(--space-10);
}

.rosa-button-block__container--left {
    text-align: left;
}

.rosa-button-block__container--center {
    text-align: center;
}

.rosa-button-block__link {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    min-height: 2.75rem;
    max-width: 100%;
    padding: 0.75rem 1.1rem;
    border: 0;
    color: var(--rosa-button-color, #ffffff);
    background: var(--rosa-button-background, #ff5c5c);
    font-family: inherit;
    font-size: var(--font-size-sm);
    font-weight: var(--font-weight-bold);
    line-height: var(--line-height-ui);
    text-align: center;
    text-decoration: none;
    overflow-wrap: anywhere;
    cursor: pointer;
    transition: color 160ms ease, background-color 160ms ease, transform 180ms ease;
}

.rosa-button-block__link--large {
    min-height: 3.5rem;
    padding: 0.9rem 1.35rem;
    font-size: var(--font-size-s1);
}

.rosa-button-block__link--huge {
    min-height: 4.25rem;
    padding: 1rem 1.6rem;
    font-size: var(--font-size-h2);
    line-height: var(--line-height-h2);
}

.rosa-button-block__link--mega {
    min-height: 5.5rem;
    padding: 1.2rem 2rem;
    font-size: var(--font-size-h1);
    line-height: var(--line-height-h1);
}

.rosa-button-block__link--animation-wiggle.is-scrolling {
    animation: rosa-button-wiggle 520ms ease-in-out infinite;
    transform-origin: center;
}

.rosa-button-block__link--animation-pulse {
    animation: rosa-button-pulse 2s ease-in-out infinite;
    transform-origin: center;
}

@keyframes rosa-button-wiggle {
    0%, 100% { transform: rotate(0deg) translateX(0); }
    25% { transform: rotate(-2deg) translateX(-2px); }
    50% { transform: rotate(2deg) translateX(2px); }
    75% { transform: rotate(-1.5deg) translateX(-1px); }
}

@keyframes rosa-button-pulse {
    0%, 100% { transform: scale(1); }
    18% { transform: scale(1.065); }
    36% { transform: scale(1); }
    54% { transform: scale(1.045); }
    72% { transform: scale(1); }
}

.rosa-button-block__link:hover,
.rosa-button-block__link:focus-visible {
    color: var(--rosa-button-hover-color, #ff5c5c);
    background: var(--rosa-button-hover-background, #ffffff);
}

.rosa-button-block__link:hover > span:first-child,
.rosa-button-block__link:focus-visible > span:first-child {
    text-decoration: underline;
    text-decoration-thickness: 0.08em;
    text-underline-offset: 0.18em;
}

.rosa-button-block__link:focus-visible {
    outline: 3px solid var(--color-white);
    outline-offset: 3px;
    box-shadow: 0 0 0 6px var(--color-black);
}

.rosa-button-block__empty {
    margin: 0;
    padding: var(--space-10);
    border: 1px dashed currentColor;
    font-size: var(--font-size-sm);
}

html.rosa-button-modal-open,
body.rosa-button-modal-open {
    overflow: hidden;
}

.rosa-button-modal:not([open]) {
    display: none;
}

.rosa-button-modal[open] {
    position: fixed;
    inset: 0;
    box-sizing: border-box;
    width: min(72rem, calc(100vw - 2rem));
    max-width: none;
    max-height: calc(100dvh - 2rem);
    margin: auto;
    padding: clamp(1rem, 3vw, 2.25rem);
    overflow: auto;
    border: 0;
    background: var(--rosa-button-modal-background, var(--color-pink));
    color: var(--rosa-button-modal-text-color, var(--color-black));
    box-shadow: 0 0.75rem 2.5rem rgb(0 0 0 / 16%);
}

.rosa-button-modal::backdrop {
    background: rgb(11 11 11 / 42%);
    -webkit-backdrop-filter: blur(7px);
    backdrop-filter: blur(7px);
}

.rosa-button-modal__close {
    position: sticky;
    top: 0;
    z-index: 1;
    display: grid;
    place-items: center;
    width: 2.5rem;
    height: 2.5rem;
    margin: 0 0 var(--space-10) auto;
    padding: 0;
    border: 0;
    background: var(--rosa-button-modal-background, var(--color-pink));
    color: inherit;
    font: inherit;
    font-size: 2rem;
    line-height: 1;
    cursor: pointer;
}

.rosa-button-modal__close:hover,
.rosa-button-modal__close:focus-visible {
    color: var(--color-red);
}

.rosa-button-modal__close:focus-visible {
    outline: var(--focus);
    outline-offset: 2px;
}

.rosa-button-modal__content > :first-child {
    margin-top: 0;
}

.rosa-button-modal__content iframe {
    display: block;
    width: 100%;
    max-width: 100%;
    min-height: min(70dvh, 42rem);
    border: 0;
}

.rosa-button-modal--easyverein[open] {
    width: 100vw;
    height: 100dvh;
    max-height: 100dvh;
    margin: 0;
    padding: 0 1rem 2rem;
    overflow-x: hidden;
    overflow-y: auto;
    background: transparent;
    box-shadow: none;
}

.rosa-button-modal--easyverein .rosa-button-modal__panel {
    box-sizing: border-box;
    width: min(72rem, 100%);
    margin-inline: auto;
    padding: clamp(1rem, 3vw, 2.25rem);
    background: var(--rosa-button-modal-background, var(--color-pink));
    box-shadow: 0 0.75rem 2.5rem rgb(0 0 0 / 16%);
}

.rosa-button-modal--easyverein .rosa-button-modal__content iframe {
    height: 2500px;
    min-height: 0;
}

@media (max-width: 600px) {
    .rosa-button-modal[open] {
        width: calc(100vw - 1rem);
        max-height: calc(100dvh - 1rem);
        padding: 1rem;
    }

    .rosa-button-modal--easyverein[open] {
        width: 100vw;
        height: 100dvh;
        max-height: 100dvh;
        padding: 0 0.5rem 1rem;
    }

    .rosa-button-modal--easyverein .rosa-button-modal__content iframe {
        height: 5300px;
    }
}

@media (prefers-reduced-motion: reduce) {
    .rosa-button-block__link {
        transition: none;
    }

    .rosa-button-block__link--animation-wiggle,
    .rosa-button-block__link--animation-pulse {
        animation: none !important;
        transform: none !important;
    }
}

/* =========================================================
   ROSA DOWNLOADS BLOCK
   ========================================================= */

.rosa-downloads {
    padding-block: var(--space-10);
}

.rosa-downloads__items {
    display: flex;
    align-items: flex-start;
    gap: var(--space-17) var(--space-30);
}

.rosa-downloads--horizontal .rosa-downloads__items {
    flex-wrap: wrap;
}

.rosa-downloads--vertical .rosa-downloads__items {
    flex-direction: column;
}

.rosa-downloads__item {
    flex: none;
    width: max-content;
    max-width: 100%;
    min-width: 0;
}

.rosa-downloads--horizontal .rosa-downloads__item {
    overflow-x: auto;
    white-space: nowrap;
}

.rosa-downloads__description {
    max-width: 69ch;
    margin: var(--space-05) 0 0 1.7rem;
    font-size: var(--font-size-sm);
    line-height: var(--line-height-copy);
}

.rosa-downloads--horizontal .rosa-downloads__description {
    max-width: none;
}

.rosa-downloads__file {
    display: flex;
    flex-direction: column;
    align-items: flex-start;
    min-width: 0;
    gap: 0.15rem;
}

.rosa-downloads__file-link {
    display: inline-flex;
    align-items: center;
    gap: 0.45rem;
    max-width: 100%;
    color: var(--color-red);
    font-size: var(--font-size-sm);
    font-weight: var(--font-weight-bold);
    line-height: var(--line-height-ui);
    text-decoration: none;
    overflow-wrap: anywhere;
}

.rosa-downloads--horizontal .rosa-downloads__file-link {
    overflow-wrap: normal;
}

.rosa-downloads__file-link svg {
    flex: 0 0 1.25rem;
    width: 1.25rem;
    height: 1.25rem;
}

.rosa-downloads__file-link:hover span,
.rosa-downloads__file-link:focus-visible span {
    text-decoration: underline;
    text-underline-offset: 0.16em;
}

.rosa-downloads__file-link:focus-visible {
    outline: var(--focus);
    outline-offset: 0.2rem;
}

.rosa-downloads.rosa-block-bg:not(.rosa-block-bg--white) .rosa-downloads__file-link {
    color: inherit;
}

.rosa-downloads__file-meta {
    margin-left: 1.7rem;
    font-size: var(--font-size-xs);
    line-height: var(--line-height-ui);
    opacity: 0.7;
}

.rosa-downloads__empty {
    margin: 0;
    font-size: var(--font-size-sm);
}

/* =========================================================
   ROSA SUPPORTERS BLOCK
   ========================================================= */

.rosa-supporters {
    padding-block: var(--space-10);
}

.rosa-supporters__list {
    display: grid;
    gap: var(--space-30);
}

.rosa-supporters__item {
    display: grid;
    grid-template-columns: minmax(7.5rem, 11rem) minmax(0, 1fr);
    align-items: center;
    column-gap: var(--space-30);
}

.rosa-supporters__logo img {
    display: block;
    width: 100%;
    height: auto;
    max-height: 9rem;
    object-fit: contain;
    object-position: left center;
}

.rosa-supporters__content {
    min-width: 0;
}

.rosa-supporters__title {
    margin: 0 0 var(--space-05);
    font-size: var(--font-size-s1);
    line-height: var(--line-height-s1);
    font-weight: var(--font-weight-bold);
    overflow-wrap: anywhere;
}

.rosa-supporters__text {
    min-width: 0;
    font-size: var(--font-size-sm);
    line-height: var(--line-height-copy);
    overflow-wrap: anywhere;
}

.rosa-supporters__text p {
    margin: 0;
}

.rosa-supporters__text p + p {
    margin-top: var(--space-10);
}

.rosa-supporters__text a {
    color: inherit;
    text-decoration: underline;
    text-underline-offset: 0.16em;
}

.rosa-supporters--band,
.rosa-supporters--band .rosa-supporters__marquee,
.rosa-supporters--band .rosa-supporters__band-logo {
    background: transparent;
}

.rosa-supporters--band.rosa-block-width--full > .container {
    padding-inline: 0;
}

.rosa-supporters__marquee {
    width: 100%;
    overflow: hidden;
}

.rosa-supporters__track {
    display: flex;
    width: max-content;
    animation: rosa-supporters-marquee var(--rosa-supporters-duration, 40s) linear infinite;
    will-change: transform;
}

.rosa-supporters__group {
    display: flex;
    flex: none;
    align-items: center;
    gap: clamp(1.5rem, 3vw, 3rem);
    padding-right: clamp(1.5rem, 3vw, 3rem);
}

.rosa-supporters__band-logo {
    display: flex;
    flex: 0 0 clamp(7rem, 12vw, 10rem);
    align-items: center;
    justify-content: center;
    width: clamp(7rem, 12vw, 10rem);
    height: clamp(4.5rem, 8vw, 6rem);
}

.rosa-supporters__band-image {
    display: block;
    width: auto;
    height: auto;
    max-width: 100%;
    max-height: 100%;
    object-fit: contain;
}

.rosa-supporters__marquee:focus-within .rosa-supporters__track {
    animation-play-state: paused;
}

@media (hover: hover) and (pointer: fine) {
    .rosa-supporters__marquee:hover .rosa-supporters__track {
        animation-play-state: paused;
    }
}

@keyframes rosa-supporters-marquee {
    from { transform: translateX(-50%); }
    to { transform: translateX(0); }
}

@media (prefers-reduced-motion: reduce) {
    .rosa-supporters__marquee {
        overflow-x: auto;
    }

    .rosa-supporters__track {
        animation: none;
        transform: none;
        will-change: auto;
    }

    .rosa-supporters__group[aria-hidden="true"],
    .rosa-supporters__band-logo[aria-hidden="true"] {
        display: none;
    }
}

@media (max-width: 700px) {
    .rosa-supporters__item {
        grid-template-columns: minmax(5rem, 28%) minmax(0, 1fr);
        column-gap: var(--space-10);
    }
}

/* =========================================================
   10. CARD GRID BLOCK
   ========================================================= */

.rosa-card-grid {
    padding-block: var(--space-10);
}

.rosa-card-grid__header {
    max-width: 52rem;
    margin-bottom: var(--space-30);
}

.rosa-card-grid--headings-h3-h4 .rosa-card-grid__header {
    margin-bottom: var(--space-10);
}

.rosa-card-grid--headings-h3-h4 .rosa-card-grid__title {
    margin-bottom: 0;
    font-size: var(--font-size-base);
    line-height: var(--line-height-s1);
}

.rosa-card-grid--headings-h3-h4 .rosa-card-grid__title + .rosa-card-grid__intro {
    margin-top: var(--space-05);
}

.rosa-card-grid__intro,
p.is-style-rosa-larger-text,
.editor-styles-wrapper p.is-style-rosa-larger-text {
    font-size: var(--font-size-base);
    line-height: var(--line-height-s1);
    font-weight: var(--font-weight-semibold);
}

.rosa-card-grid__grid {
    display: grid;
    gap: clamp(1rem, 2vw, 2rem);
    --rosa-card-text-align: var(--rosa-card-text-align-desktop, left);
    --rosa-card-actions-align: var(--rosa-card-actions-align-desktop, flex-start);
    --rosa-card-image-align: var(--rosa-card-image-align-desktop, start);
}

.rosa-card-grid--layout-columns .rosa-card-grid__grid {
    grid-template-columns: repeat(var(--rosa-card-grid-columns-desktop, 3), minmax(0, 1fr));
}

.rosa-card-grid--layout-rows .rosa-card-grid__grid {
    grid-template-columns: 1fr;
    gap: var(--space-30);
}

.rosa-card {
    min-width: 0;
    text-align: var(--rosa-card-text-align);
}

.rosa-card-grid--layout-columns .rosa-card {
    display: flex;
    flex-direction: column;
}

.rosa-card-grid--layout-columns .rosa-card__body {
    display: flex;
    flex: 1 1 auto;
    flex-direction: column;
}

.rosa-card-grid--layout-columns .rosa-card__actions {
    margin-top: auto;
    padding-top: var(--space-17);
}

.rosa-card-grid--layout-rows .rosa-card.has-image {
    display: grid;
    grid-template-columns: minmax(0, var(--rosa-card-row-image-width, 33%)) minmax(0, 1fr);
    gap: clamp(1.5rem, 4vw, 4rem);
    align-items: start;
}

.rosa-card-grid--layout-rows.rosa-card-grid--image-left .rosa-card__image {
    grid-column: 1;
}

.rosa-card-grid--layout-rows.rosa-card-grid--image-left .rosa-card__body {
    grid-column: 2;
}

.rosa-card-grid--layout-rows.rosa-card-grid--image-right .rosa-card__image {
    grid-column: 2;
}

.rosa-card-grid--layout-rows.rosa-card-grid--image-right .rosa-card__body {
    grid-column: 1;
    grid-row: 1;
}

.rosa-card__image {
    position: relative;
    aspect-ratio: var(--rosa-card-image-ratio-desktop, 1 / 1);
    margin-bottom: var(--space-17);
    background: transparent;
    overflow: hidden;
}

.rosa-card__image-source {
    position: absolute;
    right: 0;
    bottom: 0;
    max-width: 90%;
    padding: 0.25rem 0.45rem;
    color: var(--color-white);
    background: rgba(11, 11, 11, 0.75);
    font-size: calc(var(--font-size-xs) * 0.72);
    line-height: 1.25;
    text-align: right;
}

.rosa-card__image img {
    width: 100%;
    height: 100%;
    object-fit: cover;
}

.rosa-card-grid--layout-rows .rosa-card__image {
    margin-bottom: 0;
}

.rosa-card-grid--headings-h3-h4 .rosa-card__title {
    font-size: var(--font-size-sm);
    line-height: var(--line-height-copy);
    font-weight: var(--font-weight-bold);
}

.rosa-card--title-above-image .rosa-card__title {
    margin-bottom: var(--space-17);
}

.rosa-card__text {
    font-size: var(--font-size-sm);
    line-height: var(--line-height-copy);
}

.rosa-card__text > * + * {
    margin-top: 0.7em;
}

.rosa-card__text :is(ul, ol) {
    padding-left: 1.25rem;
}

.rosa-card__text ul {
    list-style: disc;
}

.rosa-card__text ol {
    list-style: decimal;
}

.rosa-card__text a {
    color: inherit;
    text-decoration: underline;
    text-underline-offset: 0.16em;
}

.rosa-card__actions {
    display: flex;
    flex-direction: column;
    align-items: var(--rosa-card-actions-align);
    gap: var(--space-05);
    margin-top: var(--space-17);
}

.rosa-card__link {
    display: inline-flex;
    align-items: center;
    gap: 0.35em;

    color: var(--color-red);
    font-size: var(--font-size-sm);
    font-weight: var(--font-weight-bold);
    line-height: var(--line-height-ui);

    text-decoration: none;
}

.rosa-card__link-text {
    text-decoration: none;
}

.rosa-card__link::after {
    content: "→";
    font-weight: var(--font-weight-black);
    text-decoration: none;
    transition: transform 160ms ease;
}

.rosa-card__link:hover .rosa-card__link-text,
.rosa-card__link:focus-visible .rosa-card__link-text {
    text-decoration: underline;
    text-decoration-thickness: 0.08em;
    text-underline-offset: 0.18em;
}

.rosa-card__link:hover::after,
.rosa-card__link:focus-visible::after {
    transform: translateX(0.2em);
}

.section--red .rosa-card__link,
.rosa-block-bg--red .rosa-card__link {
    color: var(--color-white);
}

.rosa-hero__button:hover .rosa-card__link-text,
.rosa-hero__button:focus-visible .rosa-card__link-text {
    text-decoration: underline !important;
    text-decoration-thickness: 0.08em;
    text-underline-offset: 0.18em;
}

@media (max-width: 900px) {
    .rosa-card-grid__grid {
        --rosa-card-text-align: var(--rosa-card-text-align-tablet, left);
        --rosa-card-actions-align: var(--rosa-card-actions-align-tablet, flex-start);
        --rosa-card-image-align: var(--rosa-card-image-align-tablet, start);
    }

    .rosa-card-grid--layout-columns .rosa-card-grid__grid {
        grid-template-columns: repeat(var(--rosa-card-grid-columns-tablet, 1), minmax(0, 1fr));
    }

    .rosa-card-grid .rosa-card__image {
        aspect-ratio: var(--rosa-card-image-ratio-tablet, 1 / 1);
    }
}

@media (max-width: 700px) {
    .rosa-card-grid__grid {
        --rosa-card-text-align: var(--rosa-card-text-align-mobile, left);
        --rosa-card-actions-align: var(--rosa-card-actions-align-mobile, flex-start);
        --rosa-card-image-align: var(--rosa-card-image-align-mobile, start);
    }

    .rosa-card-grid--layout-columns .rosa-card-grid__grid {
        grid-template-columns: repeat(var(--rosa-card-grid-columns-mobile, 1), minmax(0, 1fr));
    }

    .rosa-card-grid__grid,
    .rosa-card-grid--layout-rows .rosa-card-grid__grid {
        row-gap: var(--space-30);
    }

    .rosa-card-grid--layout-columns .rosa-card__actions,
    .rosa-card-grid--layout-rows .rosa-card__actions {
        margin-top: var(--space-05);
        padding-top: 0;
    }

    .rosa-card-grid .rosa-card__image {
        aspect-ratio: var(--rosa-card-image-ratio-mobile, 1 / 1);
        width: var(--rosa-card-mobile-image-width, 100%);
        max-width: 100%;
        margin-bottom: var(--space-10);
    }

    .rosa-card-grid--layout-columns .rosa-card__image {
        align-self: var(--rosa-card-image-align);
    }

    .rosa-card-grid--layout-rows .rosa-card.has-image {
        grid-template-columns: 1fr;
        gap: var(--space-10);
    }

    .rosa-card-grid--layout-rows .rosa-card__image {
        justify-self: var(--rosa-card-image-align);
        margin-bottom: 0;
    }

    .rosa-card-grid--layout-rows .rosa-card__image,
    .rosa-card-grid--layout-rows .rosa-card__body {
        grid-column: 1 !important;
        grid-row: auto !important;
    }
}

/* =========================================================
   11. ROSA ZAHLEN BLOCK
   ========================================================= */

.rosa-zahlen {
    --rosa-zahlen-card-width: clamp(18rem, 26vw, 25rem);
    padding-block: clamp(3rem, 7vw, 7rem);
}

.rosa-zahlen > .container {
    max-width: var(--container);
}

.rosa-zahlen__header {
    max-width: 52rem;
    margin-bottom: var(--space-30);
}

.rosa-zahlen__title {
}

.rosa-zahlen__viewport {
    box-sizing: border-box;
    width: 100%;
    overflow-x: auto;
    overflow-y: hidden;
    padding-inline: var(--page-padding);
    cursor: grab;
    scrollbar-width: none;
}

.rosa-zahlen__viewport::-webkit-scrollbar {
    display: none;
}

.rosa-zahlen__viewport.is-dragging {
    cursor: grabbing;
    user-select: none;
}

.rosa-zahlen__track {
    display: flex;
    gap: 0;
    width: max-content;
    will-change: transform;
}

.rosa-zahlen__group {
    display: flex;
    flex: none;
    width: max-content;
    min-width: max-content;
    gap: var(--space-10);
    padding-right: var(--space-10);
}

.rosa-zahlen.is-animated .rosa-zahlen__group {
    display: grid;
    grid-auto-flow: column;
    grid-auto-columns: var(--rosa-zahlen-card-width);
}

.rosa-zahlen.is-animated .rosa-zahlen__track {
    animation: rosa-zahlen-marquee var(--rosa-zahlen-duration, 56s) linear infinite;
}

.rosa-zahlen.is-animated:focus-within .rosa-zahlen__track {
    animation-play-state: paused;
}

@media (hover: hover) and (pointer: fine) {
    .rosa-zahlen.is-animated:hover .rosa-zahlen__track {
        animation-play-state: paused;
    }
}

.rosa-zahlen.is-static .rosa-zahlen__track {
    width: auto;
}

.rosa-zahlen.is-static .rosa-zahlen__group {
    flex-wrap: wrap;
    width: 100%;
    min-width: 0;
}

.rosa-zahlen__card {
    box-sizing: border-box;
    flex: none;
    width: var(--rosa-zahlen-card-width);
    min-width: var(--rosa-zahlen-card-width);
    min-height: clamp(17.5rem, 24vw, 23rem);
    perspective: 70rem;
    outline: 0;
}

.rosa-zahlen__card-inner {
    position: relative;
    min-height: inherit;
    transform-style: preserve-3d;
    transition: transform 420ms ease;
}

.rosa-zahlen__card:hover .rosa-zahlen__card-inner,
.rosa-zahlen__card:focus-within .rosa-zahlen__card-inner,
.rosa-zahlen__card.is-flipped .rosa-zahlen__card-inner {
    transform: rotateY(180deg);
}

.rosa-zahlen__face {
    position: absolute;
    inset: 0;
    display: flex;
    flex-direction: column;
    justify-content: center;
    align-items: center;
    gap: var(--space-05);
    padding: var(--space-17);
    background: var(--rosa-zahlen-front-background, var(--color-pink));
    color: var(--rosa-zahlen-front-color, var(--color-black));
    text-align: center;
    backface-visibility: hidden;
}

.rosa-zahlen__face--back {
    transform: rotateY(180deg);
    align-items: flex-start;
    justify-content: space-between;
    gap: var(--space-10);
    overflow: hidden;
    text-align: left;
}

.rosa-zahlen__face--front {
    display: grid;
    grid-template-rows: minmax(0, 0.75fr) auto minmax(0, 1.25fr);
    align-items: center;
    justify-items: center;
    overflow: hidden;
    isolation: isolate;
}

.rosa-zahlen__image-layer {
    position: absolute;
    z-index: 0;
    inset: 0;
    display: block;
    overflow: hidden;
    opacity: var(--rosa-zahlen-image-opacity, 0.7);
    mix-blend-mode: var(--rosa-zahlen-image-blend, overlay);
    filter: blur(calc(var(--rosa-zahlen-card-width) * var(--rosa-zahlen-image-blur-factor, 0.01)));
    pointer-events: none;
}

.rosa-zahlen__image {
    display: block;
    width: 100%;
    height: 100%;
    object-fit: cover;
    object-position: center var(--rosa-zahlen-image-position-y, 50%);
    transform: scale(1.04);
}

.rosa-zahlen__face--front > :not(.rosa-zahlen__image-layer) {
    position: relative;
    z-index: 1;
}

.rosa-zahlen__prefix {
    grid-row: 1;
    align-self: end;
    font-size: var(--font-size-xs);
    line-height: var(--line-height-small);
}

.rosa-zahlen__number {
    grid-row: 2;
    display: block;
    max-width: 100%;
    font-size: var(--rosa-zahlen-number-font-size, clamp(5.46rem, calc(var(--rosa-zahlen-card-width) * 0.2964), 7.41rem));
    font-weight: var(--font-weight-black);
    line-height: var(--line-height-tight);
    white-space: nowrap;
}

.rosa-zahlen__fact {
    grid-row: 3;
    align-self: start;
    font-size: var(--font-size-xs);
    line-height: var(--line-height-small);
}

@media (min-width: 701px) {
    .rosa-zahlen__prefix,
    .rosa-zahlen__fact {
        font-size: var(--font-size-sm);
    }
}

.rosa-zahlen__back-text {
    flex: 1 1 auto;
    min-height: 0;
    overflow: hidden;
    font-size: var(--rosa-zahlen-back-font-size, var(--font-size-sm));
    line-height: var(--line-height-small);
}

.rosa-zahlen__back-text > :last-child {
    margin-bottom: 0;
}

.rosa-zahlen__link {
    flex: 0 0 auto;
    color: inherit;
    font-size: var(--font-size-xs);
    font-weight: var(--font-weight-black);
    line-height: var(--line-height-ui);
    text-decoration: underline;
}

.rosa-zahlen__back-text a {
    color: inherit;
}

.rosa-zahlen__link:hover,
.rosa-zahlen__link:focus-visible {
    text-decoration-thickness: 0.15em;
}

.rosa-zahlen__empty {
    margin: 0;
    font-size: var(--font-size-sm);
}

@keyframes rosa-zahlen-marquee {
    from {
        transform: translateX(0);
    }

    to {
        transform: translateX(calc(-100% / var(--rosa-zahlen-loop-groups, 2)));
    }
}

@media (prefers-reduced-motion: reduce) {
    .rosa-zahlen.is-animated .rosa-zahlen__track {
        animation: none;
    }
}

@media (hover: none), (pointer: coarse) {
    .rosa-zahlen.is-animated .rosa-zahlen__track {
        animation: none;
        transform: none;
    }

    .rosa-zahlen.is-animated .rosa-zahlen__group[aria-hidden="true"] {
        display: none;
    }

    .rosa-zahlen__card:hover .rosa-zahlen__card-inner,
    .rosa-zahlen__card:focus-within .rosa-zahlen__card-inner {
        transform: none;
    }

    .rosa-zahlen__card.is-flipped .rosa-zahlen__card-inner {
        transform: rotateY(180deg);
    }
}

@media (max-width: 700px) {
    .rosa-zahlen {
        --rosa-zahlen-card-width: min(78vw, 18rem);
    }

    .rosa-zahlen__viewport {
        overflow-x: auto;
        overflow-y: hidden;
        scroll-snap-type: x mandatory;
        scroll-padding-inline: var(--page-padding);
        -webkit-overflow-scrolling: touch;
        padding-bottom: var(--space-10);
    }

    .rosa-zahlen__card {
        min-height: 14rem;
        scroll-snap-align: start;
    }

    .rosa-zahlen__face {
        padding: var(--space-20);
    }
}

/* =========================================================
   ROSA CREWING – ANMELDUNG
   ========================================================= */

.rosa-crewing {
    padding-block: 0;
    background: var(--rosa-block-background, transparent);
    color: var(--rosa-crewing-text-color, var(--color-black));
}

.rosa-crewing__details {
    width: min(100%, 60rem);
    background: transparent;
}

.rosa-crewing--button-target.rosa-crewing--button-align-center .rosa-crewing__details {
    margin-inline: auto;
    text-align: center;
}

.rosa-crewing--button-target .rosa-crewing__panel {
    text-align: left;
}

.rosa-crewing__details > summary {
    list-style: none;
}

.rosa-crewing__details > summary:not(.rosa-button-block__link) {
    display: inline-flex;
    align-items: center;
    gap: 0.75rem;
    padding: 1rem 1.5rem;
    background: var(--color-red);
    color: var(--color-white);
    font-size: var(--font-size-s1);
    font-weight: var(--font-weight-bold);
    line-height: var(--line-height-ui);
    cursor: pointer;
}

.rosa-crewing--button-target .rosa-crewing__details > summary {
    gap: 0.75rem;
}

.rosa-crewing__details > summary::-webkit-details-marker {
    display: none;
}

.rosa-crewing__details > summary:not(.rosa-button-block__link):hover span:first-child,
.rosa-crewing__details > summary:not(.rosa-button-block__link):focus-visible span:first-child {
    text-decoration: underline;
}

.rosa-crewing__details > summary:not(.rosa-button-block__link):focus-visible {
    outline: var(--focus);
    outline-offset: 0.2rem;
}

.rosa-crewing__panel {
    padding: 0;
    margin-top: var(--space-17);
    scroll-margin-top: var(--space-17);
}

.rosa-crewing__details[open] .rosa-crewing__panel {
    animation: rosa-crewing-panel-enter 240ms ease-out both;
}

@keyframes rosa-crewing-panel-enter {
    from {
        opacity: 0;
        transform: translateY(-0.4rem);
    }
    to {
        opacity: 1;
        transform: translateY(0);
    }
}

@media (prefers-reduced-motion: reduce) {
    .rosa-crewing__details[open] .rosa-crewing__panel {
        animation: none;
    }
}

.rosa-crewing__notice,
.rosa-crewing__feedback {
    margin: 0 0 var(--space-17);
    font-size: var(--font-size-sm);
    line-height: var(--line-height-copy);
}

.rosa-crewing__notice {
    max-width: 60rem;
    padding: var(--space-17);
    background: var(--color-green);
    color: var(--color-black);
}

.rosa-crewing__notice--error,
.rosa-crewing__feedback:not([hidden]) {
    background: var(--color-white);
    color: #8c2020;
}

.rosa-crewing__feedback:not([hidden]) {
    padding: var(--space-17);
}

.rosa-crewing__group + .rosa-crewing__group {
    margin-top: var(--space-30);
}

.rosa-crewing__group h3 {
    margin: 0;
    font-size: var(--font-size-h3);
    line-height: var(--line-height-h3);
}

.rosa-crewing__group {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: var(--space-17);
}

.rosa-crewing__group--positions {
    row-gap: var(--space-10);
}

.rosa-crewing__group--positions .rosa-crewing__field--textarea {
    margin-top: var(--space-17);
}

.rosa-crewing__group h3,
.rosa-crewing__field--textarea,
.rosa-crewing__field--radio,
.rosa-crewing__field--checkbox,
.rosa-crewing__field--priority,
.rosa-crewing__address {
    grid-column: 1 / -1;
}

.rosa-crewing__address {
    display: grid;
    grid-template-columns: repeat(6, minmax(0, 1fr));
    gap: var(--space-10) var(--space-17);
}

.rosa-crewing__address .rosa-crewing__field--street {
    grid-column: span 4;
}

.rosa-crewing__address .rosa-crewing__field--house_number {
    grid-column: span 2;
}

.rosa-crewing__address .rosa-crewing__field--postal_code,
.rosa-crewing__address .rosa-crewing__field--city,
.rosa-crewing__address .rosa-crewing__field--country {
    grid-column: span 2;
}

.rosa-crewing__field--priority {
    display: grid;
    grid-template-columns: minmax(0, 1fr) auto;
    align-items: center;
    gap: var(--space-10);
    padding-block: 0.25rem;
}

.rosa-crewing__field[hidden] {
    display: none;
}

.rosa-crewing__priority-label {
    font-size: var(--font-size-sm);
    font-weight: var(--font-weight-semibold);
    line-height: var(--line-height-copy);
}

.rosa-crewing__priority-choices {
    display: grid;
    grid-template-columns: repeat(4, minmax(0, 1fr));
    width: min(100%, 20rem);
}

.rosa-crewing__priority-choice {
    position: relative;
    min-width: 0;
    cursor: pointer;
}

.rosa-crewing__priority-choice input {
    position: absolute;
    width: 1px;
    height: 1px;
    opacity: 0;
}

.rosa-crewing__priority-choice span {
    display: flex;
    min-height: 2.4rem;
    align-items: center;
    justify-content: center;
    padding: 0.3rem 0.45rem;
    border: 1px solid var(--color-red);
    background: var(--color-white);
    color: var(--color-black);
    font-size: var(--font-size-xs);
    font-weight: var(--font-weight-regular);
    text-align: center;
}

.rosa-crewing__priority-choice + .rosa-crewing__priority-choice span {
    border-left: 0;
}

.rosa-crewing__priority-choice input:checked + span {
    background: var(--color-red);
    color: var(--color-white);
    font-weight: var(--font-weight-bold);
}

.rosa-crewing__priority-choice input:focus-visible + span {
    position: relative;
    z-index: 1;
    outline: 2px solid var(--color-red);
    outline-offset: 2px;
}

.rosa-crewing__field,
.rosa-crewing__field fieldset {
    min-width: 0;
    margin: 0;
    padding: 0;
    border: 0;
}

.rosa-crewing__field label:not(.rosa-crewing__choice):not(.rosa-crewing__license-choice),
.rosa-crewing__field legend {
    display: block;
    margin-bottom: var(--space-05);
    font-size: var(--font-size-sm);
    font-weight: var(--font-weight-semibold);
    line-height: var(--line-height-copy);
}

.rosa-crewing__required {
    color: #bd2525;
}

.rosa-crewing__disclaimer {
    width: 100%;
    min-width: 0;
    margin: 0 0 var(--space-17);
}

.rosa-crewing__disclaimer > summary {
    display: inline-flex;
    align-items: center;
    gap: 0.4rem;
    color: var(--color-red);
    font-size: var(--font-size-xs);
    font-weight: var(--font-weight-semibold);
    line-height: var(--line-height-copy);
    list-style: none;
    cursor: pointer;
}

.rosa-crewing__disclaimer > summary::-webkit-details-marker {
    display: none;
}

.rosa-crewing__disclaimer > summary:hover span {
    text-decoration: underline;
    text-underline-offset: 0.15em;
}

.rosa-crewing__disclaimer > summary:focus-visible {
    outline: 2px solid currentColor;
    outline-offset: 0.2rem;
}

.rosa-crewing__disclaimer-icon {
    flex: none;
}

.rosa-crewing__disclaimer-copy {
    margin: var(--space-05) 0 0;
    padding: var(--space-10) var(--space-17);
    border-left: 2px solid var(--color-red);
    font-size: var(--font-size-sm);
    line-height: var(--line-height-copy);
}

.rosa-crewing__disclaimer-copy p {
    margin: 0;
}

.rosa-crewing__disclaimer-copy p:first-child {
    font-style: italic;
}

.rosa-crewing__disclaimer-copy p + p {
    margin-top: var(--space-10);
}

.rosa-crewing__field :is(input:not([type="radio"]):not([type="checkbox"]), textarea, select) {
    box-sizing: border-box;
    display: block;
    width: 100%;
    min-width: 0;
    max-width: 100%;
    min-height: 3rem;
    padding: 0.65rem 0.8rem;
    border: 1px solid var(--color-red);
    border-radius: 0;
    background: var(--color-white);
    color: var(--color-black);
    font: inherit;
    font-size: var(--font-size-sm);
    line-height: var(--line-height-copy);
}

.rosa-crewing__field :is(input:not([type="radio"]):not([type="checkbox"]), select) {
    height: 3rem;
}

.rosa-crewing__field textarea {
    min-height: 6rem;
    resize: vertical;
}

.rosa-crewing__field :is(input, textarea, select):focus-visible,
.rosa-crewing__privacy input:focus-visible {
    outline: 2px solid var(--color-red);
    outline-offset: 2px;
}

.rosa-crewing__choices {
    display: grid;
    gap: var(--space-05);
}

.rosa-crewing__choices--compact {
    grid-template-columns: repeat(auto-fit, minmax(5rem, 1fr));
    column-gap: var(--space-17);
}

.rosa-crewing__license-hint {
    margin: 0 0 var(--space-10);
    font-size: var(--font-size-xs);
    line-height: var(--line-height-copy);
}

.rosa-crewing__license-groups {
    display: grid;
    gap: var(--space-17);
}

.rosa-crewing__license-group-title {
    margin: 0 0 var(--space-05);
    font-size: var(--font-size-sm);
    font-weight: var(--font-weight-bold);
    line-height: var(--line-height-copy);
}

.rosa-crewing__license-grid {
    display: grid;
    grid-template-columns: repeat(3, minmax(0, 1fr));
    gap: var(--space-05);
}

.rosa-crewing__license-choice {
    position: relative;
    display: flex;
    align-items: flex-start;
    gap: 0.65rem;
    min-width: 0;
    min-height: 3.7rem;
    padding: 0.6rem 0.7rem;
    border: 1px solid var(--color-red);
    background: var(--color-white);
    color: var(--color-black);
    font-size: var(--font-size-xs);
    line-height: var(--line-height-small);
    cursor: pointer;
}

.rosa-crewing__license-choice:hover,
.rosa-crewing__license-choice:focus-within {
    z-index: 2;
    border-color: var(--color-red);
}

.rosa-crewing__license-choice:has(input:checked) {
    border-color: var(--color-red);
    box-shadow: inset 0 0 0 1px var(--color-red);
}

.rosa-crewing__license-choice input[type="checkbox"] {
    flex: 0 0 auto;
    width: 1.1rem;
    height: 1.1rem;
    min-height: 0;
    margin: 0.1rem 0 0;
    padding: 0;
    accent-color: var(--color-red);
}

.rosa-crewing__license-copy {
    display: grid;
    flex: 1 1 auto;
    min-width: 0;
    gap: 0.1rem;
}

.rosa-crewing__license-copy strong {
    font-size: var(--font-size-sm);
    line-height: var(--line-height-ui);
}

.rosa-crewing__license-choice input:checked + .rosa-crewing__license-copy strong {
    color: var(--color-red);
}

.rosa-crewing__license-info {
    display: grid;
    flex: 0 0 auto;
    place-items: center;
    width: 1rem;
    height: 1rem;
    border: 1px solid var(--color-red);
    border-radius: 50%;
    font-size: 0.7rem;
    font-weight: var(--font-weight-bold);
    line-height: 1;
}

.rosa-crewing__license-tooltip {
    position: absolute;
    z-index: 3;
    top: calc(100% + 0.3rem);
    left: 0;
    box-sizing: border-box;
    width: 100%;
    padding: 0.6rem 0.75rem;
    background: var(--color-black);
    color: var(--color-white);
    font-size: var(--font-size-xs);
    line-height: var(--line-height-copy);
    opacity: 0;
    visibility: hidden;
    pointer-events: none;
}

.rosa-crewing__license-choice:hover .rosa-crewing__license-tooltip,
.rosa-crewing__license-choice:focus-within .rosa-crewing__license-tooltip {
    opacity: 1;
    visibility: visible;
}

.rosa-crewing__choice,
.rosa-crewing__privacy label {
    display: flex;
    align-items: flex-start;
    gap: 0.7rem;
    font-size: var(--font-size-sm);
    font-weight: var(--font-weight-regular);
    line-height: var(--line-height-copy);
    cursor: pointer;
}

.rosa-crewing__choice input,
.rosa-crewing__privacy input {
    flex: 0 0 auto;
    width: 1.15rem;
    height: 1.15rem;
    margin: 0.2em 0 0;
    accent-color: var(--color-red);
}

.rosa-crewing__field--checkbox .rosa-crewing__choice input {
    accent-color: var(--color-red);
}

@media (max-width: 850px) {
    .rosa-crewing__license-grid {
        grid-template-columns: repeat(2, minmax(0, 1fr));
    }
}

@media (max-width: 520px) {
    .rosa-crewing__license-grid {
        grid-template-columns: minmax(0, 1fr);
    }
}

.rosa-crewing__privacy {
    margin-block: var(--space-40) var(--space-24);
}

.rosa-crewing__privacy a {
    color: inherit;
    text-underline-offset: 0.18em;
}

.rosa-crewing__submit {
    display: inline-flex;
    align-items: center;
    gap: 0.6rem;
    padding: 0.75rem 1rem;
    border: 0;
    background: var(--color-red);
    color: var(--color-white);
    font: inherit;
    font-size: var(--font-size-sm);
    font-weight: var(--font-weight-bold);
    cursor: pointer;
}

.rosa-crewing__submit:hover,
.rosa-crewing__submit:focus-visible {
    text-decoration: underline;
}

.rosa-crewing__submit:disabled {
    cursor: default;
    opacity: 0.6;
}

.rosa-crewing__success {
    padding: var(--space-20);
    background: var(--color-green);
    color: var(--color-black);
}

.rosa-crewing__success h3 {
    margin: 0 0 var(--space-10);
    font-size: var(--font-size-h3);
}

.rosa-crewing__success p {
    margin: 0;
    font-size: var(--font-size-sm);
}

.rosa-crewing__trap {
    position: absolute;
    width: 1px;
    height: 1px;
    overflow: hidden;
    clip-path: inset(50%);
}

@media (max-width: 700px) {
    .rosa-crewing__field :is(input:not([type="radio"]):not([type="checkbox"]), textarea, select) {
        font-size: 1rem;
    }

    .rosa-crewing__field input[type="date"] {
        /* iOS WebKit can add input padding outside a 100%-wide date control. */
        padding: 0;
    }

    .rosa-crewing__field input[type="date"]::-webkit-date-and-time-value {
        padding-inline: 0.8rem;
    }

    .rosa-crewing__field input[type="date"]::-webkit-calendar-picker-indicator {
        margin-inline-end: 0.8rem;
    }

    .rosa-crewing__group {
        grid-template-columns: minmax(0, 1fr);
    }

    .rosa-crewing__field {
        grid-column: 1;
    }

    .rosa-crewing__address {
        grid-template-columns: repeat(2, minmax(0, 1fr));
    }

    .rosa-crewing__address .rosa-crewing__field--street,
    .rosa-crewing__address .rosa-crewing__field--house_number,
    .rosa-crewing__address .rosa-crewing__field--postal_code,
    .rosa-crewing__address .rosa-crewing__field--city {
        grid-column: auto;
    }

    .rosa-crewing__address .rosa-crewing__field--country {
        grid-column: 1 / -1;
    }

    .rosa-crewing__field--priority {
        grid-template-columns: minmax(0, 1fr);
        gap: var(--space-05);
    }
}

/* =========================================================
   ROSA SPENDEN-DIAGRAMM BLOCK
   ========================================================= */

.rosa-spenden-diagramm {
    padding-block: clamp(1.3rem, 3vw, 1.7rem);
    background: transparent;
}

.rosa-spenden-diagramm > .container {
    padding-inline: 0;
}

.rosa-spenden-diagramm__figure {
    display: grid;
    justify-items: center;
    gap: var(--space-05);
    width: min(100%, 56rem);
    margin: 0;
    margin-inline: auto;
}

.rosa-spenden-diagramm__text {
    width: min(100%, 42rem);
    margin-inline: auto;
    font-size: var(--font-size-sm);
    line-height: var(--line-height-copy);
}

.rosa-spenden-diagramm__text--above {
    margin-bottom: var(--space-30);
}

.rosa-spenden-diagramm__text--below {
    margin-top: var(--space-30);
}

.rosa-spenden-diagramm__note {
    width: min(100%, 42rem);
    margin: var(--space-17) auto 0;
    font-size: 0.7rem;
    line-height: var(--line-height-copy);
    white-space: pre-line;
}

.rosa-spenden-diagramm__note + .rosa-spenden-diagramm__text--below {
    margin-top: var(--space-17);
}

.rosa-spenden-diagramm__text > :last-child {
    margin-bottom: 0;
}

.rosa-spenden-diagramm__chart {
    display: block;
    width: min(100%, 22rem);
    height: auto;
    margin-inline: auto;
    overflow: visible;
    -webkit-tap-highlight-color: transparent;
}

.rosa-spenden-diagramm__chart path,
.rosa-spenden-diagramm__chart circle {
    stroke: var(--rosa-block-background, #ffffff);
    stroke-width: 0.35;
    stroke-linejoin: round;
    cursor: help;
    outline: none;
    -webkit-tap-highlight-color: transparent;
}

.rosa-spenden-diagramm__chart :is(path, circle):focus-visible {
    outline: none;
    stroke: var(--color-black);
    stroke-width: 0.8;
}

.rosa-spenden-diagramm__segment-label {
    font-family: var(--font-main);
    font-size: 3.4px;
    font-weight: var(--font-weight-bold);
    line-height: 1;
    pointer-events: none;
}

.rosa-spenden-diagramm__segment-label.is-small {
    font-size: 2.6px;
}

.rosa-spenden-diagramm__legend {
    width: 100%;
}

.rosa-spenden-diagramm__legend-list {
    display: grid;
    grid-template-columns: minmax(0, 1fr);
    gap: 0.35rem;
    margin: 0;
    padding: 0;
    list-style: none;
}

.rosa-spenden-diagramm__legend-item {
    display: grid;
    grid-template-columns: auto minmax(0, 1fr) auto;
    align-items: center;
    gap: 0.55rem;
    padding: 0.2rem 0;
    border: 0;
    font-size: var(--font-size-sm);
    font-weight: var(--font-weight-regular);
    line-height: var(--line-height-small);
}

.rosa-spenden-diagramm__swatch {
    width: 0.7rem;
    aspect-ratio: 1;
    border-radius: 50%;
    background: var(--rosa-spenden-color, var(--color-red));
}

.rosa-spenden-diagramm__legend-title,
.rosa-spenden-diagramm__legend-amount {
    font-size: inherit;
    font-weight: inherit;
    line-height: inherit;
}

.rosa-spenden-diagramm__legend-title {
    overflow-wrap: anywhere;
}

.rosa-spenden-diagramm__legend-amount {
    white-space: nowrap;
}

.rosa-spenden-diagramm__tooltip[hidden] {
    display: none !important;
}

.rosa-spenden-diagramm__tooltip {
    position: fixed;
    z-index: 1000;
    display: grid;
    gap: 0.25rem;
    width: max-content;
    max-width: min(18rem, calc(100vw - 1.5rem));
    padding: 0.75rem 1rem;
    border: 1px solid rgb(11 11 11 / 18%);
    background: var(--rosa-spenden-tooltip-color, var(--color-red));
    color: var(--color-white);
    box-shadow: inset 0 0 0 999px rgb(0 0 0 / 32%), 0 0.4rem 1.25rem rgb(0 0 0 / 18%);
    font-size: var(--font-size-sm);
    line-height: var(--line-height-small);
    pointer-events: none;
}

.rosa-spenden-diagramm__tooltip strong {
    font-weight: var(--font-weight-bold);
}

.rosa-spenden-diagramm__empty {
    margin: 0;
    padding: var(--space-10);
    border: 1px dashed currentColor;
    font-size: var(--font-size-sm);
}

@media (max-width: 759px) {
    .rosa-spenden-diagramm {
        padding-top: 0.9rem;
    }

    .rosa-spenden-diagramm__text--above {
        margin-bottom: var(--space-20);
    }

    .rosa-spenden-diagramm__chart {
        width: min(80%, 17.6rem);
    }

    .rosa-spenden-diagramm__legend {
        display: none;
    }

    .rosa-spenden-diagramm--legend-visible-mobile .rosa-spenden-diagramm__legend {
        display: block;
    }
}

@media (min-width: 760px) {
    .rosa-spenden-diagramm__figure {
        grid-template-columns: minmax(0, 16rem) minmax(0, 1fr);
        align-items: center;
        column-gap: clamp(1rem, 0.8vw, 2.7rem);
    }

    .rosa-spenden-diagramm__legend-item {
        grid-template-columns: auto minmax(0, 1fr);
    }

    .rosa-spenden-diagramm__legend-amount {
        display: none;
    }

    .rosa-spenden-diagramm__legend {
        grid-column: 2;
        grid-row: 1;
    }

    .rosa-spenden-diagramm__chart {
        grid-column: 1;
        grid-row: 1;
    }

    .rosa-spenden-diagramm--legend-hidden-desktop .rosa-spenden-diagramm__figure {
        grid-template-columns: minmax(0, 1fr);
    }

    .rosa-spenden-diagramm--legend-hidden-desktop .rosa-spenden-diagramm__legend {
        display: none;
    }
}

/* =========================================================
   11. ROSA BILDBLOCK
   ========================================================= */

.rosa-bildblock {
    padding-block: var(--space-10);
}

/* Decorative full-bleed layer beginning at the background block's position. */
.rosa-media-background-host,
.rosa-page-content:has(.rosa-bildblock--background:not(.rosa-bildblock--background-preview)) {
    position: relative;
    display: flow-root;
    isolation: isolate;
}

.rosa-bildblock--background {
    position: relative;
    display: flow-root;
    box-sizing: border-box;
    /* The transparent top padding is an in-flow gap, so it cannot collapse with
       the previous block's margin or become part of the background plane. */
    --rosa-media-background-top-offset: 0px;
    height: calc(1px + var(--rosa-media-background-top-offset));
    min-height: calc(1px + var(--rosa-media-background-top-offset));
    padding: var(--rosa-media-background-top-offset) 0 0 !important;
    margin-top: 0 !important;
    pointer-events: none;
}

.rosa-bildblock--background[class*="rosa-block-spacing-top--"] {
    --rosa-media-background-top-offset: var(--rosa-block-spacing-top);
}

.rosa-bildblock__background-plane {
    position: absolute;
    top: var(--rosa-media-background-top-offset, 0px);
    left: var(--rosa-media-background-left, calc(50% - 50vw));
    width: var(--rosa-media-background-width, 100vw);
    display: grid;
    grid-template-columns: minmax(0, 1fr);
    overflow: hidden;
    pointer-events: none;
}

.rosa-bildblock__background-color {
    position: relative;
    z-index: -1;
    grid-area: 1 / 1;
    align-self: start;
    width: 100%;
    aspect-ratio: calc(var(--rosa-media-background-plane-ratio, 16 / 9) / var(--rosa-media-background-color-height-factor, 1));
    max-height: min(
        calc(var(--rosa-media-background-max-height, 100000px) * var(--rosa-media-background-color-height-factor, 1)),
        calc(var(--rosa-media-background-available-height, 100000px) * var(--rosa-media-background-color-height-factor, 1)),
        var(--rosa-media-background-available-height, 100000px)
    );
    background-color: var(--rosa-block-background, #ffffff);
    -webkit-mask-image: var(--rosa-media-background-color-mask-x, linear-gradient(#000, #000)), var(--rosa-media-background-color-mask-y, linear-gradient(to bottom, #000 55%, transparent));
    mask-image: var(--rosa-media-background-color-mask-x, linear-gradient(#000, #000)), var(--rosa-media-background-color-mask-y, linear-gradient(to bottom, #000 55%, transparent));
    -webkit-mask-composite: source-in;
    mask-composite: intersect;
    -webkit-mask-repeat: no-repeat;
    mask-repeat: no-repeat;
    -webkit-mask-size: 100% 100%;
    mask-size: 100% 100%;
}

.rosa-bildblock__background-media {
    position: relative;
    z-index: 1;
    grid-area: 1 / 1;
    align-self: start;
    justify-self: start;
    width: var(--rosa-media-background-size, 100%);
    margin-left: var(--rosa-media-background-offset-x, 0%);
    aspect-ratio: var(--rosa-media-background-media-ratio, 16 / 9);
    max-height: min(var(--rosa-media-background-max-height, 100000px), var(--rosa-media-background-available-height, 100000px));
    overflow: hidden;
    filter: saturate(var(--rosa-media-background-saturation, 1));
    opacity: var(--rosa-media-background-opacity, 0.7);
    mix-blend-mode: var(--rosa-media-background-blend, overlay);
    -webkit-mask-image: var(--rosa-media-background-mask-x), var(--rosa-media-background-mask-y);
    mask-image: var(--rosa-media-background-mask-x), var(--rosa-media-background-mask-y);
    -webkit-mask-composite: source-in;
    mask-composite: intersect;
    -webkit-mask-repeat: no-repeat;
    mask-repeat: no-repeat;
    -webkit-mask-size: 100% 100%;
    mask-size: 100% 100%;
}

/* Let later block colours sit over the media block's own colour, but keep
   the decorative image between those colours and the actual content.
   Dialogs must stay viewport-fixed when opened from a later media block. */
.rosa-media-background-foreground {
    isolation: auto !important;
}

.rosa-media-background-foreground > :not(dialog),
.rosa-media-background-foreground:is(.rosa-section, .rosa-block-bg) > :not(dialog) {
    position: relative;
    z-index: 2;
}

/* Core heading/paragraph blocks repeat the section colour on the text element.
   That copy would cover the decorative image once the text is lifted above it. */
.rosa-media-background-foreground.rosa-section > :is(.wp-block-heading, .wp-block-paragraph, p) {
    background-color: transparent !important;
}

/* Hover zoom must lift individual posts, not the whole Instagram section with
   its background colour, which belongs below the media image. */
.rosa-media-background-foreground.rosa-instagram--hover-zoom,
.rosa-media-background-foreground.rosa-instagram--hover-zoom:hover,
.rosa-media-background-foreground.rosa-instagram--hover-zoom:focus-within {
    z-index: auto;
}

@media (max-width: 700px) {
    /* On phones only the full-width colour remains; background media never plays. */
    .rosa-bildblock--background:not(.rosa-bildblock--background-preview) .rosa-bildblock__background-media,
    .rosa-bildblock--background:not(.rosa-bildblock--background-preview) .rosa-bildblock__background-controls,
    .rosa-bildblock--background:not(.rosa-bildblock--background-preview) [data-rosa-bildblock-announcement] {
        display: none;
    }

    .rosa-bildblock--background:not(.rosa-bildblock--background-preview) .rosa-bildblock__background-color {
        aspect-ratio: auto;
        height: calc(130vw * var(--rosa-media-background-color-height-factor, 1));
        max-height: min(
            calc(var(--rosa-media-background-max-height, 100000px) * var(--rosa-media-background-color-height-factor, 1)),
            var(--rosa-media-background-available-height, 100000px)
        );
        -webkit-mask-image: linear-gradient(#000, #000), linear-gradient(to bottom, #000 0%, #000 55%, transparent 100%);
        mask-image: linear-gradient(#000, #000), linear-gradient(to bottom, #000 0%, #000 55%, transparent 100%);
    }
}

.rosa-bildblock__background-image,
.rosa-bildblock__background-video {
    position: absolute;
    inset: 0;
    display: block;
    width: 100%;
    height: 100%;
    max-width: none;
    object-fit: cover;
    object-position: var(--rosa-media-background-object-x, 100%) top;
}

/* Put the blurred edges beyond the stage crop, including at 100% and right alignment. */
.rosa-bildblock--background.rosa-bildblock--has-image-blur .rosa-bildblock__background-image {
    inset: calc(0px - var(--rosa-media-background-blur-bleed, 0px));
    width: calc(100% + var(--rosa-media-background-blur-bleed, 0px) + var(--rosa-media-background-blur-bleed, 0px));
    height: calc(100% + var(--rosa-media-background-blur-bleed, 0px) + var(--rosa-media-background-blur-bleed, 0px));
}

.rosa-bildblock--has-image-blur :is(
    .rosa-bildblock__image,
    .rosa-bildblock__background-image,
    .rosa-press-images__image,
    .rosa-bildblock__lightbox-image
) {
    filter: blur(var(--rosa-bildblock-image-blur));
}

.rosa-bildblock__background-slideshow,
.rosa-bildblock__background-youtube,
.rosa-bildblock__background-slideshow .rosa-bildblock__slides {
    width: 100%;
    height: 100%;
    aspect-ratio: auto;
    background: transparent;
}

.rosa-bildblock__background-youtube iframe {
    position: absolute;
    top: 50%;
    left: 50%;
    transform: translate(-50%, -50%);
    max-width: none;
    border: 0;
}

.rosa-bildblock__background-controls {
    position: absolute;
    z-index: 2;
    top: 0.5rem;
    right: 0;
    pointer-events: auto;
}

.rosa-bildblock--background-top-left .rosa-bildblock__background-controls {
    left: 0;
    right: auto;
    justify-content: flex-start;
}

.rosa-bildblock--background-top-center .rosa-bildblock__background-controls {
    left: 50%;
    right: auto;
    transform: translateX(-50%);
}

.rosa-bildblock__background-consent {
    display: grid;
    gap: 0.5rem;
    max-width: min(22rem, 90vw);
    padding: 0.75rem;
    background: var(--color-white);
    color: var(--color-black);
    font-size: var(--font-size-sm);
    line-height: var(--line-height-copy);
}

.rosa-bildblock__background-controls [hidden] {
    display: none !important;
}

/* Keep the first real text block's standard 6rem spacing after a background marker. */
.rosa-page-content > .rosa-bildblock--background:first-child + .rosa-section:not([class*="rosa-block-spacing-top--"]):not(.has-background):not(.rosa-block-bg) {
    margin-top: var(--space-60);
}

.rosa-page-content > .rosa-bildblock--background:first-child + .rosa-section:not([class*="rosa-block-spacing-top--"]):is(.has-background, .rosa-block-bg) {
    padding-top: var(--space-60);
}

/* The editor shows a self-contained preview instead of covering other blocks. */
.rosa-bildblock--background-preview {
    height: auto;
}

.rosa-bildblock--background-preview .rosa-bildblock__background-plane {
    position: relative;
    top: 0;
    z-index: 0;
    left: 0;
    width: 100%;
    isolation: isolate;
}

.rosa-bildblock--background-preview .rosa-bildblock__background-color {
    z-index: 0;
}

.rosa-bildblock--background-preview .rosa-bildblock__background-controls {
    display: none;
}

.rosa-bildblock__background-preview-label {
    padding-block: 0.75rem;
    font-size: var(--font-size-sm);
    line-height: var(--line-height-copy);
}

.rosa-bildblock__media {
    box-sizing: border-box;
    width: 100%;
    margin-right: auto;
    margin-left: 0;
}

.rosa-bildblock__media--width-content {
    max-width: var(--container);
    margin-inline: auto;
}

.rosa-bildblock__media--width-full {
    width: 100vw;
    max-width: none;
    margin-right: calc(50% - 50vw);
    margin-left: calc(50% - 50vw);
}

.rosa-bildblock__media--width-two-thirds {
    width: 66.666%;
    max-width: 960px;
}

.rosa-bildblock__media--width-half {
    width: 50%;
    max-width: 720px;
}

.rosa-bildblock__media--width-third {
    width: 33.333%;
    max-width: 480px;
}

@media (min-width: 701px) and (max-width: 1024px) {
    .rosa-bildblock__media--tablet-width-content {
        width: 100%;
        max-width: var(--container);
        margin-inline: auto;
    }

    .rosa-bildblock__media--tablet-width-full {
        width: 100vw;
        max-width: none;
        margin-right: calc(50% - 50vw);
        margin-left: calc(50% - 50vw);
    }

    .rosa-bildblock__media--tablet-width-two-thirds {
        width: 66.666%;
        max-width: 960px;
        margin-right: auto;
        margin-left: 0;
    }

    .rosa-bildblock__media--tablet-width-half {
        width: 50%;
        max-width: 720px;
        margin-right: auto;
        margin-left: 0;
    }

    .rosa-bildblock__media--tablet-width-third {
        width: 33.333%;
        max-width: 480px;
        margin-right: auto;
        margin-left: 0;
    }
}

.rosa-bildblock__gallery {
    display: flex;
    gap: 0;
}

.rosa-bildblock__gallery--side-by-side {
    flex-wrap: wrap;
    align-items: flex-start;
}

.rosa-bildblock__gallery--stacked {
    flex-direction: column;
    align-items: flex-start;
}

.rosa-bildblock__gallery > .rosa-bildblock__figure {
    box-sizing: border-box;
    width: min(100%, var(--rosa-bildblock-gallery-max-width, 100%));
    max-width: min(100%, var(--rosa-bildblock-gallery-max-width, 100%));
    min-width: min(100%, var(--rosa-bildblock-gallery-min-width, 0px));
}

.rosa-bildblock__gallery--side-by-side > .rosa-bildblock__figure {
    flex: 1 1 min(100%, var(--rosa-bildblock-gallery-min-width, 0px));
}

.rosa-bildblock__gallery--stacked > .rosa-bildblock__figure {
    flex: 0 0 auto;
}

.rosa-bildblock__figure,
.rosa-bildblock__video-figure,
.rosa-bildblock__lightbox-figure {
    min-width: 0;
    margin: 0;
}

.rosa-bildblock__videos {
    display: grid;
    gap: 0;
    align-items: start;
}

.rosa-bildblock__gallery--multiple,
.rosa-bildblock__videos--multiple,
.rosa-bildblock__downloads--multiple .rosa-press-images__grid {
    --rosa-bildblock-default-media-gap: var(--space-20);
    gap: var(--rosa-media-gap-desktop, var(--rosa-bildblock-default-media-gap));
}

.rosa-bildblock__downloads--multiple .rosa-press-images__grid {
    --rosa-bildblock-default-media-gap: var(--space-17);
}

@media (max-width: 1100px) and (min-width: 701px) {
    .rosa-bildblock__gallery--multiple,
    .rosa-bildblock__videos--multiple,
    .rosa-bildblock__downloads--multiple .rosa-press-images__grid {
        gap: var(--rosa-media-gap-tablet, var(--rosa-bildblock-default-media-gap));
    }
}

@media (max-width: 700px) {
    .rosa-bildblock__gallery--multiple,
    .rosa-bildblock__videos--multiple,
    .rosa-bildblock__downloads--multiple .rosa-press-images__grid {
        gap: var(--rosa-media-gap-mobile, var(--rosa-bildblock-default-media-gap));
    }
}

.rosa-bildblock__videos--side-by-side.rosa-bildblock__videos--multiple {
    grid-template-columns: repeat(var(--rosa-bildblock-video-columns, 2), minmax(0, 1fr));
}

.rosa-bildblock__videos--stacked {
    grid-template-columns: minmax(0, 1fr);
}

/* A shared ratio keeps side-by-side players equal in height without cropping video. */
.rosa-bildblock__videos--side-by-side.rosa-bildblock__videos--multiple .rosa-bildblock__video-frame {
    height: auto;
}

.rosa-bildblock__videos--side-by-side.rosa-bildblock__videos--multiple.rosa-bildblock__videos--format-standard .rosa-bildblock__video-frame,
.rosa-bildblock__videos--side-by-side.rosa-bildblock__videos--multiple.rosa-bildblock__videos--format-custom .rosa-bildblock__video-frame {
    aspect-ratio: var(--rosa-bildblock-video-format-ratio, 16 / 9);
}

@media (max-width: 1100px) and (min-width: 701px) {
    .rosa-bildblock__videos--side-by-side.rosa-bildblock__videos--multiple {
        grid-template-columns: repeat(2, minmax(0, 1fr));
    }
}

@media (max-width: 700px) {
    .rosa-bildblock__videos--side-by-side.rosa-bildblock__videos--multiple {
        grid-template-columns: minmax(0, 1fr);
    }
}

.rosa-bildblock__image-frame {
    position: relative;
    overflow: hidden;
    background: var(--color-pink);
}

.rosa-bildblock__image,
.rosa-bildblock__video,
.rosa-bildblock__youtube-poster,
.rosa-bildblock__youtube-iframe {
    display: block;
    width: 100%;
}

.rosa-bildblock__image {
    height: auto;
}

.rosa-bildblock__image-action {
    position: relative;
    display: block;
    width: 100%;
    min-width: 0;
    margin: 0;
    padding: 0;
    overflow: hidden;
    border: 0;
    border-radius: 0;
    color: inherit;
    background: transparent;
    font: inherit;
    text-align: inherit;
}

button.rosa-bildblock__image-action {
    cursor: zoom-in;
}

a.rosa-bildblock__image-action {
    text-decoration: none;
}

.rosa-bildblock__image-action .rosa-bildblock__image {
    transition: transform 300ms ease;
}

.rosa-bildblock__image-action:hover .rosa-bildblock__image,
.rosa-bildblock__image-action:focus-visible .rosa-bildblock__image {
   
}

.rosa-bildblock__caption {
    display: flex;
    flex-wrap: wrap;
    justify-content: space-between;
    gap: var(--space-05) var(--space-10);
    padding-top: var(--space-05);
    font-size: var(--font-size-xs);
    line-height: var(--line-height-small);
}

.rosa-bildblock__caption-text {
    max-width: 70ch;
}

.rosa-bildblock__source {
    margin-left: auto;
    font-size: calc(var(--font-size-xs) * 0.9);
}

.rosa-bildblock__video-figure > .rosa-bildblock__caption {
    display: grid;
    justify-items: start;
    gap: var(--space-05);
}

.rosa-bildblock__video-figure > .rosa-bildblock__caption .rosa-bildblock__source {
    margin-left: 0;
}

.rosa-bildblock__video-title {
    font-size: var(--font-size-sm);
    font-weight: 700;
    line-height: var(--line-height-copy);
}

.rosa-bildblock__slideshow {
    position: relative;
    width: 100%;
    background: transparent;
}

.rosa-bildblock__slides {
    position: relative;
    width: 100%;
    overflow: hidden;
    aspect-ratio: var(--rosa-bildblock-natural-ratio, 16 / 9);
    background: var(--color-black);
    touch-action: pan-y;
}

.rosa-bildblock__media--height-ratio .rosa-bildblock__slides,
.rosa-bildblock__media--height-ratio .rosa-bildblock__video-frame,
.rosa-bildblock__media--height-ratio .rosa-bildblock__gallery .rosa-bildblock__image-frame {
    aspect-ratio: var(--rosa-bildblock-aspect-ratio, 2.35 / 1);
}

@media (min-width: 701px) and (max-width: 1024px) {
    .rosa-bildblock__media--height-ratio .rosa-bildblock__slides,
    .rosa-bildblock__media--height-ratio .rosa-bildblock__gallery .rosa-bildblock__image-frame {
        aspect-ratio: var(--rosa-bildblock-tablet-aspect-ratio, var(--rosa-bildblock-aspect-ratio, 2.35 / 1));
    }
}

.rosa-bildblock__media--height-tallest .rosa-bildblock__slides,
.rosa-bildblock__media--height-dynamic .rosa-bildblock__slides,
.rosa-bildblock__media--height-tallest .rosa-bildblock__video-frame,
.rosa-bildblock__media--height-dynamic .rosa-bildblock__video-frame {
    height: var(--rosa-bildblock-media-height, auto);
    max-height: none;
}

.rosa-bildblock__media--height-tallest .rosa-bildblock__gallery .rosa-bildblock__image-frame {
    height: var(--rosa-bildblock-media-height, auto);
    max-height: none;
}

.rosa-bildblock__media--height-ratio .rosa-bildblock__gallery .rosa-bildblock__image,
.rosa-bildblock__media--height-tallest .rosa-bildblock__gallery .rosa-bildblock__image {
    width: 100%;
    height: 100%;
    object-fit: cover;
    object-position: center;
}

.rosa-bildblock__media--height-dynamic .rosa-bildblock__slides,
.rosa-bildblock__media--height-dynamic .rosa-bildblock__video-frame {
    transition: height 500ms ease;
}

.rosa-bildblock__slide-wrap {
    position: absolute;
    z-index: 0;
    inset: 0;
    opacity: 0;
    pointer-events: none;
    transition: opacity var(--rosa-bildblock-transition-duration, 800ms) ease;
}

.rosa-bildblock__slide-wrap.is-active {
    z-index: 1;
    opacity: 1;
    pointer-events: auto;
}

.rosa-bildblock__slide,
.rosa-bildblock__slideshow .rosa-bildblock__image-frame,
.rosa-bildblock__slideshow .rosa-bildblock__image-action {
    width: 100%;
    height: 100%;
}

.rosa-bildblock__slideshow .rosa-bildblock__image {
    width: 100%;
    height: 100%;
    object-fit: cover;
    object-position: center;
}

.rosa-bildblock__media--height-dynamic .rosa-bildblock__slideshow .rosa-bildblock__image {
    object-fit: contain;
}

.rosa-bildblock__slideshow--slide .rosa-bildblock__slide-wrap {
    opacity: 1;
    transform: translateX(100%);
    transition: transform var(--rosa-bildblock-transition-duration, 800ms) ease;
}

.rosa-bildblock__slideshow--slide .rosa-bildblock__slide-wrap.is-active {
    transform: translateX(0);
}

.rosa-bildblock__slideshow--slide .rosa-bildblock__slide-wrap.is-exiting {
    z-index: 2;
    transform: translateX(-100%);
}

.rosa-bildblock__slideshow--hardcut .rosa-bildblock__slide-wrap {
    transition: none;
}

.rosa-bildblock__slideshow-footer {
    display: grid;
    grid-template-columns: minmax(0, 1fr) auto;
    align-items: start;
    gap: var(--space-10) var(--space-20);
    padding-top: var(--space-10);
}

.rosa-bildblock__slideshow-captions {
    min-width: 0;
}

.rosa-bildblock__slideshow-caption {
    display: none;
    min-width: 0;
    padding-top: 0;
    overflow-wrap: anywhere;
    text-align: left;
}

.rosa-bildblock__slideshow-caption.is-active {
    display: grid;
    justify-items: start;
    gap: var(--space-05);
}

.rosa-bildblock__slideshow-caption .rosa-bildblock__source {
    margin-left: 0;
}

.rosa-bildblock__controls {
    display: flex;
    align-items: center;
    justify-content: flex-end;
    gap: 0.35rem;
}

.rosa-bildblock__control {
    display: grid;
    width: 2.75rem;
    height: 2.75rem;
    place-items: center;
    margin: 0;
    padding: 0 0 0.12em;
    border: 0;
    border-radius: 50%;
    color: var(--rosa-bildblock-button-color, var(--color-white));
    background: var(--rosa-bildblock-button-background, #ff5c5c);
    font-size: var(--font-size-h3);
    font-weight: var(--font-weight-bold);
    line-height: 1;
    cursor: pointer;
}

.rosa-bildblock__control:hover,
.rosa-bildblock__control:focus-visible {
    color: var(--rosa-bildblock-button-hover-color, var(--color-white));
    background: var(--rosa-bildblock-button-hover-background, var(--color-black));
}

.rosa-bildblock__control:focus-visible {
    outline: 3px solid var(--color-black);
    outline-offset: 3px;
}

.rosa-bildblock__control[hidden] {
    display: none !important;
}

.rosa-bildblock__controls[hidden] {
    display: none !important;
}

.rosa-bildblock__video-frame {
    position: relative;
    width: 100%;
    overflow: hidden;
    aspect-ratio: var(--rosa-bildblock-natural-ratio, 16 / 9);
    background: var(--rosa-bildblock-video-background, var(--color-black));
}

.rosa-bildblock__video-frame:fullscreen {
    width: 100vw;
    height: 100vh;
    aspect-ratio: auto;
}

.rosa-bildblock__video-loading {
    position: absolute;
    z-index: 3;
    inset: 0;
    display: grid;
    place-items: center;
    pointer-events: none;
}

.rosa-bildblock__video-loading[hidden] {
    display: none;
}

.rosa-bildblock__video-loading::before {
    content: '';
    position: absolute;
    inset: 0;
    pointer-events: none;
    background: var(--rosa-bildblock-video-background, var(--color-black));
    opacity: 0.75;
}

.rosa-bildblock__video-loading-gear {
    position: relative;
    width: clamp(4rem, 7vw, 5.25rem);
    height: clamp(4rem, 7vw, 5.25rem);
    background: conic-gradient(
        from 0deg,
        var(--rosa-bildblock-video-background, var(--color-black)) 0% var(--rosa-video-buffered, 0%),
        var(--rosa-bildblock-video-controls-color, var(--color-white)) var(--rosa-video-buffered, 0%) 100%
    );
    -webkit-mask: url('assets/img/zahnrad.svg') center / contain no-repeat;
    mask: url('assets/img/zahnrad.svg') center / contain no-repeat;
    animation: rosa-video-loading-rotate 16s linear infinite;
}

@keyframes rosa-video-loading-rotate {
    to { transform: rotate(360deg); }
}

.rosa-bildblock__video-loading.has-error {
    align-content: center;
    gap: 0.75rem;
    pointer-events: auto;
    color: var(--rosa-bildblock-video-controls-color, var(--color-white));
    text-align: center;
}

.rosa-bildblock__video-loading.has-error .rosa-bildblock__video-loading-gear {
    display: none;
}

.rosa-bildblock__video-load-error,
.rosa-bildblock__video-load-fallback {
    position: relative;
    z-index: 1;
    max-width: calc(100% - 2rem);
    font: inherit;
}

.rosa-bildblock__video-load-fallback {
    pointer-events: auto;
    padding: 0.5rem 0.75rem;
    border: 1px solid currentColor;
    color: inherit;
    background: transparent;
    cursor: pointer;
}

.rosa-bildblock__video-load-fallback:hover {
    text-decoration: underline;
}

@media (prefers-reduced-motion: reduce) {
    .rosa-bildblock__video-loading-gear { animation: none; }
}

.rosa-bildblock__video-controls {
    position: absolute;
    z-index: 2;
    right: 0;
    bottom: 0;
    left: 0;
    display: flex;
    align-items: center;
    gap: 0.6rem;
    min-height: 2.75rem;
    padding: 0.35rem 0.65rem;
    color: var(--rosa-bildblock-video-controls-color, var(--color-white));
    background: var(--rosa-bildblock-video-background, var(--color-black));
    font-size: var(--font-size-xs);
    line-height: var(--line-height-ui);
}

.rosa-bildblock__video-controls[hidden] {
    display: none;
}

.rosa-bildblock__video-control-button {
    flex: none;
    display: grid;
    place-items: center;
    min-width: 2rem;
    min-height: 2rem;
    padding: 0;
    border: 0;
    color: inherit;
    background: transparent;
    font: inherit;
    cursor: pointer;
}

.rosa-bildblock__video-control-button svg {
    display: block;
    width: 1.2rem;
    height: 1.2rem;
}

.rosa-bildblock__video-play .rosa-bildblock__video-icon--pause,
.rosa-bildblock__video-play.is-playing .rosa-bildblock__video-icon--play,
.rosa-bildblock__video-mute .rosa-bildblock__video-icon--muted,
.rosa-bildblock__video-mute.is-muted .rosa-bildblock__video-icon--sound {
    display: none;
}

.rosa-bildblock__video-play.is-playing .rosa-bildblock__video-icon--pause,
.rosa-bildblock__video-mute.is-muted .rosa-bildblock__video-icon--muted {
    display: block;
}

.rosa-bildblock__video-control-button:hover,
.rosa-bildblock__video-control-button:focus-visible {
    text-decoration: underline;
}

.rosa-bildblock__video-control-button:focus-visible,
.rosa-bildblock__video-progress:focus-visible {
    outline: 2px solid currentColor;
    outline-offset: 2px;
}

.rosa-bildblock__video-progress {
    flex: 1 1 auto;
    min-width: 3rem;
    height: 1.25rem;
    margin: 0;
    accent-color: var(--rosa-bildblock-video-controls-color, var(--color-white));
    cursor: pointer;
}

.rosa-bildblock__video-time {
    flex: none;
    font-variant-numeric: tabular-nums;
}

@media (max-width: 500px) {
    .rosa-bildblock__video-controls {
        gap: 0.35rem;
        padding-inline: 0.3rem;
    }

    .rosa-bildblock__video-time {
        font-size: 0.72rem;
    }
}

.rosa-bildblock__video,
.rosa-bildblock__youtube-consent,
.rosa-bildblock__youtube-iframe {
    width: 100%;
    height: 100%;
}

.rosa-bildblock__video {
    object-fit: contain;
}

.rosa-bildblock__video[role="button"] {
    cursor: pointer;
}

.rosa-bildblock__video[role="button"]:focus-visible {
    outline: 3px solid var(--color-pink);
    outline-offset: -3px;
}

.rosa-bildblock__video-link-overlay {
    position: absolute;
    inset: 0;
    z-index: 1;
    display: block;
}

.rosa-bildblock__video-link-overlay:focus-visible {
    outline: 3px solid var(--color-pink);
    outline-offset: -3px;
}

.rosa-bildblock__video-link {
    color: inherit;
    text-decoration: underline;
    text-underline-offset: 0.2em;
}

.rosa-bildblock__youtube-consent {
    position: relative;
    display: grid;
    place-items: center;
    overflow: hidden;
    container-type: inline-size;
    color: var(--rosa-bildblock-video-controls-color, var(--color-white));
    background: var(--rosa-bildblock-video-background, var(--color-black));
}

.rosa-bildblock__youtube-poster {
    position: absolute;
    inset: 0;
    height: 100%;
    object-fit: cover;
    opacity: 0.48;
}

.rosa-bildblock__youtube-notice {
    position: relative;
    z-index: 1;
    box-sizing: border-box;
    display: grid;
    justify-items: center;
    gap: var(--space-17);
    width: min(42rem, 100%);
    max-height: 100%;
    padding: var(--space-20);
    overflow: auto;
    text-align: center;
}

.rosa-bildblock__youtube-notice p {
    margin: 0;
    font-size: var(--font-size-sm);
    line-height: var(--line-height-copy);
}

.rosa-bildblock__youtube-consent .rosa-bildblock__youtube-button,
.rosa-bildblock__youtube-consent .rosa-bildblock__youtube-button:hover,
.rosa-bildblock__youtube-consent .rosa-bildblock__youtube-button:focus-visible {
    color: var(--color-white);
    background: var(--rosa-bildblock-button-background, var(--color-red));
}

.rosa-bildblock__youtube-consent .rosa-bildblock__youtube-button:hover,
.rosa-bildblock__youtube-consent .rosa-bildblock__youtube-button:focus-visible {
    text-decoration: underline;
}

@container (max-width: 430px) {
    .rosa-bildblock__youtube-consent .rosa-bildblock__youtube-notice {
        gap: clamp(0.25rem, 1.5cqw, 0.75rem);
        padding: clamp(0.35rem, 2.5cqw, 1rem);
    }

    .rosa-bildblock__youtube-notice p,
    .rosa-bildblock__youtube-consent .rosa-bildblock__youtube-button {
        font-size: clamp(0.7rem, 3.2cqw, 0.9rem);
        line-height: 1.2;
    }

    .rosa-bildblock__youtube-consent .rosa-bildblock__youtube-button {
        padding: clamp(0.3rem, 1.5cqw, 0.55rem) clamp(0.45rem, 2.5cqw, 0.8rem);
    }
}

@container (max-width: 240px) {
    .rosa-bildblock__youtube-notice p,
    .rosa-bildblock__youtube-consent .rosa-bildblock__youtube-button {
        font-size: 0.65rem;
        line-height: 1.15;
    }
}

.rosa-bildblock__youtube-iframe {
    border: 0;
}

.rosa-bildblock__transcript {
    margin-top: var(--space-17);
    border-top: 1px solid currentColor;
    border-bottom: 1px solid currentColor;
}

.rosa-bildblock__transcript summary {
    padding-block: var(--space-10);
    font-weight: var(--font-weight-bold);
    cursor: pointer;
}

.rosa-bildblock__transcript-content {
    max-width: 70ch;
    padding-bottom: var(--space-17);
    font-size: var(--font-size-sm);
}

.rosa-bildblock__transcript-content > :last-child {
    margin-bottom: 0;
}

.rosa-bildblock__lightbox {
    position: fixed;
    z-index: 10000;
    inset: 0;
    width: 100vw;
    max-width: none;
    height: 100dvh;
    max-height: none;
    margin: 0;
    padding: 0;
    overflow: auto;
    border: 0;
    color: var(--color-white);
    background: rgba(11, 11, 11, 0.38);
}

.rosa-bildblock__lightbox[open] {
    animation: rosa-bildblock-lightbox-fade-in 280ms ease-out both;
}

.rosa-bildblock__lightbox::backdrop {
    background: rgba(11, 11, 11, 0.18);
    -webkit-backdrop-filter: blur(7px);
    backdrop-filter: blur(7px);
}

.rosa-bildblock__lightbox[open]::backdrop {
    animation: rosa-bildblock-lightbox-fade-in 280ms ease-out both;
}

.rosa-bildblock__lightbox-inner {
    box-sizing: border-box;
    display: grid;
    width: 100%;
    height: 100%;
    min-height: 0;
    place-items: center;
    padding: var(--space-10) var(--page-padding);
}

.rosa-bildblock__lightbox.has-navigation .rosa-bildblock__lightbox-inner {
    padding-inline: clamp(4rem, 8vw, 7rem);
}

.rosa-bildblock__lightbox-figure {
    display: flex;
    flex-direction: column;
    align-items: center;
    justify-content: center;
    max-width: 100%;
    max-height: 100%;
    min-height: 0;
    touch-action: pan-y pinch-zoom;
}

.rosa-bildblock__lightbox[open] .rosa-bildblock__lightbox-figure {
    animation: rosa-bildblock-lightbox-figure-in 350ms cubic-bezier(.16, 1, .3, 1) both;
}

.rosa-bildblock__lightbox[open].is-closing,
.rosa-bildblock__lightbox[open].is-closing::backdrop {
    animation: rosa-bildblock-lightbox-fade-out 220ms ease-in both;
}

.rosa-bildblock__lightbox[open].is-closing .rosa-bildblock__lightbox-figure {
    animation: rosa-bildblock-lightbox-figure-out 220ms cubic-bezier(.55, 0, 1, .45) both;
}

@keyframes rosa-bildblock-lightbox-fade-in {
    from { opacity: 0; }
    to { opacity: 1; }
}

@keyframes rosa-bildblock-lightbox-figure-in {
    0% { opacity: 0; transform: scale(.82); }
    70% { opacity: 1; transform: scale(1.025); }
    100% { opacity: 1; transform: scale(1); }
}

@keyframes rosa-bildblock-lightbox-fade-out {
    from { opacity: 1; }
    to { opacity: 0; }
}

@keyframes rosa-bildblock-lightbox-figure-out {
    from { opacity: 1; transform: scale(1); }
    to { opacity: 0; transform: scale(.82); }
}

.rosa-bildblock__lightbox-close {
    position: fixed;
    top: var(--space-17);
    right: var(--space-17);
    z-index: 2;
    display: grid;
    width: clamp(2.75rem, 4vw, 3.5rem);
    height: clamp(2.75rem, 4vw, 3.5rem);
    place-items: center;
    padding: 0;
    border: 2px solid transparent;
    border-radius: 50%;
    color: var(--color-black);
    background: var(--color-red);
    cursor: pointer;
}

.rosa-bildblock__lightbox-close svg {
    width: 1.4rem;
    height: 1.4rem;
    transform: translateY(-1px);
}

.rosa-bildblock__lightbox-close:hover,
.rosa-bildblock__lightbox-close:focus-visible {
    border-color: var(--color-white);
    color: var(--color-black);
    background: var(--color-red);
}

.rosa-bildblock__lightbox-nav {
    position: fixed;
    top: 50%;
    z-index: 2;
    display: grid;
    width: clamp(2.75rem, 4vw, 3.5rem);
    height: clamp(2.75rem, 4vw, 3.5rem);
    place-items: center;
    padding: 0;
    border: 2px solid rgba(255, 255, 255, .85);
    border-radius: 50%;
    color: var(--color-red);
    background: rgba(11, 11, 11, .56);
    cursor: pointer;
    transform: translateY(-50%);
    transition: background-color 180ms ease, border-color 180ms ease;
}

.rosa-bildblock__lightbox-nav--previous { left: clamp(.75rem, 2vw, 2rem); }
.rosa-bildblock__lightbox-nav--next { right: clamp(.75rem, 2vw, 2rem); }

.rosa-bildblock__lightbox-nav svg {
    width: 1.4rem;
    height: 1.4rem;
}

.rosa-bildblock__lightbox-nav:hover,
.rosa-bildblock__lightbox-nav:focus-visible {
    border-color: var(--color-white);
    color: var(--color-red);
    background: rgba(11, 11, 11, .76);
}

.rosa-bildblock__lightbox-nav[hidden],
.rosa-bildblock__lightbox-count[hidden] {
    display: none;
}

.rosa-bildblock__lightbox-image {
    display: block;
    width: auto;
    max-width: min(100%, 100rem);
    height: calc(100dvh - var(--space-10) - var(--space-10) - 2.5rem);
    max-height: calc(100dvh - var(--space-10) - var(--space-10) - 2.5rem);
    margin-inline: auto;
    object-fit: contain;
    flex-shrink: 1;
    transition: opacity 170ms ease, transform 220ms cubic-bezier(.22, 1, .36, 1);
}

.rosa-bildblock__lightbox.is-changing .rosa-bildblock__lightbox-image {
    opacity: 0;
}

.rosa-bildblock__lightbox.is-changing[data-slide-direction="next"] .rosa-bildblock__lightbox-image,
.rosa-bildblock__lightbox.is-entering[data-slide-direction="previous"] .rosa-bildblock__lightbox-image {
    transform: translateX(clamp(-8rem, -9vw, -3rem));
}

.rosa-bildblock__lightbox.is-changing[data-slide-direction="previous"] .rosa-bildblock__lightbox-image,
.rosa-bildblock__lightbox.is-entering[data-slide-direction="next"] .rosa-bildblock__lightbox-image {
    transform: translateX(clamp(3rem, 9vw, 8rem));
}

.rosa-bildblock__lightbox.is-entering .rosa-bildblock__lightbox-image {
    opacity: 0;
    transition: none;
}

.rosa-bildblock__lightbox-caption {
    max-width: 70ch;
    margin: var(--space-10) auto 0;
    color: var(--color-white);
    font-size: var(--font-size-sm);
    text-align: center;
}

.rosa-bildblock__empty {
    margin: 0;
    padding: var(--space-20);
    border: 1px dashed currentColor;
    font-size: var(--font-size-sm);
}

.rosa-visually-hidden {
    position: absolute !important;
    width: 1px !important;
    height: 1px !important;
    padding: 0 !important;
    overflow: hidden !important;
    clip: rect(0, 0, 0, 0) !important;
    white-space: nowrap !important;
    border: 0 !important;
}

.rosa-bildblock__media--width-full > .rosa-bildblock__gallery > .rosa-bildblock__figure > .rosa-bildblock__caption,
.rosa-bildblock__media--width-full > .rosa-bildblock__slideshow > .rosa-bildblock__slideshow-footer,
.rosa-bildblock__media--width-full > .rosa-bildblock__videos .rosa-bildblock__video-figure > .rosa-bildblock__caption,
.rosa-bildblock__media--width-full > .rosa-bildblock__videos .rosa-bildblock__video-figure > .rosa-bildblock__transcript {
    padding-inline: var(--page-padding);
}

@media (max-width: 700px) {
    .rosa-bildblock {
        padding-block:0px;
    }
    .rosa-page-content > .rosa-section:first-child:not([class*="rosa-block-spacing-top--"]):not(.has-background):not(.rosa-block-bg),.rosa-page-content > .rosa-bildblock--background:first-child + .rosa-section:not([class*="rosa-block-spacing-top--"]):not(.has-background):not(.rosa-block-bg) {
   margin-top: var(--space-20);
}
.header-quick-links__list {

    margin: 0.5rem 0px;
 
}
    .rosa-bildblock__media--mobile-width-content {
        width: 100%;
        max-width: 100%;
        margin-right: 0;
        margin-left: 0;
    }

    .rosa-bildblock__media--mobile-width-full {
        width: 100vw;
        max-width: none;
        margin-right: calc(50% - 50vw);
        margin-left: calc(50% - 50vw);
    }

    .rosa-bildblock__media--mobile-width-full > .rosa-bildblock__gallery > .rosa-bildblock__figure > .rosa-bildblock__caption,
    .rosa-bildblock__media--mobile-width-full > .rosa-bildblock__slideshow > .rosa-bildblock__slideshow-footer,
    .rosa-bildblock__media--mobile-width-full > .rosa-bildblock__videos .rosa-bildblock__video-figure > .rosa-bildblock__caption,
    .rosa-bildblock__media--mobile-width-full > .rosa-bildblock__videos .rosa-bildblock__video-figure > .rosa-bildblock__transcript {
        padding-inline: var(--page-padding);
    }

    .rosa-bildblock__media--mobile-width-two-thirds {
        width: 66.666%;
        max-width: 66.666%;
        margin-right: auto;
        margin-left: 0;
    }

    .rosa-bildblock__media--mobile-width-half {
        width: 50%;
        max-width: 50%;
        margin-right: auto;
        margin-left: 0;
    }

    .rosa-bildblock__media--mobile-width-third {
        width: 33.333%;
        max-width: 33.333%;
        margin-right: auto;
        margin-left: 0;
    }

    .rosa-bildblock__media--height-ratio .rosa-bildblock__slides,
    .rosa-bildblock__media--height-ratio .rosa-bildblock__video-frame,
    .rosa-bildblock__media--height-ratio .rosa-bildblock__gallery .rosa-bildblock__image-frame {
        aspect-ratio: var(--rosa-bildblock-mobile-aspect-ratio, 1 / 1);
    }

    .rosa-bildblock__controls {
        justify-content: flex-end;
    }

    .rosa-bildblock__youtube-notice {
        gap: var(--space-10);
        padding: var(--space-17);
    }

    .rosa-bildblock__lightbox-close {
        top: var(--space-10);
        right: var(--space-10);
    }

    .rosa-bildblock__lightbox.has-navigation .rosa-bildblock__lightbox-inner {
        padding-inline: var(--page-padding);
        padding-bottom: 5rem;
    }

    .rosa-bildblock__lightbox-nav {
        top: auto;
        bottom: var(--space-10);
        transform: none;
    }

}

@media (prefers-reduced-motion: reduce) {
    .rosa-bildblock__lightbox[open],
    .rosa-bildblock__lightbox[open]::backdrop,
    .rosa-bildblock__lightbox[open] .rosa-bildblock__lightbox-figure {
        animation: none;
    }

    .rosa-bildblock__lightbox[open].is-closing,
    .rosa-bildblock__lightbox[open].is-closing::backdrop,
    .rosa-bildblock__lightbox[open].is-closing .rosa-bildblock__lightbox-figure {
        animation: none;
    }

    .rosa-bildblock__lightbox-image,
    .rosa-bildblock__lightbox-nav {
        transition: none;
    }

    .rosa-bildblock__image-action .rosa-bildblock__image,
    .rosa-bildblock__slide-wrap,
    .rosa-bildblock__slideshow--slide .rosa-bildblock__slide-wrap {
        transition: none;
    }

    .rosa-bildblock__image-action:hover .rosa-bildblock__image,
    .rosa-bildblock__image-action:focus-visible .rosa-bildblock__image {
        transform: none;
    }
}

@media (forced-colors: active) {
    .rosa-bildblock__control,
    .rosa-bildblock__youtube-button,
    .rosa-bildblock__lightbox-close,
    .rosa-bildblock__lightbox-nav {
        border: 2px solid ButtonText;
    }
}

/* =========================================================
   12. FOOTER
   ========================================================= */

.site-footer {
    background: #f3f3f3;
}

.site-footer__inner {
    width: 100%;
    max-width: none;
    margin-inline: auto;
    padding: clamp(2.5rem, 5vw, 5rem) var(--page-padding);
    display: grid;
    grid-template-columns: minmax(14rem, 1fr) minmax(38rem, 1.45fr);
    column-gap: clamp(3rem, 8vw, 9rem);
    row-gap: var(--space-30);
    align-items: start;
}

.site-footer__brand {
    display: flex;
    flex-direction: column;
    align-items: flex-start;
}

.site-footer__logo {
    display: inline-flex;
    color: var(--color-red);
}

.site-footer__logo svg,
.site-footer__logo img {
    display: block;
    width: clamp(10rem, 18vw, 15rem);
    height: auto;
}

.site-footer__logo svg * {
    fill: currentColor;
}

.site-footer__copyright {
    display: flex;
    flex-wrap: wrap;
    align-items: baseline;
    gap: 0.35rem 0.8rem;
    width: 100%;
    margin-top: var(--space-10);
    font-size: var(--font-size-xs);
}

.site-footer__copyright a {
    text-decoration: underline;
    text-underline-offset: 0.18em;
}

.site-footer__copyright a:hover,
.site-footer__copyright a:focus-visible {
    color: var(--color-red);
}

.site-footer__social {
    margin-top: var(--space-10);
}

.site-footer__social-list {
    display: flex;
    align-items: center;
    gap: 0.75rem;
}

.site-footer__social-link {
    display: grid;
    width: 2.5rem;
    height: 2.5rem;
    place-items: center;
    color: var(--color-red);
    transition: color 160ms ease, transform 160ms ease;
}

.site-footer__social-link svg {
    display: block;
    width: 1.35rem;
    height: 1.35rem;
}

.site-footer__social-link:hover,
.site-footer__social-link:focus-visible {
    color: var(--color-black);
    transform: translateY(-2px);
}

.footer-menu {
    display: grid;
    grid-template-columns: repeat(4, minmax(8rem, 1fr));
    gap: var(--space-20) clamp(1.5rem, 4vw, 4rem);
}

.footer-menu a {
    color: var(--color-black);
    text-decoration: none;
}

.footer-menu > .menu-item > a {
    display: inline-block;
    margin-bottom: 0.75rem;
    font-weight: var(--font-weight-bold);
}

.footer-menu .sub-menu {
    display: grid;
    gap: var(--space-05);
}

.footer-menu .sub-menu .sub-menu {
    margin-top: 0.75rem;
    padding-left: var(--space-10);
}

.footer-menu a:hover,
.footer-menu a:focus-visible {
    color: var(--color-black);
    text-decoration: underline;
}

.footer-menu .current-menu-item > a,
.footer-menu .current-menu-ancestor > a {
    color: var(--color-red);
    text-decoration: none;
}

.footer-menu .current-menu-item > a:hover,
.footer-menu .current-menu-item > a:focus-visible,
.footer-menu .current-menu-ancestor > a:hover,
.footer-menu .current-menu-ancestor > a:focus-visible {
    color: var(--color-red);
    text-decoration: underline;
}

@media (max-width: 1100px) {
    .site-footer__inner {
        grid-template-columns: 1fr;
        row-gap: var(--space-30);
    }
}

@media (max-width: 700px) {
    .site-footer__inner {
        padding-block: var(--space-30);
        row-gap: var(--space-20);
    }

    .footer-menu {
        grid-template-columns: repeat(2, minmax(0, 1fr));
        gap: var(--space-20);
    }
}

@media (max-width: 420px) {
    .footer-menu {
        grid-template-columns: 1fr;
    }
}

@media (prefers-reduced-motion: reduce) {
    .site-footer__social-link {
        transition: none;
    }

    .site-footer__social-link:hover,
    .site-footer__social-link:focus-visible {
        transform: none;
    }
}

/* =========================================================
   13. ACCESSIBILITY
   ========================================================= */

.skip-link {
    position: absolute;
    top: 10px;
    left: 10px;
    z-index: 9999;
    background: var(--color-black);
    color: var(--color-white);
    padding: 10px;
    transform: translateY(-200%);
}

.skip-link:focus {
    transform: translateY(0);
}

@media (max-width: 700px) {
    .skip-link,
    .skip-link:focus {
        width: 1px;
        height: 1px;
        padding: 0;
        overflow: hidden;
        clip-path: inset(50%);
        white-space: nowrap;
        transform: none;
    }
}


/* Compact frontend navigation for logged-in editors instead of the WP toolbar. */
.rosa-frontend-admin-links {
    position: fixed;
    z-index: 100000;
    bottom: max(1rem, env(safe-area-inset-bottom));
    left: max(1rem, env(safe-area-inset-left));
    display: flex;
    flex-direction: column;
    align-items: flex-start;
    gap: 0.5rem;
    max-width: calc(100vw - 2rem);
    font-family: var(--font-main);
}

.rosa-frontend-admin-links__button {
    box-sizing: border-box;
    display: inline-flex;
    align-items: center;
    justify-content: flex-start;
    gap: 0.55rem;
    min-width: 14rem;
    min-height: 3rem;
    padding: 0.65rem 1rem;
    border: 1px solid #464242;
    border-radius: 0;
    background: #464242;
    color: var(--color-white);
    box-shadow: 0 4px 16px rgba(0, 0, 0, 0.16);
    font-size: var(--font-size-sm);
    font-weight: var(--font-weight-bold);
    line-height: var(--line-height-ui);
    text-decoration: none;
    white-space: nowrap;
}

.rosa-frontend-admin-links__button:hover,
.rosa-frontend-admin-links__button:focus-visible {
    background: var(--color-white);
    color: #464242;
    text-decoration: none !important;
}

.rosa-frontend-admin-links__icon,
.rosa-frontend-admin-links__gear {
    flex: 0 0 auto;
}

.rosa-frontend-admin-links__gear {
    width: 1.3rem;
    height: 1.3rem;
    background: currentColor;
    -webkit-mask: url('assets/img/zahnrad.svg') center / contain no-repeat;
    mask: url('assets/img/zahnrad.svg') center / contain no-repeat;
}

.rosa-frontend-admin-links__button:hover .rosa-frontend-admin-links__gear,
.rosa-frontend-admin-links__button:focus-visible .rosa-frontend-admin-links__gear {
    animation: rosa-frontend-admin-gear-spin 2s linear infinite;
}

@keyframes rosa-frontend-admin-gear-spin {
    to { transform: rotate(360deg); }
}

@media (prefers-reduced-motion: reduce) {
    .rosa-frontend-admin-links__button:hover .rosa-frontend-admin-links__gear,
    .rosa-frontend-admin-links__button:focus-visible .rosa-frontend-admin-links__gear {
        animation: none;
    }
}


.FeedGridLayout__grid {
  
    gap: 1.7rem !important;
}

@media (max-width: 600px) {
    .FeedGridLayout__grid {
        gap: var(--space-05) !important;
    }

    .rosa-lokalgruppe__instagram-feed .FeedGridLayout__grid {
        gap: var(--space-05) !important;
    }
}


.spotlight-instagram-feed .MediaTile__type-icon {
    display: none !important;
}


.spotlight-instagram-feed .MediaTile__overlay,
.spotlight-instagram-feed .MediaOverlay__root {
    display: none !important;
}


.site-nav:not(.has-open-mega-menu) .main-menu > .current-menu-item > a,
.site-nav:not(.has-open-mega-menu) .main-menu > .current-menu-ancestor > a {
    color: var(--color-red);
    text-decoration: underline;
}


.main-menu__link-text {
    text-decoration: inherit;
}


/* =========================================================
   LOKALGRUPPEN, SAFER SPACES & CREW HÄUSER — DREI LÄNDERKARTEN
   ========================================================= */

.rosa-local-map {
    --rosa-map-paper: #dfe8aa;
    --rosa-map-cefaspace: #f0b52d;
    --rosa-map-crew-house: #b7c75d;
    background: var(--rosa-block-background, var(--color-white));
    padding-block: clamp(2rem, 5vw, 5rem);
}

.rosa-local-map--single-country {
    padding-block: 0;
}

/* Explicit spacing stays inside coloured blocks and outside transparent ones. */
.rosa-local-map--single-country:is(.has-background, .rosa-block-bg) {
    padding-top: var(--rosa-block-spacing-top, 0);
    padding-bottom: var(--rosa-block-spacing-bottom, 0);
}

.rosa-local-map > .container {
    max-width: min(100%, 96rem);
}

.rosa-local-map__heading {
    margin: 0 0 var(--space-30);
}

.rosa-local-map__layout {
    display: grid;
    grid-template-columns: minmax(0, 1fr) minmax(12.5rem, 15rem);
    align-items: start;
    gap: clamp(1rem, 2vw, 2rem);
}

.rosa-local-map--without-legend .rosa-local-map__layout {
    grid-template-columns: minmax(0, 1fr);
}

.rosa-local-map__countries {
    display: grid;
    grid-template-columns: minmax(0, 2fr) minmax(14rem, 1fr);
    align-items: start;
    gap: clamp(0.75rem, 1.5vw, 1.5rem);
    min-width: 0;
}

.rosa-local-map__countries--all {
    grid-template-areas:
        "de at"
        "de gr";
}

.rosa-local-map__countries--two.rosa-local-map__countries--without-de {
    grid-template-columns: repeat(2, minmax(0, 1fr));
}

.rosa-local-map__countries--one {
    grid-template-columns: minmax(0, 1fr);
    max-width: 52rem;
}

.rosa-local-map__country {
    min-width: 0;
    overflow: hidden;
  
    background: var(--rosa-map-paper);
}

.rosa-local-map__countries--all .rosa-local-map__country--de {
    grid-area: de;
}

.rosa-local-map__countries--all .rosa-local-map__country--at {
    grid-area: at;
}

.rosa-local-map__countries--all .rosa-local-map__country--gr {
    grid-area: gr;
}

.rosa-local-map__country-header {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 0.75rem;
    min-height: 4.5rem;
    padding: 0.6rem;
    border-bottom: 0px solid var(--color-black);
    background: #dfe8aa;
}

.rosa-local-map__country-header h3 {
    margin: 0;
    font-size: clamp(0.95rem, 1.25vw, 1.2rem);
    line-height: var(--line-height-tight);
}

.rosa-local-map__country-header p {
    margin: 0.2rem 0 0;
    font-size: 0.7rem;
    line-height: var(--line-height-ui);
}

.rosa-local-map__controls {
    display: flex;
    flex: 0 0 auto;
    gap: 0.25rem;
    touch-action: manipulation;
}

.rosa-local-map__zoom-btn {
    appearance: none;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    min-width: 1.7rem;
    height: 1.7rem;
    padding: 0 0.3rem;
    border: 1px solid var(--color-black);
    border-radius: 999px;
    background: var(--color-white);
    color: var(--color-black);
    font: inherit;
    font-size: 0.72rem;
    font-weight: var(--font-weight-black);
    line-height: 1;
    cursor: pointer;
    touch-action: manipulation;
}

.rosa-local-map__zoom-reset {
    min-width: 2.9rem;
}

.rosa-local-map__zoom-btn:hover,
.rosa-local-map__zoom-btn:focus-visible {
    background: var(--color-black);
    color: var(--color-white);
}

.rosa-local-map__zoom-btn:disabled {
    opacity: 0.3;
    cursor: default;
}

.rosa-local-map__zoom-btn:disabled:hover {
    background: var(--color-white);
    color: var(--color-black);
}

.rosa-local-map__viewport {
    position: relative;
    width: 100%;
    aspect-ratio: var(--map-viewport-aspect, 4 / 5);
    overflow: hidden;
    overscroll-behavior: auto;
    background: var(--rosa-map-paper);
    scrollbar-color: var(--color-black) transparent;
    scrollbar-width: thin;
}

.rosa-local-map__viewport.is-zoomed {
    overflow: auto;
    overscroll-behavior: contain;
    cursor: grab;
}

.rosa-local-map__viewport.is-dragging {
    cursor: grabbing;
    user-select: none;
}

.rosa-local-map__map {
    position: relative;
    width: var(--map-base-width, 100%);
    aspect-ratio: var(--map-aspect, 4 / 5);
    margin-inline: auto;
    transform-origin: top left;
}

.rosa-local-map__image {
    position: absolute;
    inset: 0;
    display: block;
    width: 100%;
    height: 100%;
    object-fit: contain;
    pointer-events: none;
    user-select: none;
}

.rosa-local-map__country--at .rosa-local-map__image,
.rosa-local-map__country--gr .rosa-local-map__image {
    object-fit: cover;
}

.rosa-local-map__pin {
    --marker-color: var(--color-red);
    position: absolute;
    z-index: 2;
    left: var(--pin-x);
    top: var(--pin-y);
    display: flex;
    flex-direction: column;
    align-items: center;
    gap: 0.15rem;
    color: var(--color-black);
    font-weight: var(--font-weight-black);
    line-height: var(--line-height-ui);
    text-decoration: none;
    transform: translate(-50%, -100%) scale(1);
    transform-origin: center bottom;
    transition: opacity 160ms ease, transform 160ms ease;
}

.rosa-local-map__pin[hidden] {
    display: none;
}

.rosa-local-map__pin--cefaspace {
    --marker-color: var(--rosa-map-cefaspace);
}

.rosa-local-map__pin--crew_house {
    --marker-color: var(--rosa-map-crew-house);
}

.rosa-local-map__pin:hover,
.rosa-local-map__pin:focus-visible {
    z-index: 5;
    transform: translate(-50%, -100%) scale(1.16);
}

.rosa-local-map__marker,
.rosa-local-map__legend-marker {
    position: relative;
    display: block;
    flex: 0 0 auto;
    width: clamp(1.05rem, 1.5vw, 1.6rem);
    aspect-ratio: 1 / 1.32;
    background: var(--marker-color);
    clip-path: polygon(50% 100%, 18% 55%, 8% 35%, 8% 18%, 18% 6%, 35% 0, 65% 0, 82% 6%, 92% 18%, 92% 35%, 82% 55%);
}

.rosa-local-map__marker::after,
.rosa-local-map__legend-marker::after {
    content: "";
    position: absolute;
    left: 50%;
    top: 30%;
    width: 34%;
    aspect-ratio: 1;
    border-radius: 50%;
    background: var(--color-white);
    transform: translate(-50%, -50%);
}

.rosa-local-map__pin--cefaspace .rosa-local-map__marker,
.rosa-local-map__legend-item--cefaspace .rosa-local-map__legend-marker {
    aspect-ratio: 1;
    clip-path: polygon(50% 0, 100% 34%, 86% 34%, 86% 100%, 14% 100%, 14% 34%, 0 34%);
}

.rosa-local-map__pin--cefaspace .rosa-local-map__marker::after,
.rosa-local-map__legend-item--cefaspace .rosa-local-map__legend-marker::after {
    top: 60%;
    width: 32%;
    border-radius: 0;
}

.rosa-local-map__pin--crew_house .rosa-local-map__marker,
.rosa-local-map__legend-item--crew_house .rosa-local-map__legend-marker {
    aspect-ratio: 1;
    clip-path: polygon(50% 0, 100% 34%, 86% 34%, 86% 100%, 14% 100%, 14% 34%, 0 34%);
}

.rosa-local-map__pin--crew_house .rosa-local-map__marker::after,
.rosa-local-map__legend-item--crew_house .rosa-local-map__legend-marker::after {
    top: 61%;
    width: 43%;
    aspect-ratio: 1;
    border-radius: 0;
    clip-path: polygon(50% 92%, 9% 53%, 4% 37%, 8% 23%, 20% 13%, 35% 13%, 50% 27%, 65% 13%, 80% 13%, 92% 23%, 96% 37%, 91% 53%);
}

.rosa-local-map__pin--building .rosa-local-map__marker,
.rosa-local-map__legend-item--building .rosa-local-map__legend-marker {
    opacity: 0.42;
}

.rosa-local-map__label {
    max-width: 8rem;
    padding: 0.08em 0.28em;
    border: 1px solid rgba(11, 11, 11, 0.28);
    background: rgba(255, 255, 255, 0.94);
    font-size: clamp(0.55rem, 0.75vw, 0.72rem);
    overflow-wrap: anywhere;
    text-align: center;
}

.rosa-local-map__pin:hover .rosa-local-map__label,
.rosa-local-map__pin:focus-visible .rosa-local-map__label {
    text-decoration: underline;
}

.rosa-local-map__legend {
    position: sticky;
    top: 0;
    padding: 0;
    border: 0;
    background: var(--color-white);
}

.rosa-local-map__legend-kicker {
    margin: 0 0 0.25rem;
    font-size: 0.65rem;
    display: none;
    font-weight: var(--font-weight-black);
    letter-spacing: 0.08em;
    line-height: var(--line-height-ui);
    text-transform: uppercase;
}

.rosa-local-map__legend h3 {
    margin: 0;
    font-size: clamp(1rem, 1.35vw, 1.25rem);
    line-height: var(--line-height-tight);
}

.rosa-local-map__legend-help,
.rosa-local-map__zoom-help {
    margin: 0.5rem 0 0;
    font-size: 0.7rem;
    line-height: var(--line-height-copy);
}

.rosa-local-map__legend-list {
    display: grid;
    gap: 0.35rem;
    margin-top: 0.75rem;
}

.rosa-local-map__legend-item {
    --marker-color: var(--color-red);
    appearance: none;
    display: grid;
    grid-template-columns: 1.1rem minmax(0, 1fr) auto;
    align-items: center;
    gap: 0.45rem;
    width: 100%;
    padding: 0.4rem 0.45rem;
   
    background: var(--color-white);
    color: var(--color-black);
    font: inherit;
    font-size: 0.7rem;
    font-weight: var(--font-weight-black);
    line-height: var(--line-height-ui);
    text-align: left;
    cursor: pointer;
}

.rosa-local-map__legend-item--cefaspace {
    --marker-color: var(--rosa-map-cefaspace);
}

.rosa-local-map__legend-item--crew_house {
    --marker-color: var(--rosa-map-crew-house);
}

.rosa-local-map__legend-marker {
    width: 1.05rem;
}

.rosa-local-map__legend-item:hover,
.rosa-local-map__legend-item:focus-visible {
    background: var(--color-pink);
}

.rosa-local-map__legend-item[aria-pressed="false"] {
    opacity: 0.46;
}

.rosa-local-map__legend-item[aria-pressed="false"] .rosa-local-map__legend-label {
    text-decoration: line-through;
}

.rosa-local-map__legend-count {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    min-width: 1.35rem;
    height: 1.35rem;
    padding-inline: 0.22rem;
    border-radius: 999px;
    background: var(--color-black);
    color: var(--color-white);
    font-size: 0.62rem;
}

.rosa-local-map__show-all {
    appearance: none;
    margin-top: 0.65rem;
    padding: 0;
    border: 0;
    background: transparent;
    color: inherit;
    font: inherit;
    font-size: 0.7rem;
    font-weight: var(--font-weight-black);
    text-decoration: underline;
    text-underline-offset: 0.2em;
    cursor: pointer;
}

@media (max-width: 1180px) {
    .rosa-local-map__layout {
        grid-template-columns: 1fr;
    }

    .rosa-local-map__legend {
        position: static;
        order: -1;
    }

    .rosa-local-map__legend-list {
        grid-template-columns: repeat(2, minmax(0, 1fr));
    }
}

@media (max-width: 820px) {
    .rosa-local-map__legend {
        order: 0;
    }

    .rosa-local-map__countries {
        grid-template-columns: repeat(2, minmax(0, 1fr));
    }

    .rosa-local-map__countries--all {
        grid-template-areas:
            "de de"
            "at gr";
    }

    .rosa-local-map__countries--one {
        grid-template-columns: minmax(0, 1fr);
    }
}

@media (max-width: 560px) {
    .rosa-local-map__zoom-btn {
        min-width: 2.75rem;
        height: 2.75rem;
        font-size: 1rem;
    }

    .rosa-local-map__zoom-reset {
        min-width: 3.25rem;
    }

    .rosa-local-map__countries,
    .rosa-local-map__legend-list {
        grid-template-columns: 1fr;
    }

    .rosa-local-map__countries--two.rosa-local-map__countries--without-de {
        grid-template-columns: 1fr;
    }

    .rosa-local-map__countries--all {
        grid-template-areas:
            "de"
            "at"
            "gr";
    }

    .rosa-local-map__country--de {
        --map-viewport-aspect: 4 / 5 !important;
        --map-base-width: 88.27% !important;
    }

    .rosa-local-map__country-header {
        min-height: 0;
    }

    .rosa-local-map__label {
        font-size: 0.68rem;
    }
}

@media (prefers-reduced-motion: reduce) {
    .rosa-local-map__pin {
        transition: none;
    }
}


/* =========================================================
   PRESSEMITTEILUNGEN — BLOCK, ARCHIV UND EINZELBEITRAG
   ========================================================= */

.rosa-news-block {
    background: var(--rosa-block-background, var(--color-white));
    padding-top: var(--rosa-block-spacing-top, var(--space-60));
    padding-bottom: var(--rosa-block-spacing-bottom, var(--space-60));
}

.rosa-news-block--location {
    --rosa-block-background: var(--color-white);
}

.rosa-news-block__header {
    display: grid;
    gap: var(--space-05);
    max-width: 65ch;
    margin-bottom: var(--space-30);
}

.rosa-news-block__header h2 {
    margin: 0;
    font-size: var(--font-size-h2);
    line-height: var(--line-height-tight);
}

.rosa-news-block__kicker,
.rosa-news-archive__kicker,
.rosa-news-single__kicker {
    margin: 0;
    font-size: var(--font-size-sm);
    font-weight: var(--font-weight-black);
    letter-spacing: 0.08em;
    line-height: var(--line-height-ui);
    text-transform: uppercase;
}

.rosa-news-grid {
    display: grid;
    grid-template-columns: repeat(3, minmax(0, 1fr));
    gap: clamp(var(--space-17), 2.5vw, var(--space-30));
}

.rosa-news-grid--cols-1 {
    grid-template-columns: minmax(0, 1fr);
}

.rosa-news-grid--cols-2 {
    grid-template-columns: repeat(2, minmax(0, 1fr));
}

.rosa-news-card {
    display: flex;
    flex-direction: column;
    min-width: 0;
    height: 100%;
    overflow: hidden;

    background: transparent;
    color: var(--color-black);
}

.rosa-news-card__image-link {
    display: block;
    aspect-ratio: 16 / 10;
    overflow: hidden;
    border-bottom: 1px solid var(--color-black);
    background: var(--color-pink);
}

.rosa-news-card__image {
    display: block;
    width: 100%;
    height: 100%;
    object-fit: cover;
    transition: transform 220ms ease;
}

.rosa-news-card:hover .rosa-news-card__image {
    transform: scale(1.025);
}

.rosa-news-card__body {
    display: flex;
    flex: 1 1 auto;
    flex-direction: column;
    align-items: flex-start;
    gap: var(--space-05);
    padding: var(--space-17) 0;
}

.rosa-news-card__meta {
    font-size: var(--font-size-xs);
    font-weight: var(--font-weight-bold);
    letter-spacing: 0.04em;
    line-height: var(--line-height-ui);
}

.rosa-news-card__subtitle {
    margin: 0;
    font-size: var(--font-size-sm);
    font-weight: var(--font-weight-regular);
    line-height: var(--line-height-copy);
    overflow-wrap: anywhere;
}

.rosa-news-card__title {
    margin: 0;
    font-size: var(--font-size-h3);
    line-height: var(--line-height-h3);
    overflow-wrap: anywhere;
}

.rosa-news-card__title a {
    color: inherit;
    text-decoration: none;
}

.rosa-news-card__title a:hover,
.rosa-news-card__title a:focus-visible {
    text-decoration: underline;
}

.rosa-news-card__summary {
    margin: 0;
    font-size: var(--font-size-sm);
    line-height: var(--line-height-copy);
}

.rosa-news-card__locations,
.rosa-news-card__tags,
.rosa-news-single__locations,
.rosa-news-single__tags {
    display: flex;
    flex-wrap: wrap;
    gap: 0.4rem;
}

.rosa-news-card__locations a,
.rosa-news-card__tags a,
.rosa-news-single__locations a,
.rosa-news-single__tags a {
    display: inline-flex;
    align-items: center;
    min-height: 1.75rem;
    padding: 0.22rem 0.55rem;
    border: 0;
    border-radius: 999px;
    text-shadow: none;
    font-size: var(--font-size-xs);
    font-weight: var(--font-weight-bold);
    line-height: var(--line-height-ui);
    text-decoration: none;
}

.rosa-news-card__locations a,
.rosa-news-single__locations a {
    background: var(--color-red);
    color: var(--color-white);
}

.rosa-news-card__locations a.rosa-news-card__location--cefaspace {
    background: #f0b52d;
}

.rosa-news-card__locations a.rosa-news-card__location--crew_house {
    background: #b7c75d;
}

.rosa-news-card__tags a,
.rosa-news-single__tags a {
    background: #e9e9e9;
    color: #444444;
}

.rosa-news-card__locations a:hover,
.rosa-news-card__locations a:focus-visible,
.rosa-news-single__locations a:hover,
.rosa-news-single__locations a:focus-visible {
    background: var(--color-white);
    color: var(--color-red);
}

.rosa-news-card__locations a.rosa-news-card__location--cefaspace:hover,
.rosa-news-card__locations a.rosa-news-card__location--cefaspace:focus-visible {
    color: #805600;
}

.rosa-news-card__locations a.rosa-news-card__location--crew_house:hover,
.rosa-news-card__locations a.rosa-news-card__location--crew_house:focus-visible {
    color: #526322;
}

.rosa-news-card__tags a:hover,
.rosa-news-card__tags a:focus-visible,
.rosa-news-single__tags a:hover,
.rosa-news-single__tags a:focus-visible {
    background: #444444;
    color: #e9e9e9;
}

.rosa-news-card__read-more {
    display: inline-flex;
    align-items: center;
    justify-content: space-between;
    gap: var(--space-10);
    width: 100%;
    margin-top: auto;
    padding-top: var(--space-10);
    border-top: 1px solid var(--color-black);
    color: inherit;
    font-size: var(--font-size-sm);
    font-weight: var(--font-weight-black);
    text-decoration: none;
}

.rosa-news-block .rosa-news-card__read-more {
    justify-content: flex-start;
    gap: 0.35em;
    width: auto;
    border-top: 0;
    color: var(--color-red);
    font-weight: var(--font-weight-bold);
    line-height: var(--line-height-ui);
}

.rosa-news-block.rosa-block-bg--red .rosa-news-card__read-more,
.rosa-news-block.section--red .rosa-news-card__read-more {
    color: var(--color-white);
}

.rosa-news-block .rosa-news-card__read-more span:last-child {
    font-weight: var(--font-weight-black);
    transition: transform 160ms ease;
}

.rosa-news-card__read-more:hover span:first-child,
.rosa-news-card__read-more:focus-visible span:first-child {
    text-decoration: underline;
    text-decoration-thickness: 0.08em;
    text-underline-offset: 0.18em;
}

.rosa-news-block .rosa-news-card__read-more:hover span:last-child,
.rosa-news-block .rosa-news-card__read-more:focus-visible span:last-child {
    transform: translateX(0.2em);
}

.rosa-news-block__empty,
.rosa-news-archive__empty {
    margin: 0;
    font-size: var(--font-size-base);
}

.rosa-news-archive__hero {
    background: var(--color-red);
    color: var(--color-white);
    padding-block: clamp(3.5rem, 8vw, 7rem);
}

.rosa-news-archive__hero h1 {
    max-width: 24ch;
    margin: var(--space-10) 0 0;
    font-size: var(--font-size-h1);
    line-height: var(--line-height-tight);
    overflow-wrap: anywhere;
}

.rosa-news-archive__description {
    max-width: 65ch;
    margin-top: var(--space-17);
    font-size: var(--font-size-s1);
}

.rosa-news-archive__content {
    padding-block: var(--space-60);
}

.rosa-news-archive .navigation.pagination {
    margin-top: var(--space-40);
}

.rosa-news-archive .nav-links {
    display: flex;
    flex-wrap: wrap;
    gap: var(--space-05);
}

.rosa-news-archive .page-numbers {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    min-width: 2.7rem;
    min-height: 2.7rem;
    padding: 0.45rem 0.7rem;
    border: 1px solid var(--color-black);
    color: var(--color-black);
    font-size: var(--font-size-sm);
    font-weight: var(--font-weight-black);
    text-decoration: none;
}

.rosa-news-archive .page-numbers.current,
.rosa-news-archive a.page-numbers:hover,
.rosa-news-archive a.page-numbers:focus-visible {
    background: var(--color-black);
    color: var(--color-white);
}

.rosa-news-single {
    padding-block: var(--space-20) var(--space-60);
}

.rosa-news-single__mobile-intro {
    display: none;
    max-width: 69ch;
    margin: 0 0 var(--space-10);
    font-size: var(--font-size-sm);
    line-height: var(--line-height-copy);
}

.rosa-news-single__mobile-topline {
    display: none;
}

@media (max-width: 700px) {
    .rosa-news-single-page .rosa-page-hero--news .rosa-page-hero__news-topline {
        display: none;
    }

    .rosa-news-single-page .rosa-page-hero--news .rosa-page-hero__copy {
        display: none;
    }

    .rosa-news-single-page .rosa-page-hero--news .rosa-page-hero__subtitle {
        margin-top: var(--space-30);
    }

    .rosa-news-single-page .rosa-page-hero--news :is(.rosa-page-hero__title, .rosa-page-hero__subtitle) {
        max-width: 100%;
        overflow-wrap: anywhere;
    }

    .rosa-news-single__mobile-topline {
        display: block;
        margin-top: var(--space-10);
        padding-block: var(--space-10);
        color: var(--rosa-page-hero-background-color, var(--color-red));
        background-color: var(--color-white);
    }

    .rosa-news-single__mobile-topline .rosa-page-hero__news-topline {
        color: inherit;
    }

    .rosa-news-single__mobile-topline + .rosa-news-single {
        padding-top: var(--space-10);
    }

    .rosa-news-single__mobile-intro {
        display: block;
    }

    .rosa-news-single-page .rosa-page-hero--news.rosa-page-hero--style-01 .rosa-page-hero__inner {
        min-height: calc(min(100vw, 34rem) + var(--space-10));
        padding-top: calc(clamp(4.5rem, 18vw, 7rem) + var(--space-10));
    }

    .rosa-news-single-page .rosa-page-hero--news:not(.rosa-page-hero--style-01) {
        padding-top: calc(var(--space-17) + var(--space-05));
    }

    .rosa-news-single-page .rosa-page-hero--news.rosa-page-hero--style-03 {
        padding-top: calc(var(--space-24) + var(--space-05));
    }
}

.rosa-news-single__meta {
    display: grid;
    gap: var(--space-10);
    width: min(100%, var(--container-narrow));
    padding-bottom: var(--space-20);
}

.rosa-news-single__meta time {
    font-size: var(--font-size-sm);
    font-weight: var(--font-weight-bold);
}

.rosa-news-single__content {
    margin-top: 0;
}

.rosa-news-single__content > :first-child {
    margin-top: 0;
}

.rosa-sharepics {
    --rosa-sharepics-gap: var(--space-17);
    --rosa-sharepics-accent: var(--color-red);
    --rosa-sharepics-accent-contrast: var(--color-white);
    margin-top: var(--space-60);
}

.rosa-sharepics__header {
    display: flex;
    align-items: end;
    justify-content: space-between;
    gap: var(--space-10);
    margin-bottom: var(--space-17);
}

.rosa-sharepics__header h2 {
    margin: 0;
}

.rosa-sharepics__controls {
    display: flex;
    gap: 0.4rem;
}

.rosa-sharepics__arrow {
    display: inline-grid;
    place-items: center;
    width: 2.7rem;
    height: 2.7rem;
    padding: 0 0 0.2rem;
    border: 1px solid var(--rosa-sharepics-accent);
    border-radius: 50%;
    color: var(--rosa-sharepics-accent);
    background: var(--color-white);
    font: 2rem/1 var(--font-main);
    cursor: pointer;
}

.rosa-sharepics__arrow:hover:not(:disabled),
.rosa-sharepics__arrow:focus-visible:not(:disabled) {
    color: var(--rosa-sharepics-accent-contrast);
    background: var(--rosa-sharepics-accent);
}

.rosa-sharepics__arrow:disabled {
    opacity: 0.35;
    cursor: default;
}

.rosa-sharepics__viewport {
    overflow-x: auto;
    overscroll-behavior-inline: contain;
    scroll-snap-type: x mandatory;
    scrollbar-width: auto;
    container-type: inline-size;
}

.rosa-sharepics__viewport::-webkit-scrollbar {
    height: 24px;
}

.rosa-sharepics__viewport::-webkit-scrollbar-track {
    background: var(--color-pink);
}

.rosa-sharepics__viewport::-webkit-scrollbar-thumb {
    border-radius: 12px;
    background: var(--rosa-sharepics-accent);
}

.rosa-sharepics__track {
    display: flex;
    gap: var(--rosa-sharepics-gap);
    width: max-content;
    max-width: none;
    margin: 0;
    padding: 0 0 var(--space-10);
    list-style: none;
}

.rosa-sharepics__item {
    flex: none;
    width: min(74vw, 26rem);
    width: calc((100cqw - 2 * var(--rosa-sharepics-gap)) / 3);
    margin: 0;
    scroll-snap-align: start;
}

.rosa-sharepic {
    position: relative;
    isolation: isolate;
    display: block;
    overflow: hidden;
    width: 100%;
    aspect-ratio: 4 / 5;
    color: var(--sharepic-text, var(--color-white));
    background: var(--sharepic-bg, var(--color-red));
    container-type: inline-size;
}

.rosa-sharepic--upload {
    background: var(--color-white);
}

.rosa-sharepic__uploaded-image {
    display: block;
    width: 100%;
    height: 100%;
    object-fit: contain;
}

.rosa-sharepic--cover-bg::after {
    position: absolute;
    z-index: 1;
    inset: 0;
    background: linear-gradient(180deg, transparent 25%, var(--sharepic-gradient-mid, rgba(255, 92, 92, 0.4)) 49%, var(--sharepic-gradient, var(--sharepic-bg, var(--color-red))) 86%);
    content: '';
    pointer-events: none;
}

.rosa-sharepic__image {
    position: absolute;
    z-index: 0;
    inset: 0;
    width: 100%;
    height: 100%;
    object-fit: cover;
    object-position: var(--sharepic-image-x, 50%) var(--sharepic-image-y, 50%);
    opacity: var(--sharepic-opacity, 1);
    filter: grayscale(var(--sharepic-grayscale, 0)) blur(var(--sharepic-blur, 0px));
    mix-blend-mode: var(--sharepic-blend, normal);
    transform: scale(var(--sharepic-image-scale, 1));
    transform-origin: var(--sharepic-image-x, 50%) var(--sharepic-image-y, 50%);
}

.rosa-sharepic--custom .rosa-sharepic__image {
    top: var(--sharepic-image-y, 50%);
    right: auto;
    bottom: auto;
    left: var(--sharepic-image-x, 50%);
    width: var(--sharepic-image-width, 100%);
    height: var(--sharepic-image-height, 100%);
    max-width: none;
    max-height: none;
    object-fit: var(--sharepic-image-fit, cover);
    transform: translate(calc(-1 * var(--sharepic-image-x, 50%)), calc(-1 * var(--sharepic-image-y, 50%)));
}

.rosa-sharepic__cover-copy {
    position: absolute;
    z-index: 2;
    right: 8cqw;
    bottom: 25cqw;
    left: 8cqw;
}

.rosa-sharepic--cover-no-image:not(.rosa-sharepic--custom) .rosa-sharepic__cover-copy {
    top: 47%;
    bottom: auto;
    transform: translateY(-50%);
}

.rosa-sharepic--custom .rosa-sharepic__cover-copy,
.rosa-sharepic--custom .rosa-sharepic__text-copy {
    top: var(--sharepic-y);
    right: 6%;
    bottom: auto;
    left: var(--sharepic-x);
    transform: translateY(-50%);
}

.rosa-sharepic--custom .rosa-sharepic__text-copy {
    right: 9%;
}

.rosa-sharepic--text-background .rosa-sharepic__cover-copy,
.rosa-sharepic--text-background .rosa-sharepic__text-copy {
    padding: 4cqw;
    background: var(--sharepic-panel, var(--color-red));
}

.rosa-sharepic__subtitle,
.rosa-sharepic__title,
.rosa-sharepic__section-title,
.rosa-sharepic__paragraph {
    color: inherit;
    text-wrap: pretty;
    overflow-wrap: anywhere;
}

.rosa-sharepic__paragraph strong,
.rosa-sharepic__paragraph b {
    font-weight: 700;
}

.rosa-sharepic__paragraph em,
.rosa-sharepic__paragraph i {
    font-style: italic;
}

.rosa-sharepic__subtitle {
    margin: 0 0 2cqw;
    font-size: clamp(calc(0.9rem * var(--sharepic-font-scale, 1)), calc(4cqw * var(--sharepic-font-scale, 1)), 2.1rem);
    font-weight: var(--font-weight-bold);
    line-height: 1.3;
}

.rosa-sharepic__title {
    margin: 0;
    font-size: clamp(calc(1.55rem * var(--sharepic-font-scale, 1)), calc(7.4cqw * var(--sharepic-font-scale, 1)), 4.4rem);
    font-weight: var(--font-weight-black);
    line-height: 1.1;
}

.rosa-sharepic__logo {
    position: absolute;
    z-index: 3;
    bottom: var(--sharepic-logo-bottom, 6cqw);
    left: clamp(11%, var(--sharepic-logo-x, 50%), 89%);
    width: 22cqw;
    aspect-ratio: 423.5 / 146;
    background-color: var(--sharepic-logo-color, #fff);
    -webkit-mask-image: var(--sharepic-logo-mask);
    mask-image: var(--sharepic-logo-mask);
    -webkit-mask-position: center;
    mask-position: center;
    -webkit-mask-repeat: no-repeat;
    mask-repeat: no-repeat;
    -webkit-mask-size: contain;
    mask-size: contain;
    transform: translateX(-50%);
}

.rosa-sharepic__text-copy {
    position: absolute;
    z-index: 2;
    top: 47%;
    right: 9cqw;
    left: 9cqw;
    transform: translateY(-50%);
    text-align: var(--sharepic-text-align, center);
}

.rosa-sharepic__section-title {
    margin: 0 0 4cqw;
    font-size: clamp(calc(1.1rem * var(--sharepic-font-scale, 1)), calc(5.6cqw * var(--sharepic-font-scale, 1)), 2.8rem);
    font-weight: var(--font-weight-black);
    line-height: 1.18;
}

.rosa-sharepic__number {
    display: block;
    margin-bottom: 3cqw;
    font-size: clamp(3rem, calc(15cqw * var(--sharepic-font-scale, 1)), 7rem);
    font-weight: var(--font-weight-black);
    line-height: 1;
}

.rosa-sharepic__paragraph {
    margin: 0;
    font-size: clamp(calc(0.9rem * var(--sharepic-font-scale, 1)), calc(4.2cqw * var(--sharepic-font-scale, 1)), 2.15rem);
    font-weight: var(--font-weight-regular);
    line-height: 1.42;
    white-space: pre-line;
}

.rosa-sharepics__download {
    display: inline-flex;
    align-items: center;
    min-height: 2.5rem;
    margin-top: var(--space-05);
    padding: 0;
    border: 0;
    color: var(--rosa-sharepics-accent);
    background: transparent;
    font: var(--font-weight-bold) var(--font-size-sm)/1.3 var(--font-main);
    text-decoration: underline;
    text-underline-offset: 0.2em;
    cursor: pointer;
}

.rosa-sharepics__download:hover,
.rosa-sharepics__download:focus-visible {
    color: var(--rosa-sharepics-accent);
    text-decoration-thickness: 0.12em;
}

@media (max-width: 960px) {
    .rosa-sharepics__item {
        width: calc((100cqw - var(--rosa-sharepics-gap)) / 2);
    }
}

@media (max-width: 600px) {
    .rosa-sharepics {
        --rosa-sharepics-gap: var(--space-10);
    }

    .rosa-sharepics__item {
        width: min(82vw, 23rem);
    }
}

.rosa-news-single-page .rosa-news-single hr,
.rosa-news-single-page .wp-block-separator {
    display: none;
}

.rosa-press-release-downloads {
    display: grid;
    grid-template-columns: minmax(0, 1fr) auto;
    gap: var(--space-20);
    align-items: end;
    margin-top: var(--space-40);
    padding: var(--space-20);
    border: 1px solid var(--color-black);
    background: var(--color-pink);
}

.rosa-press-release-downloads h2 {
    max-width: 24ch;
    margin: var(--space-05) 0 0;
    font-size: var(--font-size-h3);
    line-height: var(--line-height-h3);
}

.rosa-press-release-downloads__actions {
    display: flex;
    flex-wrap: wrap;
    gap: var(--space-05);
    justify-content: flex-end;
}

.rosa-press-release-downloads .rosa-press-release-downloads__button {
    margin: 0;
    border: 1px solid var(--color-black);
    color: var(--color-white);
    background: var(--color-black);
}

.rosa-press-release-downloads .rosa-press-release-downloads__button:hover,
.rosa-press-release-downloads .rosa-press-release-downloads__button:focus-visible {
    color: var(--color-black);
    background: var(--color-white);
}

.rosa-press-images {
    margin-top: var(--space-60);
    padding-top: var(--space-30);
}

.rosa-press-images .rosa-news-block__header {
    margin-bottom: var(--space-17);
}

.rosa-press-images__usage {
    max-width: 68ch;
    margin: var(--space-05) 0 0;
    font-size: var(--font-size-sm);
    line-height: var(--line-height-copy);
}

.rosa-press-images__grid {
    display: grid;
    grid-template-columns: repeat(auto-fill, minmax(min(100%, 13rem), 16rem));
    gap: var(--space-17);
    margin: 0;
    padding: 0;
    list-style: none;
}

.rosa-press-images__item {
    display: flex;
    flex-direction: column;
    min-width: 0;
    border: 1px solid var(--color-black);
    background: var(--color-white);
}

.rosa-press-images__thumbnail {
    display: block;
    margin: 0;
    aspect-ratio: 4 / 3;
    overflow: hidden;
    border-bottom: 1px solid var(--color-black);
    background: var(--color-pink);
}

.rosa-press-images__image {
    display: block;
    width: 100%;
    height: 100%;
    object-fit: cover;
}

.rosa-press-images__download-link svg {
    width: 1.1rem;
    height: 1.1rem;
    fill: none;
    stroke: currentColor;
    stroke-linecap: round;
    stroke-linejoin: round;
    stroke-width: 1.7;
}

.rosa-press-images__details {
    display: flex;
    flex: 1 1 auto;
    flex-direction: column;
    gap: 0.55rem;
    padding: var(--space-10);
}

.rosa-press-images__caption,
.rosa-press-images__source {
    margin: 0;
    font-size: var(--font-size-xs);
    line-height: var(--line-height-small);
}

.rosa-press-images__caption {
    font-weight: var(--font-weight-semibold);
}

.rosa-press-images__source {
    color: color-mix(in srgb, currentColor 76%, transparent);
}

.rosa-press-images__download-link {
    display: inline-flex;
    align-items: center;
    justify-content: space-between;
    gap: var(--space-05);
    margin-top: auto;
    padding-top: 0.55rem;
    border-top: 1px solid var(--color-black);
    color: inherit;
    font-size: var(--font-size-xs);
    font-weight: var(--font-weight-black);
    line-height: var(--line-height-ui);
    text-decoration: none;
}

.rosa-press-images__download-link:hover span,
.rosa-press-images__download-link:focus-visible span {
    text-decoration: underline;
    text-underline-offset: 0.16em;
}

.rosa-press-release-related {
    width: min(100%, 56rem);
    margin-top: var(--space-60);
    margin-right: auto;
    padding-top: var(--space-30);
}

.rosa-press-release-related .rosa-news-block__header {
    margin-bottom: var(--space-17);
}

.rosa-press-release-list {
    display: grid;
    gap: 0.2rem;
    width: min(100%, 52rem);
    margin: 0;
    padding: 0;
    list-style: none;
}

.rosa-press-release-list__item {
    display: grid;
    grid-template-columns: 7.25rem minmax(0, 1fr);
    align-items: center;
    gap: var(--space-10);
}

.rosa-press-release-list__item time {
    padding-block: 0.65rem;
    font-size: var(--font-size-xs);
    font-weight: var(--font-weight-bold);
    line-height: var(--line-height-ui);
}

.rosa-press-release-list__link {
    display: grid;
    grid-template-columns: minmax(0, 1fr) auto;
    align-items: center;
    gap: var(--space-10);
    min-width: 0;
    padding-block: 0.65rem;
    color: inherit;
    font-size: var(--font-size-sm);
    font-weight: var(--font-weight-semibold);
    line-height: var(--line-height-copy);
    text-decoration: none;
}

.rosa-press-release-list__link span {
    overflow-wrap: anywhere;
}

.rosa-press-release-list__link svg {
    width: 1.2rem;
    height: 1.2rem;
    fill: none;
    stroke: currentColor;
    stroke-linecap: round;
    stroke-linejoin: round;
    stroke-width: 1.7;
    transition: transform 180ms ease;
}

.rosa-press-release-list__link:hover span,
.rosa-press-release-list__link:focus-visible span {
    text-decoration: underline;
    text-underline-offset: 0.16em;
}

.rosa-press-release-list__link:hover svg,
.rosa-press-release-list__link:focus-visible svg {
    transform: translate(0.18rem, -0.18rem);
}

.rosa-press-release-list__pagination {
    display: inline-grid;
    grid-template-columns: 2.25rem auto 2.25rem;
    align-items: center;
    margin-top: var(--space-17);
    border: 1px solid var(--color-black);
    color: var(--color-black);
    background: var(--color-white);
}

[data-rosa-pagination][aria-busy="true"] .rosa-press-release-list__pagination,
[data-rosa-pagination][aria-busy="true"] .navigation.pagination {
    opacity: 0.55;
    pointer-events: none;
    cursor: progress;
}

.rosa-press-release-list__pagination > a,
.rosa-press-release-list__pagination > .is-disabled {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    width: 2.25rem;
    min-height: 2.25rem;
    color: inherit;
    font-weight: var(--font-weight-black);
    line-height: 1;
    text-decoration: none;
}

.rosa-press-release-list__pagination > a:hover,
.rosa-press-release-list__pagination > a:focus-visible {
    color: var(--color-white);
    background: var(--color-black);
}

.rosa-press-release-list__pagination > .is-disabled {
    opacity: 0.32;
}

.rosa-press-release-list__page-status {
    display: inline-flex;
    align-items: center;
    min-height: 2.25rem;
    padding-inline: var(--space-10);
    border-right: 1px solid var(--color-black);
    border-left: 1px solid var(--color-black);
    font-size: var(--font-size-xs);
    font-weight: var(--font-weight-bold);
    line-height: var(--line-height-ui);
    white-space: nowrap;
}

.rosa-news-single__tags {
    align-items: center;
    width: min(100%, var(--container-narrow));
    margin-top: var(--space-40);
    padding-top: var(--space-17);
}

.rosa-news-single__tags > span:first-child {
    margin-right: var(--space-05);
    font-size: var(--font-size-sm);
    font-weight: var(--font-weight-black);
}

@media (min-width: 760px) {
    .rosa-news-grid--cols-1 .rosa-news-card {
        display: grid;
        grid-template-columns: minmax(16rem, 40%) minmax(0, 1fr);
    }

    .rosa-news-grid--cols-1 .rosa-news-card__image-link {
        height: 100%;
        border-right: 1px solid var(--color-black);
        border-bottom: 0;
    }
}

@media (max-width: 960px) {
    .rosa-news-grid,
    .rosa-news-grid--cols-3 {
        grid-template-columns: repeat(2, minmax(0, 1fr));
    }
}

@media (max-width: 620px) {
    .rosa-news-grid,
    .rosa-news-grid--cols-2,
    .rosa-news-grid--cols-3 {
        grid-template-columns: minmax(0, 1fr);
    }

    .rosa-news-block,
    .rosa-news-archive__content {
        padding-top: var(--rosa-block-spacing-top, var(--space-40));
        padding-bottom: var(--rosa-block-spacing-bottom, var(--space-40));
    }

    .rosa-press-release-downloads {
        grid-template-columns: 1fr;
        align-items: start;
        padding: var(--space-17);
    }

    .rosa-press-release-downloads__actions {
        justify-content: flex-start;
    }

    .rosa-press-release-list__item {
        grid-template-columns: 1fr;
        gap: 0;
    }

    .rosa-press-release-list__item time {
        padding-bottom: 0;
    }
}

/* Explicit device settings apply only to the Pressemitteilungen block. */
@media (min-width: 1025px) {
    .rosa-news-grid--responsive {
        grid-template-columns: repeat(var(--rosa-news-columns-desktop, 3), minmax(0, 1fr));
    }

    .rosa-news-grid--responsive.rosa-news-grid--cols-1.rosa-news-grid--hide-image-desktop .rosa-news-card {
        grid-template-columns: minmax(0, 1fr);
    }

    .rosa-news-grid--hide-image-desktop .rosa-news-card__image-link,
    .rosa-news-grid--hide-subtitle-desktop .rosa-news-card__subtitle,
    .rosa-news-grid--hide-summary-desktop .rosa-news-card__summary,
    .rosa-news-grid--hide-locations-desktop .rosa-news-card__locations,
    .rosa-news-grid--hide-tags-desktop .rosa-news-card__tags {
        display: none;
    }
}

@media (min-width: 621px) and (max-width: 1024px) {
    .rosa-news-grid--responsive {
        grid-template-columns: repeat(var(--rosa-news-columns-tablet, 3), minmax(0, 1fr));
    }

    .rosa-news-grid--hide-image-tablet .rosa-news-card__image-link,
    .rosa-news-grid--hide-subtitle-tablet .rosa-news-card__subtitle,
    .rosa-news-grid--hide-summary-tablet .rosa-news-card__summary,
    .rosa-news-grid--hide-locations-tablet .rosa-news-card__locations,
    .rosa-news-grid--hide-tags-tablet .rosa-news-card__tags {
        display: none;
    }
}

@media (min-width: 760px) and (max-width: 1024px) {
    .rosa-news-grid--responsive .rosa-news-card {
        display: flex;
        grid-template-columns: none;
    }

    .rosa-news-grid--responsive .rosa-news-card__image-link {
        height: auto;
        border-right: 0;
        border-bottom: 1px solid var(--color-black);
    }

    .rosa-news-grid--responsive.rosa-news-grid--tablet-cols-1 .rosa-news-card {
        display: grid;
        grid-template-columns: minmax(16rem, 40%) minmax(0, 1fr);
    }

    .rosa-news-grid--responsive.rosa-news-grid--tablet-cols-1 .rosa-news-card__image-link {
        height: 100%;
        border-right: 1px solid var(--color-black);
        border-bottom: 0;
    }

    .rosa-news-grid--responsive.rosa-news-grid--tablet-cols-1.rosa-news-grid--hide-image-tablet .rosa-news-card {
        grid-template-columns: minmax(0, 1fr);
    }
}

@media (max-width: 620px) {
    .rosa-news-grid--responsive {
        grid-template-columns: repeat(var(--rosa-news-columns-mobile, 1), minmax(0, 1fr));
    }

    .rosa-news-grid--hide-image-mobile .rosa-news-card__image-link,
    .rosa-news-grid--hide-subtitle-mobile .rosa-news-card__subtitle,
    .rosa-news-grid--hide-summary-mobile .rosa-news-card__summary,
    .rosa-news-grid--hide-locations-mobile .rosa-news-card__locations,
    .rosa-news-grid--hide-tags-mobile .rosa-news-card__tags {
        display: none;
    }
}

@media (prefers-reduced-motion: reduce) {
    .rosa-news-card__image {
        transition: none;
    }
}

/* Mailto-Kontaktformular */
body.rosa-contact-modal-open {
    overflow: hidden;
}

.rosa-contact-modal[hidden],
.rosa-contact-modal [hidden] {
    display: none !important;
}

.rosa-contact-modal {
    position: fixed;
    z-index: 10000;
    inset: 0;
    display: grid;
    place-items: center;
    padding: var(--space-10);
}

.rosa-contact-modal__backdrop {
    position: absolute;
    inset: 0;
    background: rgb(11 11 11 / 42%);
    -webkit-backdrop-filter: blur(7px);
    backdrop-filter: blur(7px);
}

.rosa-contact-modal__dialog {
    position: relative;
    width: min(100%, 40rem);
    max-height: calc(100dvh - 2rem);
    overflow-y: auto;
    padding: clamp(1.5rem, 4vw, 2.7rem);
    border: 0;
    background: var(--color-pink);
    color: var(--color-black);
    box-shadow: 0 0.75rem 2.5rem rgb(0 0 0 / 16%);
}

.rosa-contact-modal__close {
    position: absolute;
    top: 0.65rem;
    right: 0.8rem;
    display: grid;
    place-items: center;
    width: 2.5rem;
    height: 2.5rem;
    border: 0;
    background: transparent;
    color: inherit;
    font: inherit;
    font-size: 2rem;
    line-height: 1;
    cursor: pointer;
}

.rosa-contact-modal__close:hover,
.rosa-contact-modal__close:focus-visible {
    color: var(--color-red);
}

.rosa-contact-modal h2 {
    margin: 0 2.5rem var(--space-20) 0;
    font-size: var(--font-size-h2);
    line-height: var(--line-height-h2);
    overflow-wrap: anywhere;
}

.rosa-contact-modal__title-label,
.rosa-contact-modal__title-address {
    display: block;
}

.rosa-contact-modal__title-label {
    margin-bottom: 0.2rem;
    font-size: var(--font-size-sm);
    line-height: var(--line-height-small);
}

.rosa-contact-modal form {
    display: grid;
    gap: 0.4rem;
}

.rosa-contact-modal label {
    font-size: var(--font-size-base);
    font-weight: var(--font-weight-bold);
}

.rosa-contact-modal input[type="email"],
.rosa-contact-modal input[type="text"],
.rosa-contact-modal textarea {
    display: block;
    width: 100%;
    min-height: 2.9rem;
    margin-bottom: var(--space-10);
    padding: 0.55rem 0;
    border: 0;
    border-bottom: 1px solid var(--color-black);
    border-radius: 0;
    box-shadow: none;
    background: transparent;
    color: var(--color-black);
    font: inherit;
    font-size: var(--font-size-base);
}

.rosa-contact-modal textarea {
    min-height: 8rem;
    resize: vertical;
}

.rosa-contact-modal__subject {
    display: grid;
    gap: 0.4rem;
}

.rosa-contact-modal :is(input[type="email"], input[type="text"], textarea):focus-visible {
    outline: none;
    border-bottom-width: 3px;
}

.rosa-contact-modal button:focus-visible {
    outline: var(--focus);
    outline-offset: 3px;
}

.rosa-contact-modal__error {
    margin: 0 0 var(--space-10);
    font-size: var(--font-size-base);
    line-height: var(--line-height-small);
    color: #a02525;
    font-weight: var(--font-weight-bold);
}

.rosa-contact-modal__submit {
    justify-self: start;
    min-height: 2.9rem;
    padding: 0.65rem 1.5rem;
    border: 0;
    border-radius: 0;
    background: var(--color-red);
    color: var(--color-white);
    font: inherit;
    font-size: var(--font-size-base);
    font-weight: var(--font-weight-bold);
    line-height: var(--line-height-ui);
    cursor: pointer;
}

.rosa-contact-modal__submit:hover,
.rosa-contact-modal__submit:focus-visible {
    background: var(--color-black);
    color: var(--color-white);
}

.rosa-contact-modal__submit:disabled {
    cursor: wait;
    opacity: 0.65;
}

.rosa-contact-modal__success p {
    margin: 0 0 var(--space-17);
    overflow-wrap: anywhere;
}

.rosa-contact-modal__trap {
    position: absolute;
    width: 1px;
    height: 1px;
    overflow: hidden;
    clip-path: inset(50%);
    white-space: nowrap;
}

/* ROSA Wissen: sticky sitemap beside one selected content panel. */
.rosa-wissen {
    color: var(--color-black);
}

.rosa-wissen a:focus-visible {
    outline: none;
}

.rosa-wissen button:focus-visible {
    outline: none;
    box-shadow: inset 0 -2px currentColor;
}

.rosa-wissen__container {
    padding-block: var(--space-47) var(--space-60);
}

.rosa-wissen__layout {
    display: grid;
    grid-template-columns: minmax(15rem, 1fr) minmax(0, 2fr);
    align-items: stretch;
}

.rosa-wissen__sidebar {
    min-width: 0;
    padding-right: clamp(1.25rem, 2vw, 2rem);
}

.rosa-wissen__nav-list {
    margin: 0;
    padding: 0;
    list-style: none;
}

.rosa-wissen__nav-list--nested {
    margin: 0;
    padding: 0;
}

.rosa-wissen__nav-list[hidden],
.rosa-wissen__navigation[hidden],
.rosa-wissen__panel[hidden] {
    display: none !important;
}

.rosa-wissen__nav-row {
    display: flex;
    align-items: center;
    min-width: 0;
}

.rosa-wissen__nav-link {
    display: block;
    flex: 1 1 auto;
    min-width: 0;
    padding: 0.4rem 0;
    color: inherit;
    font-size: var(--font-size-sm);
    line-height: var(--line-height-copy);
    text-decoration: none;
    overflow-wrap: anywhere;
}

.rosa-wissen__nav-item--level-1 > .rosa-wissen__nav-row > .rosa-wissen__nav-link {
    font-weight: var(--font-weight-bold);
}

.rosa-wissen__nav-item--level-1 + .rosa-wissen__nav-item--level-1 {
    margin-top: var(--space-17);
}

.rosa-wissen__nav-item--level-3 > .rosa-wissen__nav-row {
    padding-left: 1.25rem;
}

.rosa-wissen__nav-item--level-4 > .rosa-wissen__nav-row {
    padding-left: 2.5rem;
}

.rosa-wissen__nav-link:hover,
.rosa-wissen__nav-link:focus-visible,
.rosa-wissen__nav-item.is-current > .rosa-wissen__nav-row > .rosa-wissen__nav-link {
    color: var(--color-red);
    text-decoration: underline;
    text-underline-offset: 0.18em;
}

.rosa-wissen__nav-toggle,
.rosa-wissen__mobile-toggle {
    appearance: none;
    border: 0;
    background: transparent;
    color: inherit;
    cursor: pointer;
}

.rosa-wissen__nav-toggle {
    display: none;
    flex: 0 0 2rem;
    align-items: center;
    justify-content: center;
    width: 2rem;
    min-height: 2rem;
}

.rosa-wissen.is-enhanced .rosa-wissen__nav-toggle {
    display: flex;
}

.rosa-wissen__nav-toggle span,
.rosa-wissen__mobile-toggle span {
    display: block;
    width: 0.52rem;
    height: 0.52rem;
    border-right: 2px solid currentColor;
    border-bottom: 2px solid currentColor;
    transform: rotate(-45deg);
    transition: transform 160ms ease;
}

.rosa-wissen__nav-toggle[aria-expanded="true"] span,
.rosa-wissen__mobile-toggle[aria-expanded="true"] span {
    transform: rotate(45deg);
}

.rosa-wissen__nav-toggle:hover,
.rosa-wissen__nav-toggle:focus-visible {
    color: var(--color-red);
}

.rosa-wissen__mobile-toggle {
    display: none;
}

.rosa-wissen__content {
    min-width: 0;
    padding-left: clamp(1.25rem, 2vw, 2rem);
    border-left: 1px solid rgba(11, 11, 11, 0.22);
}

.rosa-wissen__panel {
    scroll-margin-top: 6rem;
    margin-bottom: var(--space-60);
}

.rosa-wissen__panel:focus {
    outline: none;
}

.rosa-wissen__panel + .rosa-wissen__panel {
    padding-top: var(--space-47);
}

.rosa-wissen.is-enhanced .rosa-wissen__panel {
    margin: 0;
    padding: 0;
    border: 0;
}

.rosa-wissen__breadcrumb {
    display: flex;
    flex-wrap: wrap;
    gap: 0.35rem;
    margin-bottom: var(--space-10);
    color: #686868;
    font-size: var(--font-size-xs);
    line-height: var(--line-height-small);
}

.rosa-wissen__breadcrumb a {
    color: inherit;
    text-decoration: underline;
}

.rosa-wissen__breadcrumb a:hover,
.rosa-wissen__breadcrumb a:focus-visible {
    color: var(--color-red);
}

.rosa-wissen__panel-heading {
    display: flex;
    align-items: flex-start;
    justify-content: space-between;
    gap: var(--space-17);
    margin-bottom: var(--space-24);
}

.rosa-wissen__panel-title {
    min-width: 0;
    max-width: 36ch;
    margin: 0;
    font-size: var(--font-size-h2);
    line-height: var(--line-height-h2);
}

.rosa-wissen__edit-link {
    display: inline-flex;
    flex: 0 0 auto;
    align-items: center;
    gap: 0.35rem;
    padding: 0.45rem 0.7rem;
    background: var(--color-red);
    color: var(--color-white);
    font-size: var(--font-size-xs);
    font-weight: 700;
    line-height: var(--line-height-ui);
    text-decoration: none;
}

.rosa-wissen__edit-link:hover,
.rosa-wissen__edit-link:focus-visible {
    color: var(--color-white);
    text-decoration: underline;
}

.rosa-wissen__prose {
    max-width: 72ch;
    overflow-wrap: anywhere;
    font-size: var(--font-size-base);
    line-height: var(--line-height-copy);
}

.rosa-wissen__overview {
    max-width: 72ch;
}

.rosa-wissen__overview-list {
    margin: 0;
    padding: 0;
    list-style: none;
}

.rosa-wissen__overview-list .rosa-wissen__overview-list {
    margin: 0.15rem 0 0.5rem;
    padding-left: clamp(1rem, 2vw, 1.5rem);
}

.rosa-wissen__overview-item {
    margin: 0;
}

.rosa-wissen__overview-link {
    display: inline-flex;
    align-items: baseline;
    gap: 0.45rem;
    padding: 0.3rem 0;
    color: inherit;
    font-size: var(--font-size-sm);
    line-height: var(--line-height-copy);
    text-decoration: none;
    overflow-wrap: anywhere;
}

.rosa-wissen__overview-link:hover,
.rosa-wissen__overview-link:focus-visible {
    color: var(--color-red);
    text-decoration: underline;
    text-underline-offset: 0.18em;
}

.rosa-wissen__link-arrow {
    flex: none;
    align-self: center;
    width: 0.8em;
    height: 0.8em;
}

.rosa-wissen__overview-link .rosa-wissen__link-arrow {
    color: var(--color-red);
}

/* External ROSA shop products: compact, keyboard-accessible horizontal slider. */
.rosa-shop-products {
    --rosa-shop-gap: clamp(0.75rem, 1.5vw, 1.25rem);
}

.rosa-shop-products__header {
    display: flex;
    align-items: center;
    justify-content: flex-end;
    gap: var(--space-17);
    margin-bottom: var(--space-17);
}

.rosa-shop-products__controls {
    display: flex;
    flex: none;
    gap: 0.35rem;
}

.rosa-shop-products__arrow {
    display: grid;
    place-items: center;
    width: 2.6rem;
    height: 2.6rem;
    padding: 0;
    border: 0;
    border-radius: 0;
    background: transparent;
    color: var(--rosa-shop-nav-color, inherit);
    cursor: pointer;
    font: inherit;
}

.rosa-shop-products__arrow span {
    margin-top: -0.18em;
    font-size: 2rem;
    line-height: 1;
}

.rosa-shop-products__arrow:hover:not(:disabled),
.rosa-shop-products__arrow:focus-visible {
    color: var(--rosa-shop-nav-hover-color, var(--color-red));
}

.rosa-shop-products__arrow:disabled {
    opacity: 0.3;
    cursor: default;
}

.rosa-shop-products__track {
    display: flex;
    gap: var(--rosa-shop-gap);
    overflow-x: auto;
    overscroll-behavior-inline: contain;
    scroll-snap-type: x mandatory;
    scrollbar-width: auto;
    padding-bottom: 0.7rem;
}

/* In Chromium, scrollbar-color overrides the custom WebKit scrollbar height. */
@supports (-moz-appearance: none) {
    .rosa-shop-products__track {
        scrollbar-color: var(--rosa-shop-scrollbar-thumb, var(--color-red)) var(--rosa-shop-scrollbar-track, var(--color-pink));
    }
}

.rosa-shop-products__track::-webkit-scrollbar {
    height: 24px;
}

.rosa-shop-products__track::-webkit-scrollbar-track {
    background: var(--rosa-shop-scrollbar-track, var(--color-pink));
}

.rosa-shop-products__track::-webkit-scrollbar-thumb {
    background: var(--rosa-shop-scrollbar-thumb, var(--color-red));
    border-radius: 12px;
}

.rosa-shop-products__card {
    flex: 0 0 calc((100% - var(--rosa-shop-gap) * 3) / 4);
    min-width: 0;
    scroll-snap-align: start;
}

.rosa-shop-products__card-link {
    display: flex;
    flex-direction: column;
    height: 100%;
    color: var(--rosa-shop-card-text, var(--color-white));
    background: var(--rosa-shop-card-background, var(--color-red));
    text-decoration: none;
}

.rosa-shop-products__image-wrap {
    position: relative;
    display: block;
    aspect-ratio: 1;
    overflow: hidden;
    background: var(--color-pink);
}

.rosa-shop-products__image-wrap img {
    position: absolute;
    inset: 0;
    display: block;
    width: 100%;
    height: 100%;
    object-fit: cover;
    object-position: center;
    mix-blend-mode: multiply;
}

.rosa-shop-products__card-bottom {
    display: grid;
    grid-template-columns: minmax(0, 1fr) auto;
    grid-template-rows: auto 1fr auto;
    gap: 0.5rem;
    min-height: 8.5rem;
    padding: var(--space-17);
    background: var(--rosa-shop-card-background, var(--color-red));
    color: var(--rosa-shop-card-text, var(--color-white));
}

.rosa-shop-products__title {
    display: -webkit-box;
    grid-column: 1 / -1;
    grid-row: 1;
    min-height: 2.8em;
    font-size: var(--font-size-sm);
    font-weight: var(--font-weight-bold);
    line-height: var(--line-height-copy);
    -webkit-box-orient: vertical;
    -webkit-line-clamp: 2;
    line-clamp: 2;
    overflow: hidden;
    overflow-wrap: anywhere;
}

.rosa-shop-products__price {
    grid-column: 1;
    grid-row: 3;
    font-size: var(--font-size-sm);
    line-height: var(--line-height-copy);
}

.rosa-shop-products__card-arrow {
    display: block;
    grid-column: 2;
    grid-row: 3;
    width: 1em;
    height: 1em;
    font-size: var(--font-size-base);
    color: inherit;
}

.rosa-shop-products__card-link:hover .rosa-shop-products__title,
.rosa-shop-products__card-link:focus-visible .rosa-shop-products__title {
    text-decoration: underline;
    text-underline-offset: 0.18em;
}

.rosa-shop-products__empty {
    font-size: var(--font-size-sm);
}

@media (max-width: 960px) {
    .rosa-shop-products__card {
        flex-basis: calc((100% - var(--rosa-shop-gap)) / 2);
    }
}

@media (max-width: 620px) {
    .rosa-shop-products__card {
        flex-basis: min(78%, 18rem);
    }

    .rosa-shop-products__card-bottom {
        min-height: 7rem;
    }
}

.rosa-wissen__prose > :first-child {
    margin-top: 0;
}

.rosa-wissen__prose > :last-child {
    margin-bottom: 0;
}



.rosa-wissen__prose a {
    color: inherit;
    text-decoration: underline;
}

.rosa-wissen__prose a:hover,
.rosa-wissen__prose a:focus-visible {
    color: var(--color-red);
}

.rosa-wissen__prose ul,
.rosa-wissen__prose ol {
    margin: 0 0 1em;
    padding-left: 1.5em;
    list-style: disc outside;
}

.rosa-wissen__prose ol {
    list-style-type: decimal;
}

.rosa-wissen__prose li + li {
    margin-top: 0.35em;
}

.rosa-wissen__prose .wp-block-image {
    margin-block: var(--space-17);
}

.rosa-wissen__prose .wp-block-image img {
    display: block;
    width: auto;
    max-width: 100%;
    height: auto;
}

.rosa-wissen__prose p.is-style-rosa-wissen-source {
    margin: 0 0 0.55em;
    padding-left: 0.85rem;
    border-left: 2px solid rgba(11, 11, 11, 0.25);
    color: #686868;
    font-size: var(--font-size-xs);
    line-height: var(--line-height-small);
}

.rosa-wissen__prose > :not(.is-style-rosa-wissen-source) + p.is-style-rosa-wissen-source,
.rosa-wissen__prose > p.is-style-rosa-wissen-source:first-child {
    margin-top: var(--space-20);
}

.rosa-wissen__prose > :not(.is-style-rosa-wissen-source) + p.is-style-rosa-wissen-source::before,
.rosa-wissen__prose > p.is-style-rosa-wissen-source:first-child::before {
    content: "Quellen";
    display: block;
    margin-bottom: 0.35rem;
    color: #686868;
    font-size: 0.72rem;
    font-weight: var(--font-weight-bold);
    letter-spacing: 0.04em;
    text-transform: uppercase;
}

@media (max-width: 800px) {
    .rosa-wissen__container {
        padding-block: var(--space-30) var(--space-60);
    }

    .rosa-wissen__layout {
        grid-template-columns: 1fr;
        gap: var(--space-30);
    }

    .rosa-wissen__sidebar {
        padding-right: 0;
        padding-bottom: var(--space-17);
        border-bottom: 1px solid rgba(11, 11, 11, 0.22);
    }

    .rosa-wissen__content {
        padding-left: 0;
        border-left: 0;
    }

    .rosa-wissen.is-enhanced .rosa-wissen__mobile-toggle {
        display: flex;
        align-items: center;
        justify-content: space-between;
        gap: var(--space-10);
        width: 100%;
        padding: 0;
        font-size: var(--font-size-sm);
        font-weight: var(--font-weight-bold);
        text-align: left;
    }

    .rosa-wissen__navigation {
        margin-top: var(--space-17);
    }

    .rosa-wissen__panel {
        scroll-margin-top: var(--space-20);
    }
}

/* ROSA Termine */
.rosa-termine {
    color: var(--color-black, #0b0b0b);
}

.rosa-termine__empty {
    margin: 0;
}

.rosa-termine__list {
    display: grid;
    gap: 0.5rem;
}

.rosa-termine__item {
    --rosa-termine-date-column: clamp(11rem, 19vw, 14rem);
    display: grid;
    grid-template-columns: var(--rosa-termine-date-column) minmax(0, 1fr) auto;
    align-items: stretch;
    gap: var(--space-05);
    background: transparent;
}

.rosa-termine__main,
.rosa-termine__actions {
    min-width: 0;
    padding: 0.7rem 0.85rem;
    color: var(--color-red);
    background: var(--color-pink);
}

.rosa-termine__main {
    color: var(--color-black);
}

.rosa-termine__entry {
    min-width: 0;
}

.rosa-termine__summary {
    display: grid;
    grid-template-columns: minmax(0, 1fr) 1.25rem;
    align-items: center;
    gap: var(--space-10);
    min-height: 2.5rem;
    padding: 0;
    cursor: pointer;
    list-style: none;
}

.rosa-termine__summary--static {
    grid-template-columns: minmax(0, 1fr);
    cursor: default;
}

.rosa-termine__summary::-webkit-details-marker {
    display: none;
}

.rosa-termine__summary::marker {
    content: '';
}

.rosa-termine__entry .rosa-termine__summary:hover .rosa-termine__title,
.rosa-termine__entry .rosa-termine__summary:focus-visible .rosa-termine__title {
    color: var(--color-red);
    text-decoration: underline;
    text-underline-offset: 0.15em;
}

.rosa-termine__summary:focus-visible,
.rosa-termine__google:focus-visible,
.rosa-termine__download:focus-visible,
.rosa-termine__email:focus-visible {
    outline: 2px solid var(--color-red);
    outline-offset: 4px;
}

.rosa-termine__pagination a:focus-visible {
    outline: 2px solid var(--color-red);
    outline-offset: 4px;
}

.rosa-termine__date {
    display: flex;
    flex-direction: column;
    justify-content: space-between;
    min-height: 7.75rem;
    color: var(--color-white);
    background: var(--color-red);
    font-size: var(--font-size-sm);
}

.rosa-termine__date-range {
    display: flex;
    flex: 1 1 auto;
    align-items: center;
    justify-content: center;
    gap: 0.45rem;
    width: 100%;
    max-width: 19rem;
    margin-inline: auto;
    padding: 0.55rem 0.4rem 0.25rem;
}

.rosa-termine__date-part {
    display: flex;
    flex: 0 1 5rem;
    flex-direction: column;
    align-items: center;
    min-width: 0;
    color: inherit;
    text-align: center;
    text-decoration: none;
}

.rosa-termine__date-day {
    width: 100%;
    font-size: clamp(2.75rem, 3vw, 3.15rem);
    font-weight: var(--font-weight-black);
    font-variant-numeric: tabular-nums;
    letter-spacing: -0.045em;
    line-height: 0.95;
}

.rosa-termine__date--range .rosa-termine__date-day {
    font-size: clamp(2.35rem, 2.7vw, 2.8rem);
}

.rosa-termine__date-month {
    width: 100%;
    margin-top: 0.15rem;
    font-size: var(--font-size-xs);
    font-weight: var(--font-weight-bold);
    letter-spacing: 0.08em;
    line-height: 1.1;
    text-transform: uppercase;
}

.rosa-termine__date-year {
    width: 100%;
    font-size: var(--font-size-xs);
    font-variant-numeric: tabular-nums;
    letter-spacing: 0.04em;
    line-height: 1.1;
}

.rosa-termine__date-time {
    display: grid;
    place-items: center;
    min-height: 1.75rem;
    padding: 0.15rem 0.4rem 0.4rem;
    font-size: var(--font-size-xs);
    font-weight: var(--font-weight-bold);
    font-variant-numeric: tabular-nums;
    line-height: 1.2;
    text-align: center;
}

.rosa-termine__title-group {
    display: flex;
    flex-direction: column;
    gap: 0.15rem;
    min-width: 0;
}

.rosa-termine__title {
    font-size: var(--font-size-base);
    font-weight: var(--font-weight-bold);
    line-height: 1.3;
    overflow-wrap: anywhere;
}

.rosa-termine__location-inline {
    color: var(--color-black);
    font-size: var(--font-size-sm);
    line-height: 1.3;
}

.rosa-termine__chevron {
    width: 1.25rem;
    height: 1.25rem;
    transition: transform 180ms ease;
}

.rosa-termine__entry[open] .rosa-termine__chevron {
    transform: rotate(180deg);
}

.rosa-termine__details {
    max-width: 69ch;
    padding: 0.7rem 0 0.15rem;
    font-size: var(--font-size-sm);
    font-weight: var(--font-weight-regular);
    line-height: var(--line-height-copy);
}

.rosa-termine__description p {
    margin: 0 0 var(--space-10);
}

.rosa-termine__description p:last-child {
    margin-bottom: 0;
}

.rosa-termine__description,
.rosa-termine__location {
    margin: 0 0 var(--space-10);
    overflow-wrap: anywhere;
}

.rosa-termine__details > :last-child {
    margin-bottom: 0;
}

.rosa-termine__description a {
    color: inherit;
    text-decoration: underline;
}

.rosa-termine__description a:hover,
.rosa-termine__description a:focus-visible {
    color: var(--color-red);
}

.rosa-termine__actions {
    display: flex;
    align-items: flex-start;
    justify-content: center;
    gap: var(--space-05);
}

.rosa-termine__google,
.rosa-termine__download,
.rosa-termine__email {
    display: grid;
    place-items: center;
    width: 2.5rem;
    min-height: 2.5rem;
    color: var(--color-red);
    background: var(--color-pink);
    text-decoration: none;
}

.rosa-termine__google svg,
.rosa-termine__download svg,
.rosa-termine__email svg {
    display: block;
    width: 1.35rem;
    height: 1.35rem;
}

.rosa-termine__google svg {
    transform: translateY(1px);
}

.rosa-termine__google:hover,
.rosa-termine__google:focus-visible,
.rosa-termine__download:hover,
.rosa-termine__download:focus-visible,
.rosa-termine__email:hover,
.rosa-termine__email:focus-visible {
    color: var(--color-red);
    background: var(--color-pink);
    box-shadow: inset 0 0 0 1px var(--color-red);
}

@media (max-width: 800px) {
    .rosa-termine__item {
        --rosa-termine-date-column: clamp(7rem, 28vw, 8.5rem);
        grid-template-columns: var(--rosa-termine-date-column) minmax(0, 1fr);
        grid-template-rows: auto 2.25rem;
    }

    .rosa-termine__date {
        grid-column: 1;
        grid-row: 1 / span 2;
        min-height: 6.5rem;
    }

    .rosa-termine__date-range {
        gap: 0.15rem;
        padding-inline: 0.2rem;
    }

    .rosa-termine__date-part {
        flex-basis: 50%;
    }

    .rosa-termine__date--range .rosa-termine__date-day {
        font-size: 2rem;
    }

    .rosa-termine__main {
        grid-column: 2;
        grid-row: 1;
    }

    .rosa-termine__actions {
        grid-column: 2;
        grid-row: 2;
        align-items: center;
        justify-content: flex-start;
        gap: 0.25rem;
        height: 2.25rem;
        padding: 0 0.4rem;
    }

    .rosa-termine__google,
    .rosa-termine__download,
    .rosa-termine__email {
        width: 2rem;
        min-height: 2rem;
    }

    .rosa-termine__actions svg {
        width: 1.2rem;
        height: 1.2rem;
    }
}
/* ROSA Medienblock: responsive visibility uses the same device ranges as its editor controls. */
@media (min-width: 1025px) {
    .rosa-bildblock--hide-desktop { display: none !important; }
}

@media (min-width: 601px) and (max-width: 1024px) {
    .rosa-bildblock--hide-tablet { display: none !important; }
}

@media (max-width: 600px) {
    .rosa-bildblock--hide-mobile { display: none !important; }
}

/* Device-specific media-block spacing overrides the existing shared spacing only when selected. */
@media (min-width: 1025px) {
    .rosa-bildblock--spacing-top-desktop:not(.rosa-bildblock--background):not(.has-background):not(.rosa-block-bg) { margin-top: var(--rosa-media-spacing-top-desktop) !important; }
    .rosa-bildblock--spacing-bottom-desktop:not(.has-background):not(.rosa-block-bg) { margin-bottom: var(--rosa-media-spacing-bottom-desktop) !important; }
    .rosa-bildblock--spacing-top-desktop:is(.has-background, .rosa-block-bg) { padding-top: var(--rosa-media-spacing-top-desktop) !important; }
    .rosa-bildblock--spacing-bottom-desktop:is(.has-background, .rosa-block-bg) { padding-bottom: var(--rosa-media-spacing-bottom-desktop) !important; }
    .rosa-bildblock--spacing-top-desktop-none:not(.has-background):not(.rosa-block-bg) { padding-top: 0 !important; }
    .rosa-bildblock--spacing-bottom-desktop-none:not(.has-background):not(.rosa-block-bg) { padding-bottom: 0 !important; }
    .rosa-bildblock--background.rosa-bildblock--spacing-top-desktop { --rosa-media-background-top-offset: var(--rosa-media-spacing-top-desktop); }
    .rosa-bildblock--background.rosa-bildblock--spacing-bottom-desktop { margin-bottom: var(--rosa-media-spacing-bottom-desktop) !important; padding-bottom: 0 !important; }
}

@media (min-width: 601px) and (max-width: 1024px) {
    .rosa-bildblock--spacing-top-tablet:not(.rosa-bildblock--background):not(.has-background):not(.rosa-block-bg) { margin-top: var(--rosa-media-spacing-top-tablet) !important; }
    .rosa-bildblock--spacing-bottom-tablet:not(.has-background):not(.rosa-block-bg) { margin-bottom: var(--rosa-media-spacing-bottom-tablet) !important; }
    .rosa-bildblock--spacing-top-tablet:is(.has-background, .rosa-block-bg) { padding-top: var(--rosa-media-spacing-top-tablet) !important; }
    .rosa-bildblock--spacing-bottom-tablet:is(.has-background, .rosa-block-bg) { padding-bottom: var(--rosa-media-spacing-bottom-tablet) !important; }
    .rosa-bildblock--spacing-top-tablet-none:not(.has-background):not(.rosa-block-bg) { padding-top: 0 !important; }
    .rosa-bildblock--spacing-bottom-tablet-none:not(.has-background):not(.rosa-block-bg) { padding-bottom: 0 !important; }
    .rosa-bildblock--background.rosa-bildblock--spacing-top-tablet { --rosa-media-background-top-offset: var(--rosa-media-spacing-top-tablet); }
    .rosa-bildblock--background.rosa-bildblock--spacing-bottom-tablet { margin-bottom: var(--rosa-media-spacing-bottom-tablet) !important; padding-bottom: 0 !important; }
}

@media (max-width: 600px) {
    .rosa-bildblock--spacing-top-mobile:not(.rosa-bildblock--background):not(.has-background):not(.rosa-block-bg) { margin-top: var(--rosa-media-spacing-top-mobile) !important; }
    .rosa-bildblock--spacing-bottom-mobile:not(.has-background):not(.rosa-block-bg) { margin-bottom: var(--rosa-media-spacing-bottom-mobile) !important; }
    .rosa-bildblock--spacing-top-mobile:is(.has-background, .rosa-block-bg) { padding-top: var(--rosa-media-spacing-top-mobile) !important; }
    .rosa-bildblock--spacing-bottom-mobile:is(.has-background, .rosa-block-bg) { padding-bottom: var(--rosa-media-spacing-bottom-mobile) !important; }
    .rosa-bildblock--spacing-top-mobile-none:not(.has-background):not(.rosa-block-bg) { padding-top: 0 !important; }
    .rosa-bildblock--spacing-bottom-mobile-none:not(.has-background):not(.rosa-block-bg) { padding-bottom: 0 !important; }
    .rosa-bildblock--background.rosa-bildblock--spacing-top-mobile { --rosa-media-background-top-offset: var(--rosa-media-spacing-top-mobile); }
    .rosa-bildblock--background.rosa-bildblock--spacing-bottom-mobile { margin-bottom: var(--rosa-media-spacing-bottom-mobile) !important; padding-bottom: 0 !important; }
}

/* Keyboard focus stays visible through text treatment, without an outline frame. */
body:not(.wp-admin) :focus {
    outline: none !important;
    outline-offset: 0 !important;
}

body:not(.wp-admin) :is(a, button, summary, [role="button"], [role="link"]):focus-visible {
    text-decoration: underline !important;
    text-decoration-thickness: 0.1em;
    text-underline-offset: 0.18em;
}

/* ROSA Radio: compact episodes with an always-visible player. */
.rosa-radio__empty {
    max-width: 69ch;
    margin: 0;
    font-size: var(--font-size-sm);
    font-weight: var(--font-weight-regular);
    line-height: var(--line-height-copy);
}

.rosa-radio__episodes {
    display: grid;
    gap: var(--space-10);
    margin: 0;
    padding: 0;
    list-style: none;
}

.rosa-radio__episode {
    min-width: 0;
}

.rosa-radio__episode-row {
    display: grid;
    grid-template-columns: 2.5rem minmax(0, 1fr) minmax(14rem, 22rem);
    align-items: center;
    gap: var(--space-10);
    min-width: 0;
}

.rosa-radio__play {
    display: grid;
    width: 2.5rem;
    height: 2.5rem;
    padding: 0;
    place-items: center;
    border: 0;
    border-radius: 50%;
    background: transparent;
    cursor: pointer;
}

.rosa-radio__play:hover,
.rosa-radio__play:focus-visible,
.rosa-radio__play.is-expanded {
    transform: scale(1.06);
}

.rosa-radio__play-icon {
    display: grid;
    flex: 0 0 2.5rem;
    width: 2.5rem;
    height: 2.5rem;
    place-items: center;
    border-radius: 50%;
    color: var(--color-white);
    background: var(--color-red);
}

.rosa-radio__play-icon svg {
    width: 1rem;
    height: 1rem;
    margin-left: 0.1rem;
}

.rosa-radio__play.is-expanded .rosa-radio__play-icon svg {
    display: none;
}

.rosa-radio__play.is-expanded .rosa-radio__play-icon::before {
    content: '';
    width: 0.62rem;
    height: 0.9rem;
    border-right: 0.2rem solid currentColor;
    border-left: 0.2rem solid currentColor;
}

.rosa-radio__episode-info {
    display: flex;
    flex-direction: column;
    align-items: flex-start;
    gap: 0.1rem;
    min-width: 0;
}

.rosa-radio__episode-title {
    font-size: var(--font-size-base);
    font-weight: var(--font-weight-bold);
    line-height: var(--line-height-copy);
    overflow-wrap: anywhere;
}

.rosa-radio__episode-date {
    font-size: var(--font-size-sm);
    font-weight: var(--font-weight-regular);
    line-height: var(--line-height-copy);
    opacity: 0.65;
}

.rosa-radio__player {
    display: flex;
    flex-direction: column;
    align-items: flex-end;
    gap: 0.2rem;
    min-width: 0;
}

.rosa-radio__player[hidden] {
    display: none;
}

.rosa-radio__player audio {
    display: block;
    width: 100%;
    min-width: 0;
    accent-color: var(--color-red);
}

.rosa-radio__description-shell {
    display: grid;
    grid-template-rows: 0fr;
    overflow: hidden;
    opacity: 0;
    pointer-events: none;
    transition: grid-template-rows 250ms ease, opacity 250ms ease;
}

.rosa-radio__description-shell.is-open {
    grid-template-rows: 1fr;
    opacity: 1;
    pointer-events: auto;
}

.rosa-radio__description {
    min-height: 0;
    max-width: 69ch;
    overflow: hidden;
    padding: 0 0 0 3.5rem;
    font-size: var(--font-size-sm);
    font-weight: var(--font-weight-regular);
    line-height: var(--line-height-copy);
    transition: padding 250ms ease;
}

.rosa-radio__description-shell.is-open .rosa-radio__description {
    padding-top: var(--space-10);
    padding-bottom: var(--space-05);
}

.rosa-radio__description p {
    margin: 0 0 var(--space-05);
}

.rosa-radio__description p:last-child {
    margin-bottom: 0;
}

@media (max-width: 800px) {
    .rosa-radio__episode-row {
        grid-template-columns: 2.5rem minmax(0, 1fr);
    }

    .rosa-radio__player {
        grid-column: 2;
        align-items: stretch;
    }

    .rosa-radio__description {
        padding-left: 3.5rem;
    }
}

@media (max-width: 500px) {
    .rosa-radio__description {
        padding-left: 0;
    }
}

@media (prefers-reduced-motion: reduce) {
    .rosa-radio__description-shell,
    .rosa-radio__description {
        transition: none;
    }
}

body:not(.wp-admin) .rosa-button-block__link:focus-visible {
    box-shadow: none;
}
