*,
*::before,
*::after {
    box-sizing: border-box;
}

:root {
    --public-site-red: #960000;
    --public-site-red-dark: #720000;
    --public-site-blue: #153d63;
    --public-site-light-blue: #dceaf7;
    --public-site-border: #d9d3ca;
    --public-site-border-soft: #e9e4dc;
    --public-site-muted: #5f6b75;
    --public-site-text: #263744;
    --public-site-background: #f7f5f1;
    --public-site-surface: #ffffff;
    --public-site-surface-warm: #fbf8f2;
    --public-site-shadow: 0 0.35rem 1.15rem rgba(53, 42, 29, 0.08);
    --public-site-radius: 0.45rem;
    --public-site-content-width: 1180px;
}

html {
    min-width: 320px;
    font-family: Arial, Helvetica, sans-serif;
    line-height: 1.55;
    color: var(--public-site-text);
    background: var(--public-site-background);
    scroll-behavior: smooth;
}

body {
    min-width: 320px;
    margin: 0;
    color: var(--public-site-text);
    background: var(--public-site-background);
}

img {
    display: block;
    max-width: 100%;
    height: auto;
}

a {
    color: var(--public-site-red);
    overflow-wrap: anywhere;
    text-underline-offset: 0.16em;
}

a:hover {
    color: var(--public-site-red-dark);
}

a:focus-visible,
button:focus-visible {
    outline: 3px solid var(--public-site-blue);
    outline-offset: 3px;
}

button,
input,
select,
textarea {
    font: inherit;
}

.public-site-skip-link {
    position: fixed;
    top: 0.5rem;
    left: 0.5rem;
    z-index: 100;
    padding: 0.625rem 0.875rem;
    border: 2px solid var(--public-site-blue);
    border-radius: 0.25rem;
    background: var(--public-site-surface);
    color: var(--public-site-text);
    box-shadow: var(--public-site-shadow);
    transform: translateY(-200%);
}

.public-site-skip-link:focus,
.public-site-skip-link:focus-visible {
    color: var(--public-site-text);
    transform: translateY(0);
}

.public-site-header {
    position: relative;
    z-index: 50;
    border-bottom: 1px solid var(--public-site-border);
    background: rgba(255, 255, 255, 0.98);
    box-shadow: 0 0.2rem 0.9rem rgba(36, 46, 54, 0.05);
}

.public-site-header__top {
    border-bottom: 1px solid var(--public-site-border-soft);
    background: var(--public-site-surface-warm);
}

.public-site-header__top-inner,
.public-site-header__brand-inner,
.public-site-nav,
.public-site-footer__inner,
.public-site-footer__bottom-inner {
    width: min(calc(100% - 2.5rem), var(--public-site-content-width));
    margin: 0 auto;
}

.public-site-header__top-inner {
    display: flex;
    align-items: center;
    justify-content: flex-end;
    min-height: 2.15rem;
    gap: 0.75rem 1.5rem;
    color: var(--public-site-muted);
    font-size: 0.78rem;
}

.public-site-header__location {
    margin-right: auto;
}

.public-site-utility {
    display: flex;
    flex-wrap: wrap;
    justify-content: flex-end;
    gap: 0.5rem 1rem;
}

.public-site-utility a {
    color: var(--public-site-blue);
    text-decoration: none;
}

.public-site-utility a:hover,
.public-site-utility a:focus-visible {
    color: var(--public-site-red);
    text-decoration: underline;
}

.public-site-header__brand-row {
    background: linear-gradient(90deg, #fff 0%, #fff 58%, #f7fbff 100%);
}

.public-site-header__brand-inner {
    display: flex;
    align-items: center;
    justify-content: space-between;
    min-height: 6.25rem;
    gap: 1rem;
    padding: 0.8rem 0;
}

.public-site-brand {
    display: inline-flex;
    align-items: center;
    width: fit-content;
    min-width: 0;
    gap: 0.9rem;
    color: var(--public-site-red);
    text-decoration: none;
}

.public-site-brand:hover {
    color: var(--public-site-red-dark);
}

.public-site-brand__logo {
    width: 3.55rem;
    height: 4.9rem;
    object-fit: contain;
}

.public-site-brand__text {
    display: grid;
    gap: 0.1rem;
    min-width: 0;
}

.public-site-brand__text strong {
    font-family: Georgia, 'Times New Roman', serif;
    font-size: clamp(1.45rem, 2.6vw, 2.05rem);
    font-weight: 700;
    line-height: 1.03;
}

.public-site-brand__text span {
    color: var(--public-site-blue);
    font-family: Georgia, 'Times New Roman', serif;
    font-size: 0.95rem;
}

.public-site-nav-toggle {
    display: none;
    align-items: center;
    justify-content: center;
    min-width: 3rem;
    min-height: 3rem;
    gap: 0.55rem;
    padding: 0.55rem 0.75rem;
    border: 1px solid var(--public-site-border);
    border-radius: var(--public-site-radius);
    color: var(--public-site-blue);
    background: #fff;
    cursor: pointer;
}

.public-site-nav-toggle__icon {
    display: grid;
    gap: 0.25rem;
}

.public-site-nav-toggle__icon span {
    display: block;
    width: 1.35rem;
    height: 2px;
    background: currentColor;
}

.public-site-nav-toggle__label {
    font-size: 0.9rem;
    font-weight: 700;
}

.public-site-nav-wrap {
    border-top: 1px solid var(--public-site-border-soft);
    background: #fff;
}

.public-site-nav__list,
.public-site-nav__sublist {
    margin: 0;
    padding: 0;
    list-style: none;
}

.public-site-nav__list {
    display: flex;
    align-items: stretch;
    gap: 0;
}

.public-site-nav__item {
    position: relative;
    min-width: 0;
}

.public-site-nav__entry {
    display: flex;
    align-items: stretch;
}

.public-site-nav__link {
    display: inline-flex;
    align-items: center;
    min-height: 3.1rem;
    padding: 0.65rem 0.82rem;
    border-bottom: 3px solid transparent;
    color: var(--public-site-blue);
    font-size: 0.91rem;
    font-weight: 700;
    text-decoration: none;
    white-space: nowrap;
}

.public-site-nav__link:hover,
.public-site-nav__link:focus-visible,
.public-site-nav__link.is-active,
.public-site-nav__item.is-current-trail > .public-site-nav__entry > .public-site-nav__link {
    color: var(--public-site-red);
    border-bottom-color: var(--public-site-red);
}

.public-site-nav__submenu-toggle {
    display: inline-grid;
    place-items: center;
    width: 1.85rem;
    min-height: 3.1rem;
    margin-left: -0.45rem;
    padding: 0;
    border: 0;
    color: var(--public-site-blue);
    background: transparent;
    cursor: pointer;
}

.public-site-nav__submenu-toggle span {
    display: block;
    transform: translateY(-0.08rem);
    font-size: 1rem;
    line-height: 1;
    transition: transform 150ms ease;
}

.public-site-nav__item.is-open > .public-site-nav__entry .public-site-nav__submenu-toggle span {
    transform: rotate(180deg) translateY(0.05rem);
}

.public-site-nav__sublist {
    position: absolute;
    top: calc(100% - 1px);
    left: 0;
    z-index: 10;
    display: none;
    width: max-content;
    min-width: 13rem;
    max-width: min(22rem, 90vw);
    padding: 0.45rem;
    border: 1px solid var(--public-site-border);
    border-radius: 0 0 var(--public-site-radius) var(--public-site-radius);
    background: #fff;
    box-shadow: var(--public-site-shadow);
}

.public-site-nav__item.is-open > .public-site-nav__sublist {
    display: grid;
}

.public-site-nav__sublist .public-site-nav__item {
    width: 100%;
}

.public-site-nav__sublist .public-site-nav__entry {
    width: 100%;
}

.public-site-nav__sublist .public-site-nav__link {
    width: 100%;
    min-height: 2.6rem;
    padding: 0.55rem 0.7rem;
    border: 0;
    border-radius: 0.25rem;
    white-space: normal;
}

.public-site-nav__sublist .public-site-nav__link:hover,
.public-site-nav__sublist .public-site-nav__link:focus-visible,
.public-site-nav__sublist .public-site-nav__link.is-active,
.public-site-nav__sublist .public-site-nav__item.is-current-trail > .public-site-nav__entry > .public-site-nav__link {
    background: var(--public-site-surface-warm);
}

.public-site-nav__sublist .public-site-nav__submenu-toggle {
    min-height: 2.6rem;
}

.public-site-nav__sublist .public-site-nav__sublist {
    top: 0;
    left: calc(100% - 0.25rem);
}

.public-page-shell,
.public-news-shell,
.public-events-shell,
.public-exhibitions-shell,
.public-products-shell,
.public-sponsors-shell,
.public-homepage-shell {
    width: min(calc(100% - 2.5rem), var(--public-site-content-width));
    margin: 0 auto;
    padding: 2rem 1rem 4rem;
}

.public-homepage-shell {
    padding-top: 1.4rem;
}

.public-page-breadcrumb,
.public-news-breadcrumb,
.public-events-breadcrumb,
.public-exhibitions-breadcrumb,
.public-products-breadcrumb,
.public-sponsors-breadcrumb {
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    gap: 0.35rem 0.55rem;
    margin: 0 0 1.45rem;
    color: var(--public-site-muted);
    font-size: 0.84rem;
}

.public-page-breadcrumb a,
.public-news-breadcrumb a,
.public-events-breadcrumb a,
.public-exhibitions-breadcrumb a,
.public-products-breadcrumb a,
.public-sponsors-breadcrumb a {
    color: var(--public-site-blue);
}

.public-page-header,
.public-news-header,
.public-events-header,
.public-exhibitions-header,
.public-products-header,
.public-sponsors-header {
    margin-bottom: 1.65rem;
}

.public-page-header h1,
.public-news-header h1,
.public-events-header h1,
.public-exhibitions-header h1,
.public-products-header h1,
.public-sponsors-header h1 {
    margin: 0;
    color: var(--public-site-red);
    font-family: Georgia, 'Times New Roman', serif;
    font-size: clamp(2rem, 4.1vw, 3.25rem);
    font-weight: 700;
    line-height: 1.07;
}

.public-home-hero {
    position: relative;
    isolation: isolate;
    min-height: clamp(25rem, 46vw, 34rem);
    overflow: hidden;
    border: 1px solid var(--public-site-border);
    border-radius: var(--public-site-radius);
    background: #28221c;
    box-shadow: var(--public-site-shadow);
}

.public-home-hero__image {
    position: absolute;
    inset: 0;
    z-index: -2;
    width: 100%;
    height: 100%;
    object-fit: cover;
}

.public-home-hero::after {
    position: absolute;
    inset: 0;
    z-index: -1;
    content: '';
    background: linear-gradient(90deg, rgba(248, 244, 236, 0.97) 0%, rgba(248, 244, 236, 0.9) 31%, rgba(248, 244, 236, 0.46) 51%, rgba(25, 18, 12, 0.08) 72%);
}

.public-home-hero__content {
    display: flex;
    min-height: inherit;
    flex-direction: column;
    align-items: flex-start;
    justify-content: center;
    width: min(48%, 33rem);
    padding: clamp(2rem, 5vw, 4rem);
}

.public-home-hero__eyebrow {
    margin: 0 0 0.65rem;
    color: var(--public-site-blue);
    font-size: 0.83rem;
    font-weight: 700;
    letter-spacing: 0.06em;
    text-transform: uppercase;
}

.public-home-hero h1 {
    margin: 0;
    color: var(--public-site-red);
    font-family: Georgia, 'Times New Roman', serif;
    font-size: clamp(2.25rem, 5vw, 4rem);
    font-weight: 700;
    line-height: 1.02;
}

.public-home-hero__lead {
    max-width: 34rem;
    margin: 1rem 0 0;
    color: var(--public-site-text);
    font-size: 1.03rem;
}

.public-home-hero__actions {
    display: flex;
    flex-wrap: wrap;
    gap: 0.7rem;
    margin-top: 1.45rem;
}

.public-home-hero__actions a,
.public-home-feature-card__link,
.public-news-backlink a,
.public-events-backlink a,
.public-exhibitions-backlink a,
.public-products-backlink a,
.public-sponsors-backlink a {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    min-height: 2.65rem;
    padding: 0.55rem 0.95rem;
    border: 1px solid var(--public-site-red);
    border-radius: 0.25rem;
    color: #fff;
    background: var(--public-site-red);
    font-size: 0.9rem;
    font-weight: 700;
    text-decoration: none;
}

.public-home-hero__actions a:hover,
.public-home-hero__actions a:focus-visible,
.public-home-feature-card__link:hover,
.public-home-feature-card__link:focus-visible,
.public-news-backlink a:hover,
.public-events-backlink a:hover,
.public-exhibitions-backlink a:hover,
.public-products-backlink a:hover,
.public-sponsors-backlink a:hover {
    color: #fff;
    background: var(--public-site-red-dark);
}

.public-home-hero__actions a.is-secondary {
    color: var(--public-site-red);
    background: rgba(255, 255, 255, 0.82);
}

.public-home-hero__actions a.is-secondary:hover,
.public-home-hero__actions a.is-secondary:focus-visible {
    color: var(--public-site-red-dark);
    background: #fff;
}

.public-home-hero__credit {
    position: absolute;
    right: 0.75rem;
    bottom: 0.55rem;
    margin: 0;
    padding: 0.18rem 0.35rem;
    border-radius: 0.2rem;
    color: #fff;
    background: rgba(0, 0, 0, 0.5);
    font-size: 0.68rem;
}

.public-home-features {
    display: grid;
    grid-template-columns: repeat(4, minmax(0, 1fr));
    gap: 1rem;
    margin: 1.25rem 0 2.5rem;
}

.public-home-feature-card {
    display: flex;
    min-width: 0;
    flex-direction: column;
    align-items: flex-start;
    padding: 1.2rem;
    border: 1px solid var(--public-site-border);
    border-radius: var(--public-site-radius);
    background: var(--public-site-surface);
    box-shadow: 0 0.18rem 0.8rem rgba(53, 42, 29, 0.045);
}

.public-home-feature-card h2 {
    margin: 0;
    color: var(--public-site-blue);
    font-family: Georgia, 'Times New Roman', serif;
    font-size: 1.25rem;
    line-height: 1.2;
}

.public-home-feature-card p {
    margin: 0.6rem 0 1rem;
    color: var(--public-site-muted);
    font-size: 0.91rem;
}

.public-home-feature-card__link {
    min-height: 2.35rem;
    margin-top: auto;
    padding: 0.42rem 0.75rem;
    color: var(--public-site-red);
    background: transparent;
    font-size: 0.84rem;
}

.public-home-feature-card__link:hover,
.public-home-feature-card__link:focus-visible {
    color: #fff;
}

.public-homepage-custom-section,
.public-news-section,
.public-events-section,
.public-exhibitions-section,
.public-products-section,
.public-sponsors-section {
    margin-top: 2.5rem;
}

.public-homepage-custom-section {
    padding: clamp(1.2rem, 2.8vw, 2rem);
    border: 1px solid var(--public-site-border);
    border-left: 4px solid var(--public-site-red);
    border-radius: var(--public-site-radius);
    background: var(--public-site-surface);
}

.public-homepage-custom-section__header,
.public-news-section > .public-news-header,
.public-events-section > .public-events-header,
.public-exhibitions-section > .public-exhibitions-header {
    display: flex;
    align-items: baseline;
    justify-content: space-between;
    gap: 1rem;
    margin-bottom: 1.05rem;
}

.public-homepage-custom-section__header h2,
.public-news-section h2,
.public-events-section h2,
.public-exhibitions-section h2,
.public-products-section h2,
.public-sponsors-section h2,
.public-page-heading--h2 {
    margin: 0;
    color: var(--public-site-blue);
    font-family: Georgia, 'Times New Roman', serif;
    font-size: clamp(1.55rem, 2.8vw, 2.15rem);
    line-height: 1.18;
}

.public-news-list,
.public-events-list,
.public-exhibitions-list,
.public-sponsors-list {
    display: grid;
    grid-template-columns: repeat(3, minmax(0, 1fr));
    gap: 1rem;
}

.public-news-card,
.public-event-card,
.public-exhibition-card,
.public-sponsor-card {
    display: flex;
    min-width: 0;
    flex-direction: column;
    gap: 0;
    overflow: hidden;
    padding: 0;
    border: 1px solid var(--public-site-border);
    border-radius: var(--public-site-radius);
    background: var(--public-site-surface);
    box-shadow: 0 0.18rem 0.8rem rgba(53, 42, 29, 0.045);
}

.public-news-card-image,
.public-event-card-image,
.public-exhibition-card-image,
.public-sponsor-card-image {
    display: block;
    overflow: hidden;
    width: 100%;
    max-width: none;
    aspect-ratio: 4 / 3;
    background: #eee9e1;
}

.public-news-card-image img,
.public-event-card-image img,
.public-exhibition-card-image img,
.public-sponsor-card-image img {
    width: 100%;
    height: 100%;
    object-fit: cover;
}

.public-news-card-content,
.public-event-card-content,
.public-exhibition-card-content,
.public-sponsor-card-content {
    display: flex;
    flex: 1 1 auto;
    flex-direction: column;
    padding: 1rem 1.05rem 1.1rem;
}

.public-news-card h2,
.public-news-card h3,
.public-event-card h3,
.public-exhibition-card h3,
.public-sponsor-card h3,
.public-events-home-item h3,
.public-exhibitions-home-item h3 {
    margin: 0.2rem 0 0.65rem;
    color: var(--public-site-blue);
    font-family: Georgia, 'Times New Roman', serif;
    font-size: 1.18rem;
    line-height: 1.25;
}

.public-news-card h2 a,
.public-news-card h3 a,
.public-event-card h3 a,
.public-exhibition-card h3 a,
.public-sponsor-card h3 a,
.public-events-home-item h3 a,
.public-exhibitions-home-item h3 a {
    color: inherit;
    text-decoration: none;
}

.public-news-card h2 a:hover,
.public-news-card h3 a:hover,
.public-event-card h3 a:hover,
.public-exhibition-card h3 a:hover,
.public-sponsor-card h3 a:hover,
.public-events-home-item h3 a:hover,
.public-exhibitions-home-item h3 a:hover {
    color: var(--public-site-red);
}

.public-news-date,
.public-event-date,
.public-exhibition-date,
.public-sponsor-date,
.public-sponsor-meta,
.public-product-assortment,
.public-product-category-label {
    margin: 0 0 0.45rem;
    color: var(--public-site-muted);
    font-size: 0.78rem;
    font-weight: 700;
    letter-spacing: 0.02em;
}

.public-events-home-list {
    display: grid;
    grid-template-columns: repeat(3, minmax(0, 1fr));
    gap: 1rem;
}

.public-events-home-item,
.public-exhibitions-home-item {
    padding: 1.1rem;
    border: 1px solid var(--public-site-border);
    border-radius: var(--public-site-radius);
    background: var(--public-site-surface);
}

.public-exhibitions-home-list {
    display: grid;
    grid-template-columns: minmax(0, 1fr);
    gap: 1rem;
}

.public-exhibitions-home-item {
    display: grid;
    grid-template-columns: minmax(220px, 34%) minmax(0, 1fr);
    gap: 1.2rem;
}

.public-exhibitions-home-item .public-exhibition-card-image {
    width: 100%;
    margin: 0;
}

.public-products-list {
    display: grid;
    grid-template-columns: repeat(3, minmax(0, 1fr));
    gap: 1rem;
}

.public-product-card {
    display: flex;
    min-width: 0;
    flex-direction: column;
    gap: 0;
    overflow: hidden;
    padding: 0;
    border: 1px solid var(--public-site-border);
    border-radius: var(--public-site-radius);
    background: var(--public-site-surface);
}

.public-product-card-image {
    display: block;
    overflow: hidden;
    width: 100%;
    max-width: none;
    aspect-ratio: 4 / 3;
    background: #eee9e1;
}

.public-product-card-image img {
    width: 100%;
    height: 100%;
    object-fit: cover;
}

.public-product-card-content {
    display: flex;
    flex: 1 1 auto;
    flex-direction: column;
    padding: 0.9rem 1rem 1rem;
}

.public-product-card h3 {
    margin: 0.1rem 0 0.45rem;
    color: var(--public-site-blue);
    font-family: Georgia, 'Times New Roman', serif;
    font-size: 1.08rem;
}

.public-product-card h3 a {
    color: inherit;
    text-decoration: none;
}

.public-product-price {
    color: var(--public-site-red);
}

.public-news-detail,
.public-event-detail,
.public-exhibition-detail,
.public-product-detail,
.public-sponsor-detail,
.public-page {
    width: 100%;
}

.public-news-summary,
.public-event-summary,
.public-exhibition-summary,
.public-product-summary,
.public-sponsor-summary,
.public-products-intro,
.public-product-category-description {
    color: #3d4d59;
    font-size: 1.04rem;
}

.public-news-featured-image,
.public-event-featured-image,
.public-exhibition-featured-image,
.public-product-featured-image,
.public-sponsor-featured-image,
.public-page-figure {
    overflow: hidden;
    margin: 0 0 1.7rem;
    border-radius: var(--public-site-radius);
}

.public-news-featured-image img,
.public-event-featured-image img,
.public-exhibition-featured-image img,
.public-product-featured-image img,
.public-sponsor-featured-image img,
.public-page-figure img {
    max-width: 100%;
    max-height: 760px;
    object-fit: contain;
}

.public-news-featured-image figcaption,
.public-event-featured-image figcaption,
.public-exhibition-featured-image figcaption,
.public-product-featured-image figcaption,
.public-sponsor-featured-image figcaption,
.public-page-figure figcaption {
    display: grid;
    gap: 0.18rem;
    margin-top: 0.45rem;
    color: var(--public-site-muted);
    font-size: 0.8rem;
}

.public-news-body,
.public-event-body,
.public-exhibition-body,
.public-product-body,
.public-sponsor-body,
.public-page-content {
    overflow-wrap: anywhere;
}

.public-page-heading {
    color: var(--public-site-blue);
    font-family: Georgia, 'Times New Roman', serif;
}

.public-page-heading--h2 {
    margin: 2.5rem 0 0.9rem;
}

.public-page-heading--h3 {
    margin: 2rem 0 0.75rem;
    font-size: 1.35rem;
}

.public-page-heading--h4 {
    margin: 1.6rem 0 0.65rem;
    font-size: 1.08rem;
}

.public-page-text,
.public-page-image-text,
.public-page-download__description {
    overflow-wrap: anywhere;
}

.public-page-text {
    margin: 0 0 1.35rem;
}

/* Korrekturschritt 0.9.1-13cab:
   Der Seiteneditor steuert die vertikalen Abstaende bereits ueber den
   bestaetigten Grid-Abstand. Der fruehere zusaetzliche 1.8rem-Aussenabstand
   an Bild-/Textbloecken erzeugte insbesondere direkt nach dem Seitentitel
   einen unnoetig grossen Leerraum. */
.public-page-image-block {
    margin: 0;
}

.public-page-image-block::after {
    display: table;
    clear: both;
    content: '';
}

.public-page-image-block--standard .public-page-figure {
    max-width: 720px;
}

.public-page-image-block--full .public-page-figure {
    width: 100%;
    max-width: none;
}

.public-page-image-block--full .public-page-figure img {
    width: 100%;
}

.public-page-image-block--left .public-page-figure,
.public-page-image-block--right .public-page-figure {
    width: min(42%, 420px);
}

.public-page-image-block--left .public-page-figure {
    float: left;
    margin: 0.2rem 1.4rem 0.8rem 0;
}

.public-page-image-block--right .public-page-figure {
    float: right;
    margin: 0.2rem 0 0.8rem 1.4rem;
}

.public-page-download,
.public-products-inquiry {
    display: grid;
    gap: 0.35rem;
    margin: 1.5rem 0;
    padding: 1rem 1.1rem;
    border: 1px solid var(--public-site-border);
    border-left: 4px solid var(--public-site-red);
    border-radius: var(--public-site-radius);
    background: var(--public-site-surface-warm);
}

.public-page-download__link {
    width: fit-content;
    color: var(--public-site-blue);
    font-weight: 700;
}

.public-page-download__meta,
.public-news-downloads li span,
.public-event-downloads li span,
.public-exhibition-downloads li span,
.public-product-downloads li span,
.public-sponsor-downloads li span {
    color: var(--public-site-muted);
    font-size: 0.82rem;
}

.public-news-downloads,
.public-event-downloads,
.public-exhibition-downloads,
.public-product-downloads,
.public-sponsor-downloads {
    display: grid;
    gap: 0.65rem;
}

.public-news-archive-section {
    margin-top: 2.5rem;
    padding-top: 1.5rem;
    border-top: 1px solid var(--public-site-border);
}

.public-news-archive-section h2 {
    margin: 0 0 0.75rem;
    color: var(--public-site-blue);
    font-family: Georgia, 'Times New Roman', serif;
    font-size: 1.15rem;
}

.public-news-archive {
    display: flex;
    flex-wrap: wrap;
    gap: 0.45rem;
}

.public-news-archive a {
    min-height: 2.25rem;
    padding: 0.35rem 0.65rem;
    border: 1px solid var(--public-site-border);
    border-radius: 0.25rem;
    color: var(--public-site-blue);
    background: #fff;
    text-decoration: none;
}

.public-news-archive a[aria-current='page'] {
    border-color: var(--public-site-red);
    color: #fff;
    background: var(--public-site-red);
    text-decoration: none;
}

.public-news-pagination {
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    justify-content: center;
    gap: 0.75rem 1rem;
    margin-top: 2rem;
    padding-top: 1rem;
}

.public-news-pagination a {
    font-weight: 700;
}

.public-news-gallery,
.public-event-gallery,
.public-exhibition-gallery,
.public-product-gallery,
.public-sponsor-gallery {
    gap: 0.75rem;
}

.public-news-gallery-link,
.public-event-gallery-link,
.public-exhibition-gallery-link,
.public-product-gallery-link,
.public-sponsor-gallery-link {
    border-color: var(--public-site-border);
    background: var(--public-site-surface-warm);
}

.public-news-lightbox-close,
.public-event-lightbox-close,
.public-exhibition-lightbox-close,
.public-product-lightbox-close,
.public-sponsor-lightbox-close {
    color: var(--public-site-blue);
}

.public-rich-text > :first-child {
    margin-top: 0;
}

.public-rich-text > :last-child {
    margin-bottom: 0;
}

.public-rich-text p {
    margin: 0 0 1rem;
}

.public-rich-text ul,
.public-rich-text ol {
    margin: 0.7rem 0 1.15rem 1.4rem;
    padding: 0;
}

.public-rich-text h2,
.public-rich-text h3,
.public-rich-text h4 {
    color: var(--public-site-blue);
    font-family: Georgia, 'Times New Roman', serif;
}

.public-rich-text blockquote {
    margin: 1.3rem 0;
    padding: 0.85rem 1rem;
    border-left: 4px solid var(--public-site-light-blue);
    background: #f7fbff;
}

.public-rich-text .red {
    color: var(--public-site-red);
}

.public-rich-text .strong {
    font-weight: 700;
}

.public-site-footer {
    margin-top: 2rem;
    border-top: 1px solid #b7cad9;
    background: var(--public-site-light-blue);
}

.public-site-footer__inner {
    display: grid;
    grid-template-columns: minmax(0, 1.45fr) repeat(2, minmax(0, 1fr));
    gap: 2rem;
    padding: 2rem 0 1.8rem;
}

.public-site-footer__column {
    min-width: 0;
}

.public-site-footer__column h2 {
    margin: 0 0 0.7rem;
    color: var(--public-site-blue);
    font-family: Georgia, 'Times New Roman', serif;
    font-size: 1rem;
}

.public-site-footer__column p {
    margin: 0.2rem 0;
    font-size: 0.86rem;
}

.public-site-footer__column a {
    color: var(--public-site-blue);
}

.public-site-footer__navigation {
    display: flex;
    flex-direction: column;
    align-items: flex-start;
    gap: 0.42rem;
}

.public-site-footer__navigation a {
    font-size: 0.86rem;
    text-decoration: none;
}

.public-site-footer__navigation a:hover,
.public-site-footer__navigation a:focus-visible {
    color: var(--public-site-red);
    text-decoration: underline;
}

.public-site-footer__bottom {
    border-top: 1px solid rgba(21, 61, 99, 0.18);
}

.public-site-footer__bottom-inner {
    display: flex;
    flex-wrap: wrap;
    justify-content: space-between;
    gap: 0.5rem 1rem;
    padding: 0.75rem 0;
    color: #4e6273;
    font-size: 0.76rem;
}

@media (hover: hover) and (min-width: 961px) {
    .public-site-nav__item--has-children:hover > .public-site-nav__sublist {
        display: grid;
    }
}

@media (max-width: 1050px) {
    .public-site-nav__link {
        padding-inline: 0.58rem;
        font-size: 0.86rem;
    }

    .public-home-features {
        grid-template-columns: repeat(2, minmax(0, 1fr));
    }

    .public-news-list,
    .public-events-list,
    .public-exhibitions-list,
    .public-sponsors-list,
    .public-products-list {
        grid-template-columns: repeat(2, minmax(0, 1fr));
    }
}

@media (max-width: 960px) {
    .public-site-header__top {
        display: none;
    }

    .public-site-header__brand-inner {
        min-height: 5.4rem;
    }

    .public-site-brand__logo {
        width: 3rem;
        height: 4.15rem;
    }

    .public-site-brand__text strong {
        font-size: clamp(1.25rem, 4vw, 1.7rem);
    }

    .public-site-nav-toggle {
        display: inline-flex;
    }

    .public-site-nav-wrap {
        border-top: 0;
    }

    .public-site-nav {
        display: none;
        width: 100%;
        border-top: 1px solid var(--public-site-border-soft);
    }

    .public-site-nav.is-open {
        display: block;
    }

    .public-site-nav__list {
        display: grid;
        width: min(calc(100% - 2.5rem), var(--public-site-content-width));
        margin: 0 auto;
        padding: 0.55rem 0 0.9rem;
    }

    .public-site-nav__item {
        width: 100%;
        border-bottom: 1px solid var(--public-site-border-soft);
    }

    .public-site-nav__entry {
        width: 100%;
    }

    .public-site-nav__link {
        flex: 1 1 auto;
        min-height: 3rem;
        padding: 0.62rem 0.25rem;
        border-bottom: 0;
        white-space: normal;
    }

    .public-site-nav__link.is-active,
    .public-site-nav__item.is-current-trail > .public-site-nav__entry > .public-site-nav__link {
        color: var(--public-site-red);
        border-bottom: 0;
    }

    .public-site-nav__submenu-toggle {
        width: 3rem;
        min-height: 3rem;
        margin: 0;
    }

    .public-site-nav__sublist,
    .public-site-nav__sublist .public-site-nav__sublist {
        position: static;
        display: none;
        width: 100%;
        min-width: 0;
        max-width: none;
        padding: 0 0 0.45rem 0.8rem;
        border: 0;
        border-radius: 0;
        box-shadow: none;
    }

    .public-site-nav__item.is-open > .public-site-nav__sublist {
        display: grid;
    }

    .public-site-nav__sublist .public-site-nav__item {
        border-bottom: 0;
    }

    .public-site-nav__sublist .public-site-nav__link {
        min-height: 2.55rem;
        padding: 0.45rem 0.6rem;
    }

    .public-home-hero__content {
        width: min(58%, 34rem);
    }

    .public-site-footer__inner {
        grid-template-columns: repeat(2, minmax(0, 1fr));
    }
}

@media (max-width: 720px) {
    .public-site-header__brand-inner,
    .public-site-nav__list,
    .public-site-footer__inner,
    .public-site-footer__bottom-inner,
    .public-page-shell,
    .public-news-shell,
    .public-events-shell,
    .public-exhibitions-shell,
    .public-products-shell,
    .public-sponsors-shell,
    .public-homepage-shell {
        width: min(calc(100% - 1.5rem), var(--public-site-content-width));
    }

    .public-site-brand {
        gap: 0.6rem;
    }

    .public-site-brand__logo {
        width: 2.65rem;
        height: 3.65rem;
    }

    .public-site-brand__text strong {
        font-size: 1.15rem;
    }

    .public-site-brand__text span {
        font-size: 0.78rem;
    }

    .public-site-nav-toggle {
        min-width: 2.75rem;
        min-height: 2.75rem;
        padding: 0.5rem;
    }

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

    .public-homepage-shell {
        padding-top: 0.8rem;
    }

    .public-home-hero {
        display: grid;
        min-height: 0;
        overflow: hidden;
    }

    .public-home-hero__image {
        position: relative;
        z-index: auto;
        width: 100%;
        height: auto;
        aspect-ratio: 5 / 2;
        object-fit: cover;
    }

    .public-home-hero::after {
        display: none;
    }

    .public-home-hero__content {
        width: 100%;
        min-height: 0;
        padding: 1.4rem 1.15rem 1.55rem;
        background: var(--public-site-surface-warm);
    }

    .public-home-hero h1 {
        font-size: clamp(2rem, 10vw, 2.8rem);
    }

    .public-home-hero__credit {
        top: calc((100vw - 1.5rem) * 0.4 - 1.5rem);
        right: 0.45rem;
        bottom: auto;
    }

    .public-home-features,
    .public-news-list,
    .public-events-list,
    .public-exhibitions-list,
    .public-sponsors-list,
    .public-products-list,
    .public-events-home-list,
    .public-site-footer__inner {
        grid-template-columns: 1fr;
    }

    .public-exhibitions-home-item {
        grid-template-columns: 1fr;
    }

    .public-news-card,
    .public-event-card,
    .public-exhibition-card,
    .public-sponsor-card,
    .public-product-card {
        display: grid;
        grid-template-columns: 1fr;
    }

    .public-page-image-block--left .public-page-figure,
    .public-page-image-block--right .public-page-figure {
        float: none;
        width: 100%;
        margin: 0 0 1rem;
    }

    .public-site-footer__inner {
        gap: 1.35rem;
        padding-block: 1.5rem;
    }

    .public-site-footer__bottom-inner {
        display: grid;
    }
}

@media (prefers-reduced-motion: reduce) {
    html {
        scroll-behavior: auto;
    }

    *,
    *::before,
    *::after {
        scroll-behavior: auto !important;
        transition-duration: 0.01ms !important;
        animation-duration: 0.01ms !important;
        animation-iteration-count: 1 !important;
    }
}

/* Schritt 0.9.0-14: flexible öffentliche Inhaltsboxen */
.public-flexible-row {
    display: grid;
    grid-template-columns: repeat(12, minmax(0, 1fr));
    gap: 1.15rem;
    margin-top: 1.5rem;
}

.public-flexible-box {
    grid-column: span 12;
    min-width: 0;
    padding: clamp(1.1rem, 2.4vw, 1.75rem);
    border: 1px solid var(--public-site-border);
    border-left: 4px solid var(--public-site-red);
    border-radius: var(--public-site-radius);
    background: var(--public-site-surface);
    box-shadow: 0 0.18rem 0.8rem rgba(53, 42, 29, 0.045);
}

.public-flexible-box--medium {
    grid-column: span 8;
}

.public-flexible-box--small {
    grid-column: span 4;
}

.public-flexible-box__header h2 {
    margin: 0 0 0.9rem;
    color: var(--public-site-blue);
    font-family: Georgia, 'Times New Roman', serif;
    font-size: clamp(1.35rem, 2.4vw, 1.9rem);
    line-height: 1.2;
}

.public-flexible-box__content > :first-child {
    margin-top: 0;
}

.public-flexible-box__content > :last-child {
    margin-bottom: 0;
}

.public-flexible-box__media {
    margin: 0 0 1rem;
}

.public-flexible-box__media img {
    width: 100%;
    max-height: 520px;
    object-fit: contain;
}

.public-flexible-box__media figcaption {
    display: grid;
    gap: 0.15rem;
    margin-top: 0.4rem;
    color: var(--public-site-muted);
    font-size: 0.82rem;
}

.public-flexible-box--image-left,
.public-flexible-box--image-right {
    display: grid;
    grid-template-columns: minmax(150px, 34%) minmax(0, 1fr);
    align-items: start;
    gap: 1.2rem;
}

.public-flexible-box--image-right {
    grid-template-columns: minmax(0, 1fr) minmax(150px, 34%);
}

.public-flexible-box--image-left .public-flexible-box__media,
.public-flexible-box--image-right .public-flexible-box__media {
    margin: 0;
}

.public-flexible-box--image-right .public-flexible-box__media {
    grid-column: 2;
    grid-row: 1;
}

.public-flexible-box--image-right .public-flexible-box__body {
    grid-column: 1;
    grid-row: 1;
}

/* Produkte/Förderer ohne Bild dürfen keine leere Bildspalte reservieren. */
.public-product-card--without-image,
.public-product-card--compact.public-product-card--without-image,
.public-sponsor-card--without-image,
.public-sponsor-card--compact.public-sponsor-card--without-image {
    grid-template-columns: minmax(0, 1fr);
}

.public-sponsor-card-title {
    line-height: 1.35;
}

.public-sponsor-inline-contact {
    color: var(--public-site-muted);
    font-family: Arial, Helvetica, sans-serif;
    font-size: 0.72em;
    font-weight: 400;
}

@media (max-width: 720px) {
    .public-flexible-box,
    .public-flexible-box--medium,
    .public-flexible-box--small {
        grid-column: span 12;
    }

    .public-flexible-box--image-left,
    .public-flexible-box--image-right {
        display: block;
    }

    .public-flexible-box--image-left .public-flexible-box__media,
    .public-flexible-box--image-right .public-flexible-box__media {
        margin: 0 0 1rem;
    }
}

/* Redaktionelle Altbestandsnotation für kompakte Sponsorlisten. */
.public-rich-text .small {
    font-size: 0.82em;
}

.public-rich-text .gray {
    color: var(--public-site-muted);
}

/* Korrekturschritt 0.9.0-14a: einheitliche Boxbreiten in allen öffentlichen Inhaltsbereichen. */
.public-news-list.public-layout-grid,
.public-events-list.public-layout-grid,
.public-exhibitions-list.public-layout-grid,
.public-products-list.public-layout-grid,
.public-sponsors-list.public-layout-grid,
.public-events-home-list.public-layout-grid,
.public-exhibitions-home-list.public-layout-grid,
.public-page-content.public-layout-grid {
    display: grid;
    grid-template-columns: repeat(12, minmax(0, 1fr));
    gap: 1.15rem;
}

.public-layout-width--large {
    grid-column: span 12;
}

.public-layout-width--medium {
    grid-column: span 8;
}

.public-layout-width--small {
    grid-column: span 4;
}

.public-page-block {
    min-width: 0;
}

@media (max-width: 720px) {
    .public-layout-width--large,
    .public-layout-width--medium,
    .public-layout-width--small {
        grid-column: span 12;
    }
}

/* Schritt 0.9.0-15: finales öffentliches Designsystem */
:root {
    --public-site-red: #960000;
    --public-site-red-dark: #720000;
    --public-site-blue: #153d63;
    --public-site-light-blue: #dceaf7;
    --public-site-border: #ccd8e2;
    --public-site-border-soft: #e5edf3;
    --public-site-muted: #5c7082;
    --public-site-text: #243f57;
    --public-site-background: #f6f9fb;
    --public-site-surface: #ffffff;
    --public-site-surface-warm: #fbfcfd;
    --public-site-surface-blue: #eef6fc;
    --public-site-shadow: 0 0.45rem 1.35rem rgba(21, 61, 99, 0.08);
    --public-site-shadow-soft: 0 0.18rem 0.65rem rgba(21, 61, 99, 0.055);
    --public-site-radius: 0.55rem;
    --public-site-radius-small: 0.35rem;
}

html {
    color: var(--public-site-text);
    background: var(--public-site-background);
}

body {
    color: var(--public-site-text);
    background:
        linear-gradient(180deg, rgba(220, 234, 247, 0.28) 0, rgba(246, 249, 251, 0) 20rem),
        var(--public-site-background);
}

a {
    text-decoration-thickness: 1px;
}

/* Header und Navigation */
.public-site-header {
    border-bottom: 1px solid var(--public-site-border);
    background: var(--public-site-surface);
    box-shadow: 0 0.22rem 0.8rem rgba(21, 61, 99, 0.07);
}

.public-site-header__top {
    border-bottom-color: rgba(21, 61, 99, 0.12);
    background: var(--public-site-light-blue);
}

.public-site-header__top-inner {
    min-height: 2rem;
    color: #49647a;
    font-size: 0.76rem;
}

.public-site-header__location {
    font-weight: 700;
}

.public-site-utility a {
    color: var(--public-site-blue);
    font-weight: 700;
}

.public-site-header__brand-row {
    background: linear-gradient(90deg, #fff 0%, #fff 62%, rgba(220, 234, 247, 0.42) 100%);
}

.public-site-header__brand-inner {
    min-height: 6.6rem;
    padding-block: 0.9rem;
}

.public-site-brand {
    gap: 1rem;
}

.public-site-brand__logo {
    width: 3.8rem;
    height: 5.15rem;
    filter: contrast(0.95);
}

.public-site-brand__text strong {
    color: var(--public-site-red);
    font-size: clamp(1.55rem, 2.8vw, 2.2rem);
    letter-spacing: -0.015em;
}

.public-site-brand__text span {
    color: var(--public-site-blue);
    font-size: 0.92rem;
}

.public-site-nav-wrap {
    border-top: 1px solid var(--public-site-border-soft);
    background: #fff;
}

.public-site-nav__list {
    justify-content: space-between;
}

.public-site-nav__link {
    min-height: 3.2rem;
    padding: 0.68rem 0.72rem;
    border-bottom-width: 2px;
    color: var(--public-site-blue);
    font-size: 0.9rem;
    font-weight: 700;
    letter-spacing: 0.005em;
    text-decoration: none;
}

.public-site-nav__link:hover,
.public-site-nav__link:focus-visible,
.public-site-nav__link.is-active,
.public-site-nav__item.is-current-trail > .public-site-nav__entry > .public-site-nav__link {
    color: var(--public-site-red);
    border-bottom-color: var(--public-site-red);
}

.public-site-nav__submenu-toggle {
    color: var(--public-site-blue);
}

.public-site-nav__sublist {
    border: 1px solid var(--public-site-border);
    border-top: 2px solid var(--public-site-red);
    border-radius: 0 0 var(--public-site-radius) var(--public-site-radius);
    background: #fff;
    box-shadow: var(--public-site-shadow);
}

.public-site-nav__sublist .public-site-nav__link {
    min-height: 2.75rem;
    border-bottom: 0;
    border-left: 3px solid transparent;
    font-weight: 600;
}

.public-site-nav__sublist .public-site-nav__link:hover,
.public-site-nav__sublist .public-site-nav__link:focus-visible,
.public-site-nav__sublist .public-site-nav__link.is-active,
.public-site-nav__sublist .public-site-nav__item.is-current-trail > .public-site-nav__entry > .public-site-nav__link {
    border-left-color: var(--public-site-red);
    background: var(--public-site-surface-blue);
}

.public-site-nav-toggle {
    border-color: #b9cad8;
    color: var(--public-site-blue);
    background: #fff;
    box-shadow: var(--public-site-shadow-soft);
}

/* Grundlayout und Seitentitel */
.public-page-shell,
.public-news-shell,
.public-events-shell,
.public-exhibitions-shell,
.public-products-shell,
.public-sponsors-shell,
.public-homepage-shell {
    width: min(calc(100% - 2.5rem), var(--public-site-content-width));
    padding-top: 2.4rem;
    padding-bottom: 4.5rem;
}

.public-homepage-shell {
    padding-top: 1.5rem;
}

.public-page-breadcrumb,
.public-news-breadcrumb,
.public-events-breadcrumb,
.public-exhibitions-breadcrumb,
.public-products-breadcrumb,
.public-sponsors-breadcrumb {
    gap: 0.3rem 0.5rem;
    margin-bottom: 1.2rem;
    color: var(--public-site-muted);
    font-size: 0.79rem;
}

.public-page-breadcrumb a,
.public-news-breadcrumb a,
.public-events-breadcrumb a,
.public-exhibitions-breadcrumb a,
.public-products-breadcrumb a,
.public-sponsors-breadcrumb a {
    color: var(--public-site-blue);
    font-weight: 700;
    text-decoration: none;
}

.public-page-breadcrumb a:hover,
.public-news-breadcrumb a:hover,
.public-events-breadcrumb a:hover,
.public-exhibitions-breadcrumb a:hover,
.public-products-breadcrumb a:hover,
.public-sponsors-breadcrumb a:hover {
    color: var(--public-site-red);
    text-decoration: underline;
}

.public-page-header,
.public-news-header,
.public-events-header,
.public-exhibitions-header,
.public-products-header,
.public-sponsors-header {
    position: relative;
    margin-bottom: 2rem;
    padding-bottom: 1rem;
}

.public-page-header::after,
.public-news-header::after,
.public-events-header::after,
.public-exhibitions-header::after,
.public-products-header::after,
.public-sponsors-header::after {
    display: block;
    width: 4rem;
    height: 2px;
    margin-top: 0.9rem;
    content: '';
    background: var(--public-site-red);
}

.public-page-header h1,
.public-news-header h1,
.public-events-header h1,
.public-exhibitions-header h1,
.public-products-header h1,
.public-sponsors-header h1 {
    color: var(--public-site-red);
    font-size: clamp(2rem, 4vw, 3.05rem);
    letter-spacing: -0.018em;
}

/* Startseiten-Hero */
.public-home-hero {
    min-height: clamp(26rem, 45vw, 34rem);
    border-color: #bfcfdb;
    border-radius: 0.65rem;
    box-shadow: 0 0.55rem 1.55rem rgba(21, 61, 99, 0.11);
}

.public-home-hero::after {
    background: linear-gradient(
        90deg,
        rgba(248, 251, 253, 0.98) 0%,
        rgba(248, 251, 253, 0.94) 29%,
        rgba(238, 246, 252, 0.74) 43%,
        rgba(21, 61, 99, 0.11) 65%,
        rgba(21, 61, 99, 0.04) 100%
    );
}

.public-home-hero__content {
    width: min(49%, 35rem);
    padding: clamp(2rem, 5vw, 4rem);
}

.public-home-hero__eyebrow {
    margin-bottom: 0.75rem;
    color: var(--public-site-blue);
    font-size: 0.79rem;
    letter-spacing: 0.09em;
}

.public-home-hero h1 {
    max-width: 10.5em;
    color: var(--public-site-red);
    font-size: clamp(2.35rem, 5vw, 4.1rem);
    line-height: 1.01;
}

.public-home-hero__lead {
    max-width: 31rem;
    margin-top: 1.15rem;
    color: #334f66;
    font-size: 1.04rem;
    line-height: 1.65;
}

.public-home-hero__actions {
    margin-top: 1.55rem;
}

.public-home-hero__actions a,
.public-home-feature-card__link,
.public-news-backlink a,
.public-events-backlink a,
.public-exhibitions-backlink a,
.public-products-backlink a,
.public-sponsors-backlink a {
    min-height: 2.55rem;
    padding: 0.5rem 0.9rem;
    border-radius: var(--public-site-radius-small);
    box-shadow: none;
}

.public-home-hero__actions a.is-secondary {
    border-color: rgba(150, 0, 0, 0.7);
    background: rgba(255, 255, 255, 0.88);
}

.public-home-hero__credit {
    right: 0.65rem;
    bottom: 0.55rem;
    background: rgba(21, 61, 99, 0.8);
}

/* Schnellzugriffe */
.public-home-features {
    gap: 0;
    margin: 1.1rem 0 3rem;
    overflow: hidden;
    border: 1px solid var(--public-site-border);
    border-radius: var(--public-site-radius);
    background: var(--public-site-surface);
    box-shadow: var(--public-site-shadow-soft);
}

.public-home-feature-card {
    position: relative;
    min-height: 10.25rem;
    padding: 1.35rem 1.3rem 1.25rem;
    border: 0;
    border-right: 1px solid var(--public-site-border-soft);
    border-radius: 0;
    background: transparent;
    box-shadow: none;
}

.public-home-feature-card:last-child {
    border-right: 0;
}

.public-home-feature-card::before {
    display: block;
    width: 2.3rem;
    height: 2px;
    margin-bottom: 0.85rem;
    content: '';
    background: var(--public-site-red);
}

.public-home-feature-card h2 {
    color: var(--public-site-blue);
    font-size: 1.28rem;
}

.public-home-feature-card p {
    margin-top: 0.55rem;
    color: var(--public-site-muted);
    line-height: 1.55;
}

.public-home-feature-card__link {
    min-height: auto;
    margin-top: auto;
    padding: 0;
    border: 0;
    color: var(--public-site-red);
    background: transparent;
    font-size: 0.84rem;
}

.public-home-feature-card__link::after {
    margin-left: 0.32rem;
    content: '→';
}

.public-home-feature-card__link:hover,
.public-home-feature-card__link:focus-visible {
    color: var(--public-site-red-dark);
    background: transparent;
    text-decoration: underline;
}

/* Inhaltsabschnitte */
.public-homepage-custom-section,
.public-news-section,
.public-events-section,
.public-exhibitions-section,
.public-products-section,
.public-sponsors-section {
    margin-top: 3rem;
}

.public-homepage-custom-section {
    padding: clamp(1.25rem, 2.6vw, 2rem);
    border: 1px solid var(--public-site-border);
    border-left: 3px solid var(--public-site-red);
    border-radius: var(--public-site-radius);
    background: var(--public-site-surface);
    box-shadow: var(--public-site-shadow-soft);
}

.public-homepage-custom-section__header,
.public-news-section > .public-news-header,
.public-events-section > .public-events-header,
.public-exhibitions-section > .public-exhibitions-header {
    margin-bottom: 1.25rem;
    padding-bottom: 0.7rem;
    border-bottom: 1px solid var(--public-site-border-soft);
}

.public-news-section > .public-news-header::after,
.public-events-section > .public-events-header::after,
.public-exhibitions-section > .public-exhibitions-header::after {
    display: none;
}

.public-homepage-custom-section__header h2,
.public-news-section h2,
.public-events-section h2,
.public-exhibitions-section h2,
.public-products-section h2,
.public-sponsors-section h2,
.public-page-heading--h2,
.public-sponsors-highlighted > h2,
.public-sponsors-section > h3 {
    color: var(--public-site-red);
    font-family: Georgia, 'Times New Roman', serif;
    letter-spacing: -0.012em;
}

.public-homepage-custom-section__header h2,
.public-news-section h2,
.public-events-section h2,
.public-exhibitions-section h2,
.public-products-section h2,
.public-sponsors-section h2,
.public-sponsors-highlighted > h2 {
    font-size: clamp(1.55rem, 2.6vw, 2.05rem);
}

/* Karten */
.public-news-list.public-layout-grid,
.public-events-list.public-layout-grid,
.public-exhibitions-list.public-layout-grid,
.public-products-list.public-layout-grid,
.public-sponsors-list.public-layout-grid,
.public-events-home-list.public-layout-grid,
.public-exhibitions-home-list.public-layout-grid,
.public-page-content.public-layout-grid {
    gap: 1.25rem;
}

.public-news-card,
.public-event-card,
.public-exhibition-card,
.public-product-card,
.public-sponsor-card,
.public-events-home-item,
.public-exhibitions-home-item {
    overflow: hidden;
    border: 1px solid var(--public-site-border);
    border-radius: var(--public-site-radius);
    background: var(--public-site-surface);
    box-shadow: var(--public-site-shadow-soft);
}

.public-news-card,
.public-event-card,
.public-exhibition-card,
.public-product-card,
.public-sponsor-card {
    display: flex;
    min-width: 0;
    flex-direction: column;
    gap: 0;
    padding: 0;
}

.public-news-card-image,
.public-event-card-image,
.public-exhibition-card-image,
.public-product-card-image,
.public-sponsor-card-image {
    width: 100%;
    max-width: none;
    margin: 0;
    aspect-ratio: 16 / 10;
    overflow: hidden;
    border: 0;
    border-bottom: 1px solid var(--public-site-border-soft);
    border-radius: 0;
    background: var(--public-site-surface-blue);
}

.public-news-card-image img,
.public-event-card-image img,
.public-exhibition-card-image img,
.public-product-card-image img,
.public-sponsor-card-image img {
    width: 100%;
    height: 100%;
    object-fit: cover;
}

.public-product-card-image img,
.public-sponsor-card-image img {
    object-fit: contain;
    padding: 0.5rem;
    background: #fff;
}

.public-news-card-content,
.public-event-card-content,
.public-exhibition-card-content,
.public-product-card-content,
.public-sponsor-card-content {
    display: flex;
    flex: 1 1 auto;
    flex-direction: column;
    padding: 1.05rem 1.1rem 1.15rem;
}

.public-news-card h2,
.public-news-card h3,
.public-event-card h3,
.public-exhibition-card h3,
.public-product-card h3,
.public-sponsor-card h3,
.public-events-home-item h3,
.public-exhibitions-home-item h3 {
    color: var(--public-site-blue);
    font-size: 1.2rem;
    line-height: 1.27;
}

.public-news-card h2 a,
.public-news-card h3 a,
.public-event-card h3 a,
.public-exhibition-card h3 a,
.public-product-card h3 a,
.public-sponsor-card h3 a,
.public-events-home-item h3 a,
.public-exhibitions-home-item h3 a {
    color: inherit;
    text-decoration: none;
}

.public-news-card h2 a:hover,
.public-news-card h3 a:hover,
.public-event-card h3 a:hover,
.public-exhibition-card h3 a:hover,
.public-product-card h3 a:hover,
.public-sponsor-card h3 a:hover,
.public-events-home-item h3 a:hover,
.public-exhibitions-home-item h3 a:hover {
    color: var(--public-site-red);
}

.public-news-date,
.public-event-date,
.public-exhibition-date,
.public-sponsor-date,
.public-sponsor-meta,
.public-product-assortment,
.public-product-category-label {
    color: var(--public-site-muted);
    font-size: 0.76rem;
    font-weight: 700;
}

.public-product-price {
    color: var(--public-site-red);
    font-size: 1rem;
    font-weight: 700;
}

.public-product-availability {
    color: var(--public-site-blue);
    font-size: 0.83rem;
}

.public-product-card--without-image,
.public-product-card--compact.public-product-card--without-image,
.public-sponsor-card--without-image,
.public-sponsor-card--compact.public-sponsor-card--without-image {
    display: flex;
    grid-template-columns: none;
}

.public-product-card--without-image .public-product-card-content,
.public-sponsor-card--without-image .public-sponsor-card-content {
    min-height: 100%;
}

/* Startseiten-Veranstaltungen und Ausstellungen */
.public-events-home-item,
.public-exhibitions-home-item {
    padding: 1.15rem;
}

.public-exhibitions-home-item {
    display: grid;
    grid-template-columns: minmax(190px, 32%) minmax(0, 1fr);
    align-items: start;
    gap: 1.2rem;
}

.public-exhibitions-home-item .public-exhibition-card-image {
    aspect-ratio: 4 / 3;
}

/* Freie Inhaltsboxen und Seitenblöcke */
.public-flexible-row {
    gap: 1.25rem;
}

.public-flexible-box,
.public-page-block {
    min-width: 0;
    border: 1px solid var(--public-site-border);
    border-radius: var(--public-site-radius);
    background: var(--public-site-surface);
    box-shadow: var(--public-site-shadow-soft);
}

.public-flexible-box {
    padding: clamp(1.2rem, 2.5vw, 1.8rem);
    border-left: 3px solid var(--public-site-red);
}

.public-page-block {
    padding: clamp(1rem, 2vw, 1.45rem);
}

.public-page-content {
    max-width: none;
}

.public-page-heading {
    color: var(--public-site-red);
}

.public-page-heading--h2 {
    margin-top: 0;
}

.public-page-text,
.public-page-image-text {
    line-height: 1.7;
}

.public-page-figure,
.public-news-featured-image,
.public-event-featured-image,
.public-exhibition-featured-image,
.public-product-featured-image,
.public-sponsor-featured-image {
    overflow: hidden;
    border: 1px solid var(--public-site-border);
    border-radius: var(--public-site-radius);
    background: #fff;
    box-shadow: var(--public-site-shadow-soft);
}

.public-page-figure img,
.public-news-featured-image img,
.public-event-featured-image img,
.public-exhibition-featured-image img,
.public-product-featured-image img,
.public-sponsor-featured-image img {
    width: 100%;
}

.public-page-figure figcaption,
.public-news-featured-image figcaption,
.public-event-featured-image figcaption,
.public-exhibition-featured-image figcaption,
.public-product-featured-image figcaption,
.public-sponsor-featured-image figcaption {
    margin: 0;
    padding: 0.65rem 0.8rem;
    color: var(--public-site-muted);
    background: var(--public-site-surface-blue);
    font-size: 0.78rem;
}

/* Detailseiten */
.public-news-detail,
.public-event-detail,
.public-exhibition-detail,
.public-product-detail,
.public-sponsor-detail {
    width: 100%;
}

.public-news-summary,
.public-event-summary,
.public-exhibition-summary,
.public-product-summary,
.public-sponsor-summary,
.public-products-intro,
.public-product-category-description {
    color: #405d73;
    line-height: 1.65;
}

.public-news-body,
.public-event-body,
.public-exhibition-body,
.public-product-body,
.public-sponsor-body {
    line-height: 1.72;
}

.public-news-section,
.public-events-section,
.public-exhibitions-section,
.public-products-section,
.public-sponsors-section {
    scroll-margin-top: 1.5rem;
}

.public-events-past,
.public-exhibitions-past,
.public-exhibitions-legacy-archive {
    padding: 1.4rem;
    border: 1px solid var(--public-site-border);
    border-radius: var(--public-site-radius);
    background: var(--public-site-surface-blue);
}

.public-exhibitions-archive-list {
    gap: 0.55rem 1rem;
    padding-left: 1.2rem;
}

.public-page-download,
.public-products-inquiry {
    border: 1px solid var(--public-site-border);
    border-left: 3px solid var(--public-site-red);
    background: var(--public-site-surface-blue);
    box-shadow: none;
}

.public-news-downloads,
.public-event-downloads,
.public-exhibition-downloads,
.public-product-downloads,
.public-sponsor-downloads {
    margin: 0;
    padding: 1rem 1rem 1rem 2.1rem;
    border: 1px solid var(--public-site-border);
    border-radius: var(--public-site-radius);
    background: var(--public-site-surface-blue);
}

.public-rich-text {
    line-height: 1.7;
}

.public-rich-text h2,
.public-rich-text h3,
.public-rich-text h4 {
    color: var(--public-site-red);
}

.public-rich-text blockquote {
    border-left: 3px solid var(--public-site-red);
    background: var(--public-site-surface-blue);
}

/* Archive, Pagination und Rücklinks */
.public-news-archive-section {
    border-top-color: var(--public-site-border);
}

.public-news-archive a,
.public-news-pagination a {
    border-radius: var(--public-site-radius-small);
}

.public-news-archive a {
    border-color: var(--public-site-border);
    color: var(--public-site-blue);
    background: #fff;
    font-size: 0.83rem;
    font-weight: 700;
}

.public-news-archive a:hover,
.public-news-archive a:focus-visible {
    border-color: var(--public-site-red);
    color: var(--public-site-red);
}

.public-news-pagination {
    padding-top: 1.2rem;
    border-top: 1px solid var(--public-site-border-soft);
}

.public-news-pagination a,
.public-events-backlink a,
.public-exhibitions-backlink a,
.public-products-backlink a,
.public-sponsors-backlink a {
    color: var(--public-site-red);
    font-weight: 700;
}

/* Galerien und Lightbox-Auslöser */
.public-news-gallery-link,
.public-event-gallery-link,
.public-exhibition-gallery-link,
.public-product-gallery-link,
.public-sponsor-gallery-link {
    border-color: var(--public-site-border);
    border-radius: var(--public-site-radius-small);
    background: var(--public-site-surface-blue);
    box-shadow: var(--public-site-shadow-soft);
}

.public-news-lightbox-panel,
.public-event-lightbox-panel,
.public-exhibition-lightbox-panel,
.public-product-lightbox-panel,
.public-sponsor-lightbox-panel {
    border: 1px solid var(--public-site-border);
    border-radius: var(--public-site-radius);
    box-shadow: 0 1rem 3rem rgba(0, 0, 0, 0.28);
}

/* Footer */
.public-site-footer {
    margin-top: 0;
    border-top: 3px solid var(--public-site-red);
    background: var(--public-site-light-blue);
}

.public-site-footer__inner {
    gap: 2.5rem;
    padding: 2.25rem 0 2rem;
}

.public-site-footer__column h2 {
    color: var(--public-site-red);
    font-size: 1.08rem;
}

.public-site-footer__column p,
.public-site-footer__navigation a {
    color: #35536b;
}

.public-site-footer__column a {
    color: var(--public-site-blue);
}

.public-site-footer__bottom {
    border-top-color: rgba(21, 61, 99, 0.2);
    background: rgba(255, 255, 255, 0.22);
}

.public-site-footer__bottom-inner {
    color: #49657b;
}

/* Responsive Feinabstimmung */
@media (max-width: 1050px) {
    .public-home-feature-card {
        border-right: 0;
        border-bottom: 1px solid var(--public-site-border-soft);
    }

    .public-home-feature-card:nth-child(odd) {
        border-right: 1px solid var(--public-site-border-soft);
    }

    .public-home-feature-card:nth-last-child(-n + 2) {
        border-bottom: 0;
    }
}

@media (max-width: 960px) {
    .public-site-header__brand-inner {
        min-height: 5.6rem;
    }

    .public-site-nav-wrap {
        background: #fff;
    }

    .public-site-nav {
        border-top: 1px solid var(--public-site-border);
        background: #fff;
        box-shadow: 0 0.5rem 1rem rgba(21, 61, 99, 0.07);
    }

    .public-site-nav__list {
        padding-top: 0.4rem;
        padding-bottom: 0.8rem;
    }

    .public-site-nav__item {
        border-bottom-color: var(--public-site-border-soft);
    }

    .public-site-nav__link {
        padding-inline: 0.3rem;
    }

    .public-site-nav__sublist,
    .public-site-nav__sublist .public-site-nav__sublist {
        border: 0;
        border-left: 2px solid var(--public-site-light-blue);
        background: #f9fbfd;
        box-shadow: none;
    }

    .public-site-nav__sublist .public-site-nav__link {
        border-left: 0;
    }

    .public-home-hero__content {
        width: min(60%, 34rem);
    }

    .public-exhibitions-home-item {
        grid-template-columns: minmax(170px, 38%) minmax(0, 1fr);
    }
}

@media (max-width: 720px) {
    body {
        background: var(--public-site-background);
    }

    .public-site-header__brand-row {
        background: linear-gradient(90deg, #fff 0%, rgba(220, 234, 247, 0.42) 100%);
    }

    .public-site-brand__logo {
        width: 2.85rem;
        height: 3.9rem;
    }

    .public-site-brand__text strong {
        font-size: 1.2rem;
    }

    .public-page-shell,
    .public-news-shell,
    .public-events-shell,
    .public-exhibitions-shell,
    .public-products-shell,
    .public-sponsors-shell {
        padding-top: 1.65rem;
        padding-bottom: 3.2rem;
    }

    .public-homepage-shell {
        padding-top: 0.8rem;
        padding-bottom: 3.2rem;
    }

    .public-page-header h1,
    .public-news-header h1,
    .public-events-header h1,
    .public-exhibitions-header h1,
    .public-products-header h1,
    .public-sponsors-header h1 {
        font-size: clamp(1.85rem, 9vw, 2.55rem);
    }

    .public-home-hero {
        border-radius: var(--public-site-radius);
    }

    .public-home-hero__image {
        aspect-ratio: 16 / 9;
    }

    .public-home-hero__content {
        padding: 1.45rem 1.15rem 1.6rem;
        background: linear-gradient(180deg, #fff 0%, var(--public-site-surface-blue) 100%);
    }

    .public-home-hero h1 {
        font-size: clamp(2rem, 10vw, 2.75rem);
    }

    .public-home-hero__lead {
        font-size: 0.98rem;
    }

    .public-home-features {
        grid-template-columns: 1fr;
        margin-bottom: 2.3rem;
    }

    .public-home-feature-card {
        min-height: 0;
        border-right: 0;
        border-bottom: 1px solid var(--public-site-border-soft);
    }

    .public-home-feature-card:last-child {
        border-bottom: 0;
    }

    .public-homepage-custom-section,
    .public-news-section,
    .public-events-section,
    .public-exhibitions-section,
    .public-products-section,
    .public-sponsors-section {
        margin-top: 2.25rem;
    }

    .public-homepage-custom-section {
        padding: 1.15rem;
    }

    .public-news-card-content,
    .public-event-card-content,
    .public-exhibition-card-content,
    .public-product-card-content,
    .public-sponsor-card-content {
        padding: 1rem;
    }

    .public-exhibitions-home-item {
        grid-template-columns: 1fr;
    }

    .public-page-block {
        padding: 1rem;
    }

    .public-page-image-block--left .public-page-figure,
    .public-page-image-block--right .public-page-figure {
        box-shadow: none;
    }

    .public-site-footer__inner {
        gap: 1.4rem;
    }
}

/* Korrekturschritt 0.9.0-15a: Referenzdesign, Farbaufbau und Altproportionen */
:root {
    --public-site-red: #960000;
    --public-site-red-dark: #720000;
    --public-site-blue: #153d63;
    --public-site-light-blue: #dceaf7;
    --public-site-text: #153d63;
    --public-site-muted: #6f7f8d;
    --public-site-border: #d6dde3;
    --public-site-border-soft: #e7edf2;
    --public-site-background: #dceaf7;
    --public-site-surface: #ffffff;
    --public-site-surface-blue: #f2f7fb;
    --public-site-shadow: 0 0.18rem 0.65rem rgba(21, 61, 99, 0.08);
    --public-site-shadow-soft: 0 0.1rem 0.35rem rgba(21, 61, 99, 0.06);
    --public-site-radius: 0.32rem;
    --public-site-radius-small: 0.22rem;
    --public-site-content-width: 1000px;
}

html {
    font: 1em/1.5 Arial, Helvetica, sans-serif;
    color: var(--public-site-text);
    background: var(--public-site-light-blue);
}

body {
    color: var(--public-site-text);
    background: var(--public-site-light-blue);
    font-size: 0.94rem;
}

p {
    margin-top: 0;
    margin-bottom: 0.5em;
}

h1,
h2,
h3,
h4 {
    margin-top: 0;
    color: var(--public-site-red);
    font-family: Georgia, 'Times New Roman', serif;
    font-weight: 600;
    line-height: 1.2;
}

h1 {
    font-size: 1.45rem;
}

h2 {
    font-size: 1.18rem;
}

h3,
h4 {
    font-size: 1rem;
}

a {
    color: var(--public-site-blue);
}

a:hover,
a:focus-visible {
    color: var(--public-site-red);
}

/* Seitenrahmen */
.public-page-shell,
.public-news-shell,
.public-events-shell,
.public-exhibitions-shell,
.public-products-shell,
.public-sponsors-shell,
.public-homepage-shell {
    width: min(calc(100% - 1.5rem), var(--public-site-content-width));
    margin: 0 auto;
    padding: 1.25rem 1rem 2.5rem;
    border-right: 1px solid rgba(150, 0, 0, 0.28);
    border-left: 1px solid rgba(150, 0, 0, 0.28);
    background: #fff;
}

.public-homepage-shell {
    padding-top: 0;
}

/* Kopfbereich nach Farb- und Aufbauvorlage */
.public-site-header {
    border-bottom: 0;
    background: var(--public-site-light-blue);
    box-shadow: none;
}

.public-site-header__top {
    border-bottom: 0;
    background: var(--public-site-light-blue);
}

.public-site-header__top-inner,
.public-site-header__brand-inner,
.public-site-nav,
.public-site-footer__inner,
.public-site-footer__bottom-inner {
    width: min(calc(100% - 1.5rem), var(--public-site-content-width));
}

.public-site-header__top-inner {
    min-height: 1.7rem;
    padding-inline: 0.65rem;
    color: var(--public-site-blue);
    font-size: 0.7rem;
}

.public-site-header__location {
    font-weight: 400;
}

.public-site-utility {
    gap: 0.25rem 0.75rem;
}

.public-site-utility a {
    color: var(--public-site-blue);
    font-weight: 400;
}

.public-site-header__brand-row {
    background: var(--public-site-light-blue);
}

.public-site-header__brand-inner {
    min-height: 5rem;
    padding: 0.35rem 0.65rem 0.55rem;
    border-right: 1px solid rgba(150, 0, 0, 0.28);
    border-left: 1px solid rgba(150, 0, 0, 0.28);
}

.public-site-brand {
    gap: 0.65rem;
}

.public-site-brand__logo {
    width: 3rem;
    height: 4.15rem;
}

.public-site-brand__text {
    gap: 0;
}

.public-site-brand__text strong {
    color: var(--public-site-red);
    font-size: 1.45rem;
    font-weight: 600;
    line-height: 1.05;
    letter-spacing: 0;
}

.public-site-brand__text span {
    color: var(--public-site-red);
    font-size: 0.82rem;
}

.public-site-nav-wrap {
    border-top: 1px solid rgba(150, 0, 0, 0.2);
    border-bottom: 1px solid rgba(150, 0, 0, 0.45);
    background: #fff;
}

.public-site-nav {
    padding-inline: 0.45rem;
    border-right: 1px solid rgba(150, 0, 0, 0.28);
    border-left: 1px solid rgba(150, 0, 0, 0.28);
}

.public-site-nav__list {
    justify-content: flex-start;
    gap: 0;
}

.public-site-nav__entry {
    gap: 0;
}

.public-site-nav__link {
    min-height: 2.35rem;
    padding: 0.45rem 0.65rem;
    border-bottom-width: 2px;
    color: var(--public-site-blue);
    font-size: 0.78rem;
    font-weight: 400;
    letter-spacing: 0;
}

.public-site-nav__submenu-toggle {
    min-width: 1.45rem;
    min-height: 2.35rem;
    padding: 0 0.18rem;
    font-size: 0.82rem;
}

.public-site-nav__sublist {
    min-width: 12.5rem;
    border: 1px solid rgba(150, 0, 0, 0.35);
    border-top: 2px solid var(--public-site-red);
    border-radius: 0 0 var(--public-site-radius-small) var(--public-site-radius-small);
    box-shadow: var(--public-site-shadow);
}

.public-site-nav__sublist .public-site-nav__link {
    min-height: 2.15rem;
    padding: 0.4rem 0.65rem;
    border-left-width: 2px;
    font-size: 0.76rem;
    font-weight: 400;
}

.public-site-nav-toggle {
    min-width: 2.35rem;
    min-height: 2.35rem;
    padding: 0.35rem 0.5rem;
    border-color: rgba(21, 61, 99, 0.35);
    border-radius: var(--public-site-radius-small);
    box-shadow: none;
}

.public-site-nav-toggle__label {
    font-size: 0.76rem;
    font-weight: 600;
}

.public-site-nav-toggle__icon span {
    width: 1.15rem;
    height: 1px;
}

/* Startseiten-Bildkopf: Zufallsbild wird über die PHP-Klasse gewählt */
.public-home-hero {
    position: relative;
    min-height: 22rem;
    overflow: hidden;
    border: 0;
    border-radius: 0;
    background-color: #f5f7f8;
    background-repeat: no-repeat;
    background-position: center;
    background-size: cover;
    box-shadow: none;
}

.public-home-hero--inside-day {
    background-image: url('../images/museum/Innen_Tag.jpg');
}

.public-home-hero--outside-night {
    background-image: url('../images/museum/Aussen_Nacht.jpg');
    background-position: center 52%;
}

.public-home-hero::before {
    display: none;
}

.public-home-hero::after {
    position: absolute;
    inset: 0;
    z-index: 0;
    display: block;
    content: '';
    background: linear-gradient(
        90deg,
        rgba(255, 255, 255, 0.96) 0%,
        rgba(255, 255, 255, 0.88) 25%,
        rgba(255, 255, 255, 0.55) 39%,
        rgba(255, 255, 255, 0.08) 58%,
        rgba(255, 255, 255, 0) 76%
    );
}

.public-home-hero__content {
    position: relative;
    z-index: 2;
    width: min(42%, 24rem);
    padding: 2rem 1.45rem 1.6rem;
}

.public-home-hero__eyebrow {
    margin-bottom: 0.55rem;
    color: var(--public-site-blue);
    font-size: 0.7rem;
    font-weight: 600;
    letter-spacing: 0.045em;
    text-transform: uppercase;
}

.public-home-hero h1 {
    max-width: 12em;
    color: var(--public-site-red);
    font-size: 1.75rem;
    font-weight: 600;
    line-height: 1.16;
    letter-spacing: 0;
}

.public-home-hero__lead {
    max-width: 28rem;
    margin-top: 0.75rem;
    color: var(--public-site-blue);
    font-size: 0.86rem;
    line-height: 1.5;
}

.public-home-hero__actions {
    gap: 0.55rem;
    margin-top: 1rem;
}

.public-home-hero__actions a,
.public-home-feature-card__link,
.public-news-backlink a,
.public-events-backlink a,
.public-exhibitions-backlink a,
.public-products-backlink a,
.public-sponsors-backlink a {
    min-height: 2rem;
    padding: 0.32rem 0.65rem;
    border-radius: var(--public-site-radius-small);
    font-size: 0.74rem;
    font-weight: 600;
}

.public-home-hero__actions a {
    border: 1px solid var(--public-site-red);
    color: #fff;
    background: var(--public-site-red);
}

.public-home-hero__actions a.is-secondary {
    border-color: var(--public-site-red);
    color: var(--public-site-red);
    background: rgba(255, 255, 255, 0.9);
}

.public-home-hero__credit {
    right: 0.4rem;
    bottom: 0.35rem;
    z-index: 3;
    margin: 0;
    padding: 0.1rem 0.3rem;
    color: #fff;
    background: rgba(21, 61, 99, 0.7);
    font-size: 0.62rem;
}

/* Schnellzugriffe nach dem Kartenaufbau der Designvorlage */
.public-home-features {
    grid-template-columns: repeat(4, minmax(0, 1fr));
    gap: 0;
    margin: 0 0 1.55rem;
    border: 1px solid var(--public-site-border);
    border-top: 0;
    border-radius: 0;
    box-shadow: none;
}

.public-home-feature-card {
    min-height: 7.25rem;
    padding: 0.8rem 0.85rem 0.75rem;
    border-right: 1px solid var(--public-site-border-soft);
}

.public-home-feature-card::before {
    width: 1.6rem;
    height: 1px;
    margin-bottom: 0.45rem;
}

.public-home-feature-card h2 {
    color: var(--public-site-red);
    font-size: 1rem;
}

.public-home-feature-card p {
    margin-top: 0.35rem;
    color: var(--public-site-blue);
    font-size: 0.78rem;
    line-height: 1.45;
}

.public-home-feature-card__link {
    min-height: auto;
    margin-top: 0.3rem;
    padding: 0;
    font-size: 0.72rem;
}

/* Seitentitel, Breadcrumbs und allgemeine Abstände */
.public-page-breadcrumb,
.public-news-breadcrumb,
.public-events-breadcrumb,
.public-exhibitions-breadcrumb,
.public-products-breadcrumb,
.public-sponsors-breadcrumb {
    gap: 0.2rem 0.35rem;
    margin-bottom: 0.75rem;
    font-size: 0.68rem;
}

.public-page-breadcrumb a,
.public-news-breadcrumb a,
.public-events-breadcrumb a,
.public-exhibitions-breadcrumb a,
.public-products-breadcrumb a,
.public-sponsors-breadcrumb a {
    font-weight: 400;
}

.public-page-header,
.public-news-header,
.public-events-header,
.public-exhibitions-header,
.public-products-header,
.public-sponsors-header {
    margin-bottom: 1.1rem;
    padding-bottom: 0.45rem;
}

.public-page-header::after,
.public-news-header::after,
.public-events-header::after,
.public-exhibitions-header::after,
.public-products-header::after,
.public-sponsors-header::after {
    width: 2.2rem;
    height: 1px;
    margin-top: 0.45rem;
}

.public-page-header h1,
.public-news-header h1,
.public-events-header h1,
.public-exhibitions-header h1,
.public-products-header h1,
.public-sponsors-header h1 {
    color: var(--public-site-red);
    font-size: 1.45rem;
    letter-spacing: 0;
}

.public-homepage-custom-section,
.public-news-section,
.public-events-section,
.public-exhibitions-section,
.public-products-section,
.public-sponsors-section {
    margin-top: 1.55rem;
}

.public-homepage-custom-section {
    padding: 0.85rem 0.95rem;
    border: 1px solid var(--public-site-border);
    border-left: 2px solid var(--public-site-red);
    border-radius: var(--public-site-radius-small);
    box-shadow: none;
}

.public-homepage-custom-section__header,
.public-news-section > .public-news-header,
.public-events-section > .public-events-header,
.public-exhibitions-section > .public-exhibitions-header {
    margin-bottom: 0.75rem;
    padding-bottom: 0.4rem;
}

.public-homepage-custom-section__header h2,
.public-news-section h2,
.public-events-section h2,
.public-exhibitions-section h2,
.public-products-section h2,
.public-sponsors-section h2,
.public-sponsors-highlighted > h2 {
    color: var(--public-site-red);
    font-size: 1.12rem;
}

.public-sponsors-section > h3,
.public-page-heading--h2 {
    font-size: 1.05rem;
}

.public-page-heading--h3,
.public-page-heading--h4 {
    font-size: 0.98rem;
}

/* Karten allgemein: filigraner, kompakter */
.public-news-list.public-layout-grid,
.public-events-list.public-layout-grid,
.public-exhibitions-list.public-layout-grid,
.public-products-list.public-layout-grid,
.public-sponsors-list.public-layout-grid,
.public-events-home-list.public-layout-grid,
.public-exhibitions-home-list.public-layout-grid,
.public-page-content.public-layout-grid {
    gap: 0.7rem;
}

.public-news-card,
.public-event-card,
.public-exhibition-card,
.public-product-card,
.public-sponsor-card,
.public-events-home-item,
.public-exhibitions-home-item,
.public-flexible-box,
.public-page-block {
    border: 1px solid var(--public-site-border);
    border-radius: var(--public-site-radius-small);
    box-shadow: none;
}

.public-news-card-image,
.public-event-card-image,
.public-exhibition-card-image,
.public-product-card-image,
.public-sponsor-card-image {
    border-bottom-color: var(--public-site-border-soft);
    background: #f7fafc;
}

.public-news-card-content,
.public-event-card-content,
.public-exhibition-card-content,
.public-product-card-content,
.public-sponsor-card-content {
    padding: 0.68rem 0.72rem 0.75rem;
}

.public-news-card h2,
.public-news-card h3,
.public-event-card h3,
.public-exhibition-card h3,
.public-product-card h3,
.public-sponsor-card h3,
.public-events-home-item h3,
.public-exhibitions-home-item h3 {
    color: var(--public-site-blue);
    font-size: 0.98rem;
    line-height: 1.25;
}

.public-news-date,
.public-event-date,
.public-exhibition-date,
.public-sponsor-date,
.public-sponsor-meta,
.public-product-assortment,
.public-product-category-label {
    margin-bottom: 0.3rem;
    font-size: 0.68rem;
    font-weight: 400;
}

.public-news-card-content p,
.public-event-card-content p,
.public-exhibition-card-content p,
.public-product-card-content p,
.public-sponsor-card-content p,
.public-events-home-item p,
.public-exhibitions-home-item p {
    font-size: 0.78rem;
    line-height: 1.45;
}

.public-product-price {
    font-size: 0.9rem;
}

.public-product-availability {
    font-size: 0.75rem;
}

.public-events-home-item,
.public-exhibitions-home-item {
    padding: 0.75rem;
}

.public-exhibitions-home-item {
    grid-template-columns: minmax(145px, 30%) minmax(0, 1fr);
    gap: 0.75rem;
}

/* Freie Boxen und Inhaltsseiten */
.public-flexible-row {
    gap: 0.7rem;
}

.public-flexible-box,
.public-page-block {
    padding: 0.75rem 0.82rem;
}

.public-page-text,
.public-page-image-text,
.public-page-download__description,
.public-rich-text,
.public-news-body,
.public-event-body,
.public-exhibition-body,
.public-product-body,
.public-sponsor-body {
    font-size: 0.88rem;
    line-height: 1.55;
}

.public-news-summary,
.public-event-summary,
.public-exhibition-summary,
.public-product-summary,
.public-sponsor-summary,
.public-products-intro,
.public-product-category-description {
    color: var(--public-site-blue);
    font-size: 0.9rem;
    line-height: 1.55;
}

.public-page-figure,
.public-news-featured-image,
.public-event-featured-image,
.public-exhibition-featured-image,
.public-product-featured-image,
.public-sponsor-featured-image {
    border-radius: var(--public-site-radius-small);
    box-shadow: none;
}

.public-page-figure figcaption,
.public-news-featured-image figcaption,
.public-event-featured-image figcaption,
.public-exhibition-featured-image figcaption,
.public-product-featured-image figcaption,
.public-sponsor-featured-image figcaption {
    padding: 0.35rem 0.5rem;
    font-size: 0.68rem;
}

.public-page-download,
.public-products-inquiry,
.public-events-past,
.public-exhibitions-past,
.public-exhibitions-legacy-archive {
    padding: 0.75rem 0.85rem;
    border-width: 1px;
    border-radius: var(--public-site-radius-small);
    background: var(--public-site-surface-blue);
}

.public-page-download {
    border-left: 2px solid var(--public-site-red);
}

.public-news-downloads,
.public-event-downloads,
.public-exhibition-downloads,
.public-product-downloads,
.public-sponsor-downloads {
    padding: 0.65rem 0.75rem 0.65rem 1.6rem;
    border-radius: var(--public-site-radius-small);
    font-size: 0.82rem;
}

.public-rich-text h2 {
    font-size: 1.1rem;
}

.public-rich-text h3,
.public-rich-text h4 {
    font-size: 1rem;
}

.public-rich-text blockquote {
    margin: 0.75rem 0;
    padding: 0.5rem 0.75rem;
    border-left-width: 2px;
}

/* Archive, Kategorien und Pagination */
.public-news-archive-section {
    margin-top: 1.4rem;
    padding-top: 0.7rem;
}

.public-news-archive-section h2 {
    font-size: 1rem;
}

.public-news-archive,
.public-news-pagination {
    gap: 0.35rem;
}

.public-news-archive a,
.public-news-pagination a {
    min-height: 1.7rem;
    padding: 0.18rem 0.5rem;
    border-radius: var(--public-site-radius-small);
    font-size: 0.7rem;
    font-weight: 400;
}

.public-news-pagination {
    margin-top: 1.2rem;
    padding-top: 0.7rem;
}

/* Galerie-Auslöser bleiben bewusst klein */
.public-news-gallery,
.public-event-gallery,
.public-exhibition-gallery,
.public-product-gallery,
.public-sponsor-gallery {
    gap: 0.55rem;
}

.public-news-gallery-item,
.public-event-gallery-item,
.public-exhibition-gallery-item,
.public-product-gallery-item,
.public-sponsor-gallery-item {
    max-width: 120px;
}

.public-news-gallery-link,
.public-event-gallery-link,
.public-exhibition-gallery-link,
.public-product-gallery-link,
.public-sponsor-gallery-link {
    border-radius: var(--public-site-radius-small);
    box-shadow: none;
}

/* Footer entsprechend Farbvorlage */
.public-site-footer {
    margin-top: 0;
    border-top: 2px solid var(--public-site-red);
    background: var(--public-site-light-blue);
}

.public-site-footer__inner {
    gap: 1.3rem;
    padding: 1.15rem 0.65rem 1rem;
    border-right: 1px solid rgba(150, 0, 0, 0.28);
    border-left: 1px solid rgba(150, 0, 0, 0.28);
}

.public-site-footer__column h2 {
    color: var(--public-site-red);
    font-size: 0.88rem;
}

.public-site-footer__column p,
.public-site-footer__navigation a {
    margin-bottom: 0.25rem;
    color: var(--public-site-blue);
    font-size: 0.7rem;
    line-height: 1.4;
}

.public-site-footer__navigation {
    gap: 0.2rem;
}

.public-site-footer__legal-section {
    margin-top: 0.75rem;
    padding-top: 0.65rem;
    border-top: 1px solid var(--public-site-red);
}

.public-site-footer__legal-section h2 {
    margin-bottom: 0.3rem;
}

.public-site-footer__legal-section p {
    margin: 0;
}

.public-site-footer__legal-section a {
    text-decoration: underline;
    text-underline-offset: 0.12em;
}

.public-site-footer__legal-section a:hover,
.public-site-footer__legal-section a:focus-visible {
    color: var(--public-site-red);
}

.public-site-footer__bottom {
    border-top: 1px solid rgba(150, 0, 0, 0.2);
    background: var(--public-site-light-blue);
}

.public-site-footer__bottom-inner {
    min-height: 2rem;
    padding: 0.35rem 0.65rem;
    color: var(--public-site-blue);
    font-size: 0.64rem;
}

/* Tablet */
@media (max-width: 1050px) {
    .public-home-feature-card,
    .public-home-feature-card:nth-child(odd),
    .public-home-feature-card:nth-last-child(-n + 2) {
        min-height: 0;
        border-right: 1px solid var(--public-site-border-soft);
        border-bottom: 0;
    }
}

@media (max-width: 960px) {
    .public-site-header__top {
        display: none;
    }

    .public-site-header__brand-inner {
        min-height: 4.4rem;
        padding-block: 0.3rem;
    }

    .public-site-brand__logo {
        width: 2.45rem;
        height: 3.35rem;
    }

    .public-site-brand__text strong {
        font-size: 1.12rem;
    }

    .public-site-brand__text span {
        font-size: 0.7rem;
    }

    .public-site-nav {
        padding-inline: 0.65rem;
        border-top: 0;
        background: #fff;
        box-shadow: var(--public-site-shadow);
    }

    .public-site-nav__list {
        padding: 0.2rem 0 0.45rem;
    }

    .public-site-nav__link {
        min-height: 2.15rem;
        padding: 0.38rem 0.2rem;
        font-size: 0.78rem;
    }

    .public-site-nav__sublist,
    .public-site-nav__sublist .public-site-nav__sublist {
        border: 0;
        border-left: 2px solid var(--public-site-light-blue);
        background: #f8fbfd;
        box-shadow: none;
    }

    .public-home-hero__content {
        width: min(50%, 23rem);
    }

    .public-home-features {
        grid-template-columns: repeat(2, minmax(0, 1fr));
    }

    .public-home-feature-card:nth-child(odd) {
        border-right: 1px solid var(--public-site-border-soft);
    }

    .public-home-feature-card:nth-child(-n + 2) {
        border-bottom: 1px solid var(--public-site-border-soft);
    }
}

/* Mobil: Bild oben, Text darunter wie in der Aufbauvorlage */
@media (max-width: 720px) {
    body {
        font-size: 0.92rem;
    }

    .public-page-shell,
    .public-news-shell,
    .public-events-shell,
    .public-exhibitions-shell,
    .public-products-shell,
    .public-sponsors-shell,
    .public-homepage-shell {
        width: min(calc(100% - 0.8rem), var(--public-site-content-width));
        padding: 0.9rem 0.75rem 2rem;
    }

    .public-homepage-shell {
        padding-top: 0;
    }

    .public-site-header__brand-inner,
    .public-site-nav,
    .public-site-footer__inner,
    .public-site-footer__bottom-inner {
        width: min(calc(100% - 0.8rem), var(--public-site-content-width));
    }

    .public-site-header__brand-inner {
        border-right: 1px solid rgba(150, 0, 0, 0.28);
        border-left: 1px solid rgba(150, 0, 0, 0.28);
    }

    .public-site-brand__text strong {
        max-width: 12rem;
        font-size: 1rem;
    }

    .public-site-nav-toggle__label {
        display: none;
    }

    .public-home-hero {
        min-height: 0;
        overflow: visible;
        background-image: none;
        background-color: #fff;
    }

    .public-home-hero::before {
        display: block;
        width: 100%;
        aspect-ratio: 16 / 9;
        content: '';
        background-repeat: no-repeat;
        background-position: center;
        background-size: cover;
    }

    .public-home-hero--inside-day::before {
        background-image: url('../images/museum/Innen_Tag.jpg');
    }

    .public-home-hero--outside-night::before {
        background-image: url('../images/museum/Aussen_Nacht.jpg');
        background-position: center 52%;
    }

    .public-home-hero::after {
        display: none;
    }

    .public-home-hero__content {
        width: 100%;
        padding: 0.9rem 0.8rem 0.95rem;
        background: #fff;
    }

    .public-home-hero__eyebrow {
        margin-bottom: 0.35rem;
        font-size: 0.62rem;
    }

    .public-home-hero h1 {
        font-size: 1.35rem;
    }

    .public-home-hero__lead {
        margin-top: 0.5rem;
        font-size: 0.78rem;
    }

    .public-home-hero__actions {
        margin-top: 0.7rem;
    }

    .public-home-hero__credit {
        top: auto;
        right: 0.35rem;
        bottom: auto;
        transform: translateY(calc(-100% - 0.3rem));
        font-size: 0.56rem;
    }

    .public-home-features {
        grid-template-columns: 1fr;
        margin-bottom: 1.2rem;
    }

    .public-home-feature-card,
    .public-home-feature-card:nth-child(odd),
    .public-home-feature-card:nth-last-child(-n + 2) {
        border-right: 0;
        border-bottom: 1px solid var(--public-site-border-soft);
    }

    .public-home-feature-card:last-child {
        border-bottom: 0;
    }

    .public-page-header h1,
    .public-news-header h1,
    .public-events-header h1,
    .public-exhibitions-header h1,
    .public-products-header h1,
    .public-sponsors-header h1 {
        font-size: 1.3rem;
    }

    .public-homepage-custom-section,
    .public-news-section,
    .public-events-section,
    .public-exhibitions-section,
    .public-products-section,
    .public-sponsors-section {
        margin-top: 1.2rem;
    }

    .public-homepage-custom-section {
        padding: 0.75rem;
    }

    .public-news-card-content,
    .public-event-card-content,
    .public-exhibition-card-content,
    .public-product-card-content,
    .public-sponsor-card-content,
    .public-page-block,
    .public-flexible-box {
        padding: 0.7rem;
    }

    .public-exhibitions-home-item {
        grid-template-columns: 1fr;
    }

    .public-site-footer__inner {
        gap: 0.8rem;
    }
}


/* Korrekturschritt 0.9.0-15b: Rahmen reduzieren, Inhaltsbreite öffnen, Footer und Startseiten-Icons */
:root {
    --public-site-content-width: 1180px;
}

.public-page-shell,
.public-news-shell,
.public-events-shell,
.public-exhibitions-shell,
.public-products-shell,
.public-sponsors-shell,
.public-homepage-shell {
    width: min(calc(100% - 1.5rem), var(--public-site-content-width));
    padding-right: 0;
    padding-left: 0;
    border-right: 0;
    border-left: 0;
}

.public-site-header__top-inner,
.public-site-header__brand-inner,
.public-site-nav,
.public-site-footer__inner,
.public-site-footer__bottom-inner {
    width: min(calc(100% - 1.5rem), var(--public-site-content-width));
}

.public-site-header__brand-inner,
.public-site-nav {
    border-right: 0;
    border-left: 0;
}

.public-homepage-custom-section {
    padding: 0;
    border: 0;
    border-radius: 0;
    background: transparent;
    box-shadow: none;
}

.public-page-content.public-layout-grid {
    gap: 0.5rem 1.2rem;
}

.public-page-block {
    display: flow-root;
    padding: 0.2rem 0;
    border: 0;
    border-radius: 0;
    background: transparent;
    box-shadow: none;
}

.public-flexible-box {
    border: 0;
    background: var(--public-site-surface-blue);
    box-shadow: var(--public-site-shadow-soft);
}

/* Korrekturschritt 0.9.0-15lfb:
   Startseitenboxen und Medienrahmen mit feinen Museumsrot-Linien
   entsprechend der bestätigten historischen Gestaltungsreferenz. */
.public-homepage-flexible-row .public-flexible-box {
    border: 0;
    border-bottom: 1px solid var(--public-site-red);
    border-radius: 0;
    background: var(--public-site-surface);
    box-shadow: none;
}

.public-homepage-flexible-row .public-flexible-box__media {
    overflow: hidden;
    border: 0;
    border-left: 1px solid var(--public-site-red);
    border-bottom: 1px solid var(--public-site-red);
    border-radius: 0.2rem;
    background: #fff;
}

.public-homepage-flexible-row .public-flexible-box__media figcaption {
    gap: 0.1rem;
    margin: 0;
    padding: 0.35rem 0.45rem 0.4rem;
    border: 0;
    color: var(--public-site-blue);
    background: #fff;
}

.public-page-figure,
.public-news-featured-image,
.public-event-featured-image,
.public-exhibition-featured-image,
.public-product-featured-image,
.public-sponsor-featured-image {
    border: 0;
    background: transparent;
    box-shadow: none;
}

.public-page-figure figcaption,
.public-news-featured-image figcaption,
.public-event-featured-image figcaption,
.public-exhibition-featured-image figcaption,
.public-product-featured-image figcaption,
.public-sponsor-featured-image figcaption {
    border: 0;
}

.public-home-features {
    gap: 0;
    margin-top: 0;
    border: 0;
    border-bottom: 1px solid var(--public-site-border-soft);
    background: #fff;
}

.public-home-feature-card {
    position: relative;
    min-height: 8rem;
    padding: 1rem 1.05rem 0.9rem;
    border: 0;
    border-right: 1px solid var(--public-site-border-soft);
    background: transparent;
    box-shadow: none;
}

.public-home-feature-card:last-child {
    border-right: 0;
}

.public-home-feature-card::before {
    display: none;
}

.public-home-feature-card__icon {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    width: 2.15rem;
    height: 2.15rem;
    margin-bottom: 0.45rem;
    color: var(--public-site-red);
}

.public-home-feature-card__icon svg {
    width: 1.85rem;
    height: 1.85rem;
}

.public-home-feature-card h2 {
    margin-bottom: 0.25rem;
}

/* Footer: Aufbau nach der bestätigten Designvorlage, Farbwelt nach Museumsfarben */
.public-site-footer {
    margin-top: 0;
    border-top: 2px solid var(--public-site-red);
    background: var(--public-site-light-blue);
}

.public-site-footer__inner {
    display: grid;
    grid-template-columns: minmax(0, 1.45fr) minmax(0, 1.35fr) minmax(0, 1.55fr);
    gap: 0;
    align-items: stretch;
    padding: 0.9rem 0;
    border: 0;
}

.public-site-footer__column {
    min-width: 0;
    padding: 0.1rem 1rem;
}

.public-site-footer__column:first-child {
    padding-left: 0;
}

.public-site-footer__column + .public-site-footer__column {
    border-left: 1px solid rgba(21, 61, 99, 0.18);
}

.public-site-footer__column h2 {
    margin: 0 0 0.35rem;
    color: var(--public-site-red);
    font-size: 0.8rem;
    font-weight: 600;
}

.public-site-footer__column p {
    margin: 0.1rem 0;
    color: var(--public-site-blue);
    font-size: 0.66rem;
    line-height: 1.4;
}

.public-site-footer__museum strong {
    font-weight: 600;
}

.public-site-footer__hours-group + .public-site-footer__hours-group {
    margin-top: 0.45rem;
}

.public-site-footer__hours-group h3 {
    margin: 0 0 0.12rem;
    color: var(--public-site-blue);
    font-size: 0.68rem;
    font-weight: 700;
    line-height: 1.3;
}

.public-site-footer__column a {
    color: var(--public-site-blue);
    text-decoration: none;
}

.public-site-footer__column a:hover,
.public-site-footer__column a:focus-visible {
    color: var(--public-site-red);
    text-decoration: underline;
}

.public-site-footer__donation-content {
    display: flex;
    align-items: flex-start;
    justify-content: space-between;
    gap: 1rem;
}

.public-site-footer__donation-data {
    min-width: 0;
}

.public-site-footer__qr {
    flex: 0 0 auto;
    margin: 0;
    padding: 0;
}

.public-site-footer__qr img {
    display: block;
    width: 9.4rem;
    height: 9.4rem;
    object-fit: contain;
    border: 1px solid rgba(21, 61, 99, 0.16);
    background: #fff;
}

.public-site-footer__bottom {
    border-top: 0;
    background: var(--public-site-light-blue);
}

.public-site-footer__bottom-inner {
    border-top: 1px solid rgba(21, 61, 99, 0.16);
}

.public-site-footer__bottom-inner {
    min-height: 1.8rem;
    padding: 0.3rem 0;
}

.public-site-footer__legal {
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    gap: 0.35rem 0.75rem;
}

.public-site-footer__legal a,
.public-site-footer__legal span {
    color: var(--public-site-blue);
    font-size: inherit;
    text-decoration: none;
}

.public-site-footer__legal a:hover,
.public-site-footer__legal a:focus-visible {
    color: var(--public-site-red);
    text-decoration: underline;
}

@media (max-width: 900px) {
    .public-site-footer__inner {
        grid-template-columns: repeat(2, minmax(0, 1fr));
        row-gap: 0.85rem;
    }

    .public-site-footer__column,
    .public-site-footer__column:first-child {
        padding: 0.2rem 0.8rem;
    }

    .public-site-footer__column:nth-child(odd) {
        border-left: 0;
    }

    .public-site-footer__donation-content {
        justify-content: flex-start;
    }
}

@media (max-width: 720px) {
    .public-page-shell,
    .public-news-shell,
    .public-events-shell,
    .public-exhibitions-shell,
    .public-products-shell,
    .public-sponsors-shell,
    .public-homepage-shell {
        width: min(calc(100% - 0.8rem), var(--public-site-content-width));
        padding-right: 0.75rem;
        padding-left: 0.75rem;
    }

    .public-home-feature-card,
    .public-home-feature-card:nth-child(odd),
    .public-home-feature-card:nth-last-child(-n + 2) {
        padding-inline: 0.85rem;
        border-right: 0;
    }

    .public-home-feature-card__icon {
        width: 1.9rem;
        height: 1.9rem;
    }

    .public-home-feature-card__icon svg {
        width: 1.6rem;
        height: 1.6rem;
    }

    .public-site-footer__inner {
        grid-template-columns: 1fr;
        padding: 0.75rem 0;
    }

    .public-site-footer__column,
    .public-site-footer__column:first-child {
        padding: 0.45rem 0;
        border-left: 0;
        border-bottom: 1px solid rgba(21, 61, 99, 0.14);
    }

    .public-site-footer__donation {
        border-bottom: 0;
    }

    .public-site-footer__donation-content {
        flex-wrap: wrap;
        justify-content: flex-start;
    }

    .public-site-footer__bottom-inner {
        align-items: flex-start;
        flex-direction: column;
    }
}


/* Korrekturschritt 0.9.0-15c: Bildposition unterhalb des Textes. */
.public-flexible-box--image-bottom {
    display: flex;
    flex-direction: column;
}

.public-flexible-box--image-bottom .public-flexible-box__body {
    order: 1;
}

.public-flexible-box--image-bottom .public-flexible-box__media {
    order: 2;
    margin: 1rem 0 0;
}


/* Korrekturschritt 0.9.0-15d: gleichmaessiger Innenabstand der oeffentlichen Inhaltsflaeche. */
@media (min-width: 721px) {
    .public-homepage-shell {
        padding-right: 1rem;
        padding-left: 1rem;
    }
}

/* Korrekturschritt 0.9.0-15e: Ueberschriftengroessen nach dem bestaetigten Altbestand. */
h1 {
    font-size: 1.3em !important;
}

h2 {
    font-size: 1.1em !important;
}

h3,
h4 {
    font-size: 1em !important;
}

/* Korrekturschritt 0.9.0-15f: Seiteninnenabstand und bündiger Startseiten-Bildkopf. */
@media (min-width: 721px) {
    .public-page-shell,
    .public-news-shell,
    .public-events-shell,
    .public-exhibitions-shell,
    .public-products-shell,
    .public-sponsors-shell,
    .public-homepage-shell {
        padding-right: 1.5rem;
        padding-left: 1.5rem;
    }

    .public-home-hero {
        width: calc(100% + 3rem);
        margin-right: -1.5rem;
        margin-left: -1.5rem;
    }
}

@media (max-width: 720px) {
    .public-page-shell,
    .public-news-shell,
    .public-events-shell,
    .public-exhibitions-shell,
    .public-products-shell,
    .public-sponsors-shell,
    .public-homepage-shell {
        padding-right: 1rem;
        padding-left: 1rem;
    }

    .public-home-hero {
        width: calc(100% + 2rem);
        margin-right: -1rem;
        margin-left: -1rem;
    }
}

/* Korrekturschritt 0.9.0-15g: Boxbreiten 1/3, 2/3, 1/1 und volle Textbreite in breiten Bereichen. */
.public-products-intro,
.public-product-category-description {
    width: 100%;
    max-width: none;
}

.public-layout-width--large .public-page-text,
.public-layout-width--large .public-page-image-text,
.public-layout-width--large .public-rich-text {
    width: 100%;
    max-width: none;
}


/* Korrekturschritt 0.9.0-15h:
   unnötige Textbreiten entfernt, Überschriftenabstände vereinheitlicht,
   flexible Produktbildpositionen und Kräuterladen-Textbilder ergänzt. */

/* Redaktioneller Text soll die tatsächlich verfügbare Box-/Seitenbreite nutzen.
   Technisch sinnvolle Begrenzungen für Bilder, Galerien, Navigation und Lightbox bleiben bestehen. */
.public-news-detail,
.public-event-detail,
.public-exhibition-detail,
.public-product-detail,
.public-sponsor-detail,
.public-page,
.public-news-summary,
.public-event-summary,
.public-exhibition-summary,
.public-product-summary,
.public-sponsor-summary,
.public-products-intro,
.public-product-category-description,
.public-news-body,
.public-event-body,
.public-exhibition-body,
.public-product-body,
.public-sponsor-body,
.public-page-content,
.public-exhibitions-archive-intro {
    width: 100%;
    max-width: none;
}

/* Einheitliche Abstände der Überschriften im öffentlichen Bereich. */
.public-page-header h1,
.public-news-header h1,
.public-events-header h1,
.public-exhibitions-header h1,
.public-products-header h1,
.public-sponsors-header h1 {
    margin: 0 0 0.75rem !important;
}

.public-homepage-custom-section__header h2,
.public-news-section > h2,
.public-events-section > h2,
.public-exhibitions-section > h2,
.public-products-section > h2,
.public-sponsors-section > h2,
.public-sponsors-highlighted > h2,
.public-page-heading--h2 {
    margin: 1.35rem 0 0.7rem !important;
}

.public-page-heading--h3,
.public-page-heading--h4,
.public-rich-text h2,
.public-rich-text h3,
.public-rich-text h4 {
    margin-top: 1.15rem !important;
    margin-bottom: 0.55rem !important;
}

.public-rich-text > h2:first-child,
.public-rich-text > h3:first-child,
.public-rich-text > h4:first-child {
    margin-top: 0 !important;
}

.public-news-card h2,
.public-news-card h3,
.public-event-card h3,
.public-exhibition-card h3,
.public-product-card h3,
.public-sponsor-card h3,
.public-events-home-item h3,
.public-exhibitions-home-item h3 {
    margin: 0 0 0.4rem !important;
}

.public-products-section {
    margin-top: 1.6rem;
}

/* Produktbilder bleiben in der bisherigen Kartenstruktur; nur die gewünschte Position ist variabel. */
.public-product-card--image-left,
.public-product-card--image-right {
    display: grid;
    grid-template-columns: minmax(96px, 30%) minmax(0, 1fr);
    align-items: start;
    gap: 0.9rem;
}

.public-product-card--image-right {
    grid-template-columns: minmax(0, 1fr) minmax(96px, 30%);
}

.public-product-card--image-right .public-product-card-content {
    grid-column: 1;
    grid-row: 1;
}

.public-product-card--image-right .public-product-card-image {
    grid-column: 2;
    grid-row: 1;
}

.public-product-card--image-top,
.public-product-card--image-bottom {
    display: flex;
    flex-direction: column;
    gap: 0.75rem;
}

.public-product-card--image-top .public-product-card-image,
.public-product-card--image-bottom .public-product-card-image {
    width: 100%;
    max-width: none;
}

.public-product-card--image-top .public-product-card-image img,
.public-product-card--image-bottom .public-product-card-image img {
    width: 100%;
    max-height: 15rem;
    object-fit: contain;
}

.public-product-card--image-bottom .public-product-card-content {
    order: 1;
}

.public-product-card--image-bottom .public-product-card-image {
    order: 2;
}

.public-product-card--without-image {
    display: block;
}

.public-product-card--without-image .public-product-card-content {
    width: 100%;
}

/* Kräuterladen-Texte mit optionalem Bild aus der Medienverwaltung. */
.public-herb-text-block {
    width: 100%;
    margin: 0;
}

.public-herb-text-block__content {
    width: 100%;
    max-width: none;
}

.public-herb-text-block__media {
    margin: 0;
}

.public-herb-text-block__media img {
    display: block;
    max-width: 100%;
    height: auto;
}

.public-herb-text-block__media figcaption {
    display: grid;
    gap: 0.15rem;
    margin-top: 0.35rem;
    color: var(--public-site-muted);
    font-size: 0.8rem;
}

.public-herb-text-block--image-top,
.public-herb-text-block--image-bottom {
    display: flex;
    flex-direction: column;
    gap: 0.8rem;
}

.public-herb-text-block--image-top .public-herb-text-block__media,
.public-herb-text-block--image-bottom .public-herb-text-block__media {
    width: min(100%, 34rem);
}

.public-herb-text-block--image-bottom .public-herb-text-block__content {
    order: 1;
}

.public-herb-text-block--image-bottom .public-herb-text-block__media {
    order: 2;
}

.public-herb-text-block--image-left,
.public-herb-text-block--image-right {
    display: grid;
    grid-template-columns: minmax(160px, 32%) minmax(0, 1fr);
    gap: 1rem;
    align-items: start;
}

.public-herb-text-block--image-right {
    grid-template-columns: minmax(0, 1fr) minmax(160px, 32%);
}

.public-herb-text-block--image-right .public-herb-text-block__content {
    grid-column: 1;
    grid-row: 1;
}

.public-herb-text-block--image-right .public-herb-text-block__media {
    grid-column: 2;
    grid-row: 1;
}

@media (max-width: 720px) {
    .public-product-card--image-left,
    .public-product-card--image-right,
    .public-herb-text-block--image-left,
    .public-herb-text-block--image-right {
        grid-template-columns: 1fr;
    }

    .public-product-card--image-right .public-product-card-content,
    .public-product-card--image-right .public-product-card-image,
    .public-herb-text-block--image-right .public-herb-text-block__content,
    .public-herb-text-block--image-right .public-herb-text-block__media {
        grid-column: 1;
        grid-row: auto;
    }
}

/* Korrekturschritt 0.9.0-15i: Startseite – Kopfbereich nach freigegebener Aufbauvorlage. */
.public-site-header {
    background: var(--public-site-light-blue);
}

.public-site-header__top,
.public-site-header__brand-row {
    background: var(--public-site-light-blue);
}

.public-site-header__top-inner,
.public-site-header__brand-inner,
.public-site-nav {
    width: min(calc(100% - 1.5rem), var(--public-site-content-width));
}

.public-site-header__top-inner {
    min-height: 1.65rem;
    padding-inline: 0.65rem;
    font-size: 0.68rem;
}

.public-site-header__brand-inner {
    min-height: 4.55rem;
    padding: 0.3rem 0.65rem 0.45rem;
}

.public-site-brand {
    gap: 0.7rem;
}

.public-site-brand__logo {
    width: 2.8rem;
    height: 3.85rem;
}

.public-site-brand__text strong {
    color: var(--public-site-red);
    font-size: 1.35rem;
    font-weight: 600;
    line-height: 1.05;
}

.public-site-brand__text span {
    color: var(--public-site-red);
    font-size: 0.75rem;
}

.public-site-nav-wrap {
    border-top: 1px solid rgba(21, 61, 99, 0.12);
    border-bottom: 1px solid rgba(150, 0, 0, 0.35);
    background: #fff;
}

.public-site-nav {
    padding-inline: 0.45rem;
}

.public-site-nav__link {
    min-height: 2.35rem;
    padding: 0.45rem 0.65rem;
    font-size: 0.78rem;
    font-weight: 400;
}

.public-site-nav__submenu-toggle {
    min-height: 2.35rem;
}

/* Das Zufallsbild schließt direkt an die Navigation an und füllt die Seitenbreite. */
.public-home-hero {
    min-height: 18.25rem;
    margin-top: 0;
    border: 0;
    border-radius: 0;
    box-shadow: none;
}

.public-home-hero::after {
    background: linear-gradient(
        90deg,
        rgba(255, 255, 255, 0.97) 0%,
        rgba(255, 255, 255, 0.90) 21%,
        rgba(255, 255, 255, 0.64) 34%,
        rgba(255, 255, 255, 0.18) 51%,
        rgba(255, 255, 255, 0) 67%
    );
}

.public-home-hero__content {
    width: min(40%, 24rem);
    padding: 1.7rem 1.45rem 1.45rem;
}

/* In der gewählten Vorlage steht über der Hauptüberschrift keine zusätzliche Zeile. */
.public-home-hero__eyebrow {
    display: none;
}

.public-home-hero h1 {
    max-width: 16em;
    margin: 0;
    color: var(--public-site-red);
    font-size: 1.3em !important;
    line-height: 1.16;
}

.public-home-hero__lead {
    max-width: 25rem;
    margin-top: 0.75rem;
    font-size: 0.84rem;
    line-height: 1.45;
}

.public-home-hero__actions {
    margin-top: 0.9rem;
}

.public-home-hero__actions a {
    min-height: 2rem;
    padding: 0.34rem 0.7rem;
    font-size: 0.74rem;
}

.public-home-hero__credit {
    right: 0.45rem;
    bottom: 0.35rem;
    font-size: 0.6rem;
}

/* Schnellzugriffe direkt unter dem Bild als kompakte horizontale Informationsleiste. */
.public-home-features {
    grid-template-columns: repeat(4, minmax(0, 1fr));
    gap: 0;
    margin: 0 0 1.35rem;
    padding: 0.55rem 0;
    border: 1px solid rgba(21, 61, 99, 0.12);
    border-top: 0;
    border-radius: 0 0 var(--public-site-radius-small) var(--public-site-radius-small);
    background: #fff;
    box-shadow: var(--public-site-shadow-soft);
}

.public-home-feature-card {
    display: grid;
    grid-template-columns: 2.1rem minmax(0, 1fr);
    grid-template-areas:
        'icon title'
        'icon text'
        'icon link';
    align-content: center;
    min-height: 4.3rem;
    padding: 0.3rem 0.85rem;
    border: 0;
    border-right: 1px solid rgba(21, 61, 99, 0.12);
    background: transparent;
    box-shadow: none;
}

.public-home-feature-card:last-child {
    border-right: 0;
}

.public-home-feature-card__icon {
    grid-area: icon;
    align-self: center;
    width: 1.65rem;
    height: 1.65rem;
    margin: 0;
    color: var(--public-site-blue);
}

.public-home-feature-card__icon svg {
    width: 1.45rem;
    height: 1.45rem;
}

.public-home-feature-card h2 {
    grid-area: title;
    margin: 0 0 0.1rem;
    color: var(--public-site-blue);
    font-size: 0.86rem !important;
}

.public-home-feature-card p {
    grid-area: text;
    margin: 0;
    color: var(--public-site-blue);
    font-size: 0.7rem;
    line-height: 1.35;
}

.public-home-feature-card__link {
    grid-area: link;
    width: fit-content;
    min-height: 0;
    margin-top: 0.12rem;
    padding: 0;
    border: 0;
    color: var(--public-site-red);
    background: transparent;
    font-size: 0.68rem;
    line-height: 1.3;
    text-decoration: none;
}

.public-home-feature-card__link:hover,
.public-home-feature-card__link:focus-visible {
    color: var(--public-site-red);
    background: transparent;
    text-decoration: underline;
}

@media (max-width: 960px) {
    .public-site-header__brand-inner {
        min-height: 4.2rem;
        padding: 0.3rem 0.55rem;
    }

    .public-site-brand__logo {
        width: 2.45rem;
        height: 3.35rem;
    }

    .public-site-brand__text strong {
        font-size: 1.08rem;
    }

    .public-site-brand__text span {
        font-size: 0.68rem;
    }

    .public-home-features {
        grid-template-columns: repeat(2, minmax(0, 1fr));
    }

    .public-home-feature-card:nth-child(2) {
        border-right: 0;
    }

    .public-home-feature-card:nth-child(-n + 2) {
        border-bottom: 1px solid rgba(21, 61, 99, 0.12);
    }
}

@media (max-width: 720px) {
    .public-home-hero {
        min-height: 0;
    }

    .public-home-hero__content {
        width: 100%;
        padding: 0.85rem 0.8rem 0.95rem;
    }

    .public-home-hero h1 {
        font-size: 1.3em !important;
    }

    .public-home-features {
        grid-template-columns: 1fr;
        padding: 0;
    }

    .public-home-feature-card,
    .public-home-feature-card:nth-child(odd),
    .public-home-feature-card:nth-last-child(-n + 2) {
        min-height: 0;
        padding: 0.65rem 0.8rem;
        border-right: 0;
        border-bottom: 1px solid rgba(21, 61, 99, 0.12);
    }

    .public-home-feature-card:last-child {
        border-bottom: 0;
    }
}

/* Korrekturschritt 0.9.0-15j: Hauptnavigation nach freigegebener Referenz. */
@media (min-width: 961px) {
    .public-site-nav-wrap {
        border-top: 0;
        border-bottom: 1px solid rgba(150, 0, 0, 0.28);
        background: #fff;
    }

    .public-site-nav {
        width: min(calc(100% - 2rem), var(--public-site-content-width));
        padding: 0;
        border: 0;
        background: #fff;
    }

    .public-site-nav__list {
        justify-content: flex-start;
        align-items: center;
        gap: 0;
    }

    .public-site-nav__entry {
        align-items: center;
        gap: 0;
    }

    .public-site-nav__link {
        min-height: 2.25rem;
        padding: 0.45rem 0.95rem;
        border: 0;
        color: var(--public-site-blue);
        font-size: 0.78rem;
        font-weight: 400;
        line-height: 1.2;
    }

    .public-site-nav__link:hover,
    .public-site-nav__link:focus-visible,
    .public-site-nav__link.is-active,
    .public-site-nav__item.is-current-trail > .public-site-nav__entry > .public-site-nav__link {
        border: 0;
        color: var(--public-site-red);
        background: transparent;
        text-decoration: none;
    }

    .public-site-nav__submenu-toggle {
        width: 1.25rem;
        min-width: 1.25rem;
        min-height: 2.25rem;
        margin-left: -0.72rem;
        padding: 0 0.25rem 0 0;
        color: var(--public-site-blue);
    }

    .public-site-nav__submenu-toggle span {
        font-size: 0.72rem;
    }

    .public-site-nav__item:hover > .public-site-nav__entry .public-site-nav__submenu-toggle,
    .public-site-nav__item.is-current-trail > .public-site-nav__entry .public-site-nav__submenu-toggle,
    .public-site-nav__item.is-open > .public-site-nav__entry .public-site-nav__submenu-toggle {
        color: var(--public-site-red);
    }
}

/* Korrekturschritt 0.9.0-15k: Servicebereich im öffentlichen Kopfbereich */
.public-site-header__top {
    display: none;
}

.public-site-header__brand-inner {
    display: flex;
    align-items: center;
    gap: 1rem;
}

.public-site-service {
    display: flex;
    align-items: center;
    gap: 0.8rem;
    margin-left: auto;
    color: var(--public-site-blue);
    font-family: Arial, Helvetica, sans-serif;
    font-size: 0.72rem;
    line-height: 1;
}

.public-site-service a {
    text-decoration: none;
}

.public-site-service__icon-link,
.public-site-service__search {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    width: 1.7rem;
    height: 1.7rem;
    padding: 0;
    color: var(--public-site-blue);
    border: 0;
    background: transparent;
}

.public-site-service__icon-link svg,
.public-site-service__search svg {
    width: 1.05rem;
    height: 1.05rem;
}

.public-site-service__icon-link:hover,
.public-site-service__icon-link:focus-visible,
.public-site-service__search:hover,
.public-site-service__search:focus-visible,
.public-site-service__text-link:hover,
.public-site-service__text-link:focus-visible {
    color: var(--public-site-red);
}

.public-site-service__text-link,
.public-site-service__language {
    color: var(--public-site-blue);
    white-space: nowrap;
}

.public-site-service__language {
    padding-inline: 0.15rem;
}

.public-site-service__donation {
    display: inline-flex;
    align-items: center;
    min-height: 2rem;
    padding: 0.42rem 0.78rem;
    color: #fff;
    background: var(--public-site-red);
    border: 1px solid var(--public-site-red);
    border-radius: 0.2rem;
    font-weight: 700;
    white-space: nowrap;
}

.public-site-service__donation:hover,
.public-site-service__donation:focus-visible {
    color: #fff;
    background: var(--public-site-red-dark);
    border-color: var(--public-site-red-dark);
}

.public-search-shell {
    width: min(1180px, 100%);
    margin-inline: auto;
    padding: 1.25rem 1.5rem 2rem;
    background: var(--public-site-surface);
}

.public-search-form {
    margin-bottom: 1.2rem;
}

.public-search-form > label {
    display: block;
    margin-bottom: 0.35rem;
    font-weight: 700;
}

.public-search-form__row {
    display: flex;
    width: 100%;
    max-width: none;
    gap: 0.5rem;
}

.public-search-form input[type="search"] {
    flex: 1 1 auto;
    min-width: 0;
    min-height: 2.3rem;
    padding: 0.42rem 0.55rem;
    color: var(--public-site-blue);
    background: #fff;
    border: 1px solid var(--public-site-border);
    border-radius: 0.2rem;
    font: inherit;
}

.public-search-form button {
    min-height: 2.3rem;
    padding: 0.42rem 0.8rem;
    color: #fff;
    background: var(--public-site-red);
    border: 1px solid var(--public-site-red);
    border-radius: 0.2rem;
    font: inherit;
    font-weight: 700;
    cursor: pointer;
}

.public-search-status {
    margin: 0.8rem 0;
}

.public-search-results {
    display: grid;
    gap: 0;
}

.public-search-result {
    padding: 0.8rem 0;
    border-top: 1px solid var(--public-site-border-soft);
}

.public-search-result__type {
    margin: 0 0 0.2rem;
    color: var(--public-site-muted);
    font-size: 0.72rem;
}

.public-search-result h2 {
    margin: 0 0 0.25rem;
    font-size: 1.1em;
}

.public-search-result p:last-child {
    margin-bottom: 0;
}

@media (max-width: 960px) {
    .public-site-header__brand-inner {
        flex-wrap: wrap;
    }

    .public-site-service {
        order: 3;
        width: 100%;
        margin-left: 0;
        justify-content: flex-end;
        padding-top: 0.4rem;
        border-top: 1px solid var(--public-site-border-soft);
    }
}

@media (max-width: 560px) {
    .public-site-service {
        gap: 0.45rem;
        justify-content: flex-end;
        font-size: 0.68rem;
    }

    .public-site-service__donation {
        min-height: 1.8rem;
        padding: 0.35rem 0.55rem;
    }

    .public-search-shell {
        padding-inline: 1rem;
    }

    .public-search-form__row {
        align-items: stretch;
        flex-direction: column;
    }
}

/* Korrekturschritt 0.9.0-15kd: mobiler Header ohne seitliche Alt-Rahmen. */
@media (max-width: 720px) {
    .public-site-header__brand-inner {
        border-left: 0;
        border-right: 0;
    }
}

/* Redaktionelle Tabellen: sicherer HTML-Umfang */
.public-rich-text table,
.public-flexible-box__content table,
.public-audioguide-content table {
    width: 100%;
    border-collapse: collapse;
    margin: 0.65rem 0 0.9rem;
}

.public-rich-text th,
.public-rich-text td,
.public-flexible-box__content th,
.public-flexible-box__content td,
.public-audioguide-content th,
.public-audioguide-content td {
    text-align: left;
    vertical-align: top;
    padding: 0 1rem 0.1rem 0;
}

.public-rich-text tr.data th,
.public-rich-text tr.data td,
.public-flexible-box__content tr.data th,
.public-flexible-box__content tr.data td,
.public-audioguide-content tr.data th,
.public-audioguide-content tr.data td {
    color: #969696;
}

.public-rich-text tr.data:hover th,
.public-rich-text tr.data:hover td,
.public-flexible-box__content tr.data:hover th,
.public-flexible-box__content tr.data:hover td,
.public-audioguide-content tr.data:hover th,
.public-audioguide-content tr.data:hover td {
    color: #153d63;
}


/* Schritt 0.9.0-15l: Startseite – Besuchsinformationen und Bild-Schnellzugriffe */
.public-home-visit-strip {
    display: grid;
    grid-template-columns: repeat(4, minmax(0, 1fr));
    margin: 0.65rem 0 1rem;
    border: 1px solid var(--public-site-border-soft);
    border-radius: 0.35rem;
    background: #fff;
    box-shadow: 0 0.15rem 0.55rem rgba(21, 61, 99, 0.06);
}

.public-home-visit-item {
    display: flex;
    align-items: flex-start;
    min-width: 0;
    gap: 0.65rem;
    padding: 0.8rem 0.9rem;
    border-right: 1px solid var(--public-site-border-soft);
}

.public-home-visit-item:last-child {
    border-right: 0;
}

.public-home-visit-item__icon {
    display: inline-flex;
    flex: 0 0 auto;
    align-items: center;
    justify-content: center;
    width: 2rem;
    height: 2rem;
    margin-top: 0.05rem;
    color: var(--public-site-blue);
}

.public-home-visit-item__icon svg {
    width: 1.65rem;
    height: 1.65rem;
}

.public-home-visit-item div {
    display: grid;
    min-width: 0;
    gap: 0.08rem;
}

.public-home-visit-item strong {
    color: var(--public-site-blue);
    font-size: 0.78rem;
    line-height: 1.25;
}

.public-home-visit-item span,
.public-home-visit-item small,
.public-home-visit-item a {
    color: var(--public-site-blue);
    font-size: 0.68rem;
    line-height: 1.35;
}

.public-home-visit-item small span {
    font: inherit;
    font-weight: 600;
}

.public-home-visit-item a {
    width: fit-content;
    margin-top: 0.08rem;
    text-decoration: underline;
    text-underline-offset: 0.12em;
}

.public-home-features {
    display: grid;
    grid-template-columns: repeat(4, minmax(0, 1fr));
    gap: 0.85rem;
    margin: 0 0 1.45rem;
    border: 0;
    background: transparent;
    box-shadow: none;
}

.public-home-feature-card,
.public-home-feature-card:last-child {
    position: relative;
    display: flex;
    overflow: hidden;
    flex-direction: column;
    min-width: 0;
    min-height: 0;
    padding: 0;
    border: 1px solid var(--public-site-border-soft);
    border-radius: 0.3rem;
    background: #fff;
    box-shadow: 0 0.15rem 0.55rem rgba(21, 61, 99, 0.05);
}

.public-home-feature-card::before {
    display: none;
}

.public-home-feature-card__media {
    display: block;
    overflow: hidden;
    width: 100%;
    aspect-ratio: 16 / 9;
    background: var(--public-site-light-blue);
}

.public-home-feature-card__media img {
    display: block;
    width: 100%;
    height: 100%;
    object-fit: cover;
}

.public-home-feature-card__body {
    position: relative;
    display: flex;
    flex: 1 1 auto;
    flex-direction: column;
    align-items: flex-start;
    padding: 1.55rem 0.8rem 0.8rem;
}

.public-home-feature-card:not(:has(.public-home-feature-card__media)) .public-home-feature-card__body {
    padding-top: 0.8rem;
}

.public-home-feature-card__icon {
    position: absolute;
    top: -1.25rem;
    left: 0.75rem;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    width: 2.5rem;
    height: 2.5rem;
    border: 1px solid var(--public-site-border-soft);
    border-radius: 50%;
    color: var(--public-site-blue);
    background: #fff;
}

.public-home-feature-card:not(:has(.public-home-feature-card__media)) .public-home-feature-card__icon {
    position: static;
    margin-bottom: 0.45rem;
}

.public-home-feature-card__icon svg {
    width: 1.45rem;
    height: 1.45rem;
}

.public-home-feature-card h2 {
    margin: 0 0 0.3rem;
    color: var(--public-site-blue);
    font-size: 1.1em !important;
    line-height: 1.25;
}

.public-home-feature-card p {
    margin: 0 0 0.65rem;
    color: var(--public-site-blue);
    font-size: 0.72rem;
    line-height: 1.45;
}

.public-home-feature-card__link {
    margin-top: auto;
    padding: 0.3rem 0.55rem;
    border: 1px solid var(--public-site-blue);
    border-radius: 0.2rem;
    color: var(--public-site-blue);
    background: #fff;
    font-size: 0.68rem;
    font-weight: 600;
    text-decoration: none;
}

.public-home-feature-card--exhibition .public-home-feature-card__link,
.public-home-feature-card--support .public-home-feature-card__link {
    border-color: var(--public-site-red);
    color: #fff;
    background: var(--public-site-red);
}

.public-home-feature-card__link:hover,
.public-home-feature-card__link:focus-visible {
    border-color: var(--public-site-red);
    color: var(--public-site-red);
    background: #fff;
}

.public-home-feature-card--exhibition .public-home-feature-card__link:hover,
.public-home-feature-card--exhibition .public-home-feature-card__link:focus-visible,
.public-home-feature-card--support .public-home-feature-card__link:hover,
.public-home-feature-card--support .public-home-feature-card__link:focus-visible {
    color: #fff;
    background: var(--public-site-dark-red, #780000);
}

@media (max-width: 900px) {
    .public-home-visit-strip,
    .public-home-features {
        grid-template-columns: repeat(2, minmax(0, 1fr));
    }

    .public-home-visit-item:nth-child(2) {
        border-right: 0;
    }

    .public-home-visit-item:nth-child(-n + 2) {
        border-bottom: 1px solid var(--public-site-border-soft);
    }
}

@media (max-width: 560px) {
    .public-home-visit-strip,
    .public-home-features {
        grid-template-columns: 1fr;
    }

    .public-home-visit-item,
    .public-home-visit-item:nth-child(2) {
        border-right: 0;
        border-bottom: 1px solid var(--public-site-border-soft);
    }

    .public-home-visit-item:last-child {
        border-bottom: 0;
    }
}

/* 0.9.0-15lc: Downloads in flexiblen redaktionellen Inhaltsbereichen */
.public-flexible-box__downloads {
    margin-top: 0.85rem;
    padding-top: 0.7rem;
    border-top: 1px solid rgba(21, 61, 99, 0.18);
}

.public-flexible-box__downloads h3 {
    margin: 0 0 0.45rem;
}

.public-flexible-box__downloads ul {
    margin: 0;
    padding: 0;
    list-style: none;
}

.public-flexible-box__downloads li {
    display: flex;
    flex-wrap: wrap;
    gap: 0.25rem 0.55rem;
    align-items: baseline;
    padding: 0.2rem 0;
}

.public-flexible-box__downloads li span {
    color: var(--public-muted, #5f6f7d);
    font-size: 0.8em;
}

/* Korrekturschritt 0.9.0-15le: Textumfluss bei Bildern in frei verwaltbaren Inhaltsboxen. */
.public-flexible-box--image-wrap-left::after,
.public-flexible-box--image-wrap-right::after {
    display: block;
    clear: both;
    content: '';
}

.public-flexible-box--image-wrap-left .public-flexible-box__media,
.public-flexible-box--image-wrap-right .public-flexible-box__media {
    width: min(38%, 22rem);
    margin-top: 0;
    margin-bottom: 0.8rem;
}

.public-flexible-box--image-wrap-left .public-flexible-box__media {
    float: left;
    margin-right: 1rem;
}

.public-flexible-box--image-wrap-right .public-flexible-box__media {
    float: right;
    margin-left: 1rem;
}

@media (max-width: 720px) {
    .public-flexible-box--image-wrap-left .public-flexible-box__media,
    .public-flexible-box--image-wrap-right .public-flexible-box__media {
        float: none;
        width: 100%;
        margin: 0 0 1rem;
    }
}

/* Korrekturschritt 0.9.0-15lfb:
   Redaktioneller Hinweis mit zurückhaltendem Linien-Icon. */
.hinweis {
    display: flow-root;
    min-height: 2.5rem;
    padding-left: 3rem !important;
    background: url('../icons/ui/icon-hinweis.png') no-repeat 0 0.05rem;
    background-size: 2.35rem 2.35rem;
}


/* Schritt 0.9.0-15lg: alle Startseitenmodule mit Klein/Mittel/Groß und gemeinsamen Zeilen. */
.public-home-module-row {
    display: grid;
    grid-template-columns: repeat(12, minmax(0, 1fr));
    gap: 1rem;
    align-items: start;
}

.public-home-module-row--grouped {
    margin-top: 1.55rem;
}

.public-home-module {
    display: flow-root;
    min-width: 0;
    grid-column: span 12;
}

.public-home-module--width-large {
    grid-column: span 12;
}

.public-home-module--width-medium {
    grid-column: span 8;
}

.public-home-module--width-small {
    grid-column: span 4;
}

/* Nur gemeinsam angeordnete Module werden an derselben oberen Kante ausgerichtet.
   Einzeln stehende Module behalten ihre bisher bestätigten Abstände. */
.public-home-module-row--grouped .public-home-module > .public-home-visit-strip,
.public-home-module-row--grouped .public-home-module > .public-home-features,
.public-home-module-row--grouped .public-home-module > .public-news-section,
.public-home-module-row--grouped .public-home-module > .public-events-section,
.public-home-module-row--grouped .public-home-module > .public-exhibitions-section,
.public-home-module-row--grouped .public-home-module > .public-homepage-flexible-row {
    margin-top: 0;
    margin-bottom: 0;
}

/* Ein schmaler Modulplatz stapelt seine eigenen Inhaltskarten, statt sie nochmals zu dritt zu verengen. */
.public-home-module--width-small .public-news-list.public-layout-grid > .public-news-card,
.public-home-module--width-small .public-events-home-list.public-layout-grid > .public-events-home-item,
.public-home-module--width-small .public-exhibitions-home-list.public-layout-grid > .public-exhibitions-home-item {
    grid-column: span 12;
}

.public-home-module--width-medium .public-home-visit-strip,
.public-home-module--width-medium .public-home-features {
    grid-template-columns: repeat(2, minmax(0, 1fr));
}

.public-home-module--width-small .public-home-visit-strip,
.public-home-module--width-small .public-home-features {
    grid-template-columns: 1fr;
}

.public-home-module--width-medium .public-home-visit-item:nth-child(2n),
.public-home-module--width-small .public-home-visit-item {
    border-right: 0;
}

.public-home-module--width-medium .public-home-visit-item:nth-child(-n + 2),
.public-home-module--width-small .public-home-visit-item:not(:last-child) {
    border-bottom: 1px solid var(--public-site-border-soft);
}

@media (max-width: 720px) {
    .public-home-module--width-large,
    .public-home-module--width-medium,
    .public-home-module--width-small {
        grid-column: span 12;
    }

    .public-home-module-row--grouped {
        margin-top: 1.2rem;
    }
}

/* Korrekturschritt 0.9.0-15lga:
   Startseitenkarte der aktuellen Ausstellung analog zu den News-Karten. */
.public-exhibitions-home-item {
    display: flex;
    min-width: 0;
    flex-direction: column;
    gap: 0;
    padding: 0;
}

.public-exhibitions-home-item .public-exhibition-card-image {
    display: block;
    width: 100%;
    max-width: none;
    margin: 0;
}

/* Korrekturschritt 0.9.0-15lgb:
   Ausstellungsbox auf der Startseite in Größe/Proportion an News-Karten angleichen
   und Rücksprung-Buttons ohne Hover zuverlässig lesbar halten. */
.public-exhibitions-home-item .public-exhibition-card-image {
    display: block;
    width: 100%;
    max-width: none;
    margin: 0;
    aspect-ratio: 16 / 10;
}

.public-exhibitions-home-item .public-exhibition-card-image img {
    display: block;
    width: 100%;
    height: 100%;
    object-fit: cover;
}

.public-events-backlink a,
.public-exhibitions-backlink a {
    border-color: var(--public-site-red);
    color: #fff;
    background: var(--public-site-red);
}

.public-events-backlink a:hover,
.public-events-backlink a:focus-visible,
.public-exhibitions-backlink a:hover,
.public-exhibitions-backlink a:focus-visible {
    border-color: var(--public-site-red-dark);
    color: #fff;
    background: var(--public-site-red-dark);
}

/* Korrekturschritt 0.9.0-15lgc:
   Aktuelle Ausstellung im kleinen Startseitenmodul auf die optische
   Kartenbreite der News-Karten begrenzen. */
.public-home-module--width-small
.public-exhibitions-home-list.public-layout-grid
> .public-exhibitions-home-item {
    grid-column: span 8;
}

@media (max-width: 720px) {
    .public-home-module--width-small
    .public-exhibitions-home-list.public-layout-grid
    > .public-exhibitions-home-item {
        grid-column: span 12;
    }
}

/* Korrekturschritt 0.9.0-15lge:
   Startseiten-Veranstaltungen als kompakte Terminliste mit Bild. */
.public-home-events-compact {
    width: 100%;
}

.public-home-events-compact__header {
    display: flex;
    align-items: baseline;
    justify-content: space-between;
    gap: 1rem;
    margin-bottom: 0.65rem;
}

.public-home-events-compact__header h2 {
    margin: 0;
    color: var(--public-site-blue);
    font-family: Georgia, 'Times New Roman', serif;
    font-size: 1.1em;
    line-height: 1.25;
}

.public-home-events-compact__header > a,
.public-home-events-compact__calendar-link a {
    color: var(--public-site-red);
    font-size: 0.68rem;
    font-weight: 600;
    text-decoration: none;
}

.public-home-events-compact__header > a:hover,
.public-home-events-compact__header > a:focus-visible,
.public-home-events-compact__calendar-link a:hover,
.public-home-events-compact__calendar-link a:focus-visible {
    color: var(--public-site-red-dark);
    text-decoration: underline;
    text-underline-offset: 0.12em;
}

.public-home-events-compact__body {
    display: grid;
    grid-template-columns: minmax(0, 1fr) minmax(190px, 34%);
    align-items: stretch;
    gap: 1rem;
}

.public-home-events-compact__body--without-image {
    grid-template-columns: 1fr;
}

.public-home-events-compact__list {
    display: grid;
    align-content: start;
    gap: 0;
}

.public-home-events-compact__item {
    display: grid;
    grid-template-columns: 3.3rem minmax(0, 1fr);
    align-items: start;
    min-width: 0;
    padding: 0.48rem 0;
}

.public-home-events-compact__item:first-child {
    padding-top: 0.15rem;
}

.public-home-events-compact__date {
    display: grid;
    justify-items: center;
    align-content: center;
    min-height: 3.1rem;
    padding-right: 0.65rem;
    border-right: 1px solid var(--public-site-border-soft);
    color: var(--public-site-blue);
    font-family: Georgia, 'Times New Roman', serif;
    line-height: 1;
}

.public-home-events-compact__date strong {
    font-size: 1.05rem;
    font-weight: 400;
}

.public-home-events-compact__date span {
    margin-top: 0.16rem;
    font-family: Arial, Helvetica, sans-serif;
    font-size: 0.56rem;
    font-weight: 600;
    letter-spacing: 0.04em;
}

.public-home-events-compact__content {
    min-width: 0;
    padding-left: 0.75rem;
}

.public-home-events-compact__content h3 {
    margin: 0;
    color: var(--public-site-blue);
    font-family: Georgia, 'Times New Roman', serif;
    font-size: 0.78rem;
    line-height: 1.28;
}

.public-home-events-compact__content h3 a {
    color: inherit;
    text-decoration: none;
}

.public-home-events-compact__content h3 a:hover,
.public-home-events-compact__content h3 a:focus-visible {
    color: var(--public-site-red);
    text-decoration: underline;
    text-underline-offset: 0.12em;
}

.public-home-events-compact__content p {
    margin: 0.22rem 0 0;
    color: var(--public-site-blue);
    font-size: 0.62rem;
    line-height: 1.3;
}

.public-home-events-compact__calendar-link {
    margin: 0.45rem 0 0;
}

.public-home-events-compact__media {
    overflow: hidden;
    min-width: 0;
    margin: 0;
    border-left: 1px solid var(--public-site-red);
    border-bottom: 1px solid var(--public-site-red);
    border-radius: 0.2rem;
    background: #fff;
}

.public-home-events-compact__media img {
    display: block;
    width: 100%;
    height: 100%;
    min-height: 10.5rem;
    object-fit: cover;
}

.public-home-module--width-small .public-home-events-compact__body {
    grid-template-columns: 1fr;
}

.public-home-module--width-small .public-home-events-compact__media {
    margin-top: 0.6rem;
}

.public-home-module--width-small .public-home-events-compact__header {
    align-items: flex-start;
    flex-direction: column;
    gap: 0.25rem;
}

@media (max-width: 720px) {
    .public-home-events-compact__header {
        align-items: flex-start;
        flex-direction: column;
        gap: 0.25rem;
    }

    .public-home-events-compact__body {
        grid-template-columns: 1fr;
    }

    .public-home-events-compact__media {
        margin-top: 0.65rem;
    }

    .public-home-events-compact__media img {
        min-height: 0;
        aspect-ratio: 16 / 10;
    }
}


/* Korrekturschritt 0.9.0-15lgf:
   Kompakter Veranstaltungsbereich auch im kleinen Startseitenmodul zweispaltig. */
.public-home-module--width-small .public-home-events-compact__header {
    align-items: baseline;
    flex-direction: row;
    justify-content: space-between;
    gap: 0.75rem;
}

.public-home-module--width-small .public-home-events-compact__body {
    grid-template-columns: minmax(0, 1fr) minmax(140px, 42%);
    align-items: stretch;
    gap: 0.8rem;
}

.public-home-module--width-small .public-home-events-compact__media {
    margin-top: 0;
}

.public-home-module--width-small .public-home-events-compact__media img {
    min-height: 0;
    height: 100%;
    object-fit: cover;
}

@media (max-width: 720px) {
    .public-home-module--width-small .public-home-events-compact__header {
        align-items: flex-start;
        flex-direction: column;
        gap: 0.25rem;
    }

    .public-home-module--width-small .public-home-events-compact__body {
        grid-template-columns: 1fr;
    }

    .public-home-module--width-small .public-home-events-compact__media {
        margin-top: 0.65rem;
    }
}

/* Korrekturschritt 0.9.0-15lgfb:
   Kartenabmessungen der Startseitenbereiche Aktuelles, Ausstellung und
   Veranstaltungen von der Modulbreite entkoppeln. Klein/Mittel/Groß steuert
   nur noch den verfügbaren Modulplatz; die einzelne sichtbare Karte behält
   die Breite eines Drittels der Startseitenzeile. */
.public-home-module .public-news-list.public-layout-grid,
.public-home-module .public-exhibitions-home-list.public-layout-grid {
    gap: 1rem;
}

.public-home-module--width-small .public-news-list.public-layout-grid,
.public-home-module--width-small .public-exhibitions-home-list.public-layout-grid {
    grid-template-columns: minmax(0, 1fr);
}

.public-home-module--width-medium .public-news-list.public-layout-grid,
.public-home-module--width-medium .public-exhibitions-home-list.public-layout-grid {
    grid-template-columns: repeat(2, minmax(0, 1fr));
}

.public-home-module--width-large .public-news-list.public-layout-grid,
.public-home-module--width-large .public-exhibitions-home-list.public-layout-grid {
    grid-template-columns: repeat(3, minmax(0, 1fr));
}

.public-home-module--width-small .public-news-list.public-layout-grid > .public-news-card,
.public-home-module--width-medium .public-news-list.public-layout-grid > .public-news-card,
.public-home-module--width-large .public-news-list.public-layout-grid > .public-news-card,
.public-home-module--width-small .public-exhibitions-home-list.public-layout-grid > .public-exhibitions-home-item,
.public-home-module--width-medium .public-exhibitions-home-list.public-layout-grid > .public-exhibitions-home-item,
.public-home-module--width-large .public-exhibitions-home-list.public-layout-grid > .public-exhibitions-home-item {
    grid-column: auto;
    min-width: 0;
    width: 100%;
}

.public-home-module--width-small > .public-home-events-compact {
    width: 100%;
}

.public-home-module--width-medium > .public-home-events-compact {
    width: calc((100% - 1rem) / 2);
}

.public-home-module--width-large > .public-home-events-compact {
    width: calc((100% - 2rem) / 3);
}

@media (max-width: 720px) {
    .public-home-module--width-small .public-news-list.public-layout-grid,
    .public-home-module--width-medium .public-news-list.public-layout-grid,
    .public-home-module--width-large .public-news-list.public-layout-grid,
    .public-home-module--width-small .public-exhibitions-home-list.public-layout-grid,
    .public-home-module--width-medium .public-exhibitions-home-list.public-layout-grid,
    .public-home-module--width-large .public-exhibitions-home-list.public-layout-grid {
        grid-template-columns: minmax(0, 1fr);
    }

    .public-home-module--width-small > .public-home-events-compact,
    .public-home-module--width-medium > .public-home-events-compact,
    .public-home-module--width-large > .public-home-events-compact {
        width: 100%;
    }
}

/* Korrekturschritt 0.9.0-15lgfc:
   Einzelne News und aktuelle Ausstellung kompakt wie der Veranstaltungsbereich.
   Ab zwei News bleibt das bestehende Kartenlayout unverändert. */
.public-home-news-compact,
.public-home-exhibition-compact {
    width: 100%;
}

.public-home-news-compact__header,
.public-home-exhibition-compact__header {
    display: flex;
    align-items: baseline;
    justify-content: space-between;
    gap: 0.75rem;
    margin-bottom: 0.65rem;
}

.public-home-news-compact__header h2,
.public-home-exhibition-compact__header h2 {
    margin: 0;
    color: var(--public-site-blue);
    font-family: Georgia, 'Times New Roman', serif;
    font-size: 1.1em;
    line-height: 1.25;
}

.public-home-news-compact__header > a,
.public-home-exhibition-compact__header > a,
.public-home-news-compact__detail-link a,
.public-home-exhibition-compact__detail-link a {
    color: var(--public-site-red);
    font-size: 0.68rem;
    font-weight: 600;
    text-decoration: none;
}

.public-home-news-compact__header > a:hover,
.public-home-news-compact__header > a:focus-visible,
.public-home-exhibition-compact__header > a:hover,
.public-home-exhibition-compact__header > a:focus-visible,
.public-home-news-compact__detail-link a:hover,
.public-home-news-compact__detail-link a:focus-visible,
.public-home-exhibition-compact__detail-link a:hover,
.public-home-exhibition-compact__detail-link a:focus-visible {
    color: var(--public-site-red-dark);
    text-decoration: underline;
    text-underline-offset: 0.12em;
}

.public-home-news-compact__body,
.public-home-exhibition-compact__body {
    display: grid;
    grid-template-columns: minmax(0, 1fr) minmax(140px, 42%);
    align-items: stretch;
    gap: 0.8rem;
}

.public-home-news-compact__body--without-image,
.public-home-exhibition-compact__body--without-image {
    grid-template-columns: 1fr;
}

.public-home-news-compact__content,
.public-home-exhibition-compact__content {
    min-width: 0;
    padding-top: 0.1rem;
}

.public-home-news-compact__date,
.public-home-exhibition-compact__date {
    margin: 0 0 0.35rem;
    color: var(--public-site-muted);
    font-size: 0.68rem;
    line-height: 1.3;
}

.public-home-news-compact__content h3,
.public-home-exhibition-compact__content h3 {
    margin: 0;
    color: var(--public-site-blue);
    font-family: Georgia, 'Times New Roman', serif;
    font-size: 0.82rem;
    line-height: 1.28;
}

.public-home-news-compact__content h3 a,
.public-home-exhibition-compact__content h3 a {
    color: inherit;
    text-decoration: none;
}

.public-home-news-compact__content h3 a:hover,
.public-home-news-compact__content h3 a:focus-visible,
.public-home-exhibition-compact__content h3 a:hover,
.public-home-exhibition-compact__content h3 a:focus-visible {
    color: var(--public-site-red);
    text-decoration: underline;
    text-underline-offset: 0.12em;
}

.public-home-news-compact__detail-link,
.public-home-exhibition-compact__detail-link {
    margin: 0.55rem 0 0;
}

.public-home-news-compact__media,
.public-home-exhibition-compact__media {
    overflow: hidden;
    min-width: 0;
    margin: 0;
    border-left: 1px solid var(--public-site-red);
    border-bottom: 1px solid var(--public-site-red);
    border-radius: 0.2rem;
    background: #fff;
}

.public-home-news-compact__media a,
.public-home-exhibition-compact__media a {
    display: block;
    width: 100%;
    height: 100%;
}

.public-home-news-compact__media img,
.public-home-exhibition-compact__media img {
    display: block;
    width: 100%;
    height: 100%;
    min-height: 10.5rem;
    object-fit: cover;
}

/* Die kompakte Einzelkarte behält – wie der Veranstaltungsbereich – unabhängig
   von Klein/Mittel/Groß die Breite eines Drittels der Startseitenzeile. */
.public-home-module--width-small > .public-home-news-compact,
.public-home-module--width-small > .public-home-exhibition-compact {
    width: 100%;
}

.public-home-module--width-medium > .public-home-news-compact,
.public-home-module--width-medium > .public-home-exhibition-compact {
    width: calc((100% - 1rem) / 2);
}

.public-home-module--width-large > .public-home-news-compact,
.public-home-module--width-large > .public-home-exhibition-compact {
    width: calc((100% - 2rem) / 3);
}

@media (max-width: 720px) {
    .public-home-news-compact__header,
    .public-home-exhibition-compact__header {
        align-items: flex-start;
        flex-direction: column;
        gap: 0.25rem;
    }

    .public-home-news-compact__body,
    .public-home-exhibition-compact__body {
        grid-template-columns: 1fr;
    }

    .public-home-news-compact__media,
    .public-home-exhibition-compact__media {
        margin-top: 0.65rem;
    }

    .public-home-news-compact__media img,
    .public-home-exhibition-compact__media img {
        min-height: 0;
        aspect-ratio: 16 / 10;
    }

    .public-home-module--width-small > .public-home-news-compact,
    .public-home-module--width-medium > .public-home-news-compact,
    .public-home-module--width-large > .public-home-news-compact,
    .public-home-module--width-small > .public-home-exhibition-compact,
    .public-home-module--width-medium > .public-home-exhibition-compact,
    .public-home-module--width-large > .public-home-exhibition-compact {
        width: 100%;
    }
}

/* Korrekturschritt 0.9.0-15lgfd:
   Aktuelles als kompakte Dreierliste analog zu Veranstaltungen und
   einheitliche Bildhöhe der drei Startseiten-Fachmodule. */
.public-home-news-compact__body {
    display: grid;
    grid-template-columns: minmax(0, 1fr) minmax(190px, 34%);
    align-items: stretch;
    gap: 1rem;
}

.public-home-news-compact__body--without-image {
    grid-template-columns: 1fr;
}

.public-home-news-compact__list {
    display: grid;
    align-content: start;
    gap: 0;
}

.public-home-news-compact__item {
    display: grid;
    grid-template-columns: 4.1rem minmax(0, 1fr);
    align-items: start;
    min-width: 0;
    padding: 0.48rem 0;
}

.public-home-news-compact__item:first-child {
    padding-top: 0.15rem;
}

.public-home-news-compact__date-block {
    display: flex;
    align-items: flex-start;
    min-height: 3.1rem;
    padding-right: 0.65rem;
    border-right: 1px solid var(--public-site-border-soft);
    color: var(--public-site-blue);
    font-size: 0.6rem;
    line-height: 1.25;
}

.public-home-news-compact__item-content {
    min-width: 0;
    padding-left: 0.75rem;
}

.public-home-news-compact__item-content h3 {
    margin: 0;
    color: var(--public-site-blue);
    font-family: Georgia, 'Times New Roman', serif;
    font-size: 0.78rem;
    line-height: 1.28;
}

.public-home-news-compact__item-content h3 a {
    color: inherit;
    text-decoration: none;
}

.public-home-news-compact__item-content h3 a:hover,
.public-home-news-compact__item-content h3 a:focus-visible {
    color: var(--public-site-red);
    text-decoration: underline;
    text-underline-offset: 0.12em;
}

.public-home-news-compact__item-content p,
.public-home-news-compact__archive-link {
    margin: 0.22rem 0 0;
}

.public-home-news-compact__item-content p a,
.public-home-news-compact__archive-link a {
    color: var(--public-site-red);
    font-size: 0.62rem;
    font-weight: 600;
    text-decoration: none;
}

.public-home-news-compact__item-content p a:hover,
.public-home-news-compact__item-content p a:focus-visible,
.public-home-news-compact__archive-link a:hover,
.public-home-news-compact__archive-link a:focus-visible {
    color: var(--public-site-red-dark);
    text-decoration: underline;
    text-underline-offset: 0.12em;
}

/* Einheitliche sichtbare Bildhöhe für Aktuelles, Ausstellung und Veranstaltungen. */
.public-home-news-compact__media,
.public-home-exhibition-compact__media,
.public-home-events-compact__media {
    height: 240px;
}

.public-home-news-compact__media img,
.public-home-exhibition-compact__media img,
.public-home-events-compact__media img {
    width: 100%;
    height: 100%;
    min-height: 0;
    object-fit: cover;
}

/* Die drei Fachmodule behalten dieselbe Bildhöhe auch bei Klein/Mittel/Groß.
   Nur der verfügbare Modulplatz ändert sich. */
.public-home-module--width-small .public-home-news-compact__body,
.public-home-module--width-small .public-home-exhibition-compact__body,
.public-home-module--width-small .public-home-events-compact__body {
    grid-template-columns: minmax(0, 1fr) minmax(150px, 42%);
}

@media (max-width: 720px) {
    .public-home-news-compact__body,
    .public-home-exhibition-compact__body,
    .public-home-events-compact__body,
    .public-home-module--width-small .public-home-news-compact__body,
    .public-home-module--width-small .public-home-exhibition-compact__body,
    .public-home-module--width-small .public-home-events-compact__body {
        grid-template-columns: 1fr;
    }

    .public-home-news-compact__media,
    .public-home-exhibition-compact__media,
    .public-home-events-compact__media {
        height: auto;
        margin-top: 0.65rem;
    }

    .public-home-news-compact__media img,
    .public-home-exhibition-compact__media img,
    .public-home-events-compact__media img {
        height: auto;
        aspect-ratio: 16 / 10;
    }
}

/* Korrekturschritt 0.9.0-15lgha:
   Vertikale blaue Abgrenzung nur rechts von nicht rechts stehenden Fachmodulen. */
.public-home-module-row > .public-home-module:not(:last-child) {
    padding-right: 1rem;
    border-right: 1px solid var(--public-site-blue);
}

@media (max-width: 720px) {
    .public-home-module-row > .public-home-module:not(:last-child) {
        padding-right: 0;
        border-right: 0;
    }
}

/* Korrekturschritt 0.9.0-15lgldk:
   Menüfläche in neutralem Hellgrau #F2F2F3.
   Rote Linie oben; Transparenz beginnt deutlich weiter links. */
@media (min-width: 721px) {
    .public-homepage .public-site-nav-wrap {
        position: relative;
        z-index: 20;
        margin-bottom: -2.25rem;
        border-top: 0;
        border-bottom: 0;
        background: transparent;
    }

    .public-homepage .public-site-nav {
        position: relative;
        z-index: 1;
        min-height: 2.25rem;
        border-top: 1px solid rgba(150, 0, 0, 0.42);
        border-bottom: 0;
        background: #f6f7f9;
    }

    .public-homepage .public-homepage-shell {
        position: relative;
        z-index: 1;
    }

    .public-homepage .public-home-hero {
        border-top-left-radius: 0;
        border-top-right-radius: 0;
    }

    .public-homepage .public-site-nav > ul > li > a,
    .public-homepage .public-site-nav > ul > li > button {
        color: var(--public-site-blue);
    }

    .public-homepage .public-site-nav > ul > li > a:hover,
    .public-homepage .public-site-nav > ul > li > a:focus-visible,
    .public-homepage .public-site-nav > ul > li > button:hover,
    .public-homepage .public-site-nav > ul > li > button:focus-visible {
        color: var(--public-site-red);
        background: rgba(255, 255, 255, 0.34);
    }
}

@media (max-width: 720px) {
    .public-home-hero {
        display: grid;
        grid-template-columns: minmax(0, 1fr);
        grid-template-rows: auto auto;
    }

    .public-home-hero::before {
        grid-column: 1;
        grid-row: 1;
    }

    .public-home-hero__content {
        grid-column: 1;
        grid-row: 2;
    }

    .public-home-hero__credit {
        position: relative;
        top: auto;
        right: auto;
        bottom: auto;
        grid-column: 1;
        grid-row: 1;
        align-self: end;
        justify-self: end;
        margin: 0 0.35rem 0.35rem 0;
        transform: none;
    }
}

/* Korrekturschritt 0.9.0-15lgld:
   Helles Header-Blau in der überlagerten Navigation, roter Seitenrahmen
   und rote Querlinien ausschließlich innerhalb der Webseitenbreite. */
body {
    position: relative;
    box-sizing: border-box;
    padding-top: 0.833rem;
    padding-bottom: 0.833rem;
}

body::before {
    position: absolute;
    z-index: 100;
    top: 0.833rem;
    bottom: 0.833rem;
    left: 50%;
    width: min(calc(100% - 1.5rem), var(--public-site-content-width));
    border-top: 0;
    border-right: 1px solid var(--public-site-red);
    border-bottom: 1px solid var(--public-site-red);
    border-left: 1px solid var(--public-site-red);
    box-sizing: border-box;
    content: '';
    pointer-events: none;
    transform: translateX(-50%);
}

/* Korrekturschritt 0.9.0-15lgsbg:
   Seitliche und untere Außenrahmenlinie bleiben dokumentbezogen.
   Nur die obere Rahmenlinie und der freie Bereich darüber bleiben beim Scrollen fest. */
body::after {
    position: fixed;
    z-index: 101;
    top: 0;
    left: 50%;
    width: min(calc(100% - 1.5rem), var(--public-site-content-width));
    height: 0.833rem;
    border-bottom: 1px solid var(--public-site-red);
    box-sizing: border-box;
    background: var(--public-site-light-blue);
    content: '';
    pointer-events: none;
    transform: translateX(-50%);
}

/* Die roten Trennlinien dürfen nicht mehr über die volle Viewportbreite laufen. */
.public-site-nav-wrap {
    border-bottom: 0;
}

.public-site-footer {
    border-top: 0;
}

@media (min-width: 961px) {
    .public-site-nav-wrap {
        border-bottom: 0;
    }

    .public-site-nav {
        border-bottom: 1px solid rgba(150, 0, 0, 0.35);
    }
}

.public-site-footer__inner {
    border-top: 2px solid var(--public-site-red);
}

@media (max-width: 720px) {
    body::before,
    body::after {
        width: min(calc(100% - 0.8rem), var(--public-site-content-width));
    }
}

/* Korrekturschritt 0.9.0-15lglda:
   Footer mit Innenabstand; der gemeinsame Außenrahmen bleibt sichtbar. */
.public-site-footer {
    position: relative;
    background: var(--public-site-light-blue);
}

.public-site-footer__inner {
    box-sizing: border-box;
    padding: 0.833rem 0.833rem;
    border-top: 2px solid var(--public-site-red);
}

.public-site-footer__column:first-child {
    padding-left: 0.65rem;
}

.public-site-footer__column:last-child {
    padding-right: 0.65rem;
}

.public-site-footer__bottom-inner {
    box-sizing: border-box;
    padding: 0.833rem;
}

/* Trennlinie im unteren Footer ausschließlich innerhalb der Webseitenbreite. */
.public-site-footer__bottom {
    border-top: 0;
    background: var(--public-site-light-blue);
}

.public-site-footer__bottom-inner {
    border-top: 1px solid rgba(21, 61, 99, 0.16);
}


@media (max-width: 720px) {
    .public-site-footer__inner,
    .public-site-footer__bottom-inner {
        padding: 0.833rem;
    }

    .public-site-footer__column:first-child,
    .public-site-footer__column:last-child {
        padding-right: 0;
        padding-left: 0;
    }
}

/* Korrekturschritt 0.9.0-15lgldf:
   Feines botanisches Ornament wie in der Referenz, klein am linken Hero-Übergang. */
.public-homepage .public-homepage-shell::before {
    position: absolute;
    z-index: 0;
    top: 15.2rem;
    left: -0.15rem;
    width: 7.02rem;
    height: 160px;
    content: '';
    pointer-events: none;
    background: url('../images/decor/botanical-branch.png') no-repeat left bottom / contain;
    opacity: 0.18;
}

@media (max-width: 720px) {
    .public-homepage .public-homepage-shell::before {
        top: 13.8rem;
        left: -0.1rem;
        width: 5.46rem;
        height: 130px;
        opacity: 0.15;
    }
}

/* Korrekturschritt 0.9.0-15lgldo:
   Besuchsinformationen auf Desktop/Tablet über die volle Modulbreite. */
@media (min-width: 721px) {
    .public-homepage
    .public-home-module[data-homepage-module="visit_info"].public-home-module--width-large
    .public-home-visit-strip {
        width: calc(100% + 3rem);
        margin-right: -1.5rem;
        margin-left: -1.5rem;
    }
}




/* Die Startseiten-Navigation erhält ihre rote Linie ausschließlich oben. */
@media (min-width: 721px) {
    .public-homepage .public-site-nav {
        border-bottom: 0 !important;
    }
}

/* Korrekturschritt 0.9.0-15lgldl:
   Das reale Hero-Bild reicht bis unter die Besuchsinformationen.
   Die Besuchsbox liegt damit auf dem Bild statt auf einem künstlichen Farbverlauf. */
@media (min-width: 721px) {
    .public-homepage .public-home-hero {
        min-height: 25.75rem;
    }

    .public-homepage
    .public-home-hero
    + .public-home-module-row:has(
        > .public-home-module[data-homepage-module="visit_info"].public-home-module--width-large
    ) {
        position: relative;
        z-index: 7;
        margin-top: -6.4rem;
    }

    .public-homepage
    .public-home-module[data-homepage-module="visit_info"].public-home-module--width-large
    .public-home-visit-strip {
        background: rgba(255, 255, 255, 0.88);
        backdrop-filter: blur(1px);
    }
}

@media (max-width: 720px) {
    .public-homepage .public-home-hero {
        min-height: 0;
    }
}

/* Korrekturschritt 0.9.0-15lgldm:
   Auf der Startseite ist der Header hinter der Menüzeile transparent.
   Dadurch zeigt der auslaufende Menüverlauf direkt das darunterliegende Hero-Bild. */
@media (min-width: 721px) {
    .public-homepage .public-site-header {
        background: transparent;
        box-shadow: none;
    }

    .public-homepage .public-site-header__top,
    .public-homepage .public-site-header__brand-row {
        background: var(--public-site-light-blue);
    }

    .public-homepage .public-site-nav-wrap {
        background: transparent !important;
    }

    .public-homepage .public-site-nav {
        background: #f6f7f9;
    }
}

/* Korrekturschritt 0.9.0-15lgldo:
   Foto-/Urheberhinweis oberhalb der überlagerten Besuchsinformationen sichtbar halten. */
@media (min-width: 721px) {
    .public-homepage .public-home-hero__credit {
        z-index: 9;
        right: 0.45rem;
        bottom: 6.75rem;
    }
}


/* Korrekturschritt 0.9.0-15lgs:
   Mobiler Kopf- und Fußbereich nach der freigegebenen Aufbauvorlage.
   Die bestehende Museumsfarbwelt sowie die vollständige Hauptnavigation bleiben erhalten. */
.public-site-mobile-footer-nav {
    display: none;
}

@media (max-width: 720px) {
    .public-site-header__brand-row {
        background: var(--public-site-light-blue);
    }

    .public-site-header__brand-inner {
        flex-wrap: nowrap;
        justify-content: flex-start;
        min-height: 4.4rem;
        gap: 0.2rem;
        padding: 0.35rem 0.55rem;
        background: var(--public-site-light-blue);
        border-right: 0;
        border-left: 0;
    }

    .public-site-brand {
        flex: 1 1 auto;
        width: auto;
        max-width: calc(100% - 5.7rem);
        gap: 0.5rem;
    }

    .public-site-brand__logo {
        flex: 0 0 auto;
        width: 2.3rem;
        height: 3.2rem;
    }

    .public-site-brand__text {
        min-width: 0;
    }

    .public-site-brand__text strong {
        max-width: none;
        color: var(--public-site-red);
        font-size: 0.92rem;
        line-height: 1.05;
    }

    .public-site-brand__text span {
        color: var(--public-site-red);
        font-size: 0.66rem;
        line-height: 1.1;
    }

    .public-site-service {
        order: initial;
        flex: 0 0 auto;
        width: auto;
        margin-left: auto;
        gap: 0;
        padding-top: 0;
        border-top: 0;
    }

    .public-site-service > * {
        display: none;
    }

    .public-site-service .public-site-service__search {
        display: inline-flex;
        width: 2.75rem;
        height: 2.75rem;
        color: var(--public-site-blue);
    }

    .public-site-service__search svg {
        width: 1.3rem;
        height: 1.3rem;
    }

    .public-site-nav-toggle {
        flex: 0 0 auto;
        width: 2.75rem;
        min-width: 2.75rem;
        height: 2.75rem;
        min-height: 2.75rem;
        margin: 0;
        padding: 0.5rem;
        color: var(--public-site-blue);
        border: 0;
        border-radius: 0;
        background: transparent;
    }

    .public-site-nav-toggle:hover,
    .public-site-nav-toggle:focus-visible {
        color: var(--public-site-red);
        background: rgba(255, 255, 255, 0.42);
    }

    .public-site-nav-toggle__icon {
        gap: 0.28rem;
    }

    .public-site-nav-toggle__icon span {
        width: 1.25rem;
        height: 1.5px;
    }

    .public-site-footer {
        background: var(--public-site-light-blue);
    }

    .public-site-footer__inner {
        display: none;
    }

    .public-site-footer__bottom-inner {
        min-height: 0;
        gap: 0.3rem;
        padding: 0.5rem 0.75rem;
        border-top: 1px solid rgba(21, 61, 99, 0.16);
        font-size: 0.58rem;
        line-height: 1.3;
    }

    .public-site-footer__legal {
        gap: 0.25rem 0.55rem;
    }

    .public-site-mobile-footer-nav {
        display: block;
        width: min(calc(100% - 0.8rem), var(--public-site-content-width));
        margin: 0 auto;
        overflow: hidden;
        color: #fff;
        background: var(--public-site-blue);
        border-top: 2px solid var(--public-site-red);
        border-radius: 0 0 0.35rem 0.35rem;
    }

    .public-site-mobile-footer-nav__inner {
        display: grid;
        grid-auto-flow: column;
        grid-auto-columns: minmax(0, 1fr);
        align-items: stretch;
    }

    .public-site-mobile-footer-nav a {
        display: flex;
        align-items: center;
        justify-content: center;
        flex-direction: column;
        min-width: 0;
        min-height: 4.25rem;
        gap: 0.25rem;
        padding: 0.45rem 0.2rem 0.5rem;
        color: #fff;
        font-family: Arial, Helvetica, sans-serif;
        font-size: 0.63rem;
        line-height: 1.1;
        text-align: center;
        text-decoration: none;
    }

    .public-site-mobile-footer-nav a + a {
        border-left: 1px solid rgba(255, 255, 255, 0.16);
    }

    .public-site-mobile-footer-nav a:hover,
    .public-site-mobile-footer-nav a:focus-visible {
        color: #fff;
        background: rgba(255, 255, 255, 0.1);
        text-decoration: none;
    }

    .public-site-mobile-footer-nav__icon {
        display: inline-flex;
        align-items: center;
        justify-content: center;
        width: 1.45rem;
        height: 1.45rem;
        color: #fff;
    }

    .public-site-mobile-footer-nav__icon svg {
        width: 100%;
        height: 100%;
    }
}

/* Korrekturschritt 0.9.0-15lgsbe:
   Der komplette Kopfbereich bleibt beim Scrollen exakt an seiner Ausgangsposition.
   Unterhalb der Navigation liegt ein dezenter Schatten. */
.public-site-header {
    position: sticky;
    z-index: 50;
    top: 0.833rem;
}

.public-site-nav {
    box-shadow: 0 0.3rem 0.55rem rgba(21, 61, 99, 0.12);
}


/* Schritt 0.9.0-15lgsi:
   Das bestaetigte Startseiten-Design wird auf die uebrigen oeffentlichen
   Inhaltsseiten uebertragen. Header, Sticky-Verhalten, Aussenrahmen,
   Navigation und Footer bleiben unveraendert. */

/* Gemeinsame Inhaltsflaeche in der aktuellen Museumsfarbwelt. */
.public-page-shell,
.public-news-shell,
.public-events-shell,
.public-exhibitions-shell,
.public-products-shell,
.public-sponsors-shell,
.public-search-shell {
    position: relative;
    min-height: 28rem;
    background:
        linear-gradient(
            180deg,
            rgba(220, 234, 247, 0.24) 0,
            rgba(246, 247, 249, 0.34) 4.5rem,
            rgba(255, 255, 255, 0.96) 10.5rem,
            #fff 16rem
        );
}

/* Breadcrumbs bleiben filigran und erhalten denselben ruhigen Abstand
   wie die kleinen Informationszeilen auf der Startseite. */
.public-page-breadcrumb,
.public-news-breadcrumb,
.public-events-breadcrumb,
.public-exhibitions-breadcrumb,
.public-products-breadcrumb,
.public-sponsors-breadcrumb {
    margin-bottom: 0.8rem;
    padding-bottom: 0.55rem;
    border-bottom: 1px solid rgba(21, 61, 99, 0.10);
}

/* Seitentitel im bestaetigten Startseiten-Stil: Museumsrot, serif,
   nur ein kurzer roter Akzent statt einer schweren Trennflaeche. */
.public-page-header,
.public-news-header,
.public-events-header,
.public-exhibitions-header,
.public-products-header,
.public-sponsors-header {
    margin-bottom: 1.35rem;
}

.public-page-header h1,
.public-news-header h1,
.public-events-header h1,
.public-exhibitions-header h1,
.public-products-header h1,
.public-sponsors-header h1 {
    color: var(--public-site-red);
    font-family: Georgia, 'Times New Roman', serif;
    font-weight: 600;
}

/* Frei angelegte Inhaltsseiten erhalten die gleiche filigrane Boxsprache
   wie die bestaetigten freien Startseitenboxen. */
.public-page-content.public-layout-grid {
    align-items: start;
}

.public-page-block {
    padding: 0.85rem 0.9rem 0.95rem;
    border: 0;
    border-bottom: 1px solid rgba(150, 0, 0, 0.55);
    border-radius: 0;
    background: rgba(255, 255, 255, 0.88);
    box-shadow: none;
}

.public-page-block:has(.public-page-heading):not(:has(.public-page-text, .public-page-image-block, .public-page-download)) {
    padding-bottom: 0.5rem;
}

.public-page-heading {
    color: var(--public-site-blue);
    font-family: Georgia, 'Times New Roman', serif;
}

.public-page-heading--h2 {
    color: var(--public-site-red);
}

/* Bilder auf Inhalts- und Detailseiten greifen den bestaetigten
   Medienrahmen der Startseite mit linker und unterer roter Linie auf. */
.public-page-figure,
.public-news-featured-image,
.public-event-featured-image,
.public-exhibition-featured-image,
.public-product-featured-image,
.public-sponsor-featured-image {
    overflow: hidden;
    border: 0;
    border-left: 1px solid var(--public-site-red);
    border-bottom: 1px solid var(--public-site-red);
    border-radius: 0.2rem;
    background: #fff;
}

/* Uebersichts- und Fachkarten wie auf der Startseite: feiner Rahmen,
   sehr leichter Kartenschatten, keine wuchtigen Flaechen. */
.public-news-card,
.public-event-card,
.public-exhibition-card,
.public-product-card,
.public-sponsor-card,
.public-events-home-item,
.public-exhibitions-home-item {
    border-color: rgba(21, 61, 99, 0.18);
    border-bottom-color: rgba(150, 0, 0, 0.48);
    background: rgba(255, 255, 255, 0.94);
    box-shadow: 0 0.15rem 0.5rem rgba(21, 61, 99, 0.055);
}

.public-news-card-image,
.public-event-card-image,
.public-exhibition-card-image,
.public-product-card-image,
.public-sponsor-card-image {
    border-bottom: 1px solid rgba(150, 0, 0, 0.32);
    background: rgba(220, 234, 247, 0.30);
}

/* Fachabschnitte erhalten die gleiche klare Gliederung wie die
   Startseitenmodule; bestehende Karten-/Gridbreiten bleiben erhalten. */
.public-news-section,
.public-events-section,
.public-exhibitions-section,
.public-products-section,
.public-sponsors-section,
.public-sponsors-highlighted,
.public-news-archive-section {
    padding-top: 0.9rem;
    border-top: 1px solid rgba(21, 61, 99, 0.14);
}

.public-news-section h2,
.public-events-section h2,
.public-exhibitions-section h2,
.public-products-section h2,
.public-sponsors-section h2,
.public-sponsors-highlighted > h2,
.public-news-archive-section h2 {
    color: var(--public-site-red);
    font-family: Georgia, 'Times New Roman', serif;
    font-weight: 600;
}

/* Detailansichten werden als ruhige Inhaltsflaeche zusammengehalten,
   ohne die fachlichen Unterabschnitte oder Galerien umzubauen. */
.public-news-detail,
.public-event-detail,
.public-exhibition-detail,
.public-product-detail,
.public-sponsor-detail {
    padding: 1rem 1.05rem 1.15rem;
    border: 1px solid rgba(21, 61, 99, 0.16);
    border-bottom-color: rgba(150, 0, 0, 0.52);
    border-radius: 0.25rem;
    background: rgba(255, 255, 255, 0.92);
    box-shadow: 0 0.15rem 0.5rem rgba(21, 61, 99, 0.045);
}

/* Downloads, Bestellhinweise und vergleichbare Informationsflaechen
   nutzen das bestaetigte Hellblau mit rotem Akzent. */
.public-page-download,
.public-products-inquiry,
.public-event-recurrence,
.public-exhibitions-legacy-archive {
    border-color: rgba(21, 61, 99, 0.16);
    border-left: 2px solid var(--public-site-red);
    background: rgba(220, 234, 247, 0.34);
}

/* Suche in dasselbe Designsystem einordnen. */
.public-search-shell {
    width: min(calc(100% - 1.5rem), var(--public-site-content-width));
    box-sizing: border-box;
    margin: 0 auto;
    padding: 1.25rem 1.5rem 2.5rem;
}

.public-search-form {
    padding: 0.9rem;
    border: 1px solid rgba(21, 61, 99, 0.16);
    border-left: 2px solid var(--public-site-red);
    border-radius: 0.2rem;
    background: rgba(255, 255, 255, 0.90);
}

.public-search-results {
    gap: 0.65rem;
}

.public-search-result {
    padding: 0.75rem 0.8rem;
    border: 1px solid rgba(21, 61, 99, 0.16);
    border-bottom-color: rgba(150, 0, 0, 0.42);
    border-radius: 0.2rem;
    background: rgba(255, 255, 255, 0.92);
}

.public-search-result h2 a {
    color: var(--public-site-blue);
    text-decoration: none;
}

.public-search-result h2 a:hover,
.public-search-result h2 a:focus-visible {
    color: var(--public-site-red);
    text-decoration: underline;
}

/* Mobil bleiben alle Fachbereiche einspaltig; die neue Gestaltung
   reduziert nur Abstaende und veraendert keine Funktionen. */
@media (max-width: 720px) {
    .public-page-shell,
    .public-news-shell,
    .public-events-shell,
    .public-exhibitions-shell,
    .public-products-shell,
    .public-sponsors-shell,
    .public-search-shell {
        min-height: 0;
        background:
            linear-gradient(
                180deg,
                rgba(220, 234, 247, 0.20) 0,
                rgba(255, 255, 255, 0.96) 7rem,
                #fff 12rem
            );
    }

    .public-page-block {
        padding: 0.7rem 0.72rem 0.8rem;
    }

    .public-news-detail,
    .public-event-detail,
    .public-exhibition-detail,
    .public-product-detail,
    .public-sponsor-detail {
        padding: 0.75rem;
    }

    .public-search-shell {
        width: min(calc(100% - 0.8rem), var(--public-site-content-width));
        padding: 0.9rem 1rem 2rem;
    }
}

/* Korrekturschritt 0.9.0-15lgsia:
   Die Menueflaeche endet auf Desktop/Tablet an der Webseitenbreite.
   Freie Inhaltsboxen verwenden keinen weissen Kartenhintergrund mehr. */
@media (min-width: 721px) {
    .public-site-nav-wrap {
        border-top: 0;
        background: var(--public-site-light-blue);
    }

    .public-site-nav {
        border-top: 1px solid rgba(150, 0, 0, 0.2);
        background: #fff;
    }

    .public-homepage .public-site-nav {
        background: #f6f7f9;
    }
}

.public-page-block {
    background: transparent;
}

/* Korrekturschritt 0.9.0-15lgsib:
   Detailseiten der Fachbereiche ohne weissen Kartenhintergrund,
   Aussenrahmen und Boxschatten. Inhalte und Medien bleiben unveraendert. */
.public-news-detail,
.public-event-detail,
.public-exhibition-detail,
.public-product-detail,
.public-sponsor-detail {
    padding: 0;
    border: 0;
    border-radius: 0;
    background: transparent;
    box-shadow: none;
}

/* Schritt 0.9.0-15lgsjc:
   Einheitliche redaktionelle Bildgrößen wahlweise nach Breite oder Höhe.
   Breite: 15/30/50/100 %. Höhe: 120/180/240 px bzw. automatische Originalhöhe.
   Höhenbilder werden vollständig eingepasst und nicht beschnitten. */
.public-sized-image {
    box-sizing: border-box;
    max-width: 100%;
    margin-right: auto;
}

/* Größenbezug Breite. */
.public-sized-image.public-image-size-mode--width.public-image-size--small {
    width: 15%;
    max-width: none;
}

.public-sized-image.public-image-size-mode--width.public-image-size--medium {
    width: 30%;
    max-width: none;
}

.public-sized-image.public-image-size-mode--width.public-image-size--large {
    width: 50%;
    max-width: none;
}

.public-sized-image.public-image-size-mode--width.public-image-size--full {
    width: 100%;
    max-width: none;
}

/* Größenbezug Höhe. Die Breite ergibt sich aus dem Seitenverhältnis. */
.public-sized-image.public-image-size-mode--height {
    width: fit-content;
    max-width: 100%;
}


.public-sized-image__link {
    display: block;
    width: 100%;
    color: inherit;
    cursor: zoom-in;
    text-decoration: none;
}

.public-sized-image__link img,
.public-sized-image > img {
    display: block;
    width: 100%;
    max-width: 100%;
    height: auto;
}

.public-sized-image.public-image-size-mode--height .public-sized-image__link {
    width: fit-content;
    max-width: 100%;
}

.public-sized-image.public-image-size-mode--height .public-sized-image__link img,
.public-sized-image.public-image-size-mode--height > img {
    width: auto;
    max-width: 100%;
    object-fit: contain;
}

.public-sized-image.public-image-size-mode--height.public-image-size--small .public-sized-image__link img,
.public-sized-image.public-image-size-mode--height.public-image-size--small > img {
    height: 120px;
}

.public-sized-image.public-image-size-mode--height.public-image-size--medium .public-sized-image__link img,
.public-sized-image.public-image-size-mode--height.public-image-size--medium > img {
    height: 180px;
}

.public-sized-image.public-image-size-mode--height.public-image-size--large .public-sized-image__link img,
.public-sized-image.public-image-size-mode--height.public-image-size--large > img {
    height: 240px;
}

.public-sized-image.public-image-size-mode--height.public-image-size--full .public-sized-image__link,
.public-sized-image.public-image-size-mode--height.public-image-size--full .public-sized-image__link img,
.public-sized-image.public-image-size-mode--height.public-image-size--full > img {
    width: auto;
    max-width: 100%;
    height: auto;
}

/* Die bisherigen kleinen starren Galerie-Raster werden durch die
   redaktionell festgelegten Größen ersetzt. */
.public-news-gallery,
.public-event-gallery,
.public-exhibition-gallery,
.public-product-gallery,
.public-sponsor-gallery {
    display: flex;
    flex-wrap: wrap;
    gap: 0.85rem;
    align-items: flex-start;
    justify-content: flex-start;
}

.public-news-gallery-item.public-sized-image,
.public-event-gallery-item.public-sized-image,
.public-exhibition-gallery-item.public-sized-image,
.public-product-gallery-item.public-sized-image,
.public-sponsor-gallery-item.public-sized-image {
    min-width: 0;
    margin: 0;
}

.public-news-gallery-item.public-sized-image .public-sized-image__link,
.public-event-gallery-item.public-sized-image .public-sized-image__link,
.public-exhibition-gallery-item.public-sized-image .public-sized-image__link,
.public-product-gallery-item.public-sized-image .public-sized-image__link,
.public-sponsor-gallery-item.public-sized-image .public-sized-image__link {
    overflow: hidden;
    border: 1px solid rgba(21, 61, 99, 0.22);
    border-left-color: var(--public-site-red);
    border-bottom-color: var(--public-site-red);
    border-radius: 0.25rem;
    background: #fff;
}

/* Seitliche Anordnung: Im Breitenmodus steuert die gewählte Stufe die Bildspalte. */
.public-flexible-box--image-left.public-flexible-box--image-size-mode-width.public-flexible-box--image-size-small,
.public-herb-text-block--image-left.public-herb-text-block--image-size-mode-width.public-herb-text-block--image-size-small,
.public-product-card--image-left.public-product-card--image-size-mode-width.public-product-card--image-size-small {
    grid-template-columns: minmax(0, 15%) minmax(0, 1fr);
}

.public-flexible-box--image-left.public-flexible-box--image-size-mode-width.public-flexible-box--image-size-medium,
.public-herb-text-block--image-left.public-herb-text-block--image-size-mode-width.public-herb-text-block--image-size-medium,
.public-product-card--image-left.public-product-card--image-size-mode-width.public-product-card--image-size-medium {
    grid-template-columns: minmax(0, 30%) minmax(0, 1fr);
}

.public-flexible-box--image-left.public-flexible-box--image-size-mode-width.public-flexible-box--image-size-large,
.public-herb-text-block--image-left.public-herb-text-block--image-size-mode-width.public-herb-text-block--image-size-large,
.public-product-card--image-left.public-product-card--image-size-mode-width.public-product-card--image-size-large {
    grid-template-columns: minmax(0, 50%) minmax(0, 1fr);
}

.public-flexible-box--image-right.public-flexible-box--image-size-mode-width.public-flexible-box--image-size-small,
.public-herb-text-block--image-right.public-herb-text-block--image-size-mode-width.public-herb-text-block--image-size-small,
.public-product-card--image-right.public-product-card--image-size-mode-width.public-product-card--image-size-small {
    grid-template-columns: minmax(0, 1fr) minmax(0, 15%);
}

.public-flexible-box--image-right.public-flexible-box--image-size-mode-width.public-flexible-box--image-size-medium,
.public-herb-text-block--image-right.public-herb-text-block--image-size-mode-width.public-herb-text-block--image-size-medium,
.public-product-card--image-right.public-product-card--image-size-mode-width.public-product-card--image-size-medium {
    grid-template-columns: minmax(0, 1fr) minmax(0, 30%);
}

.public-flexible-box--image-right.public-flexible-box--image-size-mode-width.public-flexible-box--image-size-large,
.public-herb-text-block--image-right.public-herb-text-block--image-size-mode-width.public-herb-text-block--image-size-large,
.public-product-card--image-right.public-product-card--image-size-mode-width.public-product-card--image-size-large {
    grid-template-columns: minmax(0, 1fr) minmax(0, 50%);
}

/* Im Höhenmodus bestimmt die Bildhöhe die benötigte Spaltenbreite. */
.public-flexible-box--image-left.public-flexible-box--image-size-mode-height,
.public-herb-text-block--image-left.public-herb-text-block--image-size-mode-height,
.public-product-card--image-left.public-product-card--image-size-mode-height {
    grid-template-columns: auto minmax(0, 1fr);
}

.public-flexible-box--image-right.public-flexible-box--image-size-mode-height,
.public-herb-text-block--image-right.public-herb-text-block--image-size-mode-height,
.public-product-card--image-right.public-product-card--image-size-mode-height {
    grid-template-columns: minmax(0, 1fr) auto;
}

.public-flexible-box--image-left .public-flexible-box__media.public-sized-image,
.public-flexible-box--image-right .public-flexible-box__media.public-sized-image,
.public-herb-text-block--image-left .public-herb-text-block__media.public-sized-image,
.public-herb-text-block--image-right .public-herb-text-block__media.public-sized-image,
.public-product-card--image-left .public-product-card-image.public-sized-image,
.public-product-card--image-right .public-product-card-image.public-sized-image {
    width: 100%;
}

.public-flexible-box--image-size-mode-height.public-flexible-box--image-left .public-flexible-box__media.public-sized-image,
.public-flexible-box--image-size-mode-height.public-flexible-box--image-right .public-flexible-box__media.public-sized-image,
.public-herb-text-block--image-size-mode-height.public-herb-text-block--image-left .public-herb-text-block__media.public-sized-image,
.public-herb-text-block--image-size-mode-height.public-herb-text-block--image-right .public-herb-text-block__media.public-sized-image,
.public-product-card--image-size-mode-height.public-product-card--image-left .public-product-card-image.public-sized-image,
.public-product-card--image-size-mode-height.public-product-card--image-right .public-product-card-image.public-sized-image {
    width: fit-content;
    max-width: min(48vw, 100%);
}

/* Einheitlicher Textumfluss für Fachdetailseiten. */
.public-image-flow {
    display: flow-root;
}

.public-image-flow--top .public-image-flow__media {
    margin: 0 0 1rem;
}

.public-image-flow--bottom {
    display: flex;
    flex-direction: column;
}

.public-image-flow--bottom .public-image-flow__body {
    order: 1;
}

.public-image-flow--bottom .public-image-flow__media {
    order: 2;
    margin: 1rem 0 0;
}

.public-image-flow--left,
.public-image-flow--right {
    display: flex;
    gap: 1.1rem;
    align-items: flex-start;
}

.public-image-flow--left .public-image-flow__media,
.public-image-flow--right .public-image-flow__media {
    flex: 0 0 auto;
    margin: 0;
}

.public-image-flow--left .public-image-flow__body,
.public-image-flow--right .public-image-flow__body {
    flex: 1 1 0;
    min-width: 0;
}

.public-image-flow--right .public-image-flow__body {
    order: 1;
}

.public-image-flow--right .public-image-flow__media {
    order: 2;
}

.public-image-flow--wrap-left .public-image-flow__media,
.public-image-flow--wrap-right .public-image-flow__media {
    max-width: 50%;
    margin-top: 0.15rem;
    margin-bottom: 0.8rem;
}

.public-image-flow--wrap-left .public-image-flow__media {
    float: left;
    margin-right: 1.1rem;
}

.public-image-flow--wrap-right .public-image-flow__media {
    float: right;
    margin-left: 1.1rem;
}

/* Textumfluss auch für redaktionelle Startseiten-/Sponsorboxen,
   Kräuterladen-Texte sowie Produkt- und Sponsor-Karten. */
.public-flexible-box--image-wrap-left,
.public-flexible-box--image-wrap-right,
.public-herb-text-block--image-wrap-left,
.public-herb-text-block--image-wrap-right,
.public-product-card--image-wrap-left,
.public-product-card--image-wrap-right,
.public-sponsor-card--image-wrap-left,
.public-sponsor-card--image-wrap-right {
    display: flow-root;
}

.public-herb-text-block--image-wrap-left .public-herb-text-block__media,
.public-herb-text-block--image-wrap-right .public-herb-text-block__media,
.public-product-card--image-wrap-left .public-product-card-image,
.public-product-card--image-wrap-right .public-product-card-image,
.public-sponsor-card--image-wrap-left .public-sponsor-card-image,
.public-sponsor-card--image-wrap-right .public-sponsor-card-image {
    max-width: 50%;
    margin-top: 0.15rem;
    margin-bottom: 0.8rem;
}

.public-herb-text-block--image-wrap-left .public-herb-text-block__media,
.public-product-card--image-wrap-left .public-product-card-image,
.public-sponsor-card--image-wrap-left .public-sponsor-card-image {
    float: left;
    margin-right: 1rem;
}

.public-herb-text-block--image-wrap-right .public-herb-text-block__media,
.public-product-card--image-wrap-right .public-product-card-image,
.public-sponsor-card--image-wrap-right .public-sponsor-card-image {
    float: right;
    margin-left: 1rem;
}

/* Förderer-Karten unterstützen dieselben seitlichen Positionen. */
.public-sponsor-card--image-left,
.public-sponsor-card--image-right {
    display: flex;
    gap: 0.9rem;
    align-items: flex-start;
}

.public-sponsor-card--image-left .public-sponsor-card-image,
.public-sponsor-card--image-right .public-sponsor-card-image {
    flex: 0 0 auto;
    margin: 0;
}

.public-sponsor-card--image-left .public-sponsor-card-content,
.public-sponsor-card--image-right .public-sponsor-card-content {
    flex: 1 1 0;
    min-width: 0;
}

.public-sponsor-card--image-right .public-sponsor-card-content {
    order: 1;
}

.public-sponsor-card--image-right .public-sponsor-card-image {
    order: 2;
}

/* Seiteneditor: Die gewählte Bildgröße bleibt auch beim Textumfluss maßgeblich. */
.public-page-image-block--left .public-page-figure.public-image-size-mode--width.public-image-size--small,
.public-page-image-block--right .public-page-figure.public-image-size-mode--width.public-image-size--small {
    width: 15%;
    max-width: none;
}

.public-page-image-block--left .public-page-figure.public-image-size-mode--width.public-image-size--medium,
.public-page-image-block--right .public-page-figure.public-image-size-mode--width.public-image-size--medium {
    width: 30%;
    max-width: none;
}

.public-page-image-block--left .public-page-figure.public-image-size-mode--width.public-image-size--large,
.public-page-image-block--right .public-page-figure.public-image-size-mode--width.public-image-size--large {
    width: 50%;
    max-width: none;
}

.public-page-image-block--left .public-page-figure.public-image-size-mode--width.public-image-size--full,
.public-page-image-block--right .public-page-figure.public-image-size-mode--width.public-image-size--full {
    width: 100%;
    max-width: none;
}

.public-page-image-block--left .public-page-figure.public-image-size-mode--height,
.public-page-image-block--right .public-page-figure.public-image-size-mode--height {
    width: fit-content;
    max-width: 50%;
}

/* Einheitliche Lightbox. */
.public-image-lightbox[hidden] {
    display: none;
}

.public-image-lightbox {
    position: fixed;
    inset: 0;
    z-index: 1200;
    display: grid;
    place-items: center;
    overflow: hidden;
    padding: 1.25rem;
    background: rgba(15, 23, 42, 0.72);
}

.public-image-lightbox__panel {
    display: flex;
    width: fit-content;
    min-width: min(20rem, 92vw);
    max-width: min(94vw, 88rem);
    max-height: 94vh;
    overflow: hidden;
    flex-direction: column;
    border: 1px solid rgba(21, 61, 99, 0.22);
    border-radius: 0.65rem;
    background: var(--public-site-surface);
    box-shadow: 0 1.2rem 3.5rem rgba(0, 0, 0, 0.28);
}

.public-image-lightbox__header {
    display: flex;
    flex: 0 0 auto;
    align-items: flex-start;
    justify-content: space-between;
    gap: 1rem;
    padding: 0.9rem 1rem;
    border-bottom: 1px solid var(--public-site-red);
    background: var(--public-site-light-blue);
}

.public-image-lightbox__eyebrow {
    display: block;
    margin-bottom: 0.15rem;
    color: var(--public-site-muted);
    font-family: Arial, Helvetica, sans-serif;
    font-size: 0.72rem;
    font-weight: 700;
    letter-spacing: 0.04em;
    text-transform: uppercase;
}

.public-image-lightbox__header h2 {
    margin: 0;
    color: var(--public-site-blue);
    font-family: Arial, Helvetica, sans-serif;
    font-size: 1.05rem;
    line-height: 1.25;
}

.public-image-lightbox__close {
    display: inline-flex;
    flex: 0 0 auto;
    align-items: center;
    justify-content: center;
    width: 2rem;
    height: 2rem;
    padding: 0;
    border: 1px solid rgba(21, 61, 99, 0.24);
    border-radius: 50%;
    color: var(--public-site-blue);
    background: var(--public-site-surface);
    font: inherit;
    font-size: 1.35rem;
    line-height: 1;
    cursor: pointer;
}

.public-image-lightbox__close:hover {
    border-color: var(--public-site-red);
    color: var(--public-site-red);
}

.public-image-lightbox__close:focus-visible {
    outline: 3px solid var(--public-site-blue);
    outline-offset: 2px;
}

.public-image-lightbox__content {
    overflow: auto;
    overscroll-behavior: contain;
    padding: 1rem;
}

.public-image-lightbox__figure {
    display: grid;
    gap: 0.55rem;
    min-width: 0;
    margin: 0;
}

.public-image-lightbox__figure img {
    display: block;
    width: auto;
    max-width: min(90vw, 84rem);
    max-height: calc(94vh - 7.5rem);
    margin: 0 auto;
    object-fit: contain;
}

.public-image-lightbox__header-copy {
    min-width: 0;
}

.public-image-lightbox__caption {
    display: flex;
    flex-wrap: wrap;
    align-items: baseline;
    column-gap: 0.8rem;
    row-gap: 0.15rem;
    margin-top: 0.4rem;
    color: var(--public-site-blue);
    font-size: 0.86rem;
    line-height: 1.35;
}

.public-image-lightbox__caption small {
    color: var(--public-site-muted);
    font-size: 0.78rem;
}

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

body.public-image-lightbox-open {
    overflow: hidden;
}

@media (max-width: 720px) {
    .public-sized-image.public-image-size--small,
    .public-sized-image.public-image-size--medium,
    .public-sized-image.public-image-size--large,
    .public-sized-image.public-image-size--full,
    .public-sized-image.public-image-size-mode--height {
        width: 100%;
        max-width: 100%;
    }

    .public-sized-image.public-image-size-mode--height .public-sized-image__link {
        width: 100%;
    }

    .public-sized-image.public-image-size-mode--height.public-image-size--small .public-sized-image__link img,
    .public-sized-image.public-image-size-mode--height.public-image-size--small > img,
    .public-sized-image.public-image-size-mode--height.public-image-size--medium .public-sized-image__link img,
    .public-sized-image.public-image-size-mode--height.public-image-size--medium > img,
    .public-sized-image.public-image-size-mode--height.public-image-size--large .public-sized-image__link img,
    .public-sized-image.public-image-size-mode--height.public-image-size--large > img {
        width: 100%;
        height: auto;
    }

    .public-flexible-box--image-left,
    .public-flexible-box--image-right,
    .public-herb-text-block--image-left,
    .public-herb-text-block--image-right,
    .public-product-card--image-left,
    .public-product-card--image-right {
        grid-template-columns: 1fr;
    }

    .public-image-flow--left,
    .public-image-flow--right,
    .public-image-flow--bottom,
    .public-sponsor-card--image-left,
    .public-sponsor-card--image-right {
        display: block;
    }

    .public-image-flow--wrap-left .public-image-flow__media,
    .public-image-flow--wrap-right .public-image-flow__media,
    .public-flexible-box--image-wrap-left .public-flexible-box__media,
    .public-flexible-box--image-wrap-right .public-flexible-box__media,
    .public-herb-text-block--image-wrap-left .public-herb-text-block__media,
    .public-herb-text-block--image-wrap-right .public-herb-text-block__media,
    .public-product-card--image-wrap-left .public-product-card-image,
    .public-product-card--image-wrap-right .public-product-card-image,
    .public-sponsor-card--image-wrap-left .public-sponsor-card-image,
    .public-sponsor-card--image-wrap-right .public-sponsor-card-image,
    .public-page-image-block--left .public-page-figure,
    .public-page-image-block--right .public-page-figure {
        float: none;
        width: 100%;
        max-width: 100%;
        margin: 0 0 1rem;
    }

    .public-image-flow--right .public-image-flow__media,
    .public-image-flow--right .public-image-flow__body,
    .public-sponsor-card--image-right .public-sponsor-card-image,
    .public-sponsor-card--image-right .public-sponsor-card-content {
        order: initial;
    }

    .public-image-lightbox {
        padding: 0.45rem;
    }

    .public-image-lightbox__panel {
        width: 100%;
        min-width: 0;
        max-height: 97vh;
    }

    .public-image-lightbox__header {
        padding: 0.75rem 0.85rem;
    }

    .public-image-lightbox__content {
        padding: 0.7rem;
    }

    .public-image-lightbox__figure img {
        max-width: 100%;
        max-height: calc(97vh - 7rem);
    }
}

/* Korrekturschritt 0.9.0-15lgsjc:
   Fachbereichs-Zurueckbuttons muessen bereits ohne Hover klar lesbar sein.
   Spaetere Link-Farbregeln duerfen nicht rote Schrift auf rotem Button erzeugen. */
.public-news-backlink a,
.public-events-backlink a,
.public-exhibitions-backlink a,
.public-products-backlink a,
.public-sponsors-backlink a {
    border-color: var(--public-site-red);
    color: #fff;
    background: var(--public-site-red);
    text-decoration: none;
}

.public-news-backlink a:hover,
.public-news-backlink a:focus-visible,
.public-events-backlink a:hover,
.public-events-backlink a:focus-visible,
.public-exhibitions-backlink a:hover,
.public-exhibitions-backlink a:focus-visible,
.public-products-backlink a:hover,
.public-products-backlink a:focus-visible,
.public-sponsors-backlink a:hover,
.public-sponsors-backlink a:focus-visible {
    border-color: var(--public-site-red-dark);
    color: #fff;
    background: var(--public-site-red-dark);
}

/* Bildgroessenmodus in den Startseiten-Schnellzugriffen:
   Der bestaetigte 16:9-Rahmen bleibt im Breitenmodus erhalten; nur der
   Hoehenmodus hebt ihn auf, damit 120/180/240 px tatsaechlich gelten. */
.public-home-feature-card__media.public-image-size-mode--height {
    aspect-ratio: auto;
}

.public-home-feature-card__media.public-image-size-mode--height img {
    object-fit: contain;
}


/* Korrekturschritt 0.9.0-15lgsjda:
   Auf Produktdetailseiten Bildunterschriften unter den Bildern ausblenden.
   Die hinterlegten Caption-/Rechteangaben bleiben für die Lightbox erhalten. */
.public-product-detail figure figcaption {
    display: none;
}

/* Korrekturschritt 0.9.1-01da:
   Freie Startseitenboxen mit Bild-Textumfluss werden auf kleinen Ansichten
   vollständig einspaltig. Die redaktionelle Breitenstufe (15/30/50/100 %)
   gilt dort nicht für den Medienblock, damit Bild und Beschriftung nicht
   in eine schmale Spalte gedrückt werden. Desktop und Tablet bleiben
   unverändert. */
@media (max-width: 720px) {
    .public-homepage-flexible-row
    .public-flexible-box--image-wrap-left
    .public-flexible-box__media.public-sized-image,
    .public-homepage-flexible-row
    .public-flexible-box--image-wrap-right
    .public-flexible-box__media.public-sized-image {
        float: none;
        width: 100%;
        max-width: 100%;
        margin: 0 0 1rem;
    }
}

/* Korrekturschritt 0.9.1-02b:
   Öffentliche Bildunterschriften bleiben innerhalb der tatsächlich
   gerenderten Bildbreite. Die exakte Breite wird zentral in public-site.js
   an das jeweilige Bild gekoppelt. */
.public-sized-image > figcaption {
    box-sizing: border-box;
    max-width: 100%;
    overflow-wrap: anywhere;
}

/* Korrekturschritt 0.9.1-02d:
   Das zentrale redaktionelle Bildgrößensystem ist für die tatsächliche
   Bildgröße maßgeblich. Ältere 720/760-px-Maximalhöhen einzelner
   Fachseiten dürfen Bilder nicht mehr innerhalb eines breiteren
   Bildrahmens einpassen und dadurch seitliche weiße Leerflächen erzeugen. */
.public-sized-image > .public-sized-image__link > img,
.public-sized-image > img {
    max-height: none;
}


/* Korrekturschritt 0.9.1-04db:
   Sichtbare Bildunterschriften der öffentlichen Website einheitlich ohne
   hellblauen Hintergrund darstellen. Lightbox-Beschriftungen bleiben
   unverändert. */
.public-sized-image > figcaption {
    background: #fff;
}

/* Schritt 0.9.1-06a: Dynamische Datenblöcke auf frei verwaltbaren Seiten.
   Die Blöcke übernehmen die bestätigte transparente Inhaltsdarstellung und
   lesen ihre Werte ausschließlich aus den zentral gepflegten Besuchsdaten. */
.public-dynamic-block {
    min-width: 0;
}

.public-dynamic-block__title {
    margin: 0 0 0.75rem;
    color: var(--public-site-red);
    font-family: Georgia, 'Times New Roman', serif;
    font-size: 1.12rem;
    font-weight: 600;
    line-height: 1.25;
}

.public-dynamic-block__rows {
    display: grid;
    gap: 0.38rem;
    margin: 0;
}

.public-dynamic-block__row {
    display: grid;
    grid-template-columns: minmax(7rem, 1fr) minmax(7rem, auto);
    gap: 0.75rem;
    align-items: baseline;
}

.public-dynamic-block__row dt,
.public-dynamic-block__row dd {
    margin: 0;
}

.public-dynamic-block__row dt {
    font-weight: 600;
}

.public-dynamic-block__row dd {
    text-align: right;
}

.public-dynamic-block__empty {
    margin: 0;
    color: #5f7283;
}

.public-dynamic-block__special-list {
    display: grid;
    gap: 0.8rem;
}

.public-dynamic-block__special-item {
    padding: 0 0 0.75rem;
    border-bottom: 1px solid rgba(150, 0, 0, 0.28);
}

.public-dynamic-block__special-item:last-child {
    padding-bottom: 0;
    border-bottom: 0;
}

.public-dynamic-block__special-item h3 {
    margin: 0 0 0.35rem;
    color: var(--public-site-blue);
    font-family: Georgia, 'Times New Roman', serif;
    font-size: 1rem;
}

.public-dynamic-block__special-item p {
    margin: 0.2rem 0 0;
}

.public-dynamic-block__note {
    color: #4f6577;
}

/* Schritt 0.9.1-11a: Wiederverwendbare dynamische Kontaktblöcke.
   Die Ausgabe entspricht den bestehenden Rechtliches-Kontaktdaten und wird
   ausschließlich aus den zentralen Einstellungen gespeist. */
.public-dynamic-contact {
    min-width: 0;
}

.public-dynamic-contact__group {
    display: grid;
    gap: 0.08rem;
}

.public-dynamic-contact__group + .public-dynamic-contact__group {
    margin-top: 1.15rem;
}

.public-dynamic-contact__line {
    display: block;
    min-width: 0;
}

.public-dynamic-contact__email {
    overflow-wrap: anywhere;
}

@media (max-width: 720px) {
    .public-dynamic-block__row {
        grid-template-columns: minmax(0, 1fr) auto;
        gap: 0.6rem;
    }
}

/* 0.9.1-07a/07b: Videobloecke frei verwaltbarer Inhaltsseiten */
.public-page-video {
    display: block;
    min-width: 0;
    margin: 1.5rem 0;
}

.public-page-video::after {
    display: table;
    clear: both;
    content: '';
}

.public-page-video__title {
    margin: 0 0 0.7rem;
    color: var(--public-site-blue);
    font-family: Georgia, 'Times New Roman', serif;
    font-size: 1.35rem;
    font-weight: 600;
    line-height: 1.25;
}

.public-page-video__media {
    overflow: hidden;
    width: 100%;
    max-width: 100%;
    margin: 0 0 0.8rem;
    border-left: 1px solid var(--public-site-red);
    border-bottom: 1px solid var(--public-site-red);
    border-radius: 0.2rem;
    background: transparent;
}

.public-page-video--standard .public-page-video__media {
    max-width: 720px;
}

.public-page-video--left .public-page-video__media {
    float: left;
    margin: 0.2rem 1.4rem 0.8rem 0;
}

.public-page-video--right .public-page-video__media {
    float: right;
    margin: 0.2rem 0 0.8rem 1.4rem;
}

.public-page-video__media.public-image-size-mode--width.public-image-size--small {
    width: 15%;
    max-width: none;
}

.public-page-video__media.public-image-size-mode--width.public-image-size--medium {
    width: 30%;
    max-width: none;
}

.public-page-video__media.public-image-size-mode--width.public-image-size--large {
    width: 50%;
    max-width: none;
}

.public-page-video__media.public-image-size-mode--width.public-image-size--full {
    width: 100%;
    max-width: none;
}

.public-page-video__media.public-image-size-mode--height {
    width: fit-content;
    max-width: 100%;
}

.public-page-video--left .public-page-video__media.public-image-size-mode--height,
.public-page-video--right .public-page-video__media.public-image-size-mode--height {
    max-width: 50%;
}

.public-page-video__player {
    display: block;
    width: 100%;
    max-width: 100%;
    height: auto;
    background: #000;
}

.public-page-video__media.public-image-size-mode--height .public-page-video__player {
    width: auto;
    max-width: 100%;
    object-fit: contain;
}

.public-page-video__media.public-image-size-mode--height.public-image-size--small .public-page-video__player {
    height: 120px;
}

.public-page-video__media.public-image-size-mode--height.public-image-size--medium .public-page-video__player {
    height: 180px;
}

.public-page-video__media.public-image-size-mode--height.public-image-size--large .public-page-video__player {
    height: 240px;
}

.public-page-video__media.public-image-size-mode--height.public-image-size--full .public-page-video__player {
    width: auto;
    max-width: 100%;
    height: auto;
}

.public-page-video__caption {
    display: grid;
    gap: 0.1rem;
    padding: 0.35rem 0.45rem 0.3rem;
    background: transparent;
    color: var(--public-site-muted);
    font-size: 0.82rem;
    line-height: 1.35;
}

.public-page-video__caption small {
    font: inherit;
}

.public-page-video__description {
    overflow-wrap: anywhere;
}

@media (max-width: 720px) {
    .public-page-video {
        margin: 1.15rem 0;
    }

    .public-page-video__title {
        font-size: 1.2rem;
    }

    .public-page-video--left .public-page-video__media,
    .public-page-video--right .public-page-video__media,
    .public-page-video__media.public-image-size-mode--width.public-image-size--small,
    .public-page-video__media.public-image-size-mode--width.public-image-size--medium,
    .public-page-video__media.public-image-size-mode--width.public-image-size--large,
    .public-page-video__media.public-image-size-mode--width.public-image-size--full,
    .public-page-video__media.public-image-size-mode--height,
    .public-page-video--left .public-page-video__media.public-image-size-mode--height,
    .public-page-video--right .public-page-video__media.public-image-size-mode--height {
        float: none;
        width: 100%;
        max-width: 100%;
        margin: 0 0 1rem;
    }

    .public-page-video__media.public-image-size-mode--height.public-image-size--small .public-page-video__player,
    .public-page-video__media.public-image-size-mode--height.public-image-size--medium .public-page-video__player,
    .public-page-video__media.public-image-size-mode--height.public-image-size--large .public-page-video__player,
    .public-page-video__media.public-image-size-mode--height.public-image-size--full .public-page-video__player {
        width: 100%;
        height: auto;
    }
}

/* 0.9.1-10a: Einheitlicher redaktioneller Inhaltsbereich auf frei verwaltbaren Seiten. */
.public-page-editorial {
    display: flow-root;
    min-width: 0;
}

.public-page-editorial > .public-page-heading {
    margin-top: 0;
}

.public-page-editorial__main {
    /* Der übergeordnete Editorial-Block kapselt den Float bereits.
       Hier bewusst keinen eigenen Formatierungskontext erzeugen, damit
       Galerieelemente bei links/rechts stehendem Hauptbild daneben fließen können. */
    display: block;
}

.public-page-editorial-gallery-area {
    display: flow-root;
    min-width: 0;
    margin-top: 1rem;
    padding-top: 0.75rem;
    border-top: 1px solid var(--public-site-border);
}

.public-page-editorial-gallery__title {
    margin: 0 0 0.6rem;
    color: var(--public-site-red);
    font-family: var(--public-site-heading-font);
    font-size: 1.08rem;
    line-height: 1.25;
}

.public-page-editorial-gallery {
    display: flex;
    flex-wrap: wrap;
    gap: 0.9rem;
    align-items: flex-start;
}

.public-page-editorial-gallery__item.public-sized-image {
    flex: 0 0 auto;
    margin: 0;
}

.public-page-editorial-downloads {
    display: grid;
    gap: 0.65rem;
    clear: both;
    margin-top: 1rem;
}

.public-page-editorial-downloads .public-page-download {
    margin: 0;
}

.public-page-editorial-dynamic {
    clear: both;
    margin-top: 1rem;
}

@media (max-width: 720px) {
    .public-page-editorial-gallery-area {
        clear: both;
    }

    .public-page-editorial-gallery {
        display: grid;
        grid-template-columns: 1fr;
    }

    .public-page-editorial-gallery__item.public-sized-image {
        width: 100%;
        max-width: 100%;
    }
}

/* 0.9.1-10ca: Beim Standard-Inhaltsbereich darf ein links/rechts umflossenes
   Hauptbild in den Bereich der Zusatzbilder hineinragen. Der Galerieabschnitt
   bildet dabei – wie bei News – eine eigene, neben dem Hauptbild eingerückte
   Inhaltsfläche und behält seine obere Trennlinie. */
.public-page-editorial__main::after {
    display: none;
    clear: none;
    content: none;
}

/* Korrekturschritt 0.9.1-10cc:
   Redaktionelle Zusatzinhalte fester Seiten stehen kompakter unter dem
   Seitentitel. Nach der roten Abschlusslinie bleibt vor dem jeweiligen
   Fachinhalt ein klarer Abstand. Freie Inhaltsseiten bleiben unverändert. */
.public-fixed-editorial-content {
    min-width: 0;
    margin-bottom: 1.25rem;
}

.public-news-header + .public-fixed-editorial-content,
.public-events-header + .public-fixed-editorial-content,
.public-exhibitions-header + .public-fixed-editorial-content,
.public-products-header + .public-fixed-editorial-content,
.public-sponsors-header + .public-fixed-editorial-content,
.public-page-header + .public-fixed-editorial-content {
    margin-top: -0.7rem;
}

.public-fixed-editorial-content
.public-page-content.public-layout-grid
> .public-page-block:first-child
.public-page-heading:first-child {
    margin-top: 0 !important;
}

@media (max-width: 720px) {
    .public-fixed-editorial-content {
        margin-bottom: 1rem;
    }

    .public-news-header + .public-fixed-editorial-content,
    .public-events-header + .public-fixed-editorial-content,
    .public-exhibitions-header + .public-fixed-editorial-content,
    .public-products-header + .public-fixed-editorial-content,
    .public-sponsors-header + .public-fixed-editorial-content,
    .public-page-header + .public-fixed-editorial-content {
        margin-top: -0.5rem;
    }
}


/* Korrekturschritt 0.9.1-11b:
   Reine Überschriftenblöcke erhalten wie der Seitentitel nur einen kurzen
   roten Abschlussakzent statt einer Linie über die gesamte Blockbreite. */
.public-page-block:has(> .public-page-heading) {
    border-bottom: 0;
}

.public-page-block:has(> .public-page-heading)::after {
    display: block;
    width: 2.2rem;
    height: 1px;
    margin-top: 0.45rem;
    content: '';
    background: var(--public-site-red);
}

/* Korrekturschritt 0.9.1-11e:
   Steht ein reiner H2-Block unmittelbar vor einem dynamischen Kontakt- oder
   Registerblock, werden beide optisch als ein gemeinsamer Inhaltsabschnitt
   dargestellt. Die rote Trennlinie erscheint erst unter dem dynamischen
   Inhalt; der globale Blockabstand von 0.5rem wird nur zwischen diesem
   zusammengehörigen Paar aufgehoben. */
.public-page-block:has(> .public-page-text > h2:only-child):has(+ .public-page-block > .public-dynamic-block .public-dynamic-contact),
.public-page-block:has(> .public-page-heading--h2):has(+ .public-page-block > .public-dynamic-block .public-dynamic-contact) {
    padding-bottom: 0;
    border-bottom: 0;
}

.public-page-block:has(> .public-page-text > h2:only-child) + .public-page-block:has(> .public-dynamic-block .public-dynamic-contact),
.public-page-block:has(> .public-page-heading--h2) + .public-page-block:has(> .public-dynamic-block .public-dynamic-contact) {
    margin-top: -0.5rem;
    padding-top: 0.1rem;
}


/* Schritt 0.9.1-13a: Kontaktformular nach der bestaetigten Strukturvorlage,
   in der bestehenden Museumsfarbwelt und ohne Aenderung anderer Seitentypen. */
.public-contact-section {
    margin-top: 1.15rem;
}

.public-contact-grid {
    display: grid;
    grid-template-columns: minmax(0, 1.5fr) minmax(16rem, 0.72fr);
    gap: 1.25rem;
    align-items: start;
}

.public-contact-form-panel,
.public-contact-card,
.public-contact-connect {
    border: 1px solid rgba(21, 61, 99, 0.16);
    border-left: 2px solid var(--public-site-red);
    border-bottom-color: rgba(150, 0, 0, 0.48);
    border-radius: 0.22rem;
    background: rgba(255, 255, 255, 0.94);
    box-shadow: 0 0.15rem 0.5rem rgba(21, 61, 99, 0.055);
}

.public-contact-form-panel {
    padding: 1rem 1.05rem 1.1rem;
}

.public-contact-card,
.public-contact-connect {
    padding: 0.95rem 1rem;
}

.public-contact-form-panel > h2,
.public-contact-card > h2,
.public-contact-connect > h2 {
    margin: 0 0 0.85rem;
    color: var(--public-site-red);
    font-family: Georgia, 'Times New Roman', serif;
    font-size: 1.18em;
    font-weight: 600;
}

.public-contact-form {
    display: grid;
    gap: 0.85rem;
}

.public-contact-form__row {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 0.85rem;
}

.public-contact-field {
    min-width: 0;
}

.public-contact-field label,
.public-contact-consent label {
    color: var(--public-site-blue);
    font-size: 0.86rem;
    font-weight: 700;
}

.public-contact-optional {
    color: var(--public-site-muted);
    font-size: 0.82em;
    font-weight: 400;
}

.public-contact-field input,
.public-contact-field select,
.public-contact-field textarea {
    display: block;
    width: 100%;
    margin-top: 0.3rem;
    padding: 0.52rem 0.58rem;
    color: var(--public-site-blue);
    background: #fff;
    border: 1px solid rgba(21, 61, 99, 0.28);
    border-radius: 0.2rem;
}

.public-contact-field input,
.public-contact-field select {
    min-height: 2.45rem;
}

.public-contact-field textarea {
    min-height: 10rem;
    resize: vertical;
}

.public-contact-field input:focus,
.public-contact-field select:focus,
.public-contact-field textarea:focus {
    border-color: var(--public-site-red);
    outline: 2px solid rgba(150, 0, 0, 0.16);
    outline-offset: 1px;
}

.public-contact-field [aria-invalid="true"],
.public-contact-consent input[aria-invalid="true"] {
    border-color: var(--public-site-red);
}

.public-contact-consent {
    display: grid;
    grid-template-columns: auto minmax(0, 1fr);
    gap: 0.55rem;
    align-items: start;
    padding-top: 0.15rem;
}

.public-contact-consent input {
    width: 1rem;
    height: 1rem;
    margin: 0.2rem 0 0;
    accent-color: var(--public-site-red);
}

.public-contact-required {
    margin: 0;
    color: var(--public-site-muted);
    font-size: 0.78rem;
}

.public-contact-submit {
    justify-self: start;
    min-height: 2.35rem;
    padding: 0.46rem 0.85rem;
    color: #fff;
    background: var(--public-site-red);
    border: 1px solid var(--public-site-red);
    border-radius: 0.2rem;
    font-weight: 700;
    cursor: pointer;
}

.public-contact-submit:hover,
.public-contact-submit:focus-visible {
    color: #fff;
    background: var(--public-site-red-dark);
    border-color: var(--public-site-red-dark);
}

.public-contact-submit:disabled {
    cursor: not-allowed;
    opacity: 0.52;
}

.public-contact-honeypot {
    position: absolute !important;
    left: -10000px !important;
    width: 1px !important;
    height: 1px !important;
    overflow: hidden !important;
}

.public-contact-message {
    margin: 0 0 0.9rem;
    padding: 0.7rem 0.8rem;
    border-left: 2px solid var(--public-site-blue);
    background: rgba(220, 234, 247, 0.38);
}

.public-contact-message--error {
    border-left-color: var(--public-site-red);
    background: rgba(150, 0, 0, 0.055);
}

.public-contact-message ul {
    margin: 0.35rem 0 0;
    padding-left: 1.1rem;
}

.public-contact-field-error {
    margin: 0.25rem 0 0;
    color: var(--public-site-red-dark);
    font-size: 0.78rem;
}

.public-contact-card__item {
    display: grid;
    gap: 0.18rem;
    padding: 0.72rem 0;
    border-top: 1px solid rgba(21, 61, 99, 0.10);
}

.public-contact-card__item:first-of-type {
    padding-top: 0.2rem;
    border-top: 0;
}

.public-contact-card__label {
    color: var(--public-site-red);
    font-size: 0.68rem;
    font-weight: 700;
    letter-spacing: 0.08em;
    text-transform: uppercase;
}

.public-contact-card strong {
    color: var(--public-site-blue);
}

.public-contact-card address {
    margin: 0;
    color: inherit;
    font-style: normal;
}

.public-contact-card a {
    color: var(--public-site-blue);
}

/* Schritt 0.9.1-13f-2o: zwei lokale QR-Karten nach dem bestaetigten
   Kontaktseitenmuster; Ziele und Kontaktdaten bleiben dynamisch. */
.public-contact-sidebar {
    display: grid;
    min-width: 0;
    gap: 0.9rem;
}

.public-contact-qr-grid {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 0.7rem;
}

.public-contact-qr-card {
    min-width: 0;
    padding: 0.72rem;
    text-align: center;
    border: 1px solid rgba(21, 61, 99, 0.13);
    border-radius: 0.2rem;
    background: #fff;
}

.public-contact-qr-card h3 {
    margin: 0 0 0.55rem;
    color: var(--public-site-blue);
    font-size: 0.9rem;
}

.public-contact-qr-card img {
    display: block;
    width: min(100%, 10.5rem);
    height: auto;
    margin: 0 auto 0.55rem;
}

.public-contact-qr-card p {
    margin: 0 0 0.5rem;
    color: var(--public-site-muted);
    font-size: 0.76rem;
    line-height: 1.42;
}

.public-contact-qr-card__target {
    overflow-wrap: anywhere;
    word-break: break-word;
}

.public-contact-qr-card a {
    display: inline-block;
    color: var(--public-site-blue);
    font-size: 0.76rem;
    font-weight: 700;
}

.public-contact-qr-card a:hover,
.public-contact-qr-card a:focus-visible {
    color: var(--public-site-red);
}

@media (max-width: 980px) {
    .public-contact-qr-grid {
        grid-template-columns: minmax(0, 1fr);
    }
}

@media (max-width: 860px) {
    .public-contact-grid {
        grid-template-columns: minmax(0, 1fr);
    }
}

@media (max-width: 560px) {
    .public-contact-form-panel,
    .public-contact-card,
    .public-contact-connect {
        padding: 0.78rem 0.8rem 0.88rem;
    }

    .public-contact-form__row {
        grid-template-columns: minmax(0, 1fr);
    }

    .public-contact-submit {
        width: 100%;
    }
}

.public-contact-main {
    display: grid;
    min-width: 0;
    gap: 0.9rem;
}

.public-contact-main > .public-page-content.public-layout-grid {
    width: 100%;
}

/* Schritt 0.9.1-13b: OpenStreetMap-Karte für die Anfahrtsseite.
   Die Karte ist ein definierter dynamischer Seitenblock; die Attribution
   bleibt unmittelbar an der Karte sichtbar. */
.public-osm-map {
    min-width: 0;
}

.public-osm-map__frame {
    overflow: hidden;
    width: 100%;
    border-left: 1px solid var(--public-site-red);
    border-bottom: 1px solid var(--public-site-red);
    border-radius: 0.2rem;
    background: #f6f7f9;
}

.public-osm-map__frame iframe {
    display: block;
    width: 100%;
    height: 26rem;
    border: 0;
}

.public-osm-map__attribution,
.public-osm-map__fallback {
    margin: 0.45rem 0 0;
    color: var(--public-site-muted);
    font-size: 0.84rem;
    line-height: 1.45;
}

.public-osm-map__attribution a,
.public-osm-map__fallback a {
    color: var(--public-site-blue);
    text-decoration: underline;
    text-underline-offset: 0.12em;
}

.public-osm-map__attribution a:hover,
.public-osm-map__attribution a:focus-visible,
.public-osm-map__fallback a:hover,
.public-osm-map__fallback a:focus-visible {
    color: var(--public-site-red);
}

@media (max-width: 900px) {
    .public-osm-map__frame iframe {
        height: 22rem;
    }
}

@media (max-width: 600px) {
    .public-osm-map__frame iframe {
        height: 18rem;
    }
}

/* Korrekturschritt 0.9.1-13db:
   Startseitenabstände gezielt verdichten und die Schnellzugriffsboxen
   mit einer roten Abschlusslinie vom folgenden Inhaltsbereich trennen. */
.public-homepage
.public-home-module[data-homepage-module^="custom:"]
> .public-homepage-flexible-row {
    margin-top: 0.4rem;
}

.public-homepage
.public-home-module[data-homepage-module="feature_cards"]
.public-home-features {
    margin-bottom: 0.2rem;
    padding-bottom: 0.8rem;
    border-bottom: 1px solid var(--public-site-red);
}

/* Korrekturschritt 0.9.1-13dbb:
   Größensteuerung aller Startseitenmodule vereinheitlichen.
   Klein/Mittel/Groß bestimmt die Breite des Modulplatzes; der sichtbare
   Inhalt nutzt diesen Platz vollständig. Ältere Kompaktregeln dürfen
   Aktuelles, Themenführungen oder Ausstellungen nicht erneut auf 1/2 bzw.
   1/3 des bereits gewählten Modulplatzes begrenzen. Besuchsinformationen,
   Schnellzugriffe und eigene Startseitenmodule werden auf denselben
   Grundsatz geprüft und normiert. */
.public-homepage .public-home-module > .public-home-visit-strip,
.public-homepage .public-home-module > .public-home-features,
.public-homepage .public-home-module > .public-home-news-compact,
.public-homepage .public-home-module > .public-home-events-compact,
.public-homepage .public-home-module > .public-home-exhibition-compact,
.public-homepage .public-home-module > .public-homepage-flexible-row {
    box-sizing: border-box;
    width: 100%;
    max-width: none;
}

/* Bei einer einzelnen frei angelegten Startseitenbox ist die oben gewählte
   Modulgröße maßgeblich. Die ältere interne Boxbreite darf die Box innerhalb
   ihres Modulplatzes nicht ein zweites Mal verkleinern. Bei echten
   Boxengruppen bleiben die internen Klein/Mittel/Groß-Anteile erhalten. */
.public-homepage
.public-home-module[data-homepage-module^="custom:"]
> .public-homepage-flexible-row
> .public-flexible-box:only-child {
    grid-column: 1 / -1;
    width: 100%;
    max-width: none;
}

/* Korrekturschritt 0.9.1-13dbba:
   Die Startseiten-Fachmodule Aktuelles, Themenführungen und Ausstellungen
   wieder als eigenständige Karten wie in der bestätigten frühen
   Startseitengestaltung darstellen. Modulbreite, Reihenfolge und
   Sichtbarkeit bleiben davon unabhängig. */
.public-homepage .public-home-card-section {
    box-sizing: border-box;
    width: 100%;
    max-width: none;
}

.public-home-card-section__header {
    display: flex;
    align-items: baseline;
    justify-content: space-between;
    gap: 1rem;
    margin-bottom: 0.65rem;
}

.public-home-card-section__header h2 {
    margin: 0;
    color: var(--public-site-blue);
    font-family: Georgia, 'Times New Roman', serif;
    font-size: 1.1em;
    line-height: 1.25;
}

.public-home-card-section__header > a,
.public-home-editorial-card__link {
    color: var(--public-site-red);
    font-size: 0.68rem;
    font-weight: 600;
    text-decoration: none;
}

.public-home-card-section__header > a:hover,
.public-home-card-section__header > a:focus-visible,
.public-home-editorial-card__link:hover,
.public-home-editorial-card__link:focus-visible {
    color: var(--public-site-red-dark);
    text-decoration: underline;
    text-underline-offset: 0.12em;
}

.public-home-card-grid {
    display: grid;
    gap: 1rem;
    align-items: stretch;
}

.public-home-module--width-small .public-home-card-grid {
    grid-template-columns: minmax(0, 1fr);
}

.public-home-module--width-medium .public-home-card-grid {
    grid-template-columns: repeat(2, minmax(0, 1fr));
}

.public-home-module--width-large .public-home-card-grid {
    grid-template-columns: repeat(4, minmax(0, 1fr));
}

.public-home-editorial-card {
    display: flex;
    min-width: 0;
    flex-direction: column;
    overflow: hidden;
    border: 1px solid var(--public-site-border);
    border-radius: var(--public-site-radius);
    background: var(--public-site-surface);
    box-shadow: 0 0.18rem 0.8rem rgba(53, 42, 29, 0.045);
}

.public-home-editorial-card__media {
    display: block;
    overflow: hidden;
    width: 100%;
    aspect-ratio: 16 / 9;
    background: #eee9e1;
}

.public-home-editorial-card__media img {
    display: block;
    width: 100%;
    height: 100%;
    object-fit: cover;
}

.public-home-editorial-card__body {
    display: flex;
    min-width: 0;
    flex: 1 1 auto;
    flex-direction: column;
    padding: 0.7rem 0.78rem 0.8rem;
}

.public-home-editorial-card__meta {
    margin: 0 0 0.38rem;
    color: var(--public-site-muted);
    font-size: 0.63rem;
    font-weight: 400;
    line-height: 1.3;
}

.public-home-editorial-card h3 {
    margin: 0;
    color: var(--public-site-blue);
    font-family: Georgia, 'Times New Roman', serif;
    font-size: 0.86rem;
    line-height: 1.28;
}

.public-home-editorial-card h3 a {
    color: inherit;
    text-decoration: none;
}

.public-home-editorial-card h3 a:hover,
.public-home-editorial-card h3 a:focus-visible {
    color: var(--public-site-red);
    text-decoration: underline;
    text-underline-offset: 0.12em;
}

.public-home-editorial-card__summary {
    display: -webkit-box;
    overflow: hidden;
    margin: 0.42rem 0 0;
    color: var(--public-site-blue);
    font-size: 0.66rem;
    line-height: 1.42;
    -webkit-box-orient: vertical;
    -webkit-line-clamp: 3;
}

.public-home-editorial-card__link {
    align-self: flex-start;
    margin-top: auto;
    padding-top: 0.65rem;
}

.public-home-editorial-card--without-image .public-home-editorial-card__body {
    min-height: 8.5rem;
}

@media (max-width: 960px) {
    .public-home-module--width-large .public-home-card-grid {
        grid-template-columns: repeat(2, minmax(0, 1fr));
    }
}

@media (max-width: 720px) {
    .public-home-card-section__header {
        align-items: flex-start;
        flex-direction: column;
        gap: 0.25rem;
    }

    .public-home-module--width-small .public-home-card-grid,
    .public-home-module--width-medium .public-home-card-grid,
    .public-home-module--width-large .public-home-card-grid {
        grid-template-columns: minmax(0, 1fr);
    }

    .public-home-editorial-card__media {
        aspect-ratio: 16 / 10;
    }
}

/* Korrekturschritt 0.9.1-13dbbb:
   Die Fachmodule erhalten oberhalb denselben kompakten Abstand wie die
   übrigen Startseitenboxen. Bei administrativer Boxgröße "Klein" wird
   wieder die bestätigte kompakte Darstellung verwendet; Mittel/Groß
   behalten die Kartenansicht aus 0.9.1-13dbba. */
.public-homepage .public-home-module > .public-home-card-section,
.public-homepage .public-home-module > .public-home-news-compact,
.public-homepage .public-home-module > .public-home-events-compact,
.public-homepage .public-home-module > .public-home-exhibition-compact {
    margin-top: 0.4rem;
}

/* Korrekturschritt 0.9.1-13dbbc: Rechtliches im mobilen Footer sicher sichtbar. */
.public-site-footer__legal-mobile {
    display: none;
}

@media (max-width: 720px) {
    .public-site-footer__legal-section {
        display: none;
    }

    .public-site-footer__legal-mobile {
        display: flex;
        flex-wrap: wrap;
        align-items: center;
        gap: 0.3rem 0.55rem;
    }

    .public-site-footer__legal-mobile a,
    .public-site-footer__legal-mobile span {
        color: var(--public-site-blue);
        font-size: inherit;
        text-decoration: none;
    }

    .public-site-footer__legal-mobile a:hover,
    .public-site-footer__legal-mobile a:focus-visible {
        color: var(--public-site-red);
        text-decoration: underline;
    }
}

/* Schritt 0.9.1-13dc: frei benennbare Tee-Empfehlung auf der Startseite. */
.public-homepage .public-home-module > .public-home-featured-tea {
    box-sizing: border-box;
    width: 100%;
    max-width: none;
    margin-top: 0.4rem;
}

.public-home-featured-tea__header {
    display: flex;
    align-items: baseline;
    justify-content: space-between;
    gap: 1rem;
    margin-bottom: 0.65rem;
}

.public-home-featured-tea__header h2 {
    margin: 0;
    color: var(--public-site-blue);
    font-family: Georgia, 'Times New Roman', serif;
    font-size: 1.1em;
    line-height: 1.25;
}

.public-home-featured-tea__header > a,
.public-home-featured-tea__link {
    color: var(--public-site-red);
    font-size: 0.68rem;
    font-weight: 600;
    text-decoration: none;
}

.public-home-featured-tea__header > a:hover,
.public-home-featured-tea__header > a:focus-visible,
.public-home-featured-tea__link:hover,
.public-home-featured-tea__link:focus-visible {
    color: var(--public-site-red-dark);
    text-decoration: underline;
    text-underline-offset: 0.12em;
}

.public-home-featured-tea__card {
    display: grid;
    grid-template-columns: minmax(10rem, 34%) minmax(0, 1fr);
    overflow: hidden;
    border: 1px solid var(--public-site-border);
    border-radius: var(--public-site-radius);
    background: var(--public-site-surface);
    box-shadow: 0 0.18rem 0.8rem rgba(53, 42, 29, 0.045);
}

.public-home-featured-tea__card--without-image {
    grid-template-columns: minmax(0, 1fr);
}

.public-home-featured-tea__media {
    display: block;
    overflow: hidden;
    min-height: 11rem;
    background: #eee9e1;
}

.public-home-featured-tea__media img {
    display: block;
    width: 100%;
    height: 100%;
    min-height: 11rem;
    object-fit: cover;
}

.public-home-featured-tea__body {
    display: flex;
    min-width: 0;
    flex-direction: column;
    padding: 0.75rem 0.82rem 0.85rem;
}

.public-home-featured-tea__meta {
    display: flex;
    flex-wrap: wrap;
    align-items: baseline;
    gap: 0.2rem 0.45rem;
    margin: 0 0 0.38rem;
    color: var(--public-site-muted);
    font-size: 0.63rem;
    line-height: 1.3;
}

.public-home-featured-tea__meta > span + span::before {
    margin-right: 0.45rem;
    content: '·';
}

.public-home-featured-tea__body h3 {
    margin: 0;
    color: var(--public-site-blue);
    font-family: Georgia, 'Times New Roman', serif;
    font-size: 1rem;
    line-height: 1.28;
}

.public-home-featured-tea__body h3 a {
    color: inherit;
    text-decoration: none;
}

.public-home-featured-tea__body h3 a:hover,
.public-home-featured-tea__body h3 a:focus-visible {
    color: var(--public-site-red);
    text-decoration: underline;
    text-underline-offset: 0.12em;
}

.public-home-featured-tea__price {
    margin: 0;
    color: var(--public-site-red);
    font-size: inherit;
    font-weight: 600;
}

.public-home-featured-tea__availability {
    color: var(--public-site-muted);
}

.public-home-featured-tea__availability.is-unavailable {
    color: var(--public-site-red);
}

.public-home-featured-tea__availability-note {
    margin: 0.22rem 0 0;
    color: var(--public-site-muted);
    font-size: 0.66rem;
    line-height: 1.4;
}

.public-home-featured-tea__summary {
    margin: 0.48rem 0 0;
    color: var(--public-site-blue);
    font-size: 0.76rem;
    line-height: 1.48;
}

.public-home-featured-tea__link {
    align-self: flex-start;
    margin-top: auto;
    padding-top: 0.7rem;
}

.public-home-module--width-small .public-home-featured-tea__card {
    display: flex;
    flex-direction: column;
    grid-template-columns: none;
}

.public-home-module--width-small .public-home-featured-tea__media {
    min-height: 0;
    /*
     * Ein kleines Modul ist durch das äußere 12-Spalten-Raster geringfügig
     * breiter als eine Einzelkarte im benachbarten mittleren Modul. Eine
     * minimal flachere Bildproportion gleicht diese Rasterdifferenz aus,
     * damit die Kartenunterkanten optisch auf einer Höhe liegen.
     */
    aspect-ratio: 1.82 / 1;
}

.public-home-module--width-small .public-home-featured-tea__media img {
    min-height: 0;
}

.public-home-module--width-small .public-home-featured-tea__body {
    flex: 1 1 auto;
    padding: 0.7rem 0.78rem 0.8rem;
}

.public-home-module--width-small .public-home-featured-tea__body h3 {
    font-size: 0.86rem;
}

.public-home-module--width-small .public-home-featured-tea__summary {
    display: -webkit-box;
    overflow: hidden;
    margin-top: 0.35rem;
    font-size: 0.66rem;
    line-height: 1.42;
    -webkit-box-orient: vertical;
    -webkit-line-clamp: 2;
}

.public-home-module--width-small .public-home-featured-tea__link {
    padding-top: 0.65rem;
}

@media (max-width: 720px) {
    .public-home-featured-tea__header {
        align-items: flex-start;
        flex-direction: column;
        gap: 0.25rem;
    }

    .public-home-featured-tea__card {
        grid-template-columns: minmax(0, 1fr);
    }

    .public-home-featured-tea__media {
        min-height: 0;
        aspect-ratio: 16 / 10;
    }

    .public-home-featured-tea__media img {
        min-height: 0;
    }
}

/* Schritt 0.9.1-13dd: unverbindliche Mehrfachauswahl für Kräuterverkauf und Schriftenreihe. */
.public-inquiry-option {
    display: inline-flex;
    align-items: center;
    gap: 0.45rem;
    margin-top: 0.55rem;
    padding: 0.4rem 0.55rem;
    color: var(--public-site-blue);
    border: 1px solid rgba(21, 61, 99, 0.2);
    border-radius: 0.2rem;
    background: rgba(220, 234, 247, 0.28);
    font-size: 0.82rem;
    font-weight: 700;
    cursor: pointer;
}

.public-inquiry-option input[type="checkbox"] {
    width: 1rem;
    height: 1rem;
    margin: 0;
    accent-color: var(--public-site-red);
}

.public-inquiry-option:has(input:focus-visible) {
    outline: 2px solid rgba(150, 0, 0, 0.18);
    outline-offset: 2px;
}

.public-product-inquiry-option {
    margin-top: auto;
}

.public-inquiry-selection-actions {
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    gap: 0.7rem 1rem;
    margin-top: 1rem;
    padding-top: 0.85rem;
    border-top: 1px solid rgba(150, 0, 0, 0.45);
}

.public-inquiry-selection-actions p,
.public-single-inquiry-form p {
    margin: 0;
    color: var(--public-site-muted);
    font-size: 0.78rem;
}

.public-inquiry-submit {
    min-height: 2.35rem;
    padding: 0.46rem 0.85rem;
    color: #fff;
    background: var(--public-site-red);
    border: 1px solid var(--public-site-red);
    border-radius: 0.2rem;
    font: inherit;
    font-weight: 700;
    cursor: pointer;
}

.public-inquiry-submit:hover,
.public-inquiry-submit:focus-visible {
    color: #fff;
    background: var(--public-site-red-dark);
    border-color: var(--public-site-red-dark);
}

.public-single-inquiry-form {
    display: grid;
    justify-items: start;
    gap: 0.55rem;
    margin-top: 0.9rem;
}

.public-publication-inquiry-option {
    margin-top: 0.25rem;
}


/* Korrekturschritt 0.9.1-13dda:
   Schriftenanfrage auf einer Linie mit der jeweiligen Heft-Überschrift. */
.public-publication-inquiry-heading-row {
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    justify-content: space-between;
    gap: 0.6rem 1rem;
    min-width: 0;
}

.public-publication-inquiry-heading-row--h2 {
    margin: 2.5rem 0 0.9rem;
}

.public-publication-inquiry-heading-row--h3 {
    margin: 2rem 0 0.75rem;
}

.public-publication-inquiry-heading-row--h4 {
    margin: 1.6rem 0 0.65rem;
}

.public-publication-inquiry-heading-row > .public-page-heading {
    flex: 1 1 12rem;
    min-width: 0;
    margin: 0;
}

.public-publication-inquiry-heading-row > .public-publication-inquiry-option {
    flex: 0 0 auto;
    margin: 0 0 0 auto;
}

.public-page-editorial > .public-publication-inquiry-heading-row {
    margin-top: 0;
}

.public-fixed-editorial-content
.public-page-content.public-layout-grid
> .public-page-block:first-child
> .public-publication-inquiry-heading-row {
    margin-top: 0;
}

.public-page-block:has(> .public-publication-inquiry-heading-row) {
    border-bottom: 0;
}

.public-page-block:has(> .public-publication-inquiry-heading-row)::after {
    display: block;
    width: 2.2rem;
    height: 1px;
    margin-top: 0.45rem;
    content: '';
    background: var(--public-site-red);
}

.public-publication-inquiry-actions {
    margin-top: 1.15rem;
}

.public-contact-inquiry-selection {
    display: grid;
    gap: 0.7rem;
    margin: 0 0 0.9rem;
    padding: 0.75rem 0.85rem;
    border-left: 2px solid var(--public-site-red);
    background: rgba(220, 234, 247, 0.34);
}

.public-contact-inquiry-selection h3,
.public-contact-inquiry-selection p,
.public-contact-inquiry-selection ul {
    margin: 0;
}

.public-contact-inquiry-selection h3 {
    color: var(--public-site-red);
    font-family: Georgia, 'Times New Roman', serif;
    font-size: 1rem;
}

.public-contact-inquiry-selection ul {
    margin-top: 0.25rem;
    padding-left: 1.15rem;
}

.public-contact-inquiry-selection p {
    color: var(--public-site-muted);
    font-size: 0.78rem;
}

@media (max-width: 560px) {
    .public-inquiry-selection-actions,
    .public-single-inquiry-form {
        align-items: stretch;
    }

    .public-inquiry-submit {
        width: 100%;
    }
}

.public-inquiry-submit:disabled {
    cursor: not-allowed;
    opacity: 0.5;
}

/* 0.9.1-13de: Google-Kalender – Schließhinweise und Führungsübersicht */
.public-dynamic-block--calendar_closures,
.public-dynamic-block--calendar_tours {
    width: 100%;
}

.public-calendar-notice-list,
.public-calendar-tour-list,
.public-calendar-months {
    display: grid;
    gap: 0.65rem;
}

.public-calendar-notice {
    display: grid;
    grid-template-columns: minmax(7.8rem, auto) minmax(0, 1fr);
    gap: 0.18rem 0.8rem;
    align-items: baseline;
    padding: 0.65rem 0.75rem;
    border-left: 3px solid var(--public-site-red);
    background: rgba(150, 0, 0, 0.035);
}

.public-calendar-notice time {
    grid-row: 1 / span 2;
    font-weight: 700;
    color: var(--public-site-blue);
}

.public-calendar-notice strong {
    font-size: 1rem;
}

.public-calendar-notice span {
    color: var(--public-text-muted, #5f666b);
    font-size: 0.9rem;
}

.public-calendar-tour-inquiry-form {
    margin: 0;
}

.public-calendar-tour-item {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 1rem;
    padding: 0.65rem 0.75rem;
    border-left: 3px solid var(--public-site-blue);
    background: rgba(21, 61, 99, 0.035);
}

.public-calendar-tour-item__time time {
    display: flex;
    align-items: baseline;
    gap: 0.55rem;
}

.public-calendar-tour-item__time strong {
    color: var(--public-site-blue);
}

.public-calendar-tour-inquiry-option {
    display: inline-flex;
    align-items: center;
    gap: 0.38rem;
    font-size: 0.88rem;
    white-space: nowrap;
}

.public-calendar-tour-inquiry-option input {
    margin: 0;
}

.public-calendar-tour-inquiry-actions {
    display: flex;
    align-items: center;
    flex-wrap: wrap;
    gap: 0.55rem 0.8rem;
    margin-top: 0.75rem;
    padding-top: 0.65rem;
    border-top: 1px solid var(--public-site-red);
}

.public-calendar-tour-inquiry-actions p {
    margin: 0;
    color: var(--public-text-muted, #5f666b);
    font-size: 0.86rem;
}

.public-calendar-month {
    overflow-x: auto;
}

.public-calendar-month h3 {
    margin: 0 0 0.45rem;
    color: var(--public-site-blue);
    font-size: 1rem;
}

.public-calendar-month__grid {
    display: grid;
    grid-template-columns: repeat(7, minmax(4.5rem, 1fr));
    min-width: 36rem;
    border-top: 1px solid rgba(21, 61, 99, 0.18);
    border-left: 1px solid rgba(21, 61, 99, 0.18);
}

.public-calendar-month__weekday,
.public-calendar-month__day {
    min-height: 2.7rem;
    padding: 0.35rem;
    border-right: 1px solid rgba(21, 61, 99, 0.18);
    border-bottom: 1px solid rgba(21, 61, 99, 0.18);
}

.public-calendar-month__weekday {
    min-height: 0;
    background: rgba(21, 61, 99, 0.08);
    color: var(--public-site-blue);
    font-size: 0.78rem;
    font-weight: 700;
    text-align: center;
}

.public-calendar-month__day--empty {
    background: rgba(0, 0, 0, 0.018);
}

.public-calendar-month__day.has-events {
    background: rgba(150, 0, 0, 0.035);
}

.public-calendar-month__day-number {
    display: block;
    margin-bottom: 0.22rem;
    font-size: 0.78rem;
    font-weight: 700;
}

.public-calendar-month__event {
    display: grid;
    gap: 0.2rem;
    padding: 0.28rem;
    border-radius: 0.2rem;
    background: #fff;
}

.public-calendar-month__event time {
    color: var(--public-site-red);
    font-size: 0.78rem;
    font-weight: 700;
}

.public-calendar-month__event .public-calendar-tour-inquiry-option {
    align-items: flex-start;
    white-space: normal;
    font-size: 0.72rem;
}

@media (max-width: 720px) {
    .public-calendar-notice {
        grid-template-columns: 1fr;
    }

    .public-calendar-notice time {
        grid-row: auto;
    }

    .public-calendar-tour-item {
        align-items: flex-start;
        flex-direction: column;
    }

    .public-calendar-tour-item__time time {
        flex-wrap: wrap;
    }
}

/* 0.9.1-13dec: freie/belegte Führungszeiten und Kalenderboxen auf der Startseite */
.public-calendar-tour-status {
    display: inline-flex;
    align-items: center;
    min-height: 1.7rem;
    padding: 0.16rem 0.45rem;
    border-radius: 999px;
    font-size: 0.78rem;
    font-weight: 700;
    line-height: 1.2;
    white-space: nowrap;
}

.public-calendar-tour-status.is-booked {
    background: rgba(150, 0, 0, 0.08);
    color: var(--public-site-red);
}

.public-calendar-tour-status.is-free {
    background: rgba(21, 61, 99, 0.08);
    color: var(--public-site-blue);
}

.public-calendar-tour-item.is-booked {
    border-left-color: rgba(150, 0, 0, 0.65);
    background: rgba(150, 0, 0, 0.025);
}

.public-calendar-month__event.is-booked {
    background: rgba(150, 0, 0, 0.055);
}

.public-calendar-month__event.is-free {
    background: rgba(21, 61, 99, 0.045);
}

.public-home-calendar-module {
    min-width: 0;
    width: 100%;
}

.public-home-calendar-module > .public-dynamic-block__title {
    margin-bottom: 0.55rem;
    color: var(--public-site-blue);
    font-size: 1.35rem;
}

.public-home-module--width-small .public-home-calendar-module .public-calendar-tour-item,
.public-home-module--width-small .public-home-calendar-module .public-calendar-notice {
    align-items: flex-start;
    grid-template-columns: 1fr;
    flex-direction: column;
}

.public-home-module--width-small .public-home-calendar-module .public-calendar-notice time {
    grid-row: auto;
}


/* 0.9.1-13decb: Führungsübersicht – zeitslotgenaue Monatsansicht und Navigation */
.public-calendar-months {
    gap: 0.5rem;
}

.public-calendar-month-nav {
    display: grid;
    grid-template-columns: 2.35rem minmax(0, 1fr) 2.35rem;
    gap: 0.55rem;
    align-items: center;
    margin: 0 0 0.55rem;
}

.public-calendar-month-nav__title {
    min-width: 0;
    color: var(--public-site-blue);
    font-family: Georgia, "Times New Roman", serif;
    font-size: 1.12rem;
    line-height: 1.2;
    text-align: center;
}

.public-calendar-month-nav__button {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    width: 2.35rem;
    height: 2.35rem;
    border: 1px solid rgba(21, 61, 99, 0.3);
    border-radius: 50%;
    background: #fff;
    color: var(--public-site-blue);
    font-size: 1.55rem;
    font-weight: 700;
    line-height: 1;
    text-decoration: none;
    transition: background-color 0.15s ease, border-color 0.15s ease;
}

.public-calendar-month-nav__button:hover,
.public-calendar-month-nav__button:focus-visible {
    border-color: var(--public-site-blue);
    background: rgba(21, 61, 99, 0.07);
    color: var(--public-site-blue);
}

.public-calendar-month-nav__button.is-disabled {
    opacity: 0.28;
    cursor: default;
}

.public-calendar-month {
    overflow: visible;
}

.public-calendar-month__grid {
    grid-template-columns: repeat(7, minmax(0, 1fr));
    min-width: 0;
    width: 100%;
    background: #fff;
}

.public-calendar-month__weekday,
.public-calendar-month__day {
    min-width: 0;
}

.public-calendar-month__day {
    min-height: 7.4rem;
    padding: 0.38rem;
    background: rgba(255, 255, 255, 0.82);
}

.public-calendar-month__day.has-booked {
    background: rgba(150, 0, 0, 0.025);
}

.public-calendar-month__day.has-free:not(.has-booked) {
    background: rgba(21, 61, 99, 0.018);
}

.public-calendar-month__day-number {
    margin-bottom: 0.35rem;
    color: var(--public-site-blue);
    font-size: 0.82rem;
}

.public-calendar-month__event + .public-calendar-month__event {
    margin-top: 0.3rem;
}

.public-calendar-month__event {
    min-width: 0;
    gap: 0.25rem;
    padding: 0.34rem 0.38rem;
    border: 1px solid transparent;
    border-radius: 0.28rem;
}

.public-calendar-month__event.is-booked {
    border-color: rgba(150, 0, 0, 0.08);
}

.public-calendar-month__event.is-free {
    border-color: rgba(21, 61, 99, 0.1);
}

.public-calendar-month__event time {
    display: block;
    font-size: 0.79rem;
    line-height: 1.2;
}

.public-calendar-month__event .public-calendar-tour-status {
    width: fit-content;
    max-width: 100%;
    min-height: 1.45rem;
    padding: 0.12rem 0.38rem;
    font-size: 0.68rem;
    white-space: normal;
}

.public-calendar-month__event .public-calendar-tour-inquiry-option {
    display: grid;
    grid-template-columns: auto minmax(0, 1fr);
    gap: 0.25rem;
    align-items: start;
    min-width: 0;
    font-size: 0.7rem;
    line-height: 1.25;
    white-space: normal;
}

.public-calendar-month__event .public-calendar-tour-inquiry-option span {
    min-width: 0;
    overflow-wrap: anywhere;
}

.public-calendar-month__event .public-calendar-tour-inquiry-option input {
    margin-top: 0.12rem;
}

.public-calendar-tour-inquiry-actions {
    align-items: flex-start;
}

.public-calendar-tour-inquiry-actions .public-inquiry-submit {
    max-width: 100%;
}

@media (max-width: 720px) {
    .public-calendar-month-nav {
        grid-template-columns: 2.1rem minmax(0, 1fr) 2.1rem;
        gap: 0.4rem;
    }

    .public-calendar-month-nav__button {
        width: 2.1rem;
        height: 2.1rem;
        font-size: 1.35rem;
    }

    .public-calendar-month-nav__title {
        font-size: 1rem;
    }

    .public-calendar-month__weekday {
        padding: 0.28rem 0.08rem;
        font-size: 0.68rem;
    }

    .public-calendar-month__day {
        min-height: 5.75rem;
        padding: 0.22rem;
    }

    .public-calendar-month__day-number {
        margin-bottom: 0.22rem;
        font-size: 0.7rem;
    }

    .public-calendar-month__event {
        padding: 0.25rem;
        border-radius: 0.22rem;
    }

    .public-calendar-month__event + .public-calendar-month__event {
        margin-top: 0.22rem;
    }

    .public-calendar-month__event time {
        font-size: 0.68rem;
    }

    .public-calendar-month__event .public-calendar-tour-status {
        min-height: 1.25rem;
        padding: 0.08rem 0.24rem;
        font-size: 0.58rem;
        line-height: 1.15;
    }

    .public-calendar-month__event .public-calendar-tour-inquiry-option {
        grid-template-columns: 0.9rem minmax(0, 1fr);
        gap: 0.12rem;
        font-size: 0.6rem;
        line-height: 1.15;
    }

    .public-calendar-month__event .public-calendar-tour-inquiry-option input {
        width: 0.82rem;
        height: 0.82rem;
    }

    .public-calendar-tour-inquiry-actions {
        display: grid;
        grid-template-columns: 1fr;
    }

    .public-calendar-tour-inquiry-actions .public-inquiry-submit {
        width: 100%;
    }
}

@media (max-width: 480px) {
    .public-calendar-month__weekday {
        font-size: 0.62rem;
    }

    .public-calendar-month__day {
        min-height: 5.2rem;
        padding: 0.16rem;
    }

    .public-calendar-month__event {
        padding: 0.2rem;
    }

    .public-calendar-month__event time {
        font-size: 0.62rem;
    }

    .public-calendar-month__event .public-calendar-tour-status,
    .public-calendar-month__event .public-calendar-tour-inquiry-option {
        font-size: 0.55rem;
    }
}

/* Ein Kalender in einer kleinen Startseitenbox darf horizontal scrollen,
   statt die sieben Tages-Spalten unlesbar zusammenzudrücken. */
.public-home-module--width-small .public-home-calendar-module .public-calendar-month {
    overflow-x: auto;
}

.public-home-module--width-small .public-home-calendar-module .public-calendar-month__grid {
    min-width: 36rem;
}

/* 0.9.1-13decc: kompakte Führungsübersicht in Startseitenmodulen */
.public-calendar-tour-inquiry-form.is-homepage .public-calendar-tour-legend {
    display: flex;
    flex-wrap: wrap;
    gap: 0.35rem 0.65rem;
    margin: 0 0 0.45rem;
    font-size: 0.75rem;
}

.public-calendar-tour-inquiry-form.is-homepage .public-calendar-tour-legend span {
    display: inline-flex;
    align-items: center;
    gap: 0.3rem;
}

.public-calendar-tour-inquiry-form.is-homepage .public-calendar-tour-legend span::before {
    width: 0.72rem;
    height: 0.72rem;
    border: 1px solid currentColor;
    border-radius: 0.18rem;
    content: "";
}

.public-calendar-tour-inquiry-form.is-homepage .public-calendar-tour-legend .is-free {
    color: #2f6b3b;
}

.public-calendar-tour-inquiry-form.is-homepage .public-calendar-tour-legend .is-free::before {
    background: #e6f3e8;
}

.public-calendar-tour-inquiry-form.is-homepage .public-calendar-tour-legend .is-booked {
    color: var(--public-site-red);
}

.public-calendar-tour-inquiry-form.is-homepage .public-calendar-tour-legend .is-booked::before {
    background: #f8e5e5;
}

.public-calendar-tour-inquiry-form.is-homepage .public-calendar-month__event.is-free {
    border-color: #bad8c0;
    background: #e6f3e8;
}

.public-calendar-tour-inquiry-form.is-homepage .public-calendar-month__event.is-free time {
    color: #2f6b3b;
}

.public-calendar-tour-inquiry-form.is-homepage .public-calendar-month__event.is-booked {
    border-color: rgba(150, 0, 0, 0.2);
    background: #f8e5e5;
}

.public-calendar-tour-inquiry-form.is-homepage .public-calendar-month__event.is-booked time {
    color: var(--public-site-red);
}

.public-calendar-tour-inquiry-form.is-homepage .public-calendar-month__event .public-calendar-tour-inquiry-option.is-compact {
    display: flex;
    justify-content: center;
    margin-top: 0.08rem;
}

.public-calendar-tour-inquiry-form.is-homepage .public-calendar-month__event .public-calendar-tour-inquiry-option.is-compact input {
    width: 0.95rem;
    height: 0.95rem;
    margin: 0;
    cursor: pointer;
}

.public-calendar-tour-inquiry-actions.is-homepage {
    display: block;
    margin-top: 0.55rem;
    padding-top: 0.5rem;
}

.public-calendar-tour-inquiry-actions.is-homepage .public-inquiry-submit {
    width: auto;
    min-width: 6.5rem;
    padding: 0.5rem 1rem;
    font-size: 0.9rem;
    line-height: 1.15;
}

.public-calendar-tour-inquiry-actions.is-homepage p {
    max-width: 42rem;
    margin-top: 0.5rem;
    font-size: 0.78rem;
    line-height: 1.45;
}

.public-calendar-tour-inquiry-actions.is-homepage p strong:first-child {
    color: #2f6b3b;
}

.public-calendar-tour-inquiry-actions.is-homepage p strong:nth-of-type(2) {
    color: var(--public-site-red);
}

/* Auch in kleinen Startseitenmodulen bleibt der Aktionsknopf bewusst kompakt. */
@media (max-width: 720px) {
    .public-calendar-tour-inquiry-actions.is-homepage .public-inquiry-submit {
        width: auto;
    }
}

/* 0.9.1-13decd: einheitlich kompakte Führungs-Kalender und verdichtete Startseitenansicht */
.public-calendar-tour-inquiry-form.is-calendar-compact .public-calendar-tour-legend {
    display: flex;
    flex-wrap: wrap;
    gap: 0.35rem 0.7rem;
    margin: 0 0 0.45rem;
    font-size: 0.78rem;
}

.public-calendar-tour-inquiry-form.is-calendar-compact .public-calendar-tour-legend span {
    display: inline-flex;
    align-items: center;
    gap: 0.28rem;
}

.public-calendar-tour-inquiry-form.is-calendar-compact .public-calendar-tour-legend span::before {
    width: 0.72rem;
    height: 0.72rem;
    border: 1px solid currentColor;
    border-radius: 0.18rem;
    content: "";
}

.public-calendar-tour-inquiry-form.is-calendar-compact .public-calendar-tour-legend .is-free {
    color: #2f6b3b;
}

.public-calendar-tour-inquiry-form.is-calendar-compact .public-calendar-tour-legend .is-free::before {
    background: #e6f3e8;
}

.public-calendar-tour-inquiry-form.is-calendar-compact .public-calendar-tour-legend .is-booked {
    color: var(--public-site-red);
}

.public-calendar-tour-inquiry-form.is-calendar-compact .public-calendar-tour-legend .is-booked::before {
    background: #f8e5e5;
}

.public-calendar-tour-inquiry-form.is-calendar-compact .public-calendar-month__event {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 0.3rem;
}

.public-calendar-tour-inquiry-form.is-calendar-compact .public-calendar-month__event.is-free {
    border-color: #bad8c0;
    background: #e6f3e8;
}

.public-calendar-tour-inquiry-form.is-calendar-compact .public-calendar-month__event.is-free time {
    color: #2f6b3b;
}

.public-calendar-tour-inquiry-form.is-calendar-compact .public-calendar-month__event.is-booked {
    border-color: rgba(150, 0, 0, 0.2);
    background: #f8e5e5;
}

.public-calendar-tour-inquiry-form.is-calendar-compact .public-calendar-month__event.is-booked time {
    color: var(--public-site-red);
}

.public-calendar-tour-inquiry-form.is-calendar-compact .public-calendar-month__event .public-calendar-tour-inquiry-option.is-compact {
    display: flex;
    flex: 0 0 auto;
    align-items: center;
    justify-content: center;
    margin: 0;
}

.public-calendar-tour-inquiry-form.is-calendar-compact .public-calendar-month__event .public-calendar-tour-inquiry-option.is-compact input {
    width: 0.95rem;
    height: 0.95rem;
    margin: 0;
    cursor: pointer;
}

.public-calendar-tour-inquiry-actions.is-calendar-compact {
    display: block;
    margin-top: 0.55rem;
    padding-top: 0.5rem;
}

.public-calendar-tour-inquiry-actions.is-calendar-compact .public-inquiry-submit {
    width: auto;
    min-width: 6.5rem;
    padding: 0.5rem 1rem;
    font-size: 0.9rem;
    line-height: 1.15;
}

.public-calendar-tour-inquiry-actions.is-calendar-compact p {
    max-width: 42rem;
    margin-top: 0.5rem;
    font-size: 0.78rem;
    line-height: 1.45;
}

.public-calendar-tour-inquiry-actions.is-calendar-compact p strong:first-child {
    color: #2f6b3b;
}

.public-calendar-tour-inquiry-actions.is-calendar-compact p strong:nth-of-type(2) {
    color: var(--public-site-red);
}

/* Startseite: der Monatskalender muss auch in einer kleinen Modulbreite als Ganzes lesbar bleiben. */
.public-calendar-tour-inquiry-form.is-homepage .public-calendar-month {
    overflow-x: visible;
}

.public-calendar-tour-inquiry-form.is-homepage .public-calendar-month__grid,
.public-home-module--width-small .public-home-calendar-module .public-calendar-month__grid {
    grid-template-columns: repeat(7, minmax(0, 1fr));
    min-width: 0;
}

.public-calendar-tour-inquiry-form.is-homepage .public-calendar-month-nav {
    grid-template-columns: 1.85rem minmax(0, 1fr) 1.85rem;
    gap: 0.3rem;
    margin-bottom: 0.35rem;
}

.public-calendar-tour-inquiry-form.is-homepage .public-calendar-month-nav__button {
    width: 1.85rem;
    height: 1.85rem;
    font-size: 1.15rem;
}

.public-calendar-tour-inquiry-form.is-homepage .public-calendar-month-nav__title {
    font-size: 0.98rem;
}

.public-calendar-tour-inquiry-form.is-homepage .public-calendar-month__weekday {
    padding: 0.22rem 0.04rem;
    font-size: 0.62rem;
}

.public-calendar-tour-inquiry-form.is-homepage .public-calendar-month__day {
    min-height: 3.3rem;
    padding: 0.12rem;
}

.public-calendar-tour-inquiry-form.is-homepage .public-calendar-month__day-number {
    margin-bottom: 0.12rem;
    font-size: 0.64rem;
}

.public-calendar-tour-inquiry-form.is-homepage .public-calendar-month__event {
    min-height: 1.35rem;
    padding: 0.14rem 0.16rem;
    gap: 0.12rem;
    border-radius: 0.2rem;
}

.public-calendar-tour-inquiry-form.is-homepage .public-calendar-month__event + .public-calendar-month__event {
    margin-top: 0.12rem;
}

.public-calendar-tour-inquiry-form.is-homepage .public-calendar-month__event time {
    min-width: 0;
    font-size: 0.61rem;
    line-height: 1.05;
}

.public-calendar-tour-inquiry-form.is-homepage .public-calendar-month__event .public-calendar-tour-inquiry-option.is-compact input {
    width: 0.72rem;
    height: 0.72rem;
}

.public-calendar-tour-inquiry-form.is-homepage .public-calendar-tour-legend {
    gap: 0.25rem 0.5rem;
    margin-bottom: 0.3rem;
    font-size: 0.68rem;
}

.public-calendar-tour-inquiry-form.is-homepage .public-calendar-tour-legend span::before {
    width: 0.62rem;
    height: 0.62rem;
}

.public-calendar-tour-inquiry-actions.is-homepage {
    margin-top: 0.38rem;
    padding-top: 0.38rem;
}

.public-calendar-tour-inquiry-actions.is-homepage .public-inquiry-submit {
    min-width: 5.5rem;
    padding: 0.42rem 0.8rem;
    font-size: 0.82rem;
}

.public-calendar-tour-inquiry-actions.is-homepage p {
    margin-top: 0.38rem;
    font-size: 0.7rem;
    line-height: 1.35;
}

@media (max-width: 720px) {
    .public-calendar-tour-inquiry-form.is-calendar-compact .public-calendar-month__event {
        align-items: center;
    }

    .public-calendar-tour-inquiry-actions.is-calendar-compact .public-inquiry-submit {
        width: auto;
    }

    .public-calendar-tour-inquiry-form.is-homepage .public-calendar-month__event {
        flex-direction: column;
        justify-content: center;
        gap: 0.08rem;
        text-align: center;
    }
}

@media (max-width: 480px) {
    .public-calendar-tour-inquiry-form.is-calendar-compact .public-calendar-month__event {
        flex-direction: column;
        justify-content: center;
        gap: 0.1rem;
        text-align: center;
    }

    .public-calendar-tour-inquiry-form.is-calendar-compact .public-calendar-month__event time {
        font-size: 0.62rem;
    }

    .public-calendar-tour-inquiry-form.is-calendar-compact .public-calendar-month__event .public-calendar-tour-inquiry-option.is-compact input {
        width: 0.78rem;
        height: 0.78rem;
    }
}

/* Farbstatus gilt unabhängig davon, ob die Anfragefunktion aktiviert ist. */
.public-calendar-month__event.is-free {
    border-color: #bad8c0;
    background: #e6f3e8;
}

.public-calendar-month__event.is-free time {
    color: #2f6b3b;
}

.public-calendar-month__event.is-booked {
    border-color: rgba(150, 0, 0, 0.2);
    background: #f8e5e5;
}

.public-calendar-month__event.is-booked time {
    color: var(--public-site-red);
}

/* 0.9.1-13dece: frei definierbare öffentliche Boxhöhen */
.has-custom-public-box-height {
    min-height: 0 !important;
    max-height: none !important;
    overflow: auto;
    align-self: start;
    scrollbar-gutter: stable;
}

/* Eine feste Modulhöhe soll den Inhalt begrenzen, nicht die komplette Zeile künstlich strecken. */
.public-home-module.has-custom-public-box-height,
.public-page-block.has-custom-public-box-height,
.public-flexible-box.has-custom-public-box-height,
.public-home-feature-card.has-custom-public-box-height,
.public-home-visit-item.has-custom-public-box-height,
.public-news-card.has-custom-public-box-height,
.public-event-card.has-custom-public-box-height,
.public-exhibition-card.has-custom-public-box-height,
.public-product-card.has-custom-public-box-height,
.public-sponsor-card.has-custom-public-box-height,
.public-products-inquiry.has-custom-public-box-height {
    box-sizing: border-box;
}

/* 0.9.1-13dece: kompakter Monatskalender auf Startseite und kleinen Ansichten */
.public-calendar-month__day-toggle {
    display: flex;
    width: 100%;
    min-width: 0;
    padding: 0;
    border: 0;
    background: transparent;
    color: inherit;
    font: inherit;
    text-align: left;
}

.public-calendar-month__day-markers {
    display: none;
}

.public-calendar-month__day-markers > span {
    width: 0.42rem;
    height: 0.42rem;
    border-radius: 50%;
}

.public-calendar-month__day-markers .is-free {
    background: #4d8a58;
}

.public-calendar-month__day-markers .is-booked {
    background: var(--public-site-red);
}

/* Desktop auf einer normalen Inhaltsseite: ausführliche Zeiten bleiben direkt sichtbar. */
@media (min-width: 721px) {
    .public-calendar-tour-inquiry-form:not(.is-homepage) .public-calendar-month__day-toggle {
        pointer-events: none;
    }
}

/* Startseite: der Kalender bleibt auf jeder Modulbreite eine echte kompakte Monatsübersicht. */
.public-calendar-tour-inquiry-form.is-homepage .public-calendar-month,
.public-home-module--width-small .public-home-calendar-module .public-calendar-month {
    overflow: visible;
}

.public-calendar-tour-inquiry-form.is-homepage .public-calendar-month__grid,
.public-home-module--width-small .public-home-calendar-module .public-calendar-month__grid {
    min-width: 0;
}

.public-calendar-tour-inquiry-form.is-homepage .public-calendar-month__day {
    position: relative;
    min-height: 2.45rem;
    padding: 0.18rem 0.2rem;
    overflow: visible;
}

.public-calendar-tour-inquiry-form.is-homepage .public-calendar-month__day-toggle {
    align-items: center;
    justify-content: space-between;
    gap: 0.18rem;
    min-height: 1.55rem;
    cursor: pointer;
}

.public-calendar-tour-inquiry-form.is-homepage .public-calendar-month__day-toggle:focus-visible {
    outline: 2px solid var(--public-site-blue);
    outline-offset: 1px;
    border-radius: 0.18rem;
}

.public-calendar-tour-inquiry-form.is-homepage .public-calendar-month__day-number {
    margin: 0;
    font-size: 0.7rem;
    line-height: 1;
}

.public-calendar-tour-inquiry-form.is-homepage .public-calendar-month__day-markers {
    display: inline-flex;
    flex: 0 0 auto;
    gap: 0.14rem;
    align-items: center;
}

.public-calendar-tour-inquiry-form.is-homepage .public-calendar-month__events {
    position: absolute;
    z-index: 35;
    top: calc(100% - 0.12rem);
    left: 0.12rem;
    display: none;
    width: max-content;
    min-width: 7.4rem;
    max-width: min(13rem, calc(100vw - 2rem));
    padding: 0.38rem;
    border: 1px solid rgba(21, 61, 99, 0.2);
    border-radius: 0.28rem;
    background: #fff;
    box-shadow: 0 0.45rem 1.1rem rgba(20, 48, 72, 0.16);
}

.public-calendar-tour-inquiry-form.is-homepage .public-calendar-month__day:nth-child(7n),
.public-calendar-tour-inquiry-form.is-homepage .public-calendar-month__day:nth-child(7n - 1) {
    --public-calendar-popover-align: right;
}

.public-calendar-tour-inquiry-form.is-homepage .public-calendar-month__day:nth-child(7n) .public-calendar-month__events,
.public-calendar-tour-inquiry-form.is-homepage .public-calendar-month__day:nth-child(7n - 1) .public-calendar-month__events {
    right: 0.12rem;
    left: auto;
}

.public-calendar-tour-inquiry-form.is-homepage .public-calendar-month__day:hover > .public-calendar-month__events,
.public-calendar-tour-inquiry-form.is-homepage .public-calendar-month__day:focus-within > .public-calendar-month__events,
.public-calendar-tour-inquiry-form.is-homepage .public-calendar-month__day.is-open > .public-calendar-month__events {
    display: block;
}

.public-calendar-tour-inquiry-form.is-homepage .public-calendar-month__events .public-calendar-month__event {
    min-height: 1.7rem;
    padding: 0.28rem 0.34rem;
}

.public-calendar-tour-inquiry-form.is-homepage .public-calendar-month__events .public-calendar-month__event time {
    font-size: 0.72rem;
}

.public-home-calendar-module__more {
    margin: 0.45rem 0 0;
    font-size: 0.78rem;
    text-align: right;
}

.public-home-calendar-module__more a {
    color: var(--public-site-red);
    font-weight: 700;
    text-decoration: none;
}

.public-home-calendar-module__more a:hover,
.public-home-calendar-module__more a:focus-visible {
    text-decoration: underline;
}

/* Tablet/Mobil: kein Hover voraussetzen. Der Tag wird per Tap geöffnet. */
@media (max-width: 720px) {
    .public-calendar-tour-inquiry-form.is-calendar-compact .public-calendar-month__day {
        position: relative;
        min-height: 2.55rem;
        padding: 0.18rem;
        overflow: visible;
    }

    .public-calendar-tour-inquiry-form.is-calendar-compact .public-calendar-month__day-toggle {
        align-items: center;
        justify-content: space-between;
        gap: 0.12rem;
        min-height: 1.6rem;
        cursor: pointer;
    }

    .public-calendar-tour-inquiry-form.is-calendar-compact .public-calendar-month__day-number {
        margin: 0;
        font-size: 0.67rem;
        line-height: 1;
    }

    .public-calendar-tour-inquiry-form.is-calendar-compact .public-calendar-month__day-markers {
        display: inline-flex;
        flex: 0 0 auto;
        gap: 0.12rem;
    }

    .public-calendar-tour-inquiry-form.is-calendar-compact .public-calendar-month__day-markers > span {
        width: 0.38rem;
        height: 0.38rem;
    }

    .public-calendar-tour-inquiry-form.is-calendar-compact .public-calendar-month__events {
        position: absolute;
        z-index: 45;
        top: calc(100% - 0.08rem);
        left: 0;
        display: none;
        width: max-content;
        min-width: 7.2rem;
        max-width: min(12rem, calc(100vw - 1.5rem));
        padding: 0.34rem;
        border: 1px solid rgba(21, 61, 99, 0.2);
        border-radius: 0.28rem;
        background: #fff;
        box-shadow: 0 0.45rem 1rem rgba(20, 48, 72, 0.18);
    }

    .public-calendar-tour-inquiry-form.is-calendar-compact .public-calendar-month__day:nth-child(7n) .public-calendar-month__events,
    .public-calendar-tour-inquiry-form.is-calendar-compact .public-calendar-month__day:nth-child(7n - 1) .public-calendar-month__events {
        right: 0;
        left: auto;
    }

    .public-calendar-tour-inquiry-form.is-calendar-compact .public-calendar-month__day.is-open > .public-calendar-month__events,
    .public-calendar-tour-inquiry-form.is-calendar-compact .public-calendar-month__day:focus-within > .public-calendar-month__events {
        display: block;
    }

    .public-calendar-tour-inquiry-form.is-calendar-compact .public-calendar-month__events .public-calendar-month__event {
        flex-direction: row;
        justify-content: space-between;
        min-height: 1.65rem;
        gap: 0.32rem;
        padding: 0.26rem 0.32rem;
        text-align: left;
    }

    .public-calendar-tour-inquiry-form.is-calendar-compact .public-calendar-month__events .public-calendar-month__event time {
        font-size: 0.7rem;
    }

    .public-calendar-tour-inquiry-form.is-calendar-compact .public-calendar-month__events .public-calendar-tour-inquiry-option.is-compact input {
        width: 0.82rem;
        height: 0.82rem;
    }
}

/* Moderne Browser können die gespeicherte Höhe direkt aus dem Datenattribut übernehmen;
   public-layout-controls.js dient zugleich als Fallback und setzt die Hilfsklasse. */
[data-public-box-height] {
    height: attr(data-public-box-height px);
}


/* 0.9.1-13decea: Startseiten-Kalender, mobile Seitenbilder und kompakter großer Kalender */

/* Führungsbox auf der Startseite: Anfrage direkt am Titel, klarer Bereichsabschluss. */
.public-home-calendar-module--tours {
    position: relative;
    padding-bottom: 0.58rem;
    border-bottom: 1px solid var(--public-site-red);
}

.public-home-calendar-module--tours .public-dynamic-block__title {
    padding-right: 6.4rem;
}

.public-home-calendar-module--tours .public-calendar-tour-inquiry-actions.is-homepage .public-inquiry-submit {
    position: absolute;
    top: 0;
    right: 0;
    min-width: 0;
    width: auto;
    padding: 0.36rem 0.72rem;
    font-size: 0.76rem;
}

.public-home-calendar-module--tours .public-calendar-tour-inquiry-actions.is-homepage {
    margin-top: 0.42rem;
    padding-top: 0;
    border-top: 0;
}

/* Große Kalenderansicht auf normalen Seiten: weniger Höhe, mehrere Zeiten nebeneinander. */
@media (min-width: 721px) {
    .public-calendar-tour-inquiry-form:not(.is-homepage).is-calendar-compact .public-calendar-month__day {
        min-height: 4.9rem;
        padding: 0.28rem;
    }

    .public-calendar-tour-inquiry-form:not(.is-homepage).is-calendar-compact .public-calendar-month__day-number {
        margin-bottom: 0.22rem;
        font-size: 0.76rem;
    }

    .public-calendar-tour-inquiry-form:not(.is-homepage).is-calendar-compact .public-calendar-month__events {
        display: grid;
        grid-template-columns: repeat(2, minmax(0, 1fr));
        gap: 0.2rem;
    }

    .public-calendar-tour-inquiry-form:not(.is-homepage).is-calendar-compact .public-calendar-month__event,
    .public-calendar-tour-inquiry-form:not(.is-homepage).is-calendar-compact .public-calendar-month__event + .public-calendar-month__event {
        min-height: 1.65rem;
        margin-top: 0;
        padding: 0.24rem 0.28rem;
    }

    .public-calendar-tour-inquiry-form:not(.is-homepage).is-calendar-compact .public-calendar-month__event time {
        font-size: 0.7rem;
    }

    .public-calendar-tour-inquiry-form:not(.is-homepage).is-calendar-compact .public-calendar-month__event .public-calendar-tour-inquiry-option.is-compact {
        margin-left: auto;
    }
}

/* Mobile freie Seiten: redaktionelle Bilder grundsätzlich auf die volle Inhaltsbreite ziehen.
   Das gilt projektweit für page.php und damit auch für Geschichte, Rundgang,
   Schriftenreihe, Spendenaufruf, Besuch planen und weitere frei gepflegte Seiten. */
@media (max-width: 720px) {
    .public-page .public-page-figure,
    .public-page .public-page-figure.public-sized-image,
    .public-page .public-page-image-block--standard .public-page-figure,
    .public-page .public-page-image-block--full .public-page-figure,
    .public-page .public-page-image-block--left .public-page-figure,
    .public-page .public-page-image-block--right .public-page-figure {
        float: none !important;
        width: 100% !important;
        max-width: 100% !important;
        margin-right: 0 !important;
        margin-left: 0 !important;
    }

    .public-page .public-page-figure img,
    .public-page .public-page-figure .public-sized-image__link,
    .public-page .public-page-figure .public-sized-image__link img {
        display: block;
        width: 100% !important;
        max-width: 100% !important;
        max-height: none !important;
        height: auto !important;
    }

    /* Auf mobilen Seiten ist der Monatskalender wie auf der Startseite antippbar:
       Tag + Statuspunkte bleiben sichtbar, Zeiten öffnen sich im Popover. */
    .public-calendar-tour-inquiry-form:not(.is-homepage).is-calendar-compact .public-calendar-month {
        overflow: visible;
    }

    .public-calendar-tour-inquiry-form:not(.is-homepage).is-calendar-compact .public-calendar-month__grid {
        min-width: 0;
    }

    .public-calendar-tour-inquiry-form:not(.is-homepage).is-calendar-compact .public-calendar-month__day-toggle {
        pointer-events: auto;
        touch-action: manipulation;
    }
}


/* 0.9.1-13deceb: mobile Boxhöhen, Kalenderinteraktion und Abschlusslinien */
@media (max-width: 720px) {
    /* Redaktionell festgelegte Höhen gelten nur auf größeren Ansichten. Mobil wächst jede Box mit ihrem Inhalt. */
    [data-public-box-height],
    [data-public-box-height].has-custom-public-box-height {
        height: auto !important;
        min-height: 0 !important;
        max-height: none !important;
        overflow: visible !important;
        scrollbar-gutter: auto !important;
    }

    /* Große Seitenkalender verwenden mobil exakt das kompakte Tag-/Popover-Prinzip der Startseite. */
    .public-calendar-tour-inquiry-form:not(.is-homepage).is-calendar-compact .public-calendar-month__day {
        position: relative;
        min-height: 2.45rem;
        padding: 0.18rem 0.2rem;
        overflow: visible;
    }

    .public-calendar-tour-inquiry-form:not(.is-homepage).is-calendar-compact .public-calendar-month__day-toggle {
        align-items: center;
        justify-content: space-between;
        gap: 0.18rem;
        min-height: 1.55rem;
        cursor: pointer;
    }

    .public-calendar-tour-inquiry-form:not(.is-homepage).is-calendar-compact .public-calendar-month__day-toggle:focus-visible {
        outline: 2px solid var(--public-site-blue);
        outline-offset: 1px;
        border-radius: 0.18rem;
    }

    .public-calendar-tour-inquiry-form:not(.is-homepage).is-calendar-compact .public-calendar-month__events {
        top: calc(100% - 0.12rem);
        left: 0.12rem;
        min-width: 7.4rem;
        max-width: min(13rem, calc(100vw - 2rem));
        padding: 0.38rem;
    }

    .public-calendar-tour-inquiry-form:not(.is-homepage).is-calendar-compact .public-calendar-month__day:nth-child(7n) .public-calendar-month__events,
    .public-calendar-tour-inquiry-form:not(.is-homepage).is-calendar-compact .public-calendar-month__day:nth-child(7n - 1) .public-calendar-month__events {
        right: 0.12rem;
        left: auto;
    }

    .public-calendar-tour-inquiry-form:not(.is-homepage).is-calendar-compact .public-calendar-month__day:hover > .public-calendar-month__events,
    .public-calendar-tour-inquiry-form:not(.is-homepage).is-calendar-compact .public-calendar-month__day:focus-within > .public-calendar-month__events,
    .public-calendar-tour-inquiry-form:not(.is-homepage).is-calendar-compact .public-calendar-month__day.is-open > .public-calendar-month__events {
        display: block;
    }

    /* Klarer Abschluss der Führungsübersicht auch auf normalen Seiten. */
    .public-calendar-tour-inquiry-form:not(.is-homepage).is-calendar-compact {
        padding-bottom: 0.58rem;
        border-bottom: 1px solid var(--public-site-red);
    }
}

/* 0.9.1-13dececb: Die rote Abschlusslinie sitzt auf demselben äußeren
   Startseitenmodul wie die administrativ definierte Boxhöhe. Dadurch folgt
   die Linie der eingestellten Höhe, statt oberhalb eines Leerraums stehen zu bleiben. */
.public-homepage .public-home-module[data-homepage-module="news"],
.public-homepage .public-home-module[data-homepage-module="events"],
.public-homepage .public-home-module[data-homepage-module="exhibitions"],
.public-homepage .public-home-module[data-homepage-module="featured_tea"],
.public-homepage .public-home-module[data-homepage-module="calendar_closures"],
.public-homepage .public-home-module[data-homepage-module="calendar_tours"] {
    box-sizing: border-box;
    padding-bottom: 0.7rem;
    border-bottom: 1px solid var(--public-site-red);
}

/* Die bisherigen inneren Abschlusslinien werden entfernt, damit pro Fachmodul
   genau eine Linie vorhanden ist. Inhalt und bestehende Kartenoptik bleiben erhalten. */
.public-homepage .public-home-module[data-homepage-module="news"] > .public-home-news-compact,
.public-homepage .public-home-module[data-homepage-module="events"] > .public-home-events-compact,
.public-homepage .public-home-module[data-homepage-module="exhibitions"] > .public-home-exhibition-compact,
.public-homepage .public-home-module[data-homepage-module="news"] > .public-home-card-section,
.public-homepage .public-home-module[data-homepage-module="events"] > .public-home-card-section,
.public-homepage .public-home-module[data-homepage-module="exhibitions"] > .public-home-card-section,
.public-homepage .public-home-module[data-homepage-module="featured_tea"] > .public-home-featured-tea,
.public-homepage .public-home-module[data-homepage-module="calendar_closures"] > .public-home-calendar-module--closures,
.public-homepage .public-home-module[data-homepage-module="calendar_tours"] > .public-home-calendar-module--tours {
    border-bottom: 0;
}

.public-homepage .public-home-module[data-homepage-module="calendar_tours"] > .public-home-calendar-module--tours {
    padding-bottom: 0;
}

/* Erklärung unter Führungs-Kalendern nutzt immer die gesamte verfügbare Boxbreite. */
.public-calendar-tour-inquiry-actions.is-calendar-compact p,
.public-calendar-tour-inquiry-actions.is-homepage p {
    width: 100%;
    max-width: none;
}

/* 0.9.1-13f-2a: öffentliche Grundgestaltung nach Gesamtprüfung.
   Nur die gemeldeten Abstände, Anfrageaktionen, Produktkarten und der
   Footer-Sprung werden vereinheitlicht; bestätigte Modulbreiten bleiben erhalten. */
.public-page-header {
    margin-bottom: 0.45rem;
}

.public-events-header,
.public-exhibitions-header,
.public-products-header,
.public-sponsors-header {
    margin-bottom: 0.9rem;
}

/* Wenn der sichtbare Seitentitel bei Themenführungen/Ausstellungen bewusst
   ausgeblendet ist, darf die erste Fachsektion nicht mit dem alten großen
   Modulabstand unter dem Breadcrumb beginnen. */
.public-events-shell > .public-events-section:first-of-type,
.public-exhibitions-shell > .public-exhibitions-section:first-of-type {
    margin-top: 0.7rem;
}

/* Die Anfrageerklärung steht unter dem kompakten Button statt daneben. */
.public-inquiry-selection-actions {
    display: grid;
    justify-items: start;
    align-items: start;
    gap: 0.45rem;
    border-top-color: rgba(21, 61, 99, 0.18);
}

/* Öffentliche Anfragebuttons entsprechen der ruhigen, rot umrandeten
   Speicherbutton-Sprache des Adminbereichs. */
.public-inquiry-submit {
    min-height: 0;
    padding: 0.46rem 0.85rem;
    color: var(--public-site-red);
    background: #fff;
    border-color: rgba(150, 0, 0, 0.52);
}

.public-inquiry-submit:hover,
.public-inquiry-submit:focus-visible {
    color: var(--public-site-red-dark);
    background: rgba(150, 0, 0, 0.035);
    border-color: var(--public-site-red);
}

/* Produktkarten behalten rundum nur die blaue Standardbegrenzung. */
.public-product-card {
    border-bottom-color: var(--public-site-border);
}

/* Trennlinien innerhalb des Kräuterverkaufs bleiben in der ruhigen
   blauen Standardfarbe. */
.public-products-shell .public-products-section,
.public-products-shell .public-inquiry-selection-actions {
    border-top-color: rgba(21, 61, 99, 0.18);
}

.public-site-footer__top-link {
    color: inherit;
    text-decoration: none;
    white-space: nowrap;
}

.public-site-footer__top-link:hover,
.public-site-footer__top-link:focus-visible {
    color: var(--public-site-red);
    text-decoration: underline;
}

@media (max-width: 560px) {
    .public-inquiry-selection-actions {
        justify-items: stretch;
    }

    .public-inquiry-selection-actions .public-inquiry-submit {
        width: auto;
        justify-self: start;
    }
}

/* 0.9.1-13f-2b: Schnellzugriffs-Abschlusslinie folgt der Modulhöhe.
   Die administrativ gesetzte Höhe liegt auf .public-home-module; daher sitzt
   auch die rote Abschlusslinie auf diesem äußeren Element. */
.public-homepage .public-home-module[data-homepage-module="feature_cards"] {
    box-sizing: border-box;
    padding-bottom: 0.7rem;
    border-bottom: 1px solid var(--public-site-red);
}

.public-homepage
.public-home-module[data-homepage-module="feature_cards"]
> .public-home-features {
    margin-bottom: 0;
    padding-bottom: 0;
    border-bottom: 0;
}


/* Korrekturschritt 0.9.1-13f-2la:
   Nach der semantischen H1-Korrektur aus 2l bleibt der Seitentitel bei direkt
   eingebetteten Themenführungen/Ausstellungen visuell verborgen. Die erste
   Fachsektion folgt dann auf diesen unsichtbaren Header; ihre zusätzliche
   obere Trennlinie wird weiterhin nicht dargestellt. */
.public-events-shell > .public-events-header.public-visually-hidden + .public-events-section,
.public-exhibitions-shell > .public-exhibitions-header.public-visually-hidden + .public-exhibitions-section {
    border-top: 0;
}

/* Mobilfooter: Rechtliches links unten, Sprunglink rechts auf derselben
   Abschlusszeile. Desktop und Tablet bleiben unverändert. */
@media (max-width: 720px) {
    .public-site-footer__bottom-inner {
        flex-direction: row;
        flex-wrap: wrap;
        align-items: center;
    }

    .public-site-footer__bottom-inner > span {
        order: 1;
        flex: 0 0 100%;
    }

    .public-site-footer__legal-mobile {
        order: 2;
        flex: 1 1 auto;
    }

    .public-site-footer__top-link {
        order: 3;
        flex: 0 0 auto;
        margin-left: auto;
        text-align: right;
    }
}

/* 0.9.1-13f-2shgd: Kräuterverkaufs-Einleitung auf Tablet und Mobil einspaltig.
   Seitliche Bildpositionen und Textumfluss dürfen bis 960 px keine schmale
   Restspalte oder horizontales Überlaufen erzeugen. */
@media (max-width: 960px) {
    .public-products-shell .public-products-intro.public-herb-text-block {
        display: flex !important;
        flex-direction: column !important;
        gap: 0.8rem;
        width: 100%;
        min-width: 0;
    }

    .public-products-shell .public-products-intro .public-herb-text-block__media,
    .public-products-shell .public-products-intro .public-herb-text-block__content {
        float: none !important;
        grid-column: auto !important;
        grid-row: auto !important;
        width: 100% !important;
        max-width: 100% !important;
        min-width: 0 !important;
        margin-right: 0 !important;
        margin-left: 0 !important;
    }

    .public-products-shell .public-products-intro .public-herb-text-block__media {
        order: 1;
        margin-bottom: 0 !important;
    }

    .public-products-shell .public-products-intro .public-herb-text-block__content {
        order: 2;
        overflow-wrap: anywhere;
    }
}

/* 0.9.1-13f-2sg-5ac: sichtbare Scrollleiste der Bildansicht ausblenden.
   Scrollen per Mausrad, Touchpad, Tastatur und Touch bleibt erhalten. */
.public-image-lightbox__content {
    scrollbar-width: none;
    -ms-overflow-style: none;
}

.public-image-lightbox__content::-webkit-scrollbar {
    width: 0;
    height: 0;
    display: none;
}

/* 0.9.1-13f-2sh: Häufig gestellte Fragen */
.public-faq-intro {
    margin: 0 0 1.25rem;
    max-width: 72rem;
}

.public-faq-groups {
    display: grid;
    gap: 1.4rem;
}

.public-faq-group {
    border-top: 1px solid var(--public-site-red);
    padding-top: 1rem;
}

.public-faq-group > h2 {
    margin: 0 0 0.8rem;
    color: var(--public-site-red);
    font-family: Georgia, 'Times New Roman', serif;
    font-size: clamp(1.18rem, 2vw, 1.45rem);
    line-height: 1.25;
}

.public-faq-list {
    display: grid;
    gap: 0.65rem;
}

.public-faq-item {
    overflow: hidden;
    border: 1px solid rgba(21, 61, 99, 0.18);
    border-left: 2px solid var(--public-site-red);
    border-radius: 0.24rem;
    background: #fff;
}

.public-faq-item > summary {
    position: relative;
    display: block;
    padding: 0.82rem 3rem 0.82rem 1rem;
    color: var(--public-site-blue);
    font-weight: 700;
    line-height: 1.4;
    cursor: pointer;
    list-style: none;
}

.public-faq-item > summary::-webkit-details-marker {
    display: none;
}

.public-faq-item > summary::after {
    content: '+';
    position: absolute;
    top: 50%;
    right: 0.95rem;
    display: grid;
    width: 1.65rem;
    height: 1.65rem;
    transform: translateY(-50%);
    place-items: center;
    border: 1px solid rgba(21, 61, 99, 0.22);
    border-radius: 50%;
    background: #eef5fb;
    color: var(--public-site-blue);
    font-size: 1.1rem;
    font-weight: 700;
    line-height: 1;
}

.public-faq-item[open] > summary {
    background: rgba(220, 234, 247, 0.42);
}

.public-faq-item[open] > summary::after {
    content: '−';
}

.public-faq-item > summary:focus-visible {
    outline: 2px solid var(--public-site-blue);
    outline-offset: -2px;
}

.public-faq-item__answer {
    padding: 0.85rem 1rem 1rem;
    border-top: 1px solid rgba(21, 61, 99, 0.12);
}

.public-faq-item__answer > :first-child {
    margin-top: 0;
}

.public-faq-item__answer > :last-child {
    margin-bottom: 0;
}

.public-faq-empty {
    padding: 1rem;
    border-left: 2px solid var(--public-site-red);
    background: rgba(220, 234, 247, 0.35);
}

@media (max-width: 720px) {
    .public-faq-groups {
        gap: 1.1rem;
    }

    .public-faq-item > summary {
        padding: 0.75rem 2.8rem 0.75rem 0.85rem;
    }

    .public-faq-item__answer {
        padding: 0.75rem 0.85rem 0.9rem;
    }
}

/* 0.9.1-13f-2shb: FAQ-Seitennavigation */
.public-faq-pagination {
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    justify-content: center;
    gap: 0.45rem 0.8rem;
    margin-top: 1.4rem;
    padding-top: 0.8rem;
    border-top: 1px solid var(--public-site-border-soft);
}

.public-faq-pagination__pages {
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    justify-content: center;
    gap: 0.3rem;
}

.public-faq-pagination a,
.public-faq-pagination__pages > span {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    min-width: 1.8rem;
    min-height: 1.8rem;
    padding: 0.2rem 0.5rem;
    border: 1px solid var(--public-site-border);
    border-radius: var(--public-site-radius-small);
    color: var(--public-site-red);
    background: #fff;
    font-size: 0.76rem;
    font-weight: 700;
    line-height: 1.2;
    text-decoration: none;
}

.public-faq-pagination a:hover,
.public-faq-pagination a:focus-visible {
    border-color: var(--public-site-red);
    background: rgba(150, 0, 0, 0.04);
}

.public-faq-pagination__pages > span[aria-current='page'] {
    border-color: var(--public-site-red);
    color: #fff;
    background: var(--public-site-red);
}

.public-faq-pagination__direction--disabled {
    opacity: 0.45;
}

@media (max-width: 520px) {
    .public-faq-pagination {
        gap: 0.45rem;
    }

    .public-faq-pagination__direction {
        flex: 1 1 5rem;
    }

    .public-faq-pagination__pages {
        order: 3;
        flex: 1 0 100%;
    }
}

/* 0.9.1-13f-2shfa: Chrome/Chromium soll feste Startseitenboxen wie Firefox
   ohne sichtbare interne Scrollleiste darstellen. Scrollen bleibt erhalten. */
.public-homepage [data-public-box-height].has-custom-public-box-height {
    scrollbar-width: none;
    scrollbar-gutter: auto;
}

.public-homepage [data-public-box-height].has-custom-public-box-height::-webkit-scrollbar {
    display: none;
    width: 0;
    height: 0;
}

/* 0.9.1-13f-2shga: Servicebereich bei jeder Hamburger-Navigation.
   Sobald die Hauptnavigation ab 960 px eingeklappt wird, bleiben nur Suche
   und Menüschalter im Kopf. Kontakt, Spenden und soziale Netzwerke stehen
   innerhalb der aufgeklappten Navigation. */
.public-site-nav__mobile-service {
    display: none;
}

@media (max-width: 960px) {
    .public-site-header__brand-inner {
        flex-wrap: nowrap;
    }

    .public-site-service {
        order: initial;
        flex: 0 0 auto;
        width: auto;
        margin-left: auto;
        gap: 0;
        padding-top: 0;
        border-top: 0;
    }

    .public-site-service > * {
        display: none;
    }

    .public-site-service .public-site-service__search {
        display: inline-flex;
        width: 3rem;
        height: 3rem;
    }

    .public-site-nav__mobile-service {
        display: grid;
        width: min(calc(100% - 2.5rem), var(--public-site-content-width));
        margin: 0 auto;
        padding: 0.7rem 0 0.95rem;
        border-top: 1px solid var(--public-site-border-soft);
        gap: 0.65rem;
    }

    .public-site-nav__mobile-service-links {
        display: flex;
        flex-wrap: wrap;
        align-items: center;
        justify-content: space-between;
        gap: 0.55rem 0.8rem;
    }

    .public-site-nav__mobile-contact {
        display: inline-flex;
        align-items: center;
        min-height: 2.5rem;
        padding: 0.5rem 0.25rem;
        color: var(--public-site-blue);
        font-size: 0.9rem;
        font-weight: 700;
        text-decoration: none;
    }

    .public-site-nav__mobile-contact:hover,
    .public-site-nav__mobile-contact:focus-visible {
        color: var(--public-site-red);
        text-decoration: underline;
    }

    .public-site-nav__mobile-donation {
        display: inline-flex;
        align-items: center;
        justify-content: center;
        min-height: 2.5rem;
        padding: 0.55rem 0.85rem;
        border: 1px solid var(--public-site-red);
        border-radius: 0.2rem;
        color: #fff;
        background: var(--public-site-red);
        font-size: 0.86rem;
        font-weight: 700;
        line-height: 1.15;
        text-decoration: none;
    }

    .public-site-nav__mobile-donation:hover,
    .public-site-nav__mobile-donation:focus-visible {
        color: #fff;
        background: var(--public-site-red-dark);
        border-color: var(--public-site-red-dark);
    }

    .public-site-nav__mobile-social {
        display: flex;
        align-items: center;
        gap: 0.35rem;
    }

    .public-site-nav__mobile-social-link {
        display: inline-flex;
        align-items: center;
        justify-content: center;
        width: 2.35rem;
        height: 2.35rem;
        border: 1px solid var(--public-site-border-soft);
        border-radius: 0.2rem;
        color: var(--public-site-blue);
        background: #fff;
        text-decoration: none;
    }

    .public-site-nav__mobile-social-link:hover,
    .public-site-nav__mobile-social-link:focus-visible {
        color: var(--public-site-red);
        border-color: var(--public-site-red);
    }

    .public-site-nav__mobile-social-link svg {
        width: 1.15rem;
        height: 1.15rem;
    }
}


@media (max-width: 720px) {
    .public-site-nav__mobile-service {
        width: min(calc(100% - 1.5rem), var(--public-site-content-width));
    }

    .public-site-service .public-site-service__search {
        width: 2.75rem;
        height: 2.75rem;
    }
}

/* 0.9.1-13f-2shgb: Aktuelles in kleinen Startseitenmodulen auf Tablets.
   Im Bereich der Hamburger-Navigation darf die feste Mindestbreite des
   Newsbildes die Textspalte nicht auf wenige Zeichen zusammendrücken.
   Datum und Titel werden innerhalb der schmalen Textspalte untereinander
   angeordnet; Desktop (> 960 px) und Mobil (<= 720 px) bleiben unverändert. */
@media (min-width: 721px) and (max-width: 960px) {
    .public-homepage
    .public-home-module--width-small
    .public-home-news-compact__body {
        grid-template-columns: minmax(0, 1fr) minmax(0, 34%);
        gap: 0.7rem;
    }

    .public-homepage
    .public-home-module--width-small
    .public-home-news-compact__item {
        grid-template-columns: minmax(0, 1fr);
        padding: 0.38rem 0;
    }

    .public-homepage
    .public-home-module--width-small
    .public-home-news-compact__date-block {
        min-height: 0;
        padding: 0 0 0.18rem;
        border-right: 0;
    }

    .public-homepage
    .public-home-module--width-small
    .public-home-news-compact__item-content {
        padding-left: 0;
    }
}


/* Korrekturschritt 0.9.1-13f-2shgc:
   Kleine Inhaltsboxen auf „Besuch planen“ auf Tablets bereits wie mobil
   untereinander anordnen. Andere Seiten und Desktop bleiben unverändert. */
@media (min-width: 721px) and (max-width: 960px) {
    .public-page--visit-planning .public-page-content.public-layout-grid > .public-layout-width--small {
        grid-column: span 12;
    }
}

/* Korrekturschritt 0.9.1-13f-2shgda:
   Kräuterverkaufs-Einleitungsbild auf Tablet/Mobil nach dem Stapeln wieder
   in der redaktionell gewählten Bildgröße darstellen. Der Medienrahmen
   umfasst nur die tatsächliche Bildbreite; dadurch überdeckt keine weiße
   Medienfläche den Seitenverlauf und das Bild sitzt mittig. */
@media (max-width: 960px) {
    .public-products-shell .public-products-intro .public-herb-text-block__media {
        align-self: center;
        max-width: 100% !important;
        margin-right: auto !important;
        margin-left: auto !important;
        background: transparent;
    }

    .public-products-shell .public-products-intro .public-herb-text-block__media.public-image-size-mode--width.public-image-size--small {
        width: 15% !important;
    }

    .public-products-shell .public-products-intro .public-herb-text-block__media.public-image-size-mode--width.public-image-size--medium {
        width: 30% !important;
    }

    .public-products-shell .public-products-intro .public-herb-text-block__media.public-image-size-mode--width.public-image-size--large {
        width: 50% !important;
    }

    .public-products-shell .public-products-intro .public-herb-text-block__media.public-image-size-mode--width.public-image-size--full {
        width: 100% !important;
    }

    .public-products-shell .public-products-intro .public-herb-text-block__media.public-image-size-mode--height {
        width: fit-content !important;
    }
}

/* ========================================================================== 
   Schritt 0.9.1-13f-2shk: Pflichtfeld Personenzahl bei Führungsanfragen
   ========================================================================== */

.public-contact-field-hint {
    margin: 0.35rem 0 0;
    color: var(--public-site-muted);
    font-size: 0.82rem;
    line-height: 1.45;
}

/* ========================================================================== 
   Schritt 0.9.1-13f-2shn: Kapazitätsstatus Grün / Gelb / Rot
   ========================================================================== */

.public-calendar-tour-status.is-free {
    background: #e6f3e8;
    color: #2f6b3b;
}

.public-calendar-tour-status.is-partial {
    background: #fff3cd;
    color: #7a5900;
}

.public-calendar-tour-item.is-free {
    border-left-color: #4d8a58;
}

.public-calendar-tour-item.is-partial {
    border-left-color: #c89a2b;
    background: #fffaf0;
}

.public-calendar-tour-item.is-booked {
    border-left-color: var(--public-site-red);
}

.public-calendar-tour-inquiry-option.is-partial {
    flex-wrap: wrap;
}

.public-calendar-tour-remaining {
    display: inline-flex;
    align-items: center;
    min-height: 1.55rem;
    padding: 0.12rem 0.42rem;
    border-radius: 999px;
    background: #fff3cd;
    color: #7a5900;
    font-size: 0.72rem;
    font-weight: 700;
    line-height: 1.2;
    white-space: nowrap;
}

.public-calendar-month__day.has-partial {
    background: rgba(200, 154, 43, 0.035);
}

.public-calendar-month__event.is-free {
    border-color: #bad8c0;
    background: #e6f3e8;
}

.public-calendar-month__event.is-free time {
    color: #2f6b3b;
}

.public-calendar-month__event.is-partial {
    border-color: #dfc46e;
    background: #fff3cd;
}

.public-calendar-month__event.is-partial time {
    color: #7a5900;
}

.public-calendar-month__event.is-booked {
    border-color: rgba(150, 0, 0, 0.2);
    background: #f8e5e5;
}

.public-calendar-month__event.is-booked time {
    color: var(--public-site-red);
}

.public-calendar-month__day-markers .is-partial {
    background: #c89a2b;
}

.public-calendar-tour-inquiry-form.is-calendar-compact .public-calendar-tour-legend .is-partial,
.public-calendar-tour-inquiry-form.is-homepage .public-calendar-tour-legend .is-partial {
    color: #7a5900;
}

.public-calendar-tour-inquiry-form.is-calendar-compact .public-calendar-tour-legend .is-partial::before,
.public-calendar-tour-inquiry-form.is-homepage .public-calendar-tour-legend .is-partial::before {
    background: #fff3cd;
}

.public-calendar-tour-inquiry-form.is-calendar-compact .public-calendar-month__event.is-partial,
.public-calendar-tour-inquiry-form.is-homepage .public-calendar-month__event.is-partial {
    border-color: #dfc46e;
    background: #fff3cd;
}

.public-calendar-tour-inquiry-form.is-calendar-compact .public-calendar-month__event.is-partial time,
.public-calendar-tour-inquiry-form.is-homepage .public-calendar-month__event.is-partial time {
    color: #7a5900;
}

.public-calendar-tour-inquiry-form.is-calendar-compact .public-calendar-month__event .public-calendar-tour-inquiry-option.is-partial.is-compact,
.public-calendar-tour-inquiry-form.is-homepage .public-calendar-month__event .public-calendar-tour-inquiry-option.is-partial.is-compact {
    gap: 0.28rem;
}

.public-calendar-tour-inquiry-form.is-calendar-compact .public-calendar-tour-inquiry-option.is-partial.is-compact .public-calendar-tour-remaining,
.public-calendar-tour-inquiry-form.is-homepage .public-calendar-tour-inquiry-option.is-partial.is-compact .public-calendar-tour-remaining {
    min-height: 1.35rem;
    padding: 0.08rem 0.3rem;
    background: rgba(255, 255, 255, 0.6);
    font-size: 0.64rem;
}

.public-calendar-tour-inquiry-actions p strong:nth-of-type(1) {
    color: #2f6b3b;
}

.public-calendar-tour-inquiry-actions p strong:nth-of-type(2) {
    color: #7a5900;
}

.public-calendar-tour-inquiry-actions p strong:nth-of-type(3) {
    color: var(--public-site-red);
}

@media (max-width: 720px) {
    .public-calendar-tour-inquiry-form.is-calendar-compact .public-calendar-tour-inquiry-option.is-partial.is-compact .public-calendar-tour-remaining,
    .public-calendar-tour-inquiry-form.is-homepage .public-calendar-tour-inquiry-option.is-partial.is-compact .public-calendar-tour-remaining {
        font-size: 0.58rem;
    }
}

.public-calendar-tour-inquiry-actions.is-homepage p strong:nth-of-type(1),
.public-calendar-tour-inquiry-actions.is-calendar-compact p strong:nth-of-type(1) {
    color: #2f6b3b;
}

.public-calendar-tour-inquiry-actions.is-homepage p strong:nth-of-type(2),
.public-calendar-tour-inquiry-actions.is-calendar-compact p strong:nth-of-type(2) {
    color: #7a5900;
}

.public-calendar-tour-inquiry-actions.is-homepage p strong:nth-of-type(3),
.public-calendar-tour-inquiry-actions.is-calendar-compact p strong:nth-of-type(3) {
    color: var(--public-site-red);
}

/* ========================================================================== 
   Korrekturschritt 0.9.1-13f-2sho: Kompaktkalender untereinander + Storno-Workflow
   ========================================================================== */

.public-calendar-tour-inquiry-form.is-calendar-compact .public-calendar-month__events .public-calendar-month__event,
.public-calendar-tour-inquiry-form.is-homepage .public-calendar-month__events .public-calendar-month__event {
    flex-direction: column;
    align-items: flex-start;
    justify-content: flex-start;
    min-height: auto;
    gap: 0.24rem;
}

.public-calendar-tour-inquiry-form.is-calendar-compact .public-calendar-month__events .public-calendar-month__event time,
.public-calendar-tour-inquiry-form.is-homepage .public-calendar-month__events .public-calendar-month__event time {
    display: block;
    width: 100%;
    line-height: 1.2;
}

.public-calendar-tour-inquiry-form.is-calendar-compact .public-calendar-month__event .public-calendar-tour-inquiry-option.is-compact,
.public-calendar-tour-inquiry-form.is-homepage .public-calendar-month__event .public-calendar-tour-inquiry-option.is-compact {
    display: flex;
    flex-direction: column;
    align-items: flex-start;
    justify-content: flex-start;
    width: 100%;
    gap: 0.22rem;
    margin-left: 0;
}

.public-calendar-tour-inquiry-form.is-calendar-compact .public-calendar-tour-inquiry-option.is-partial.is-compact .public-calendar-tour-remaining,
.public-calendar-tour-inquiry-form.is-homepage .public-calendar-tour-inquiry-option.is-partial.is-compact .public-calendar-tour-remaining {
    align-self: flex-start;
}

.public-calendar-tour-inquiry-form.is-calendar-compact .public-calendar-month__event .public-calendar-tour-inquiry-option.is-compact input,
.public-calendar-tour-inquiry-form.is-homepage .public-calendar-month__event .public-calendar-tour-inquiry-option.is-compact input {
    margin: 0;
}

/* ========================================================================== 
   Korrekturschritt 0.9.1-13f-2shra: Führungskalender kompakter und je Tag untereinander
   ========================================================================== */

.public-calendar-month__day {
    align-content: start;
}

.public-calendar-month__events {
    display: grid;
    grid-template-columns: minmax(0, 1fr);
    gap: 0.28rem;
}

.public-calendar-month__event,
.public-calendar-tour-inquiry-form.is-calendar-compact .public-calendar-month__events .public-calendar-month__event,
.public-calendar-tour-inquiry-form.is-homepage .public-calendar-month__events .public-calendar-month__event {
    display: grid;
    grid-template-columns: minmax(0, 1fr);
    align-content: start;
    justify-items: start;
    width: 100%;
    min-width: 0;
    min-height: auto;
    gap: 0.18rem;
    padding: 0.28rem 0.34rem;
    text-align: left;
}

.public-calendar-month__event + .public-calendar-month__event {
    margin-top: 0;
}

.public-calendar-month__event time,
.public-calendar-tour-inquiry-form.is-calendar-compact .public-calendar-month__events .public-calendar-month__event time,
.public-calendar-tour-inquiry-form.is-homepage .public-calendar-month__events .public-calendar-month__event time {
    display: block;
    width: 100%;
    margin: 0;
    line-height: 1.15;
}

.public-calendar-month__event .public-calendar-tour-status,
.public-calendar-tour-inquiry-form.is-calendar-compact .public-calendar-month__event .public-calendar-tour-status,
.public-calendar-tour-inquiry-form.is-homepage .public-calendar-month__event .public-calendar-tour-status {
    width: auto;
    max-width: 100%;
    min-height: 0;
    padding: 0.1rem 0.4rem;
    border-radius: 999px;
    font-size: 0.65rem;
    line-height: 1.2;
    white-space: nowrap;
}

.public-calendar-month__event .public-calendar-tour-inquiry-option,
.public-calendar-tour-inquiry-form.is-calendar-compact .public-calendar-month__event .public-calendar-tour-inquiry-option.is-compact,
.public-calendar-tour-inquiry-form.is-homepage .public-calendar-month__event .public-calendar-tour-inquiry-option.is-compact {
    display: grid;
    grid-template-columns: minmax(0, 1fr);
    gap: 0.14rem;
    width: 100%;
    min-width: 0;
    margin: 0;
}

.public-calendar-month__event .public-calendar-tour-inquiry-option__select {
    display: inline-grid;
    grid-template-columns: auto minmax(0, 1fr);
    align-items: center;
    gap: 0.3rem;
    min-width: 0;
    font-size: 0.66rem;
    line-height: 1.15;
}

.public-calendar-month__event .public-calendar-tour-inquiry-option__select span {
    min-width: 0;
}

.public-calendar-month__event .public-calendar-tour-inquiry-option input,
.public-calendar-tour-inquiry-form.is-calendar-compact .public-calendar-month__event .public-calendar-tour-inquiry-option.is-compact input,
.public-calendar-tour-inquiry-form.is-homepage .public-calendar-month__event .public-calendar-tour-inquiry-option.is-compact input {
    width: 0.86rem;
    height: 0.86rem;
    margin: 0;
}

.public-calendar-tour-inquiry-form.is-calendar-compact .public-calendar-month__events,
.public-calendar-tour-inquiry-form.is-homepage .public-calendar-month__events {
    min-width: 8rem;
}

@media (max-width: 720px) {
    .public-calendar-month__events {
        gap: 0.22rem;
    }

    .public-calendar-month__event,
    .public-calendar-tour-inquiry-form.is-calendar-compact .public-calendar-month__events .public-calendar-month__event,
    .public-calendar-tour-inquiry-form.is-homepage .public-calendar-month__events .public-calendar-month__event {
        gap: 0.16rem;
        padding: 0.24rem 0.28rem;
    }

    .public-calendar-month__event .public-calendar-tour-status,
    .public-calendar-tour-inquiry-form.is-calendar-compact .public-calendar-month__event .public-calendar-tour-status,
    .public-calendar-tour-inquiry-form.is-homepage .public-calendar-month__event .public-calendar-tour-status {
        font-size: 0.58rem;
    }

    .public-calendar-month__event .public-calendar-tour-inquiry-option__select {
        gap: 0.24rem;
        font-size: 0.58rem;
    }
}

/* ========================================================================== 
   Korrekturschritt 0.9.1-13f-2shrb: Öffentlicher Monatskalender je Tag einspaltig
   ========================================================================== */

.public-calendar-tour-inquiry-form:not(.is-homepage).is-calendar-compact .public-calendar-month__events {
    display: grid;
    grid-template-columns: minmax(0, 1fr);
    gap: 0.28rem;
}

.public-calendar-tour-inquiry-form:not(.is-homepage).is-calendar-compact .public-calendar-month__event,
.public-calendar-tour-inquiry-form:not(.is-homepage).is-calendar-compact .public-calendar-month__event + .public-calendar-month__event {
    width: 100%;
    min-width: 0;
    min-height: auto;
    margin-top: 0;
}

.public-calendar-tour-inquiry-form:not(.is-homepage).is-calendar-compact .public-calendar-month__event .public-calendar-tour-inquiry-option.is-compact {
    margin-left: 0;
}

/* ========================================================================== 
   Korrekturschritt 0.9.1-13f-2shrb: Terminboxen je Kalendertag sicher untereinander
   ========================================================================== */

.public-calendar-tour-inquiry-form:not(.is-homepage).is-calendar-compact .public-calendar-month__events {
    display: grid;
    grid-template-columns: minmax(0, 1fr);
    grid-auto-flow: row;
    gap: 0.28rem;
}

.public-calendar-tour-inquiry-form:not(.is-homepage).is-calendar-compact .public-calendar-month__events > .public-calendar-month__event {
    grid-column: 1 / -1;
    width: 100%;
    min-width: 0;
    margin: 0;
}

.public-calendar-tour-inquiry-form.is-calendar-compact .public-calendar-tour-inquiry-option__select {
    display: block;
}

.public-calendar-tour-inquiry-form.is-calendar-compact .public-calendar-tour-inquiry-option__select > input {
    display: block;
    margin: 0;
}

/* ========================================================================== 
   Korrekturschritt 0.9.1-13f-2shrc: Inhalt je Zeitfenster horizontal
   ========================================================================== */

.public-calendar-tour-inquiry-form:not(.is-homepage).is-calendar-compact .public-calendar-month__events > .public-calendar-month__event {
    display: flex;
    flex-direction: row;
    flex-wrap: nowrap;
    align-items: center;
    justify-content: flex-start;
    gap: 0.42rem;
    width: 100%;
    min-width: 0;
    padding: 0.32rem 0.38rem;
}

.public-calendar-tour-inquiry-form:not(.is-homepage).is-calendar-compact .public-calendar-month__event time {
    flex: 0 0 auto;
    width: auto;
    margin: 0;
    white-space: nowrap;
}

.public-calendar-tour-inquiry-form:not(.is-homepage).is-calendar-compact .public-calendar-month__event .public-calendar-tour-status {
    flex: 0 0 auto;
    width: auto;
    margin: 0;
    white-space: nowrap;
}

.public-calendar-tour-inquiry-form:not(.is-homepage).is-calendar-compact .public-calendar-month__event .public-calendar-tour-inquiry-option.is-compact {
    display: block;
    flex: 0 0 auto;
    width: auto;
    margin: 0;
}

.public-calendar-tour-inquiry-form:not(.is-homepage).is-calendar-compact .public-calendar-month__event .public-calendar-tour-inquiry-option__select {
    display: block;
    width: auto;
    margin: 0;
}

.public-calendar-tour-inquiry-form:not(.is-homepage).is-calendar-compact .public-calendar-month__event .public-calendar-tour-inquiry-option__select > input {
    display: block;
    width: 0.88rem;
    height: 0.88rem;
    margin: 0;
}

@media (max-width: 720px) {
    .public-calendar-tour-inquiry-form:not(.is-homepage).is-calendar-compact .public-calendar-month__events > .public-calendar-month__event {
        gap: 0.3rem;
        padding: 0.26rem 0.3rem;
    }
}

/* ========================================================================== 
   Korrekturschritt 0.9.1-13f-2shre: Kompaktansicht Zeitfenster horizontal
   ========================================================================== */

/* Auch Startseiten-/Popover-Kompaktansichten: Termine eines Tages bleiben
   untereinander; innerhalb eines Termins stehen Uhrzeit, Status und Auswahl
   in einer Zeile. */
.public-calendar-tour-inquiry-form.is-homepage .public-calendar-month__events {
    display: grid;
    grid-template-columns: minmax(0, 1fr);
    grid-auto-flow: row;
    gap: 0.28rem;
}

.public-calendar-tour-inquiry-form.is-homepage .public-calendar-month__events > .public-calendar-month__event {
    display: flex;
    flex-direction: row;
    flex-wrap: nowrap;
    align-items: center;
    justify-content: flex-start;
    grid-column: 1 / -1;
    gap: 0.42rem;
    width: 100%;
    min-width: 0;
    min-height: auto;
    margin: 0;
    padding: 0.32rem 0.38rem;
    text-align: left;
}

.public-calendar-tour-inquiry-form.is-homepage .public-calendar-month__event time,
.public-calendar-tour-inquiry-form.is-homepage .public-calendar-month__event .public-calendar-tour-status {
    flex: 0 0 auto;
    width: auto;
    margin: 0;
    white-space: nowrap;
}

.public-calendar-tour-inquiry-form.is-homepage .public-calendar-month__event .public-calendar-tour-inquiry-option.is-compact {
    display: block;
    flex: 0 0 auto;
    width: auto;
    margin: 0;
}

.public-calendar-tour-inquiry-form.is-homepage .public-calendar-month__event .public-calendar-tour-inquiry-option__select {
    display: block;
    width: auto;
    margin: 0;
}

.public-calendar-tour-inquiry-form.is-homepage .public-calendar-month__event .public-calendar-tour-inquiry-option__select > input {
    display: block;
    width: 0.88rem;
    height: 0.88rem;
    margin: 0;
}

/* Allgemeine kompakte Darstellung absichern, auch wenn sie außerhalb der
   Startseite in einer kompakten Einbettung verwendet wird. */
.public-calendar-tour-inquiry-form.is-calendar-compact .public-calendar-month__events > .public-calendar-month__event {
    flex-direction: row;
    flex-wrap: nowrap;
    align-items: center;
}

@media (max-width: 720px) {
    .public-calendar-tour-inquiry-form.is-homepage .public-calendar-month__events > .public-calendar-month__event {
        gap: 0.3rem;
        padding: 0.26rem 0.3rem;
    }
}

/* ========================================================================== 
   Korrekturschritt 0.9.1-13f-2shrf: Kompaktkalender-Popover wieder korrekt schalten
   ========================================================================== */

/* Startseite: Tagesdetails nicht dauerhaft anzeigen. Die vorherige
   Korrektur hatte display:grid mit höherer Quellreihenfolge gesetzt und
   dadurch alle Tages-Popover gleichzeitig eingeblendet. */
.public-calendar-tour-inquiry-form.is-homepage .public-calendar-month__events {
    display: none;
}

.public-calendar-tour-inquiry-form.is-homepage .public-calendar-month__day:hover > .public-calendar-month__events,
.public-calendar-tour-inquiry-form.is-homepage .public-calendar-month__day:focus-within > .public-calendar-month__events,
.public-calendar-tour-inquiry-form.is-homepage .public-calendar-month__day.is-open > .public-calendar-month__events {
    display: grid;
    grid-template-columns: minmax(0, 1fr);
    grid-auto-flow: row;
    gap: 0.28rem;
}

/* Tablet/Mobil auf normalen kompakten Kalendern ebenfalls nur den
   ausgewählten Tag öffnen. */
@media (max-width: 720px) {
    .public-calendar-tour-inquiry-form:not(.is-homepage).is-calendar-compact .public-calendar-month__events {
        display: none;
    }

    .public-calendar-tour-inquiry-form:not(.is-homepage).is-calendar-compact .public-calendar-month__day.is-open > .public-calendar-month__events,
    .public-calendar-tour-inquiry-form:not(.is-homepage).is-calendar-compact .public-calendar-month__day:focus-within > .public-calendar-month__events {
        display: grid;
        grid-template-columns: minmax(0, 1fr);
        grid-auto-flow: row;
        gap: 0.22rem;
    }
}

/* ========================================================================== 
   Korrekturschritt 0.9.1-13f-2shrg: Kompakt-Popover Status und Auswahl sichtbar
   ========================================================================== */

.public-calendar-tour-inquiry-form.is-homepage .public-calendar-month__day:hover > .public-calendar-month__events,
.public-calendar-tour-inquiry-form.is-homepage .public-calendar-month__day:focus-within > .public-calendar-month__events,
.public-calendar-tour-inquiry-form.is-homepage .public-calendar-month__day.is-open > .public-calendar-month__events {
    width: max-content;
    min-width: 9.8rem;
    max-width: min(15rem, calc(100vw - 2rem));
    overflow: visible;
}

.public-calendar-tour-inquiry-form.is-homepage .public-calendar-month__events > .public-calendar-month__event {
    display: grid;
    grid-template-columns: auto auto auto;
    align-items: center;
    justify-content: start;
    column-gap: 0.42rem;
    width: 100%;
    min-width: 0;
}

.public-calendar-tour-inquiry-form.is-homepage .public-calendar-month__event time,
.public-calendar-tour-inquiry-form.is-homepage .public-calendar-month__event .public-calendar-tour-status,
.public-calendar-tour-inquiry-form.is-homepage .public-calendar-month__event .public-calendar-tour-inquiry-option.is-compact,
.public-calendar-tour-inquiry-form.is-homepage .public-calendar-month__event .public-calendar-tour-inquiry-option__select,
.public-calendar-tour-inquiry-form.is-homepage .public-calendar-month__event .public-calendar-tour-inquiry-option__select > input {
    display: block;
    visibility: visible;
    opacity: 1;
}

.public-calendar-tour-inquiry-form.is-homepage .public-calendar-month__event .public-calendar-tour-status {
    grid-column: 2;
    margin: 0;
    white-space: nowrap;
}

.public-calendar-tour-inquiry-form.is-homepage .public-calendar-month__event .public-calendar-tour-inquiry-option.is-compact {
    grid-column: 3;
    width: auto;
    margin: 0;
}

.public-calendar-tour-inquiry-form.is-homepage .public-calendar-month__event .public-calendar-tour-inquiry-option__select > input {
    width: 0.88rem;
    height: 0.88rem;
    margin: 0;
}

.public-calendar-tour-inquiry-form.is-homepage .public-calendar-month__event.is-booked {
    grid-template-columns: auto auto;
}

@media (max-width: 720px) {
    .public-calendar-tour-inquiry-form:not(.is-homepage).is-calendar-compact .public-calendar-month__day.is-open > .public-calendar-month__events,
    .public-calendar-tour-inquiry-form:not(.is-homepage).is-calendar-compact .public-calendar-month__day:focus-within > .public-calendar-month__events {
        width: max-content;
        min-width: 9.4rem;
        max-width: min(14rem, calc(100vw - 1.5rem));
        overflow: visible;
    }

    .public-calendar-tour-inquiry-form:not(.is-homepage).is-calendar-compact .public-calendar-month__events > .public-calendar-month__event {
        display: grid;
        grid-template-columns: auto auto auto;
        align-items: center;
        justify-content: start;
        column-gap: 0.32rem;
    }

    .public-calendar-tour-inquiry-form:not(.is-homepage).is-calendar-compact .public-calendar-month__event .public-calendar-tour-status,
    .public-calendar-tour-inquiry-form:not(.is-homepage).is-calendar-compact .public-calendar-month__event .public-calendar-tour-inquiry-option.is-compact,
    .public-calendar-tour-inquiry-form:not(.is-homepage).is-calendar-compact .public-calendar-month__event .public-calendar-tour-inquiry-option__select,
    .public-calendar-tour-inquiry-form:not(.is-homepage).is-calendar-compact .public-calendar-month__event .public-calendar-tour-inquiry-option__select > input {
        display: block;
        visibility: visible;
        opacity: 1;
    }

    .public-calendar-tour-inquiry-form:not(.is-homepage).is-calendar-compact .public-calendar-month__event.is-booked {
        grid-template-columns: auto auto;
    }
}
