/* ==========================================================
   SIKO Albisrieden – Veranstaltungen
   ========================================================== */

.siko-events {
    width: 100%;
    max-width: 1180px;
    margin: 0 auto;
    padding: 0;
    color: #111;
}

/* Seitentitel wie im Original */
.siko-events__header {
    margin: 0 0 138px;
    padding: 0;
    text-align: center;
}

.siko-events__header h1 {
    margin: 0;
    padding: 0;
    color: #111;
    font-family: inherit;
    font-size: clamp(3rem, 4.2vw, 4.25rem);
    font-weight: 400;
    line-height: 1.08;
}

/* Veranstaltungsliste */
.siko-events__list {
    width: 100%;
    margin: 0;
    padding: 0;
    border-top: 0;
}

/* Einzelner Accordion-Eintrag */
.siko-event {
    width: 100%;
    margin: 0;
    padding: 0;
    border: 0;
    border-bottom: 1px solid #ccc;
}

/* Browser-Standardmarker entfernen */
.siko-event > summary {
    list-style: none;
}

.siko-event > summary::-webkit-details-marker {
    display: none;
}

/* Kopfzeile */
.siko-event__summary {
    display: grid;
    grid-template-columns:
        minmax(300px, 1.8fr)
        minmax(190px, 0.9fr)
        minmax(190px, 0.85fr)
        32px;
    column-gap: 28px;
    align-items: start;
    min-height: 77px;
    margin: 0;
    padding: 10px 0 9px;
    cursor: pointer;
    color: #111;
}

.siko-event__summary:hover .siko-event__title,
.siko-event__summary:focus-visible .siko-event__title {
    color: #3e7fc3;
}

.siko-event__summary:focus-visible {
    outline: 2px solid #3e7fc3;
    outline-offset: 4px;
}

/* Titel */
.siko-event__title {
    display: block;
    margin: 0;
    padding: 0;
    font-size: 1.48rem;
    font-weight: 400;
    line-height: 1.3;
    transition: color 160ms ease;
}

/* Datum und Zeit */
.siko-event__date {
    display: block;
    margin: 0;
    padding: 0;
    font-size: 1.16rem;
    font-weight: 400;
    line-height: 1.35;
}

.siko-event__date time {
    display: flex;
    flex-direction: column;
}

.siko-event__time {
    display: block;
    margin-top: 2px;
}

/* Veranstaltungsort */
.siko-event__location {
    display: block;
    margin: 0;
    padding: 0;
    font-size: 1.16rem;
    font-weight: 400;
    line-height: 1.4;
}

/* Pfeil rechts */
.siko-event__toggle {
    position: relative;
    display: block;
    width: 18px;
    height: 18px;
    margin: 10px 2px 0 auto;
    transform: rotate(45deg);
    border-right: 1.5px solid #111;
    border-bottom: 1.5px solid #111;
    transition: transform 180ms ease;
}

/* Pfeil bei geöffnetem Eintrag nach oben */
.siko-event[open] .siko-event__toggle {
    margin-top: 18px;
    transform: rotate(225deg);
}

/* Aufgeklappter Inhalt */
.siko-event__expanded {
    display: grid;
    grid-template-columns: minmax(0, 1fr) minmax(320px, 1fr);
    column-gap: 55px;
    align-items: start;
    width: 100%;
    padding: 0 0 30px;
}

.siko-event__description {
    min-width: 0;
    max-width: none;
    margin: 0;
    padding: 0;
    font-size: 1.08rem;
    line-height: 1.5;
}

.siko-event__media {
    width: 100%;
    margin: 0;
    padding: 0;
}

.siko-event__image {
    display: block;
    width: 100%;
    height: auto;
}

.siko-event__description > :first-child {
    margin-top: 0;
}

.siko-event__description > :last-child {
    margin-bottom: 0;
}

/* Von TYPO3 erzeugte Inhalts-Wrapper ohne oberen Leerraum ausrichten */
.siko-event__teaser {
    margin: 0 0 1.25rem !important;
    padding: 0 !important;
}

.siko-event__teaser > *,
.siko-event__teaser > * > * {
    margin-top: 0 !important;
    padding-top: 0 !important;
}

.siko-event__teaser > :last-child,
.siko-event__teaser > * > :last-child {
    margin-bottom: 0 !important;
}

.siko-event__description p {
    margin: 0 0 20px;
}

.siko-event__description ul,
.siko-event__description ol {
    margin: 0 0 20px;
    padding-left: 20px;
}

/* Einheitliche Aufzählungen in Veranstaltungen */
.siko-event__teaser ul,
.siko-event__description ul,
.siko-event-detail__description ul,
.siko-event-detail__program ul {
    padding-left: 15px;
    list-style: none;
}

.siko-event__teaser ul > li,
.siko-event__description ul > li,
.siko-event-detail__description ul > li,
.siko-event-detail__program ul > li {
    margin: 0;
    padding: 0;
}

.siko-event__teaser ul > li::before,
.siko-event__description ul > li::before,
.siko-event-detail__description ul > li::before,
.siko-event-detail__program ul > li::before {
    content: "- ";
    color: inherit;
}

.siko-event__information {
    margin: 0 !important;
}

.siko-event__information strong {
    font-weight: 400;
}

/* Links und Anmeldung */
.siko-event__actions {
    display: grid;
    grid-template-columns: repeat(3, max-content);
    align-items: stretch;
    justify-content: start;
    gap: 0.5rem;
    margin-top: 22px;
}

.siko-event__details,
.siko-event__ical,
.siko-event__registration {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    min-width: 0;
    min-height: 2.9rem;
    padding: 0.7rem 1rem;
    font-size: 1rem;
    font-weight: 700;
    line-height: 1.2;
    text-decoration: none;
    white-space: nowrap;
    transition:
        color 0.18s ease,
        background-color 0.18s ease,
        border-color 0.18s ease,
        transform 0.1s ease;
}

.siko-event__details,
.siko-event__ical {
    color: #18212b;
    background: #fff;
    border: 1px solid #8f999f;
}

.siko-event__ical {
    font-size: 0 !important;
}

.siko-event__ical > * {
    margin: 0 !important;
    padding: 0 !important;
    font-size: 0 !important;
    line-height: 0 !important;
}

.siko-event__ical::before {
    content: "↓ iCal";
    font-size: 1rem;
    line-height: 1.2;
    text-decoration: none;
}

.siko-event__registration {
    color: #fff;
    background: #568b29;
    border: 1px solid #568b29;
}

.siko-event__registration:hover,
.siko-event__registration:focus-visible {
    color: #fff;
    background: #416c20;
    border-color: #416c20;
}

.siko-event__details:hover,
.siko-event__details:focus-visible,
.siko-event__ical:hover,
.siko-event__ical:focus-visible {
    color: #fff;
    background: #568b29;
    border-color: #568b29;
}

.siko-event__details:focus-visible,
.siko-event__ical:focus-visible,
.siko-event__registration:focus-visible {
    outline: 3px solid rgb(86 139 41 / 30%);
    outline-offset: 2px;
}

.siko-event__details:active,
.siko-event__ical:active,
.siko-event__registration:active {
    transform: translateY(1px);
}

@media (max-width: 360px) {
    .siko-event__actions {
        grid-template-columns: repeat(3, minmax(0, 1fr));
        gap: 0.25rem;
        width: 100%;
    }

    .siko-event__details,
    .siko-event__ical,
    .siko-event__registration {
        padding-right: 0.3rem;
        padding-left: 0.3rem;
        font-size: 0.72rem;
    }

    .siko-event__ical::before {
        font-size: 0.72rem;
    }

}

/* Meldung bei leerer Liste */
.siko-events__empty {
    margin: 0;
    padding: 25px 0;
    border-top: 1px solid #ccc;
    border-bottom: 1px solid #ccc;
}

/* Alte Standardformatierung der Extension neutralisieren */
.tx-sf-event-mgt .event-list-item,
.tx-sf-event-mgt .event-list-row,
.tx-sf-event-mgt .event-list-label,
.tx-sf-event-mgt .event-list-value {
    float: none;
    width: auto;
    margin: 0;
    padding: 0;
    border: 0;
}

.tx-sf-event-mgt .clear {
    display: none;
}
.siko-event__media {
    width: 100%;
    margin: 0 0 24px;
}

.siko-event__figure {
    margin: 0;
}

.siko-event__image {
    display: block;
    width: 100%;
    max-width: 570px;
    height: auto;
}

.siko-event__caption {
    margin-top: 7px;
    color: #666;
    font-size: 0.88rem;
    line-height: 1.4;
}

.siko-event__availability {
    display: flex;
    align-items: center;
    gap: 6px;
}

.siko-event__status {
    font-weight: 600;
}

.siko-event__status--available {
    color: #427d23;
}

.siko-event__status--waitlist {
    color: #9a6500;
}

.siko-event__status--full {
    color: #a32626;
}

/* ==========================================================
   Event-Detailansicht
   ========================================================== */

.siko-event-detail {
    width: min(100%, 1180px);
    margin-inline: auto;
    padding-block: clamp(2rem, 5vw, 4.5rem);
    color: #18212b;
}

.siko-event-detail__header {
    position: relative;
    overflow: hidden;
    margin: 0 0 clamp(1.5rem, 3vw, 2.25rem);
    padding: clamp(1.5rem, 4vw, 3rem);
    color: #18212b;
    background: #f5f7f2;
    border-top: 4px solid #69a82f;
}

.siko-event-detail__eyebrow {
    margin: 0 0 0.45rem;
    color: #568b29;
    font-size: 0.875rem;
    font-weight: 700;
    letter-spacing: 0.08em;
    line-height: 1.3;
    text-transform: uppercase;
}

.siko-event-detail__title {
    max-width: 18ch;
    margin: 0;
    font-size: clamp(2rem, 5vw, 3.75rem);
    font-weight: 500;
    line-height: 1.05;
    text-wrap: balance;
}

.siko-event-detail__event-data {
    display: grid;
    grid-template-columns: repeat(auto-fit, minmax(145px, 1fr));
    margin: clamp(1.5rem, 3vw, 2.5rem) 0 0;
    padding: 0;
    border-top: 1px solid #cfd6ca;
}

.siko-event-detail__fact {
    min-width: 0;
    margin: 0;
    padding: 1rem 1.25rem 0 0;
}

.siko-event-detail__fact:not(:last-child) {
    margin-right: 1.25rem;
    border-right: 1px solid #d8ded4;
}

.siko-event-detail__fact dt {
    margin: 0 0 0.3rem;
    color: #69746b;
    font-size: 0.78rem;
    font-weight: 700;
    letter-spacing: 0.07em;
    line-height: 1.25;
    text-transform: uppercase;
}

.siko-event-detail__fact dd {
    margin: 0;
    color: #18212b;
    font-size: clamp(1rem, 2vw, 1.2rem);
    font-weight: 600;
    line-height: 1.35;
}

.siko-event-detail__actions {
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    gap: 0.75rem 1rem;
    margin: 0 0 clamp(2rem, 4vw, 3.5rem);
    padding: 0 0 1.5rem;
    border-bottom: 1px solid #d5d9dc;
}

.siko-event-detail__registration,
.siko-event-detail__ical {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    gap: 0.4rem;
    min-height: 2.9rem;
    padding: 0.7rem 1.2rem;
    font-weight: 700;
    line-height: 1.2;
    text-decoration: none;
}

.siko-event-detail__registration {
    color: #fff;
    background: #568b29;
    border: 1px solid #568b29;
}

.siko-event-detail__registration:hover,
.siko-event-detail__registration:focus-visible {
    color: #fff;
    background: #416c20;
    border-color: #416c20;
}

.siko-event-detail__registration-deadline {
    margin: 1.25rem 0;
    padding: 0.85rem 1rem;
    border-left: 4px solid #4f8613;
    background: #f1f3f0;
    color: #20262b;
    line-height: 1.5;
}

.siko-event-detail__registration-deadline strong {
    margin-right: 0.3rem;
}

.siko-event-detail__ical {
    color: #18212b;
    background: #fff;
    border: 1px solid #8f999f;
    font-size: 0;
}

.siko-event-detail__ical > span {
    font-size: 1rem;
}

.siko-event-detail__ical::after {
    content: "iCal";
    font-size: 1rem;
}

.siko-event-detail__ical:hover,
.siko-event-detail__ical:focus-visible {
    color: #18212b;
    background: #f3f5f6;
}

.siko-event-detail__back {
    margin-left: auto;
    color: #18212b;
    text-decoration: underline;
    text-decoration-thickness: 1px;
    text-underline-offset: 0.22em;
}

.siko-event-detail__layout {
    display: grid;
    grid-template-columns: minmax(0, 1fr) minmax(280px, 400px);
    gap: clamp(2rem, 5vw, 4.5rem);
    align-items: start;
}

.siko-event-detail__content {
    grid-column: 1;
    grid-row: 1;
    min-width: 0;
}

.siko-event-detail__sidebar {
    grid-column: 2;
    grid-row: 1;
    min-width: 0;
}

.siko-event-detail__media {
    width: 100%;
    max-width: 400px;
    margin: 0 0 1.5rem auto;
}

.siko-event-detail__image {
    display: block;
    width: 100%;
    height: auto;
}

.siko-event-detail__caption {
    margin-top: 0.55rem;
    color: #69747c;
    font-size: 0.85rem;
    line-height: 1.4;
}

.siko-event-detail__sidebar-card {
    margin: 0 0 1rem;
    padding: 1.1rem 1.25rem;
    background: #f5f7f2;
    border-left: 3px solid #69a82f;
}

.siko-event-detail__sidebar-card h2 {
    margin: 0 0 0.5rem;
    font-size: 0.78rem;
    font-weight: 700;
    letter-spacing: 0.07em;
    line-height: 1.25;
    text-transform: uppercase;
}

.siko-event-detail__sidebar-card p {
    margin: 0;
    line-height: 1.55;
}

.siko-event-detail__lead {
    margin: 0 0 1.75rem;
    font-size: clamp(1.15rem, 2vw, 1.35rem);
    line-height: 1.55;
}

.siko-event-detail__description,
.siko-event-detail__program {
    font-size: 1.08rem;
    line-height: 1.65;
}

.siko-event-detail__description > :first-child,
.siko-event-detail__program > :first-child,
.siko-event-detail__lead > :first-child {
    margin-top: 0;
}

.siko-event-detail__program,
.siko-event-detail__downloads {
    margin-top: 2.75rem;
}

.siko-event-detail__program h2,
.siko-event-detail__downloads h2,
.siko-event-detail__gallery + h2 {
    margin: 0 0 1rem;
    font-size: 1.65rem;
    font-weight: 500;
}

.siko-event-detail__gallery {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 1.25rem;
    margin-top: 2.5rem;
}

.siko-event-detail__gallery-item {
    margin: 0;
}

.siko-event-detail__gallery-image {
    display: block;
    width: 100%;
    height: auto;
}

.siko-event-detail__download-list {
    margin: 0;
    padding: 0;
    list-style: none;
    border-top: 1px solid #d5d9dc;
}

.siko-event-detail__download-item {
    margin: 0;
    border-bottom: 1px solid #d5d9dc;
}

.siko-event-detail__download-link {
    display: flex;
    align-items: baseline;
    justify-content: space-between;
    gap: 1.5rem;
    padding: 0.9rem 0;
    color: #18212b;
}

.siko-event-detail__download-title {
    flex: 1 1 auto;
}

.siko-event-detail__download-meta {
    flex: 0 0 auto;
    color: #69747c;
    font-size: 0.88rem;
}

.siko-event-detail__external-link {
    margin-top: 2rem;
}

.siko-event-detail__not-found {
    padding: 1rem 1.25rem;
    background: #f3f5f6;
    border-left: 4px solid #69747c;
}

@media (max-width: 900px) {
    .siko-event-detail {
        padding-block: 1.5rem 3rem;
    }

    .siko-event-detail__header {
        padding: 1.35rem;
    }

    .siko-event-detail__event-data {
        grid-template-columns: repeat(2, minmax(0, 1fr));
    }

    .siko-event-detail__fact,
    .siko-event-detail__fact:not(:last-child) {
        margin: 0;
        padding: 0.9rem 0;
        border-right: 0;
        border-bottom: 1px solid #d8ded4;
    }

    .siko-event-detail__fact:nth-child(odd) {
        padding-right: 0.75rem;
    }

    .siko-event-detail__fact:nth-child(even) {
        padding-left: 0.75rem;
    }

    .siko-event-detail__actions {
        align-items: stretch;
    }

    .siko-event-detail__back {
        width: 100%;
        margin: 0.5rem 0 0;
    }

    .siko-event-detail__layout {
        display: block;
    }

    .siko-event-detail__sidebar {
        max-width: 34rem;
        margin: 0 0 2rem;
    }

    .siko-event-detail__media {
        max-width: none;
        margin-left: 0;
    }

    .siko-event-detail__gallery {
        grid-template-columns: 1fr;
    }
}

@media (max-width: 520px) {
    .siko-event-detail__event-data {
        grid-template-columns: 1fr;
    }

    .siko-event-detail__fact:nth-child(n) {
        padding-inline: 0;
    }

    .siko-event-detail__actions {
        display: grid;
        grid-template-columns: minmax(0, 1.6fr) minmax(0, 1fr);
        gap: 0.65rem;
    }

	.siko-event-detail__actions:not(:has(.siko-event-detail__registration)) {
    display: flex;
	}

	.siko-event-detail__actions:not(:has(.siko-event-detail__registration))
		.siko-event-detail__ical {
		flex: 0 0 auto;
	}
	
    .siko-event-detail__registration,
    .siko-event-detail__ical {
        width: auto;
        min-width: 0;
        min-height: 2.7rem;
        padding: 0.65rem 0.75rem;
        font-size: 0.9rem;
        white-space: nowrap;
    }

	.siko-event-detail__fact--registration {
		display: block;
	}

	.siko-event-detail__fact--registration dt {
		margin-bottom: 0.3rem;
	}	
	
    .siko-event-detail__ical {
        font-size: 0;
    }

    .siko-event-detail__ical > span,
    .siko-event-detail__ical::after {
        font-size: 0.9rem;
    }

    .siko-event-detail__back {
        grid-column: 1 / -1;
        width: auto;
        justify-self: start;
        margin-top: 0.5rem;
    }

    .siko-event-detail__download-link {
        display: block;
    }

    .siko-event-detail__download-meta {
        display: block;
        margin-top: 0.25rem;
    }
}

/* ==========================================================
   Event-Pagination
   ========================================================== */

.siko-events__pagination {
    display: flex;
    justify-content: flex-end;
    width: 100%;
    margin: 24px 0 10px;
}

.siko-events__pagination ul,
.siko-events__pagination .pagination {
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    justify-content: flex-end;
    gap: 6px;

    margin: 0;
    padding: 0;

    list-style: none;
}

.siko-events__pagination li {
    margin: 0;
    padding: 0;
    list-style: none;
}

.siko-events__pagination li::marker {
    content: "";
}

.siko-events__pagination a,
.siko-events__pagination span {
    display: inline-flex;
    align-items: center;
    justify-content: center;

    min-width: 38px;
    min-height: 38px;
    padding: 6px 12px;

    border: 1px solid #cccccc;
    background: #ffffff;
    color: #111111;

    font-size: 16px;
    line-height: 1;
    text-decoration: none;

    transition:
        color 150ms ease,
        border-color 150ms ease,
        background-color 150ms ease;
}

.siko-events__pagination a:hover,
.siko-events__pagination a:focus-visible {
    border-color: #568b29;
    background: #568b29;
    color: #ffffff;
    text-decoration: none;
}

.siko-events__pagination .active > a,
.siko-events__pagination .active > span,
.siko-events__pagination .current > a,
.siko-events__pagination .current > span {
    border-color: #568b29;
    background: #568b29;
    color: #ffffff;
}

.siko-events__pagination .active > a:hover,
.siko-events__pagination .active > a:focus-visible,
.siko-events__pagination .current > a:hover,
.siko-events__pagination .current > a:focus-visible {
    border-color: #416c20;
    background: #416c20;
}

.siko-events__pagination a:focus-visible {
    outline: 3px solid rgb(86 139 41 / 30%);
    outline-offset: 2px;
}

.siko-events__pagination .disabled > a,
.siko-events__pagination .disabled > span {
    opacity: 0.4;
    pointer-events: none;
}

@media (max-width: 760px) {
    .siko-events__pagination {
        justify-content: center;
    }

    .siko-events__pagination ul,
    .siko-events__pagination .pagination {
        justify-content: center;
    }

    .siko-events__pagination a,
    .siko-events__pagination span {
        min-width: 36px;
        min-height: 36px;
        padding: 6px 10px;
        font-size: 15px;
    }
}

/* =========================================================
   SiKo Veranstaltungskalender
   ========================================================= */

.siko-calendar {
    width: 100%;
    margin: 0 auto;
}

.siko-calendar__header {
    margin: 0 0 2.5rem;
    text-align: center;
}

.siko-calendar__title {
    margin: 0;
    color: #111;
    font-size: clamp(2.4rem, 5vw, 4rem);
    font-weight: 400;
    line-height: 1.1;
}

.event-calendar {
    --calendar-border: #d1d1d1;
    --calendar-muted: #767676;
    --calendar-background: #fff;
    --calendar-other-month: #f5f5f5;
    --calendar-accent: #3e7fc3;
    --calendar-accent-dark: #245f9c;
    --calendar-today: #73ad2c;

    width: 100%;
    color: #111;
}

.event-calendar ul {
    margin: 0;
    padding: 0;
    list-style: none;
}

/* Monatsnavigation */

.event-calendar__browser {
    display: grid;
    grid-template-columns: minmax(0, 1fr) auto minmax(0, 1fr);
    align-items: center;
    gap: 1rem;
    margin: 0 0 1.5rem;
    padding: 1rem 0;
    border-top: 1px solid var(--calendar-border);
    border-bottom: 1px solid var(--calendar-border);
}

.event-calendar__browser-prev,
.event-calendar__browser-next {
    display: inline-flex;
    align-items: center;
    gap: 0.5rem;
    color: var(--calendar-accent);
    font-size: 1rem;
    line-height: 1.3;
    text-decoration: none;
}

.event-calendar__browser-prev {
    justify-self: start;
}

.event-calendar__browser-next {
    justify-self: end;
    text-align: right;
}

.event-calendar__browser-prev:hover,
.event-calendar__browser-next:hover,
.event-calendar__browser-prev:focus-visible,
.event-calendar__browser-next:focus-visible {
    color: var(--calendar-accent-dark);
    text-decoration: underline;
}

.event-calendar__browser-current {
    margin: 0;
    font-size: clamp(1.5rem, 3vw, 2.2rem);
    font-weight: 400;
    line-height: 1.2;
    text-align: center;
}

/* Kalender-Raster */

.event-calendar__viewport {
    width: 100%;
    overflow-x: auto;
    overscroll-behavior-inline: contain;
}

.event-calendar__grid {
    min-width: 760px;
    border-top: 1px solid var(--calendar-border);
    border-left: 1px solid var(--calendar-border);
}

.event-calendar__weekdays,
.event-calendar__days {
    display: grid;
    grid-template-columns: repeat(7, minmax(0, 1fr));
}

.event-calendar--with-weeknumbers .event-calendar__weekdays,
.event-calendar--with-weeknumbers .event-calendar__days {
    grid-template-columns: 3.25rem repeat(7, minmax(0, 1fr));
}

.event-calendar__weekdays {
    background: #f2f2f2;
}

.event-calendar__weekdays-weekday,
.event-calendar__weeknumber {
    padding: 0.7rem 0.5rem;
    border-right: 1px solid var(--calendar-border);
    border-bottom: 1px solid var(--calendar-border);
    font-size: 0.88rem;
    font-weight: 600;
    text-align: center;
}

.event-calendar__weeknumber {
    display: flex;
    align-items: center;
    justify-content: center;
    color: var(--calendar-muted);
    background: #f2f2f2;
}

.event-calendar__weeknumber abbr {
    text-decoration: none;
}

/* Einzelner Kalendertag */

.event-calendar__day {
    position: relative;
    min-width: 0;
    min-height: 8.5rem;
    padding: 0.65rem;
    overflow-wrap: anywhere;
    background: var(--calendar-background);
    border-right: 1px solid var(--calendar-border);
    border-bottom: 1px solid var(--calendar-border);
}

.event-calendar__day--other-month {
    color: #999;
    background: var(--calendar-other-month);
}

.event-calendar__day-date {
    display: flex;
    align-items: center;
    justify-content: center;
    width: 1.9rem;
    height: 1.9rem;
    margin: 0 0 0.55rem auto;
    border-radius: 50%;
    font-size: 0.92rem;
    font-weight: 600;
    line-height: 1;
}

.event-calendar__day--today .event-calendar__day-date {
    color: #fff;
    background: var(--calendar-today);
}

.event-calendar__day--has-events {
    background: #fbfdff;
}

.event-calendar__day--other-month
.event-calendar__day-event {
    opacity: 0.65;
}

/* Veranstaltungen innerhalb eines Tages */

.event-calendar__day-events {
    display: grid;
    gap: 0.4rem;
}

.event-calendar__day-event {
    margin: 0;
    padding: 0.45rem 0.5rem;
    color: #fff;
    background: var(--calendar-accent);
    border-radius: 2px;
}

.event-calendar__day-event-link {
    display: block;
    color: #fff;
    font-size: 0.83rem;
    font-weight: 600;
    line-height: 1.25;
    text-decoration: none;
}

.event-calendar__day-event-link:hover,
.event-calendar__day-event-link:focus-visible {
    color: #fff;
    text-decoration: underline;
}

.event-calendar__day-event-time {
    display: flex;
    flex-wrap: wrap;
    gap: 0.2rem;
    margin-top: 0.25rem;
    color: #fff;
    font-size: 0.74rem;
    line-height: 1.25;
}

/* Fokuszustände */

.event-calendar a:focus-visible {
    outline: 2px solid var(--calendar-accent-dark);
    outline-offset: 3px;
}

.event-calendar__viewport:focus-visible {
    outline: 2px solid var(--calendar-accent);
    outline-offset: 4px;
}

/* Tablet und Smartphone */

@media (max-width: 760px) {
    .siko-calendar__header {
        margin-bottom: 1.75rem;
    }

    .event-calendar__browser {
        grid-template-columns: 1fr 1fr;
    }

    .event-calendar__browser-current {
        grid-column: 1 / -1;
        grid-row: 1;
        margin-bottom: 0.4rem;
    }

    .event-calendar__browser-prev {
        grid-column: 1;
        grid-row: 2;
    }

    .event-calendar__browser-next {
        grid-column: 2;
        grid-row: 2;
    }

    .event-calendar__viewport {
        padding-bottom: 0.75rem;
    }
}

@media (max-width: 480px) {
    .event-calendar__browser-prev span:last-child,
    .event-calendar__browser-next span:first-child {
        font-size: 0.88rem;
    }
}

/* ==========================================================
   Tablet
   ========================================================== */

@media (max-width: 900px) {
    .siko-events__header {
        margin-bottom: 80px;
    }

    .siko-event__summary {
        grid-template-columns:
            minmax(240px, 1.5fr)
            minmax(155px, 0.8fr)
            minmax(150px, 0.8fr)
            28px;
        column-gap: 18px;
    }

    .siko-event__expanded {
        grid-template-columns:
            minmax(0, 0.9fr)
            minmax(320px, 1.1fr);
        column-gap: 30px;
    }

    .siko-event__title {
        font-size: 1.3rem;
    }

    .siko-event__date,
    .siko-event__location {
        font-size: 1rem;
    }
}


@media (max-width: 760px) {
    .siko-event__expanded {
        display: flex;
        flex-direction: column-reverse;
        gap: 22px;
    }

    .siko-event__media {
        max-width: none;
    }
}

/* ==========================================================
   Mobile
   ========================================================== */

@media (max-width: 680px) {
    .siko-events__header {
        margin-bottom: 50px;
        text-align: left;
    }

    .siko-events__header h1 {
        font-size: 2.65rem;
    }

    .siko-event__summary {
        grid-template-columns: minmax(0, 1fr) 28px;
        column-gap: 15px;
        min-height: 0;
        padding: 17px 0;
    }

    .siko-event__title {
        grid-column: 1;
        font-size: 1.35rem;
    }

    .siko-event__date {
        grid-column: 1;
        margin-top: 8px;
    }

    .siko-event__date time {
        display: block;
    }

    .siko-event__time {
        display: inline;
        margin-left: 6px;
    }

    .siko-event__location {
        grid-column: 1;
        margin-top: 4px;
    }

    .siko-event__toggle {
        grid-column: 2;
        grid-row: 1 / span 3;
        align-self: center;
        margin-top: 0;
    }

    .siko-event[open] .siko-event__toggle {
        margin-top: 8px;
    }

    .siko-event__expanded {
        display: block;
        padding: 0 40px 22px 0;
    }
	
	.siko-event__visual {
		margin-top: 1.25rem;
	}
    .siko-event__description {
        max-width: none;
        font-size: 1rem;
    }
}

/* Überschrift direkt vor der ersten Veranstaltungsliste */
.frame-type-header + .frame-type-sfeventmgt_pieventlist {
    margin-top: 100px;
}

/* Überschrift für vergangene Veranstaltungen */
.frame-type-sfeventmgt_pieventlist + .frame-type-header {
    margin-top: 70px;
}

/* Keine zusätzlichen Plugin-Überschriften */
.tx-sf-event-mgt > h1 {
    display: none;
}
/* ================================================================
   SiKo – Veranstaltungsanmeldung
   Diesen Block am Ende von Resources/Public/Css/Event.css ergänzen.
   ================================================================ */

.siko-registration {
    width: min(100%, 1180px);
    margin-inline: auto;
    padding-block: clamp(2rem, 5vw, 4.5rem);
}

.siko-registration__header {
    position: relative;
    overflow: hidden;
    margin: 0 0 clamp(2rem, 4vw, 3.5rem);
    padding: clamp(1.5rem, 4vw, 3rem);
    color: #18212b;
    background: #f5f7f2;
    border-top: 4px solid #69a82f;
}

.siko-registration__eyebrow {
    margin: 0 0 0.45rem;
    color: #568b29;
    font-size: 0.875rem;
    font-weight: 700;
    letter-spacing: 0.08em;
    line-height: 1.3;
    text-transform: uppercase;
}

.siko-registration__event-title {
    max-width: 18ch;
    margin: 0;
    font-size: clamp(2rem, 5vw, 3.75rem);
    font-weight: 500;
    line-height: 1.05;
    text-wrap: balance;
}

.siko-registration__intro {
    max-width: 62ch;
    margin: 1rem 0 0;
    color: #4d5862;
    font-size: 1rem;
    line-height: 1.55;
}

.siko-registration__event-data {
    display: grid;
    grid-template-columns: repeat(4, minmax(0, 1fr));
    margin: clamp(1.5rem, 3vw, 2.5rem) 0 0;
    padding: 0;
    border-top: 1px solid #cfd6ca;
}

.siko-registration__fact {
    min-width: 0;
    margin: 0;
    padding: 1rem 1.25rem 0 0;
}

.siko-registration__fact:not(:last-child) {
    margin-right: 1.25rem;
    border-right: 1px solid #d8ded4;
}

.siko-registration__fact dt {
    margin: 0 0 0.3rem;
    color: #69746b;
    font-size: 0.78rem;
    font-weight: 700;
    letter-spacing: 0.07em;
    line-height: 1.25;
    text-transform: uppercase;
}

.siko-registration__fact dd {
    margin: 0;
    color: #18212b;
    font-size: clamp(1rem, 2vw, 1.2rem);
    font-weight: 600;
    line-height: 1.35;
}

.siko-registration__waitlist {
    margin: 0 0 1.5rem;
    padding: 1rem 1.25rem;
    background: #fff4d6;
    border-left: 4px solid #d49c00;
}

.siko-registration__form {
    margin: 0;
}

.siko-registration__fieldset {
    min-width: 0;
    margin: 0;
    padding: 0;
    border: 0;
}

.siko-registration__legend {
    display: block;
    width: 100%;
    margin: 0 0 1.5rem;
    padding: 0 0 0.75rem;
    color: #18212b;
    font-size: clamp(1.45rem, 3vw, 2rem);
    font-weight: 500;
    line-height: 1.2;
    border-bottom: 1px solid #d5d9dc;
}

.siko-registration__grid {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 1.25rem 1.5rem;
}

.siko-registration__field {
    min-width: 0;
    margin: 0 0 1.25rem;
}

.siko-registration__grid .siko-registration__field {
    margin-bottom: 0;
}

.siko-registration__field--full,
.siko-registration__amount,
.siko-registration__additional-fields,
.siko-registration__notes,
.siko-registration__terms,
.siko-registration__captcha,
.siko-registration__privacy,
.siko-registration__submit {
    grid-column: 1 / -1;
}

.siko-registration__field label,
.siko-registration__field legend {
    display: block;
    margin: 0 0 0.45rem;
    color: #18212b;
    font-weight: 600;
    line-height: 1.35;
}

.siko-registration__field input[type="text"],
.siko-registration__field input[type="email"],
.siko-registration__field input[type="tel"],
.siko-registration__field input[type="date"],
.siko-registration__field input[type="number"],
.siko-registration__field select,
.siko-registration__field textarea {
    width: 100%;
    min-height: 3rem;
    padding: 0.7rem 0.85rem;
    color: #18212b;
    font: inherit;
    line-height: 1.35;
    background: #fff;
    border: 1px solid #9ba4aa;
    border-radius: 0;
}

.siko-registration__field textarea {
    min-height: 9rem;
    resize: vertical;
}

.siko-registration__field input:focus,
.siko-registration__field select:focus,
.siko-registration__field textarea:focus {
    outline: 3px solid rgb(105 168 47 / 25%);
    outline-offset: 1px;
    border-color: #568b29;
}

.siko-registration__amount {
    margin-top: 2rem;
    padding: 1.25rem;
    background: #f3f5f6;
}

.siko-registration__amount select {
    max-width: 12rem;
}

.siko-registration__additional-fields {
    display: grid;
    gap: 1.25rem;
    margin: 2rem 0;
}

.siko-registration__persons-heading {
    margin: 0;
    font-size: clamp(1.3rem, 2.5vw, 1.75rem);
    font-weight: 500;
}

.siko-registration__persons-help {
    margin: -0.65rem 0 0;
    color: #5a646d;
}

.siko-person-card {
    min-width: 0;
    margin: 0;
    padding: clamp(1.2rem, 3vw, 2rem);
    background: #fafbfa;
    border: 1px solid #d2d8d0;
}

.siko-person-card[hidden] {
    display: none;
}

.siko-person-card__title {
    padding: 0 0.5rem;
    color: #18212b;
    font-size: 1.25rem;
    font-weight: 700;
}

.siko-person-card .siko-registration__additional-field {
    margin: 0 0 1.5rem;
}

.siko-person-card .siko-registration__additional-field:last-child {
    margin-bottom: 0;
}

.siko-person-card label {
    display: flex;
    align-items: flex-start;
    gap: 0.65rem;
    margin: 0.55rem 0;
    font-weight: 400;
    cursor: pointer;
}

.siko-person-card input[type="radio"],
.siko-person-card input[type="checkbox"] {
    flex: 0 0 auto;
    width: 1.15rem;
    height: 1.15rem;
    margin: 0.15rem 0 0;
    accent-color: #568b29;
}

.siko-registration__terms > label {
    display: flex;
    align-items: flex-start;
    gap: 0.65rem;
    font-weight: 400;
}

.siko-registration__privacy {
    margin: 1.5rem 0 0;
    max-width: 48rem;
    color: #4f565a;
    font-size: 0.95rem;
    line-height: 1.55;
}

.siko-registration__privacy a {
    color: #4f8f22;
    text-decoration: underline;
    text-underline-offset: 0.15em;
}

.siko-registration__privacy a:hover,
.siko-registration__privacy a:focus-visible {
    color: #386b16;
}

.siko-registration__submit {
    margin-top: 2rem;
}

.siko-registration__submit-button {
    min-height: 3rem;
    padding: 0.75rem 1.4rem;
    color: #fff;
    font: inherit;
    font-weight: 700;
    background: #568b29;
    border: 1px solid #568b29;
    cursor: pointer;
}

.siko-registration__submit-button:hover,
.siko-registration__submit-button:focus-visible {
    background: #416c20;
    border-color: #416c20;
}

.siko-registration__unavailable {
    padding: 1rem 1.25rem;
    background: #f3f5f6;
    border-left: 4px solid #69747c;
}

@media (max-width: 760px) {
    .siko-registration {
        padding-block: 1.5rem 3rem;
    }

    .siko-registration__header {
        margin-inline: 0;
        padding: 1.35rem;
    }

    .siko-registration__event-data {
        grid-template-columns: repeat(2, minmax(0, 1fr));
    }

    .siko-registration__fact,
    .siko-registration__fact:not(:last-child) {
        margin: 0;
        padding: 0.9rem 0;
        border-right: 0;
        border-bottom: 1px solid #d8ded4;
    }

    .siko-registration__fact:nth-child(odd) {
        padding-right: 0.75rem;
    }

    .siko-registration__fact:nth-child(even) {
        padding-left: 0.75rem;
    }

    .siko-registration__grid {
        grid-template-columns: 1fr;
        gap: 1rem;
    }
}

@media (max-width: 420px) {
    .siko-registration__event-data {
        grid-template-columns: 1fr;
    }

    .siko-registration__fact:nth-child(n) {
        padding-inline: 0;
    }
}

/* ==========================================================
   Veranstaltungsanmeldung
   ========================================================== */

.tx-sf-event-mgt:has(form.registration) {
    width: min(100% - 32px, 1180px);
    margin-inline: auto;
}

.tx-sf-event-mgt form.registration {
    margin-top: 40px;
}

.tx-sf-event-mgt form.registration > fieldset {
    margin: 0 0 32px;
    padding: 28px;
    border: 1px solid #d1d1d1;
    border-radius: 2px;
}

.tx-sf-event-mgt form.registration > fieldset > legend {
    padding: 0 10px;
    font-size: 1.15rem;
    font-weight: 600;
}

.tx-sf-event-mgt form.registration input[type="text"],
.tx-sf-event-mgt form.registration input[type="email"],
.tx-sf-event-mgt form.registration input[type="tel"],
.tx-sf-event-mgt form.registration input[type="date"],
.tx-sf-event-mgt form.registration select,
.tx-sf-event-mgt form.registration textarea {
    width: 100%;
    min-height: 48px;
    padding: 10px 12px;
    border: 1px solid #aaa;
    border-radius: 2px;
    background: #fff;
    color: #171717;
    font: inherit;
}

.tx-sf-event-mgt form.registration textarea {
    min-height: 130px;
    resize: vertical;
}

.tx-sf-event-mgt form.registration input:focus,
.tx-sf-event-mgt form.registration select:focus,
.tx-sf-event-mgt form.registration textarea:focus {
    border-color: #2f7fd3;
    outline: 2px solid rgb(47 127 211 / 18%);
    outline-offset: 1px;
}

.tx-sf-event-mgt .event-registration-row {
    margin-bottom: 20px;
}

.tx-sf-event-mgt .event-registration-row label,
.tx-sf-event-mgt .event-registration-label {
    display: block;
    margin-bottom: 7px;
    font-weight: 600;
}

/* Personenabhängige Felder */

.tx-sf-event-mgt .siko-person-card {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 28px;
    margin: 28px 0;
    padding: 24px;
    border: 1px solid #ccc;
    border-radius: 3px;
    background: #fafafa;
}

.tx-sf-event-mgt .siko-person-card[hidden] {
    display: none !important;
}

.tx-sf-event-mgt .siko-person-card__title {
    grid-column: 1 / -1;
    padding: 0 10px;
    font-size: 1.3rem;
    font-weight: 700;
}

.tx-sf-event-mgt .siko-person-field {
    min-width: 0;
    margin: 0;
}

.tx-sf-event-mgt .siko-person-field br {
    display: none;
}

.tx-sf-event-mgt .siko-person-field input[type="radio"] {
    width: 20px;
    height: 20px;
    margin: 0 9px 0 0;
    vertical-align: middle;
    accent-color: #2f7fd3;
}

.tx-sf-event-mgt .siko-person-field label {
    display: flex;
    align-items: center;
    min-height: 38px;
    margin: 0;
    font-weight: 400;
    cursor: pointer;
}

.tx-sf-event-mgt .siko-person-field
    .event-registration-label {
    margin-bottom: 12px;
    font-size: 1.05rem;
    font-weight: 700;
}

/* Absenden */

.tx-sf-event-mgt form.registration input[type="submit"],
.tx-sf-event-mgt form.registration button[type="submit"] {
    min-height: 48px;
    padding: 11px 22px;
    border: 1px solid #568b29;
    background: #568b29;
    color: #fff;
    font: inherit;
    font-weight: 600;
    cursor: pointer;
    transition:
        background-color 0.18s ease,
        border-color 0.18s ease;
}

.tx-sf-event-mgt form.registration input[type="submit"]:hover,
.tx-sf-event-mgt form.registration input[type="submit"]:focus-visible,
.tx-sf-event-mgt form.registration button[type="submit"]:hover,
.tx-sf-event-mgt form.registration button[type="submit"]:focus-visible {
    border-color: #416c20;
    background: #416c20;
}

.tx-sf-event-mgt form.registration input[type="submit"]:focus-visible,
.tx-sf-event-mgt form.registration button[type="submit"]:focus-visible {
    outline: 3px solid rgb(86 139 41 / 30%);
    outline-offset: 2px;
}

/* Tablet und Smartphone */

@media (max-width: 767px) {
    .tx-sf-event-mgt:has(form.registration) {
        width: min(100% - 24px, 1180px);
    }

    .tx-sf-event-mgt form.registration {
        margin-top: 28px;
    }

    .tx-sf-event-mgt form.registration > fieldset,
    .tx-sf-event-mgt .siko-person-card {
        padding: 18px;
    }

    .tx-sf-event-mgt .siko-person-card {
        grid-template-columns: 1fr;
        gap: 22px;
    }
}
/* ================================================================
   SiKo – responsive Kalenderdarstellung
   Diesen Block ANSTELLE aller bisherigen Calendar-Mobile-Regeln am
   Ende von Resources/Public/Css/Event.css einsetzen.
   ================================================================ */

.event-calendar,
.event-calendar * {
    box-sizing: border-box;
}

.event-calendar__mobile {
    display: none;
}

.event-calendar__browser-current h2 {
    margin: 0;
    font: inherit;
}

@media (max-width: 760px) {
    .event-calendar__title,
    .tx-sf-event-mgt > .event-calendar__title {
        width: auto !important;
        max-width: calc(100vw - 3rem) !important;
        margin: 0 0 1.5rem !important;
        font-size: clamp(1.7rem, 7vw, 2.2rem) !important;
        line-height: 1.08 !important;
        white-space: normal !important;
        overflow-wrap: anywhere !important;
        word-break: normal;
        hyphens: auto;
    }

    .event-calendar {
        width: 100%;
        max-width: 100%;
        overflow: visible;
    }

    .event-calendar__browser {
        display: grid;
        grid-template-columns: minmax(0, 1fr) minmax(0, 1fr);
        grid-template-areas:
            "current current"
            "previous next";
        gap: 0.85rem;
        width: 100%;
        margin: 0 0 1.5rem;
        padding: 1rem 0;
        list-style: none;
        border-top: 1px solid #d5d9dc;
        border-bottom: 1px solid #d5d9dc;
    }

    .event-calendar__browser > li {
        min-width: 0;
        margin: 0;
        padding: 0;
        list-style: none;
    }

    .event-calendar__browser-current {
        grid-area: current;
        text-align: center;
    }

    .event-calendar__browser-current h2,
    .event-calendar__browser-current h3 {
        margin: 0;
        font-size: clamp(1.5rem, 6.5vw, 2rem);
        font-weight: 500;
        line-height: 1.15;
    }

    .event-calendar__browser-prev {
        grid-area: previous;
        justify-self: start;
        text-align: left;
    }

    .event-calendar__browser-next {
        grid-area: next;
        justify-self: end;
        text-align: right;
    }

    .event-calendar__browser a {
        display: inline-flex;
        align-items: center;
        min-height: 2.5rem;
        font-size: 0.95rem;
        line-height: 1.25;
        white-space: nowrap;
    }

    .event-calendar__desktop {
        display: none !important;
    }

    .event-calendar__mobile {
        display: block;
    }

    /* Hinweis, wenn im gewählten Monat keine Veranstaltung vorhanden ist */
    .event-calendar-mobile__empty {
        margin: 0;
        padding: 1.1rem 1.25rem;
        border-left: 4px solid #69a82f;
        background: #f5f7f2;
        color: #34404a;
        font-size: 1rem;
        line-height: 1.5;
    }

    /* Sobald mindestens ein Termin vorhanden ist, wird der Hinweis ausgeblendet */
    .event-calendar__mobile:has(.event-calendar-mobile__day) .event-calendar-mobile__empty {
        display: none;
    }

    .event-calendar-mobile__day {
        display: grid;
        grid-template-columns: 6.5rem minmax(0, 1fr);
        gap: 1rem;
        padding: 1.1rem 0;
        border-bottom: 1px solid #d5d9dc;
    }

    .event-calendar-mobile__date {
        min-width: 0;
    }

    .event-calendar-mobile__date time {
        display: flex;
        flex-direction: column;
        line-height: 1.25;
    }

    .event-calendar-mobile__weekday {
        color: #568b29;
        font-size: 0.78rem;
        font-weight: 700;
        letter-spacing: 0.05em;
        text-transform: uppercase;
    }

    .event-calendar-mobile__date-value {
        margin-top: 0.2rem;
        color: #18212b;
        font-size: 0.95rem;
        font-weight: 700;
    }

    .event-calendar-mobile__event {
        margin: 0 0 1rem;
        padding: 0 0 1rem;
        border-bottom: 1px solid #e4e7e9;
    }

    .event-calendar-mobile__event:last-child {
        margin-bottom: 0;
        padding-bottom: 0;
        border-bottom: 0;
    }

    .event-calendar-mobile__event-title {
        margin: 0;
        font-size: 1.05rem;
        font-weight: 700;
        line-height: 1.3;
        overflow-wrap: anywhere;
    }

    .event-calendar-mobile__event-title a {
        color: #18212b;
        text-decoration-thickness: 1px;
        text-underline-offset: 0.18em;
    }

	.event-calendar__registration-status {
		margin-top: 0.3rem;
		color: #fff;
		font-size: 0.68rem;
		line-height: 1.3;
	}

	.event-calendar__registration-status strong {
		font-weight: 700;
		display: block;
	}
	
    .event-calendar-mobile__meta {
        display: flex;
        flex-wrap: wrap;
        gap: 0.25rem 0.8rem;
        margin-top: 0.4rem;
        color: #5b6670;
        font-size: 0.9rem;
        line-height: 1.4;
    }

    .event-calendar-mobile__location::before {
        content: "Ort: ";
        font-weight: 600;
    }
}

@media (max-width: 420px) {
    .event-calendar__title,
    .tx-sf-event-mgt > .event-calendar__title {
        max-width: calc(100vw - 2rem) !important;
        font-size: clamp(1.55rem, 7.5vw, 1.9rem) !important;
    }

    .event-calendar__browser a {
        font-size: 0.88rem;
    }

    .event-calendar-mobile__day {
        grid-template-columns: 5.4rem minmax(0, 1fr);
        gap: 0.75rem;
    }
}
/* Kalender-Raster: KW + Montag bis Sonntag = 8 Spalten */
@media (min-width: 761px) {
    .event-calendar__desktop .event-calendar__weekdays,
    .event-calendar__desktop .event-calendar__days {
        display: grid !important;
        grid-template-columns: repeat(7, minmax(0, 1fr)) !important;
        width: 100% !important;
    }

    .event-calendar__desktop
        .event-calendar__weekdays:has(.event-calendar__weeknumber),
    .event-calendar__desktop
        .event-calendar__days:has(.event-calendar__weeknumber) {
        grid-template-columns:
            4.5rem
            repeat(7, minmax(0, 1fr)) !important;
    }

    .event-calendar__desktop .event-calendar__weekdays > li,
    .event-calendar__desktop .event-calendar__days > li {
        width: auto !important;
        min-width: 0 !important;
        margin: 0 !important;
    }

    .event-calendar__desktop .event-calendar__day-event,
    .event-calendar__desktop .event-calendar__day-event > a {
        max-width: 100%;
        overflow-wrap: anywhere;
        word-break: normal;
    }
}

/* Etwas kompakter für Tablets */
@media (min-width: 761px) and (max-width: 1024px) {
    .event-calendar__desktop
        .event-calendar__weekdays:has(.event-calendar__weeknumber),
    .event-calendar__desktop
        .event-calendar__days:has(.event-calendar__weeknumber) {
        grid-template-columns:
            3.75rem
            repeat(7, minmax(0, 1fr)) !important;
    }

    .event-calendar__desktop .event-calendar__day {
        padding: 0.5rem !important;
    }

    .event-calendar__desktop .event-calendar__day-event {
        padding: 0.45rem !important;
        font-size: 0.82rem;
        line-height: 1.25;
    }
}

/* News-Archiv */
.siko-news-archive {
    margin-block: 2rem;
}

.siko-news-archive ul {
    list-style: none;
    padding: 0;
    margin: 0;
}

.siko-news-archive > ul > li {
    display: grid;
    grid-template-columns: 7rem minmax(0, 1fr);
    gap: 1rem 2rem;
    padding-block: 1.5rem;
    border-top: 1px solid #d5d5d5;
    font-size: 1.4rem;
    font-weight: 600;
}

.siko-news-archive > ul > li:last-child {
    border-bottom: 1px solid #d5d5d5;
}

.siko-news-archive li > ul {
    display: flex;
    flex-wrap: wrap;
    gap: 0.75rem 1.5rem;
    font-size: 1rem;
    font-weight: 400;
}

.siko-news-archive li > ul > li {
    margin: 0;
}

.siko-news-archive a {
    display: inline-block;
    padding-block: 0.25rem;
    color: #558b2f;
    text-decoration: none;
    text-underline-offset: 0.25em;
}

.siko-news-archive a:hover {
    text-decoration: underline;
}

.siko-news-archive a:focus-visible {
    outline: 2px solid currentColor;
    outline-offset: 4px;
}

@media (max-width: 600px) {
    .siko-news-archive > ul > li {
        grid-template-columns: 1fr;
        gap: 0.5rem;
        padding-block: 1.25rem;
    }
}

/* ==========================================================
   Abstand zwischen Veranstaltungsblock und Anmeldeformular
   ========================================================== */

.siko-registration > .siko-registration__header {
    margin-bottom: 0 !important;
    padding-bottom: 1.25rem;
}

.tx-sf-event-mgt
    .siko-registration
    > form.registration.siko-registration__form {
    margin-top: 3rem !important;
}

@media (max-width: 760px) {
    .siko-registration > .siko-registration__header {
        padding-bottom: 1rem;
    }

    .tx-sf-event-mgt
        .siko-registration
        > form.registration.siko-registration__form {
        margin-top: 2.5rem !important;
    }
}

@media (max-width: 760px) {
    .siko-registration > .siko-registration__header {
        padding-bottom: 1rem;
    }

    .tx-sf-event-mgt
        .siko-registration
        > form.registration.siko-registration__form {
        margin-top: 0.75rem !important;
    }
}
/* ==========================================================
   Formularüberschrift ohne versetzte Linie
   ========================================================== */

.siko-registration__legend {
    display: table;
    width: auto;
    border-bottom: 0;
}

/* ==========================================================
   Titel des nachgeladenen Veranstaltungsarchivs
   ========================================================== */

.siko-event-archive {
    width: 100%;
}

.siko-event-archive > .siko-event-archive__title {
    display: block;
    width: 100%;
    margin: 2.5rem 0 2rem;
    padding: 0;
    color: #20262b;
    font-size: clamp(2.5rem, 5vw, 4rem);
    font-weight: 400;
    line-height: 1.15;
    text-align: center !important;
}
/* Nur der H2-Archiv-Titel */
.siko-event-archive > h2.siko-event-archive__title {
    display: block;
    width: 100%;
    margin: 2.5rem 0 2rem;
    padding: 0;
    color: #20262b;
    font-size: clamp(1.8rem, 3vw, 2.5rem);
    font-weight: 400;
    line-height: 1.2;
    text-align: center;
}

@media (max-width: 760px) {
    .siko-event-archive > .siko-event-archive__title {
        margin: 2rem 0 1.5rem;
        font-size: clamp(2.2rem, 9vw, 3rem);
    }
	    .siko-event-archive > h2.siko-event-archive__title {
        margin: 2rem 0 1.5rem;
        font-size: clamp(1.6rem, 6vw, 2rem);
    }
}

/* ==========================================================
   Event-Detail: Text um Bild und Seitenleiste fliessen lassen
   ========================================================== */

.siko-event-detail__layout {
    display: block;
}

.siko-event-detail__layout::after {
    content: "";
    display: block;
    clear: both;
}

.siko-event-detail__sidebar {
    float: right;
    width: min(34%, 400px);
    min-width: 280px;
    max-width: none;
    margin: 0 0 2rem clamp(2rem, 5vw, 4.5rem);
}

.siko-event-detail__content {
    min-width: 0;
}

/* iPad und kleinere Tablets */
@media (min-width: 701px) and (max-width: 900px) {
    .siko-event-detail__sidebar {
        width: min(42%, 22rem);
        min-width: 17rem;
        max-width: none;
        margin: 0 0 1.5rem clamp(1.5rem, 4vw, 2.5rem);
    }
}

/* Smartphone: wieder untereinander */
@media (max-width: 700px) {
    .siko-event-detail__sidebar {
        float: none;
        width: 100%;
        min-width: 0;
        max-width: none;
        margin: 0 0 2rem;
    }
}
/* ==========================================================
   Event-Detail: Listen vollständig ausrichten
   ========================================================== */

.siko-event-detail__description ul,
.siko-event-detail__program ul,
.siko-event-detail__description ol,
.siko-event-detail__program ol {
    padding-inline-start: 0;
}

/* Nummerierung zusammen mit dem Text ausrichten */
.siko-event-detail__description ol,
.siko-event-detail__program ol {
    list-style-position: inside;
}

/* Bindestrich bleibt Bestandteil des ausgerichteten Textes */
.siko-event-detail__description ul > li::before,
.siko-event-detail__program ul > li::before {
    position: static;
    display: inline;
    content: "- ";
    color: inherit;
}

/* ==========================================================
   Event-Detail: Listenzeichen mit RTE-Text ausrichten
   TYPO3 erzeugt: <li><p class="text-center">...</p></li>
   ========================================================== */

/* Alten Bindestrich am Listenelement entfernen,
   wenn TYPO3 darin einen Absatz erzeugt */
.siko-event-detail__description ul > li:has(> p)::before,
.siko-event-detail__program ul > li:has(> p)::before {
    content: none;
}

/* Bindestrich direkt in den ausgerichteten Absatz verschieben */
.siko-event-detail__description ul > li > p:first-child::before,
.siko-event-detail__program ul > li > p:first-child::before {
    content: "- ";
    color: inherit;
}

/* Zu grosse Abstände zwischen den Listeneinträgen entfernen */
.siko-event-detail__description ul > li > p,
.siko-event-detail__program ul > li > p {
    margin-top: 0;
    margin-bottom: 0;
}

/* ==========================================================
   Abgesagte Veranstaltungen
   ========================================================== */

.siko-event__cancelled {
    display: inline-block;
    margin: 0 0.55rem 0.25rem 0;
    padding: 0.3rem 0.55rem;
    color: #fff;
    background: #b42318;
    font-size: 0.72rem;
    font-weight: 700;
    letter-spacing: 0.06em;
    line-height: 1;
    text-transform: uppercase;
    vertical-align: middle;
}

.siko-event-detail__cancelled {
    display: flex;
    width: fit-content;
    flex-wrap: wrap;
    gap: 0.3rem;
    margin: 0 0 1.15rem;
    padding: 0.65rem 0.85rem;
    color: #fff;
    background: #b42318;
    font-size: 1rem;
    line-height: 1.35;
}

.siko-event-detail__cancelled strong {
    color: inherit;
}
/* Abstand zwischen Trennlinie und aktueller Veranstaltungsliste */
.page-content > .frame + .frame.frame-type-sfeventmgt_pieventlist {
    padding-top: 0;
}

/* Tablet: Veranstaltungslisten mit seitlichem Abstand */
@media (min-width: 768px) and (max-width: 1199.98px) {

    /* Aktuelle Liste */
    .frame-type-sfeventmgt_pieventlist
        .siko-events {
        width: calc(100% - 3rem);
        margin-inline: auto;
    }

    /* Archivbereich nur einmal verkleinern */
    .siko-event-archive {
        width: calc(100% - 3rem);
        margin-inline: auto;
    }

    /* Linie und Innenabstand des aktuellen TYPO3-Frames entfernen */
    .page-content
        > .frame
        + .frame.frame-type-sfeventmgt_pieventlist {
        padding-top: 0;
        border-top: 0;
    }

    /* Linie exakt in Breite der aktuellen Liste */
    .frame-type-sfeventmgt_pieventlist
        .siko-events {
        border-top: 1px solid #ccc;
    }

    /* Zu breite Linie oberhalb des Archivbereichs entfernen */
    .page-content
        > .frame
        + .frame:has(.siko-event-archive) {
        padding-top: 0;
        border-top: 0;
    }

    /* Linie zwischen Archivüberschrift und Archivliste */
    .siko-event-archive__content {
        border-top: 1px solid #ccc;
    }
}

/* Mobile: Archivüberschrift und Trennlinie wie in der alten Ansicht */
@media (max-width: 767.98px) {
    .siko-event-archive
        > h2.siko-event-archive__title {
        display: block;
        width: 100%;
        max-width: 14ch;
        margin: 1.75rem auto 1.25rem;
        font-size: 1.9rem;
        line-height: 1.15;
        text-align: center;
        text-wrap: balance;
    }

    .siko-event-archive__content {
        border-top: 1px solid #ccc;
    }
}
/* ==========================================================
   Kalender Desktop/iPad: grüne Termine und kompakter Status
   ========================================================== */

@media (min-width: 761px) {
    .event-calendar__desktop
        .event-calendar__day-event {
        background: #568b29;
    }

    .event-calendar__desktop
        .event-calendar__registration-status {
        margin-top: 0.35rem;
        color: #fff;
        font-size: 0.68rem;
        font-weight: 400;
        line-height: 1.3;
        overflow-wrap: normal;
        word-break: normal;
        hyphens: none;
    }

    .event-calendar__desktop
        .event-calendar__registration-status strong {
        font-size: inherit;
        font-weight: 600;
    }
}