html {
    font-size: 62.5%;
}

body,
body p {
    font-size: 2.4rem;
    font-family: HurmeGeometricSans1;
    color: #21292F;
}




a {
    text-decoration: none;
    color: #21292F;
}

a:hover {
    color: #21292F;
}

.spielzeitinfo {
    font-size: 1.2rem;
    margin-right: 2rem;
    position: absolute;
    bottom: 1rem;
    right: 0rem;
}

.headerslider_overlay_small {
    display: none;
}


.person .aktuellespielzeit a {
    transition: 0.2s;
}

.person .aktuellespielzeit a:hover {
    opacity: 0.7;
}

svg.ls {
    margin-left: 1.8rem;
    width: 4.5rem;
    height: 4.5rem;
    margin-top: -0.2rem;
    transition: filter 0.2s ease-in-out;
}

#quicklinks_desktop a:hover svg.ls,
#quicklinks_desktop a:focus-visible svg.ls {
    filter: invert(1);
}

#footer_mobile {
    display: none;
}

#header {
    background-color: #fff;
    padding: 5rem 0 0 0;
    height: 14.5rem;
    position: fixed;
    width: 100%;
    z-index: 20000;
}

#footer {
    background-color: #fff;
    padding: 8rem 5rem;
}

#footer h3 {
    font-family: HurmeGeometricSans1;
    font-size: 1.75rem;
    margin-bottom: 3rem;
}

#footer h2 {
    font-family: HurmeGeometricSans1;
    font-size: 1.8rem;
    font-weight: 600;
}

#sponsoren {
    background-color: #21292F;
    color: #fff;
    font-size: 1rem;
    padding: 5rem;
}

#header_desktop {
    display: flex;
    justify-content: space-between;
    align-items: flex-start;
    padding: 0;
    position: relative;
}

#footer_desktop {
    max-width: 160rem;
    margin-left: auto;
    margin-right: auto;
    position: relative;
}

#logo_desktop {
    flex: 0 0 auto;
    z-index: 50000;
}

#menue_desktop {
    flex: 0 0 auto;
    margin: 0 auto;
    text-align: center;
    color: #21292F;
}

#menue_desktop a {
    color: #21292F;
    text-decoration: none;
}

#quicklinks_desktop {
    flex: 0 0 auto;
}

.btn_spielplan {
    position: relative;
    float: left;
    width: 12rem;
    height: 4rem;
    background-image: url(../Images/spielplan.svg);
    background-size: cover;
    background-repeat: no-repeat;
    transition: opacity 0.3s ease-in-out;
    overflow: hidden;
}

.btn_spielplan::after {
    content: "";
    position: absolute;
    inset: 0;
    background-image: url(../Images/spielplan_hover.svg);
    background-size: cover;
    background-repeat: no-repeat;
    opacity: 0;
    transition: opacity 0.3s ease-in-out;
}

.btn_spielplan:hover::after {
    opacity: 1;
}

.inszenierungs-infos-mobile {
    display: none;
}


.buehne_oben {
    margin-right: 2rem;
    margin-top: 0.9rem;
    font-weight: 800;
    position: absolute;
    left: 0;
}

.btn_preise {
    position: relative;
    float: left;
    width: 9.184rem;
    height: 4.913rem;
    background-image: url(../Images/preise.svg);
    background-size: cover;
    background-repeat: no-repeat;
    transition: opacity 0.3s ease-in-out;
    overflow: hidden;
    margin-top: -0.913rem;
    margin-left: 3.2rem;
}

.inszenierung .dauer {
    font-size: 3rem;
    margin-right: 1rem;
}

.dauer {
    font-family: "Novela";
    font-style: italic;
}

.btn_preise::after {
    content: "";
    position: absolute;
    inset: 0;
    background-image: url(../Images/preise_hover.svg);
    background-size: cover;
    background-repeat: no-repeat;
    opacity: 0;
    transition: opacity 0.3s ease-in-out;
}

.btn_preise:hover::after {
    opacity: 1;
}

.nav-level-1 {
    float: left;
    display: inline-block;
    padding: 0 3rem;
    font-family: HurmeGeometricSans1;
    font-weight: 600;
    font-size: 2.4rem;
    height: 9rem;
    margin-top: 0.3rem;
    transition: all 0.2s;
}

.nav-level-1 a {
    border-bottom: 2px solid #fff;
    padding-bottom: 0.5rem;
    transition: all 0.2s;
}



.nav-level-1:hover a {
    border-color: #21292F;
}

.nav-level-1.active a {
    border-color: #21292F !important;
}

.nav-level-2-holder {
    display: none;
    align-items: stretch;
}


.nav-level-1:hover .nav-level-2-holder {
    position: absolute;
    top: 4.5rem;
    left: 0;
    display: flex;
    background-color: #fff;
    width: 100%;
    padding-top: 4.1rem;
    padding-bottom: 4.6rem;
    z-index: 10000;
}

.content-overlay {
    position: fixed;
    top: 14.5rem;
    left: 0;
    width: 100vW;
    height: 100vH;
    background-color: rgba(0, 0, 0, 0.5);
    z-index: 1000;
    display: none;
    pointer-events: none;
}

.nav-level-1:hover .content-overlay {
    display: block;
}


.nav-level-2-col-1,
.nav-level-2-col-2,
.nav-level-2-col-3 {
    display: flex;
    flex-direction: column;
}


.nav-level-2-col-1 {
    width: 20%;
    border-right: 1px solid #21292F;
}

.nav-level-2-col-2 {
    width: 40%;
    border-right: 1px solid #21292F;
}

.nav-level-2-col-3 {
    width: 40%;
}

.nav-level-2 {
    text-align: left;
    padding-left: 3rem;
}

.nav-level-2 a {
    text-align: left;
    width: 100;
    transition: color 0.2s ease-in-out;
    border: none;
}

.nav-level-2 a:hover {
    color: #707070 !important;
}

.nav-level-2.active a {
    color: #707070 !important;
}

.sponsoren_holder img {
    max-height: 8.5rem;
}

.main_content_holder {
    padding: 14.5rem 0 0 0;
}

.main_content {
    min-height: 20vH;
}


#sponsoren {
    display: flex;
    align-items: center;
    justify-content: space-between;
    width: 100%;
    gap: 1rem;
}

.sponsoren_label,
.sponsoren_end {
    flex: 0 0 15rem;
    text-align: center;
}

.sponsoren_holder {
    flex: 1;
    display: flex;
    justify-content: space-evenly;
    align-items: center;
    flex-wrap: wrap;
    gap: 1rem;
}

.sponsoren_holder img {
    display: block;
}

.sponsoren_holder a {
    transition: all 0.2s;
}

.sponsoren_holder a:hover {
    transform: scale(1.1);
}

.footerItem,
.footerItem a {
    color: #21292F !important;
    font-size: 1.6rem;
    transition: all 0.2s;
}

.footerItem a:hover {
    color: #707070 !important;
}

.socialmediaicon {
    margin-left: 4.5rem;
    transition: all 0.2s;
}


.socialmediaicon:hover {
    transform: scale(1.1);
}

.inszenierung {
    position: relative;
}

.inszenierung h1 {
    font-size: 5rem;
    font-weight: 600;
    margin-top: 3.5rem;
}


.inszenierung h1 i {
    font-family: Novela;
    font-weight: 400;
}

.inszenierung h2 {
    font-family: HurmeGeometricSans1;
    font-size: 2.4rem;
    font-weight: 600;
    margin-top: 2.4rem;
}

.inszenierung p {
    font-family: HurmeGeometricSans1;
    font-size: 2.4rem;
    font-weight: 400;
}

.inszenierung .buehne {
    font-size: 1.8rem;
    font-weight: 600;
    margin-top: 4rem;
}

.videoholder {
    max-width: 163rem !important;
}

.videoholder .col-md-5 {
    padding: 0 !important;
}


.inszenierung .beschreibung {
    margin-top: 3rem;
    font-size: 2.4rem;
    text-align: justify;
}

.inszenierung .mitwirkende {
    margin-top: 3.5rem;
    font-size: 1.8rem;
}

.inszenierung .altersempfehlung {
    position: relative;
    width: 100%;
}

.page-37 .inszenierung .altersempfehlung_inner {
    position: absolute;
    top: 1rem;
    right: 0;
    font-family: 'IconPuppeMagdeburg';
    font-size: 4rem;
}

.inszenierung .altersempfehlung_inner {
    position: absolute;
    top: 2rem;
    right: 0;
    font-family: 'IconPuppeMagdeburg';
    font-size: 4rem;
}

.homeslider .inszenierung .altersempfehlung {
    position: absolute;
    width: 100%;
    top: 2rem;
    right: 3rem;
    filter: invert();
}

.img-full-width {
    position: relative;
}

.img-full-width .altersempfehlung {
    position: absolute;
    width: 5rem;
    top: 2rem;
    right: 2rem;
}

.img-full-width .altersempfehlung.small {
    top: 1rem;
}

.img-full-width .altersempfehlung.small img {
    width: 2.5rem;
    height.2.5rem;
}

.img-full-width .altersempfehlung.small div {
    text-align: right;
}

.img-full-width .altersempfehlung.white {
    filter: invert();
}

.inszenierung .slider-image {
    display: none;
}

.inszenierung .slider-image-1 {
    display: block;
}

.inszenierung .slider {
    padding-right: 2rem;
    padding-left: 0;
    position: relative;
}

.inszenierung .slider .slider_inner {
    position: relative;
}

.inszenierung .slider_overlay {
    position: absolute;
    bottom: 3rem;
    left: 4.5rem;
    width: 30rem;
    height: 32rem;
    background-color: rgba(255, 255, 255, 0.7);
    z-index: 5;
    padding: 1.5rem;
}

sup {
    top: -0.2em;
}

.spontan_slider .termin.text-center {
    font-size: 3rem;
    line-height: 1.1;
}

.spontan_slider .slider_play_title {
    line-height: 1.1;
}

.spontan_slider .slider_action {
    position: relative;
}

.homeslider .slider_overlay {
    width: 38rem;
    height: 18rem;
}

.home_title p {
    line-height: 1.028;
}

.homeslider .slider_overlay .slider_overlay_vorstellung {
    position: absolute;
    left: 1.75rem;
    top: 5rem;
}

.homeslider .slider_overlay_heading {
    position: absolute;
    top: 1rem;
    left: 1.75rem;
    font-weight: 600;
}

.homeslider .slider_overlay_heading .iconfont {
    font-size: 3rem;
}

.inszenierung .slider_overlay_2 {
    position: absolute;
    bottom: 3rem;
    left: 3rem;
    width: 30rem;
    height: 10rem;
    background-color: rgba(255, 255, 255, 0.7);
    z-index: 5;
    padding: 1.5rem;
}

.close_overlay {
    width: 3.5rem;
    height: 3.5rem;
    background-image: url(../Images/close.svg);
    background-size: contain;
}

.close_overlay_2 {
    width: 3.5rem;
    height: 3.5rem;
    background-image: url(../Images/plus.svg);
    background-size: contain;
    top: 1rem;
    position: absolute;
    right: 1rem;
}


.close_overlay,
.close_overlay_2 {
    top: 1rem;
    right: 1rem;
    z-index: 15;
    position: absolute;
    cursor: pointer;
    transition: all 0.2s;
}

.close_overlay:hover,
.close_overlay_2:hover {
    transform: scale(1.1);
}

.iconfont {
    font-family: 'IconPuppeMagdeburg';
}

.slider_overlay_heading {
    font-size: 2rem;
    margin-bottom: 3rem;
}

.slider_overlay_2 .slider_overlay_heading {
    font-size: 2rem;
    margin-bottom: 0.5rem;
}

.slider_overlay_vorstellung {
    font-size: 3.6rem;
    font-weight: 400;
    padding-right: 1rem;
}

.homeslider .slider_overlay_vorstellung {
    white-space: nowrap;
}

.slider_overlay_2 .slider_overlay_vorstellung {
    font-size: 3rem;
}

.slider_overlay_vorstellung b {
    font-weight: 600;
}

.slider_overlay .karten_verfuegbar {
    width: 11.4rem;
    height: 6rem;
    background-image: url(../Images/karten.svg);
    background-size: contain;
    cursor: pointer;
    position: absolute;
    bottom: 2rem;
    left: 2rem;
}

.slider_overlay .infos {
    cursor: pointer;
    position: absolute;
    bottom: 2rem;
    left: 2rem;
}


.homeslider .slider_overlay .karten_verfuegbar {
    left: 18.8rem;
}


.slider_overlay .ausverkauft {
    position: absolute;
    bottom: 2.5rem;
    left: 2rem;
}

.homeslider .slider_overlay .ausverkauft {
    left: 18.8rem;
}

/* Home cards use the same two-row action panel on desktop and mobile. */
.home-slider-cards.homeslider .slider_overlay {
    display: grid;
    grid-template-columns: minmax(0, 1fr) auto;
    grid-template-areas:
        "topper date"
        "info ticket";
    align-items: center;
    gap: 2.4rem 3rem;
    width: min(48rem, calc(100% - 6rem));
    height: auto;
    min-height: 18rem;
    padding: 2rem;
}

.home-slider-cards.homeslider .slider_overlay_heading {
    position: static;
    grid-area: topper;
    min-width: 0;
    margin: 0;
}

.home-slider-cards.homeslider .slider_overlay .slider_overlay_vorstellung {
    position: static;
    grid-area: date;
    min-width: 0;
    margin: 0;
    padding: 0;
    text-align: right;
}

.home-slider-cards .slider_overlay_vorstellung .termin b {
    display: flex;
    align-items: baseline;
    justify-content: flex-end;
    gap: 0.6rem;
}

.home-slider-cards .home-slider-info-link {
    grid-area: info;
    justify-self: start;
}

.home-slider-cards.homeslider .slider_overlay .infos,
.home-slider-cards.homeslider .slider_overlay .home-slider-ticket,
.home-slider-cards.homeslider .slider_overlay .ausverkauft {
    position: static;
}

.home-slider-cards.homeslider .slider_overlay .home-slider-ticket {
    position: relative;
    inset: auto;
    grid-area: ticket;
    justify-self: end;
    display: grid;
    grid-template-columns: 1.8rem 5ch minmax(0, max-content);
    align-items: center;
    justify-content: center;
    gap: 0.7rem;
    width: 17rem;
    height: 5.2rem;
    padding: 1.2rem 1.6rem;
    border-radius: 0.9rem;
    background: #1d1d1d;
    background-image: none;
    color: #fff;
    font-size: 1.6rem;
    font-variant-numeric: tabular-nums;
    line-height: 1.2;
    text-decoration: none;
    white-space: nowrap;
}

.home-slider-cards .home-slider-ticket,
.spontan_slider .spontan-ticket,
.spielplan-calendar .spielplan-time-ticket {
    -webkit-mask-image:
        radial-gradient(circle 9px at 0 50%, transparent 9px, #000 9.5px),
        radial-gradient(circle 9px at 100% 50%, transparent 9px, #000 9.5px);
    -webkit-mask-composite: source-in;
    -webkit-mask-repeat: no-repeat;
    -webkit-mask-size: 100% 100%;
    mask-image:
        radial-gradient(circle 9px at 0 50%, transparent 9px, #000 9.5px),
        radial-gradient(circle 9px at 100% 50%, transparent 9px, #000 9.5px);
    mask-composite: intersect;
    mask-repeat: no-repeat;
    mask-size: 100% 100%;
}

.home-slider-cards.homeslider .slider_overlay .home-slider-ticket:hover,
.home-slider-cards.homeslider .slider_overlay .home-slider-ticket:focus-visible {
    background: #454545;
    background-image: none;
    color: #fff;
}

.home-slider-cards .home-slider-ticket-label {
    font-size: 1.4rem;
}

.home-slider-cards.homeslider .slider_overlay .ausverkauft {
    grid-area: ticket;
    justify-self: end;
    display: flex;
    align-items: center;
    gap: 1rem;
    max-width: 20rem;
    text-align: left;
}

.home-slider-cards .home-slider-status-time {
    white-space: nowrap;
}

/* Production detail uses the Home-Slider date/ticket arrangement inside the image. */
.inszenierung .detail-ticket-panel {
    display: grid;
    grid-template-columns: minmax(0, 1fr) auto;
    grid-template-areas:
        "heading date"
        ". ticket";
    align-items: center;
    gap: 2.4rem 3rem;
    width: min(48rem, calc(100% - 6rem));
    height: auto;
    min-height: 18rem;
    padding: 2rem;
}

.inszenierung .detail-ticket-panel .slider_overlay_heading {
    position: static;
    grid-area: heading;
    margin: 0;
}

.inszenierung .detail-ticket-panel .detail-ticket-date {
    position: static;
    grid-area: date;
    margin: 0 4rem 0 0;
    padding: 0;
    text-align: right;
    white-space: nowrap;
}

.inszenierung .detail-ticket-panel .detail-ticket-date b {
    display: flex;
    align-items: baseline;
    justify-content: flex-end;
    gap: 0.6rem;
}

.inszenierung .detail-ticket-panel .detail-ticket-action {
    grid-area: ticket;
    justify-self: end;
    min-width: 0;
}

.inszenierung .detail-ticket-panel .detail-ticket-action .spielplan_zeit {
    height: auto;
}

.slider_overlay .karten_verfuegbar:hover {
    background-image: url(../Images/karten_hover.svg);
}

.inszenierung_infos {
    font-family: 'Novela';
    font-size: 6.4rem;
    font-style: italic;
    line-height: 0.9375;
    margin-bottom: 6rem;
}

.infotable {
    border-top: 1px solid #21292F;
    width: 100%;
}

td.info_table_label {
    font-weight: 600;
}

.infotable tr {
    border-bottom: 1px solid #21292F;
}

.infotext {
    background: linear-gradient(135deg,
            #f7f3ef 0%,
            #f1eef9 50%,
            #e7e3ff 100%);
    border-radius: 1.5rem;
    padding: 2rem;
}

.nav-level-2-background {
    position: absolute;
    background-color: #fff;
    left: -200%;
    width: 500%;
    height: 100%;
    z-index: -5;
}

.infotext h2 {
    font-size: 3rem;
    font-weight: 600;
    margin-top: 0;
    margin-bottom: 2.1rem;
}

.infotext p {
    font-size: 1.6rem;
}

.material {
    margin-top: 3rem;
    background-image: url(../Images/material.svg);
    width: 16.9rem;
    height: 4.8rem;
    background-size: contain;
    cursor: pointer;
}

.homeslider {
    position: relative;
    overflow: hidden;
}

.homeslider figure {
    position: absolute;
    inset: 0;
    margin: 0;
    opacity: 0;
    transition: opacity 800ms ease;
    /* fade duration */
    pointer-events: none;
    /* only the visible slide is clickable */
}

.homeslider figure.single {
    position: relative !important;
}

.homeslider figure.is-active {
    opacity: 1;
    pointer-events: auto;
}

.prev {
    width: 4rem;
    height: 4rem;
    background-image: url(../Images/prev.svg);
    background-size: contain;
    position: absolute;
    bottom: 3.5rem;
    right: 10.5rem;
    cursor: pointer;
    transition: all 0.2s;
    z-index: 1
}

.next {
    width: 4rem;
    height: 4rem;
    background-image: url(../Images/next.svg);
    background-size: contain;
    position: absolute;
    bottom: 3.5rem;
    right: 5rem;
    cursor: pointer;
    transition: all 0.2s;
    z-index: 2;
}

.prev:hover,
.next:hover {
    transform: scale(1.2);
}

h2 {
    font-family: Novela;
    font-weight: 400;
    font-style: italic;
    font-size: 6.2rem;
    margin-bottom: 4.5rem;
}

.inszenierung.limited h2 {
    font-style: normal;
}

#bestelldaten {
    width: 100%;
    font-size: 1.2rem;
}

#terms,
#datasave {
    margin-left: 1rem;
}

.teaser_slider {
    position: relative;
}

.teaser_slider a.pillbutton {
    position: absolute;
    left: 3rem;
    bottom: 2rem;
    line-height: 1.5;
}


.row {
    --bs-gutter-x: 3rem;
}

.teaser_slider_nav {
    position: relative;
}

.slider_element {
    float: left;
    margin-right: 3rem;
    display: inline-block;
    opacity: 0;
    position: relative;
}

.slider_holder {
    position: relative;
    overflow-x: hidden;
}

.slider_inner {
    position: relative;
    width: 20000px;
}

.slider_termin_trenner {
    position: absolute;
    top: 0;
    right: 10rem;
    width: 1px;
    height: 27rem;
    background-color: #21292f;
}

.abschlusstext {
    font-size: 2rem;
    margin-top: 5rem;
}

.slider_element_spacer {
    opacity: 0;
}

.homeslider .slider_overlay .karten_verfuegbar.l2 {
    left: 2rem;
}

.teaser_slider_nav h2 {
    margin-left: 13rem;
    padding-right: 14rem;
    line-height: 1.1;
}

.teaser_slider_nav h2 p {
    font-size: 6.2rem;
    margin-bottom: 4.5rem;
    font-style: normal;
}


.teaser_slider_nav h2 p i {
    font-family: 'Novela';
    font-size: 6.2rem;
    font-style: italic;
    font-weight: 400;
}

.spielplan_bild {
    text-align: center;
}

sup.enlarge {
    font-size: 1.5rem;
    top: -0.8rem;
}

.weitere_termine h2 {
    margin-left: 0;
    line-height: 0.97;
}

.weitere_termine.inszenierung_p {
    margin-top: 2rem;
}

.weitere_termine h2.weitere_termine_title {
    margin: 0 0 3rem 10px;
}

.weitere_termine_grid {
    display: grid;
    grid-template-columns: repeat(auto-fill, minmax(min(100%, 30rem), 1fr));
    align-items: stretch;
    gap: 3rem;
}

.weitere_termine_grid .weitere_item {
    position: relative;
    min-width: 0;
    height: auto;
    padding: 3rem;
    border: 1px solid #21292f;
}

.text_teaser_slider .slider_element {
    padding: 4rem 3rem;
    border-radius: 1.5rem;
}

.text_teaser_slider .heading {
    margin-bottom: 1rem;
    font-size: 3.6rem;
    font-weight: 600;
}

.text_teaser_slider .pillbutton {
    padding: 1rem 4rem;
    margin-top: 2rem;
}

.tt_text {
    font-size: 2.4rem;
    line-height: 1.2;
    margin-bottom: 3rem;
}

.tt_text_smallersize p {
    font-size: 1.8rem;
    line-height: 1.27rem;
}

.bc {
    margin-top: 7rem;
    position: relative;
}

.audioguide {
    width: 4rem;
    height: 4rem;
    background-image: url(../Images/IconAudioguide.svg);
    background-size: 100%;
}

.plus {
    width: 4rem;
    height: 4rem;
    background-image: url(../Images/IconPlus.svg);
    background-size: 100%;
}

.slider_element .audioguide {
    position: absolute;
    left: 3rem;
    bottom: 3rem;
    cursor: pointer;
    transition: all 0.2s;
}

.slider_element .audioguide:hover {
    transform: scale(1.2);
}


.slider_element .plus {
    position: absolute;
    right: 3rem;
    bottom: 3rem;
    cursor: pointer;
    transition: all 0.2s;
}

.slider_element .plus:hover {
    transform: scale(1.2);
}

#audioGuideModal {
    z-index: 20001;
}

#audioGuideModal .modal-body {
    padding: 6rem 11rem 8rem 11rem;
}

#audioGuideModal .modal-xl {
    max-width: 114rem;
}

#audioGuideModal .option-title,
#audioGuideModal .option-subtitle {
    font-weight: 600;
    font-size: 3rem;
    line-height: 1.17;
}

#audioGuideModal .option-subtitle {
    margin-bottom: 5.5rem;
}

#audioGuideModal .option-card {
    background-color: #F0F0F0;
    padding: 4rem;
    border-radius: 1.5rem;
}

#audioGuideModal .option-card .option-text {
    font-size: 1.8rem;
    line-height: 1.23;
}

.claim-audio-guide {
    font-size: 7.7rem;
    font-weight: 600;
}

.ag_text {
    font-size: 3rem;
    line-height: 1.17;
}

.info_3_links p {
    font-size: 1.4rem;
}

.info_dreispaltig {
    margin-top: 13rem;
}

.info_dreispaltig .info_3_mitte .header {
    font-family: 'Novela';
    font-size: 3.8rem;
    font-style: italic;
    font-weight: 400;
}

.info_dreispaltig .info_3_mitte .subheader {
    font-size: 3.6rem;
    font-weight: 600;
}

.info_dreispaltig .info_3_mitte p {
    font-size: 1.6rem;
    line-height: 1.375;
    font-weight: 400;
    padding-right: 4rem;
    margin-top: 3rem;
}

.bc .gelbe_kugel {
    width: 22.5rem;
    height: 22.8rem;
    background-image: url(../Images/Kugeln_gelb.png);
    background-size: contain;
    background-repeat: no-repeat;
    position: absolute;
    right: 34rem;
    top: -10rem;
    z-index: 1;
}

.gelbe_kugel {
    width: 22.5rem;
    height: 22.8rem;
    background-image: url(../Images/Kugeln_gelb.png);
    background-size: contain;
    background-repeat: no-repeat;
    position: absolute;
    z-index: 1;
}

.abstand {
    position: relative;
}

.schwarze_kugel {
    width: 22.5rem;
    height: 22.8rem;
    background-image: url(../Images/black_stone.png);
    background-size: contain;
    background-repeat: no-repeat;
    position: absolute;
    z-index: 1;
}

.info_dreispaltig .row {
    padding-left: 13rem;
}

.breadcrumb-item {
    font-family: Novela;
    font-size: 4rem;
    font-style: italic;
}

.breadcrumb-item+.breadcrumb-item::before {
    float: left;
    padding-right: .5rem;
    color: #6c757d;
    content: "›";
    font-family: Novela;
    font-size: 4rem;
    font-style: italic;
}

.slider_title {
    margin-top: 3.5rem;
}

.aktuelles_text {
    width: 37.4rem;
    background-color: #F7F7F7;
    height: 43rem;
    padding: 4.5rem 3rem;
    position: relative;
}

.aktuelles_bild {
    overflow: hidden;
    height: 43rem;
}

.aktuelles_infotext {
    line-height: 1.29;
    font-size: 1.4rem;
    margin-top: 4rem;
}

.aktuelles_header {
    font-family: 'Novela';
    font-size: 3.2rem;
    font-style: italic;
}

.aktuelles_subheader {
    font-size: 3rem;
    font-size: 3rem;
    font-weight: 600;
    margin-top: -0.5rem;
}

.aktuelles_button {
    position: absolute;
    bottom: 3rem;
    left: 3rem;
}

.aktuelles_slider .slider_element {
    margin-right: 0;
}

.aktuelles_slider h2 {
    font-family: HurmeGeometricSans1;
    font-weight: 600;
    font-style: normal;
}

.aktuelles_slider h2 i {
    font-family: Novela;
    font-weight: 400;
    font-style: italic;
}


.slider_title_arrow {
    width: 4.7rem;
    height: 3rem;
    margin-right: 1rem;
    display: inline-block;
    float: left;
    background-repeat: no-repeat;
    background-position: center;
    background-image: url(../Images/arrow_right.svg);
    transition: all 0.2s;
    opacity: 0;
}

.slider_element a .slider_title_arrow {
    opacity: 1;
}

.slider_element:hover a .slider_title_arrow {
    background-position: right;
}

.slider_title_text {
    float: left;
    display: inline-block;
    font-size: 2.4rem;
    font-weight: 600;
    color: #21292F;
}

.slider_title_text_ausschnitt {
    float: left;
    display: inline-block;
    font-size: 2.4rem;
    font-weight: 600;
    color: #21292F;
    width: 20.9rem;
    text-align: center;
}

.slider a {
    color: #21292F;
}

.slider_img_holder {
    overflow: hidden;
    /* hides the part of the image that zooms outside */
    display: inline-block;
}

a .slider_img_holder img {
    transition: transform 0.5s ease;
    /* smooth animation */
}

a .slider_img_holder:hover img {
    transform: scale(1.1);
    /* zooms the image slightly */
}

.slider_next {
    background-image: url(../Images/slider_next.svg);
    bottom: 1.5rem;
}

.slider_prev {
    background-image: url(../Images/slider_prev.svg);
    bottom: 1.5rem;
}

.stone {
    background-image: url(../Images/black_stone.jpg);
    background-repeat: no-repeat;
    width: 16rem;
    height: 16rem;
    position: absolute;
    z-index: -1;
    right: 24.5rem;
    top: -13rem;
    background-size: contain;
}

.info_dreispaltig {
    position: relative;
}

.info_dreispaltig .stone {
    z-index: 5;
    left: 7.5rem;
    top: 8rem;
    width: 14rem;
    height: 14rem;
}

h2.moh {
    font-family: HurmeGeometricSans1;
    font-weight: 600;
    font-style: normal;
    font-size: 6rem;
    margin-bottom: 4.5rem;
}

h2.moh i {
    font-family: Novela;
    font-weight: 400;
    font-style: italic;
    font-size: 6.2rem;
    margin-bottom: 4.5rem;
}

.tt_headline p {
    font-weight: 600;
    font-size: 4rem;
    margin-bottom: 1.5rem;
}

.faq_header {
    font-size: 3rem;
    font-weight: 600;
}

.faq_header i {
    font-family: Novela;
    font-weight: 400;
    font-style: italic;
}

.slider_element.nobg {
    box-shadow: -2px 3px 16px 0px rgba(94, 94, 94, 0.25);
    -webkit-box-shadow: -2px 3px 16px 0px rgba(94, 94, 94, 0.25);
    -moz-box-shadow: -2px 3px 16px 0px rgba(94, 94, 94, 0.25);
    margin-bottom: 2rem;
}

.tt_headline i {
    font-weight: 600;
    font-size: 3.8rem;
    font-family: 'Novela';
    font-style: italic;
    margin-bottom: 1.5rem;
}

.zeit_ausverkauft {
    opacity: 0.25;
}

.slider_bottom {
    border: 1px solid #707070;
    border-top: 0;
    padding: 2rem;
    margin-top: -1rem;
    position: relative;
}

.slider_action .infos {
    width: 14.8rem;
    height: 4.8rem;
    cursor: pointer;
}

.slider_action .ausverkauft {
    position: absolute;
    bottom: 1.5rem;
    right: 1rem;
}


.slider_action .karten_verfuegbar {
    width: 11.4rem;
    height: 6rem;
    background-image: url(../Images/karten.svg);
    background-size: contain;
    cursor: pointer;
    position: absolute;
    bottom: 1rem;
    right: 1rem;
}

.slider_action .karten_verfuegbar:hover {
    background-image: url(../Images/karten_hover.svg);
}

.weitere_zeiten {
    min-height: 20rem;
    font-size: 3.6rem;
}

.weitere_zeiten div {
    height: 3.75rem;
}

.weitere_zeiten .weitere-times-bilettix,
.weitere_zeiten .weitere-times-bilettix .spielplan_zeit {
    height: auto;
}

.weitere-times-bilettix {
    display: grid;
    grid-template-columns: repeat(auto-fit, minmax(180px, 198px));
    justify-content: start;
    gap: 12px 18px;
    margin-top: 18px;
}

.weitere_termine_grid .weitere_zeiten {
    min-height: 0;
}

.weitere_infos {
    position: relative;
    height: 7rem;
}

.weitere_buttons .slider_action .ausverkauft {
    left: 0;
    right: unset;
}

.weitere_buttons .slider_action .karten_verfuegbar {
    left: 0;
    right: unset;
}

.w36 {
    max-width: 34rem;
}

.slider_play_title {
    font-size: 3rem;
    font-family: 'HurmeGeometricSans1';
    font-weight: 600;
    text-align: center;
    min-height: 14rem;
    display: flex;
    align-items: center;
    justify-content: center;
}


.slider_play_title p {
    font-size: 3rem;
    font-family: 'HurmeGeometricSans1';
    font-weight: 600;
    text-align: center;
}

.slider_play_title i {
    font-size: 3.2rem;
    font-family: 'Novela';
    font-weight: 400;

}

.accordion-button {
    padding: 2.5rem 0rem 2.5rem 4rem;
    width: calc(100% - 8rem);

}

.faq-accordion .accordion-button .toggle-icon {
    right: -6rem;
}

:is(.frame-type-ce_accordion, .ce-accordion) .accordion-button .toggle-icon {
    right: -6.5rem;
}

.homeslider .img-fluid {}

.page-37 .homeslider .img-fluid {
    width: 100%;
    max-width: 100%;
}

.img-full-width .img-fluid {
    width: 100%;
}

.home_title_holder {
    position: absolute;
    top: 3rem;
    left: 4.5rem;
    width: calc(100% - 20rem);
    text-shadow: 0px 0px 7px rgba(0, 0, 0, 0.7);
}

.headerslider_headlines {
    text-shadow: 0px 0px 7px rgba(0, 0, 0, 0.7);
}

.home_title p {
    color: #fff;
    font-size: 7.2rem;
    font-weight: 600;
    margin-bottom: 0;
}

.home_title p i {
    color: #fff;
    font-family: 'Novela';
    font-size: 7.5rem;
    font-weight: 400;
    font-style: italic;
}

.home_subtitle {
    color: #fff;
    font-weight: 600;
    font-size: 3rem;
    margin-left: 1rem;
    margin-top: 2rem;
    line-height: 1.25;
}


.home_subtitle p {
    color: #fff;
    font-weight: 600;
    font-size: 3rem;
    margin-top: 0;
    margin-bottom: 0;
    line-height: 1.25;
}

.ohne_lautsprache {
    position: absolute;
    top: 6rem;
    right: 9rem;
    width: 5rem;
    height: 5rem;
    background-image: url(../Images/ohne_lautsprache.svg);
    background-size: contain;
    cursor: pointer;
    background-repeat: no-repeat;
    transition: all 0.2s;
    z-index: 1;
}

.inszenierung.limited .ohne_lautsprache {
    top: 4.9rem;
    right: 5.75rem;
    background-position: right;
    width: 6rem;
    height: 5.6rem;
}

.ohne_lautsprache:hover {
    transform: scale(1.1);
}

.altersempfehlung {
    display: flex;
    justify-content: flex-end;
    /* align children to the right */
    align-items: center;
    /* center them vertically */
    height: 6.5rem;
}

.altersempfehlung .il {
    position: relative !important;
    margin-left: 0.5rem !important;
    right: 0 !important;
    top: 0 !important;
    left: 0 !important;
    bottom: 0 !important;
}

.altersempfehlung_inner.il {
    height: 5rem;
    margin-top: -0.35rem;
}

.zusatzinfos {
    margin-top: 8rem;
    margin-bottom: 8rem;
}

.zusatzinfos h2 {
    margin-bottom: 2rem;
    font-size: 5rem;
}

.custom-modal {
    border-radius: 1.5rem;
    padding: 1.5rem;
    position: relative;
    border: none;
}

.custom-modal p {
    font-size: 1.8rem;
}

.custom-close {
    position: absolute;
    top: 1.75rem;
    right: 1.75rem;
    border: none;
    background-image: url(../Images/custom_close.svg);
    background-size: contain;
    cursor: pointer;
    background-repeat: no-repeat;
    z-index: 1000;
    transition: all 0.2s;
    opacity: 1;
}

.custom-close:hover {
    transform: scale(1.25);
}

.claim-ohne-lautsprache {
    margin-top: 4rem;
    width: 100%;
    height: 7.4rem;
    background-image: url(../Images/claim_ohne_lautsprache.svg);
    background-size: contain;
    background-position: left;
    background-repeat: no-repeat;
}

.spielplan_buttons .claim-ohne-lautsprache {
    width: 11.8rem;
    height: 3.2rem;
    position: absolute;
    bottom: 2rem;
    left: 0;
    cursor: pointer;
    transition: all 0.2s;
}

.spielplan_buttons .claim-ohne-lautsprache:hover {
    transform: scale(1.1);
}

.modal {
    z-index: 55060;
}

.modal-content {
    box-shadow: 0 2px 16px rgba(0, 0, 0, 0.15);
}

.modal-content .btn {
    font-size: 1.8rem;
    font-weight: 400;
}

.spielplan_heading {
    font-size: 4rem;
    display: inline-block;
    width: 100%;
    font-family: 'Novela';
    font-style: italic;

    font-weight: 400;
    color: #707070;
}

.spielplan_heading i {
    font-family: 'Novela';
    font-size: 4rem;
    font-weight: 400;
    color: #707070;
}

.nav_item {
    float: left;
    display: inline-block;
    margin-right: 2rem;
}

.nav_item_filter {
    cursor: pointer;
    transition: all 0.2s;
}

.nav_item_filter:hover {
    color: #21292F;
}

.nav_item_filter.active {
    cursor: default;
    color: #21292F;
}

.spielplan_headline {
    width: calc(100% - 6rem);
}

.spielplan_item {
    padding: 2rem 0;
    border-top: 1px solid #707070;
}

.inszenierungsuebersicht .spielplan_item {
    padding: 0;
    border: 0;
}

.spielplan_zeiten {
    font-size: 3rem;
}

.spielplan_zeiten b {
    font-size: 4.8rem;
}

.spielplan_zeiten .zusatz {
    font-size: 1.2rem;
    float: right;
    margin-right: 0.25rem;
    margin-top: 1.5rem;
}

.spielplan_zeiten .claim-ohne-lautsprache {
    display: none;
}

.spielplan_buttons {
    position: relative;
}

.spielplan_buttons {
    height: 10rem;
}

.spieplan_altersempfehlung {
    text-align: right;
    float: right;
    width: 10rem;
}

.spielplan_buttons .slider_action .infos {
    width: 14.8rem;
    height: 4.8rem;
    cursor: pointer;
    position: absolute;
    right: 17rem;
    bottom: 1rem;
}

.spielplan_buttons .slider_action .ausverkauft {
    font-size: 1.8rem;
    bottom: 2rem;
}

.spielplan_buttons .slider_action .karten_verfuegbar {
    right: 3rem;
}

.spielplan_zeiten div {
    border-bottom: 1px solid #707070;
}

.menue_teaser_label i {
    font-family: 'Novela';
    font-size: 2rem;
}

.headerslider_headlines {
    position: absolute;
    top: 4.5rem;
    left: 4.5rem;
}

.headerslider_header p {
    font-size: 7.5rem;
    color: #fff;
    line-height: 1;
}


.headerslider_header p i {
    font-family: 'Novela';
    font-size: 7.3rem;
    font-style: italic;
    color: #fff;
    line-height: 1;
}

.headerslider_subheader {
    font-weight: 600;
    font-size: 7.2rem;
    color: #fff;
    margin-top: -1rem;
}

.headerslider_overlay {
    background-color: rgba(255, 255, 255, 0.7);
    position: absolute;
    bottom: 4.5rem;
    left: 4.5rem;
    padding: 3rem;
}

.headerslider_overlay_headline p {
    font-size: 3.6rem;
}

.spielplan_infos .altersempfehlung_inner img {
    transform: scale(0.8);
}

.spielplan_headline p {
    font-size: 4.8rem;
    font-family: 'HurmeGeometricSans1';
    font-weight: 600;
    text-align: left;
    margin-bottom: 1rem;
    line-height: 1.04;
}

.spielplan_headline i {
    font-size: 5rem;
    font-family: 'Novela';
    font-weight: 400;

}

.spielplan_subheading {
    font-size: 2.4rem;
    margin-bottom: 1rem;
    font-weight: 600;
}

.spielplan_item.status_ausverkauft {
    opacity: 0.45;
}

.spielplan_teaser {
    font-size: 1.6rem;
}

.button_lautsprache {
    width: 16.4rem;
    height: 5.5rem;
    border: 1px solid #707070;
    padding: 0.5rem;
    border-radius: 9999px;
    background-size: 80%;
    background-position: center;
    opacity: 0.5;
    cursor: pointer;
    transition: all 0.2s;
    margin-top: 0;
}

.button_lautsprache:hover,
.button_lautsprache.active {
    opacity: 1;
}

.spielplan_filter {
    display: flex;
    justify-content: flex-end;
    flex-direction: row;
    gap: 2rem;
    padding-bottom: 2rem;
}

.custom-select-pill {
    appearance: none;
    -webkit-appearance: none;
    -moz-appearance: none;
    text-align: center;
    border: 1px solid #707070;
    border-radius: 9999px;
    /* pill shape */
    padding: 0.5rem 2.5rem 0.5rem 1rem;
    background-color: #fff;
    background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='12' height='8' viewBox='0 0 12 8'%3E%3Cpath fill='none' stroke='%23222' stroke-width='2' d='M1 1l5 5 5-5'/%3E%3C/svg%3E");
    background-repeat: no-repeat;
    background-position: right 1rem center;
    background-size: 12px;
    font-size: 16px;
    color: #333;
    cursor: pointer;
    transition: border-color 0.2s ease, box-shadow 0.2s ease;
    height: 5.5rem;
}

.custom-select-pill:focus {
    outline: none;
    box-shadow: 0 0 0 0;
}

.dabei_seit {
    font-size: 1.8rem;
    font-weight: 600;
    margin-top: 6rem;
}

.pillbutton {
    border: 1px solid #21292F;
    border-radius: 9999px;
    height: 4.8rem;
    line-height: 4.8rem;
    font-size: 1.8rem;
    font-weight: 600;
    text-align: center;
    padding: 0 4rem;
    transition: all 0.2s;
}

.socialmediaicon {
    margin-left: 2.5rem;
}

.pillbutton:hover {
    background-color: #21292F;
    color: #fff;
}


.pillbutton.black {
    background-color: #21292F;
    color: #fff;
}

.pillbutton.black:hover {
    background-color: #fff;
    color: #21292F;
}


.rtebutton {
    border: 1px solid #21292F;
    border-radius: 9999px;
    height: 4.8rem;
    line-height: 4.8rem;
    font-size: 1.8rem;
    font-weight: 600;
    text-align: center;
    padding: 1rem 4rem;
    transition: all 0.2s;
    text-decoration: none !important;
}


.rtebutton:hover {
    background-color: #21292F;
    color: #fff;
}

.person h1 {
    font-size: 6.2rem;
    font-family: HurmeGeometricSans1;
    font-weight: 600;
    font-style: normal;
    margin-top: 3.8rem;
}

.person h1 i {
    font-size: 6.2rem;
    font-family: Novela;
    font-weight: 400;
    font-style: italic;
    margin-top: 3.8rem;
}

.person .beschreibung {
    margin-top: 3.8rem;
}

.beschreibung p {
    font-size: 2.4rem;
    line-height: 1.21;
}

.beschreibung.smaller p {
    font-size: 1.8rem;
    line-height: 1.33;
}

.mitwirkende.smaller p {
    font-size: 1.8rem;
    line-height: 1.33;
}


.mt-10 {
    margin-top: 10rem;
}

.aktuellespielzeit h2 {
    margin-bottom: 3.5rem;
}

.beteiligung {
    margin-bottom: 5rem;
}


.beteiligung_title i {
    font-weight: 400;
    font-size: 3rem;
}

.beteiligung_title p {
    font-weight: 600;
    font-size: 3.2rem;
    line-height: 1.1;
}

.beteiligung_subtitle {
    font-weight: 600;
    margin-bottom: 0.5rem;
    font-size: 2.4rem;
}

.beteiligung_premiere {
    font-size: 2rem;
    font-weight: 600;
}


.beteiligung_title p i {
    font-family: 'Novela';
}

.menschen_filter {
    font-family: 'Novela';
    font-size: 4rem;
    font-weight: 400;
    font-style: italic;
    color: #707070;
    display: inline-block;
    width: 100%;
    margin-bottom: 6rem;
}

.menschen {
    display: grid;
    grid-template-columns: repeat(auto-fill, minmax(43.8rem, 1fr));
    gap: 2rem;
    width: 100%;
}


.menschen_bild {
    width: 100%;
    overflow: hidden;
}

.menschen_bild img {
    width: 100%;
    aspect-ratio: 438 / 310;
}

.menschen .person {
    margin-bottom: 6rem;
}


.menschen_name {
    text-align: center;
    margin-top: 2rem;
    font-size: 2.4rem;
    font-weight: 600;
}

.menschen_funktion {
    text-align: center;
    font-size: 1.6rem;
}

a .menschen_bild img {
    transition: transform 0.5s ease;
}

a:hover .menschen_bild img {
    transform: scale(1.1);
}


.kontakte {
    display: grid;
    grid-template-columns: repeat(auto-fill, minmax(43.8rem, 1fr));
    gap: 2rem;
    width: 100%;
    padding-left: 13rem;
}


.kontakt .pillbutton {
    background-color: #21292F;
    color: #fff;
    border-radius: 1rem;
}

.kontakt .pillbutton:hover {
    background-color: #fff;
    color: #21292f;
}

.kontakt {
    height: 22rem;
    position: relative;
    margin-bottom: 10rem;
}

.kontakt_funktion {
    font-size: 2.4rem;
    line-height: 1.21;
    margin-bottom: 0.5rem;
}

.kontakt_name {
    font-weight: 600;
    font-size: 2.4rem;
    line-height: 1.21;
    margin-bottom: 0.5rem;
}

.kontakt_text {
    font-size: 1.6rem;
    line-height: 1.375;
}

.kontaktbutton {
    position: absolute;
    left: 0;
    bottom: 0;
}

.inszenierungsuebersicht_items {
    display: grid;
    grid-template-columns: repeat(auto-fill, minmax(43.8rem, 1fr));
    gap: 2rem;
    width: 100%;
}

.inszenierung_image_holder {
    overflow: hidden;
    position: relative;
}

.inszenierung_image_holder img {
    width: 100%;
    aspect-ratio: 438 / 247;
}

a .inszenierung_image_holder img.img-fluid {
    transition: transform 0.5s ease;
    /* smooth animation */
}

a:hover .inszenierung_image_holder img.img-fluid {
    transform: scale(1.1);
    /* zooms the image slightly */
}

.detail-video {
    height: 37rem;
}

.inszenierung_image_holder .production-banners {
    position: absolute;
    top: 2rem;
    left: 2rem;
    display: flex;
    flex-direction: column;
    align-items: flex-start;
    gap: 8px;
}

.inszenierung_image_holder .premiere_holder {
    background-color: #F7F7F7;
    font-size: 1.6rem;
    font-weight: 700;
    padding: 0.25rem 1.5rem;
    border-radius: 0.5rem;
}

.inszenierung_image_holder .premiere_holder i {
    font-family: 'IconPuppeMagdeburg';
    font-size: 1.8rem;
}

.inszenierung_text {
    height: 25.6rem;
    background-color: #F0F0F0;
    font-size: 2.4rem;
    font-weight: 600;
    width: 100%;
    padding: 3.5rem 1rem 0 4rem;
    position: relative;
}

.inszenierung_image_holder .altersempfehlung {
    position: absolute;
    width: 100%;
    top: 0rem;
    right: 0rem;
    filter: invert();
}

.inszenierung_image_holder .altersempfehlung_inner {
    position: absolute;
    top: 1rem;
    right: 1.5rem;
}

.inszenierung_image_holder .altersempfehlung_inner img {
    width: 2.8rem;
    height: 2.8rem;
}

.inszenierung_image_holder .ohne_lautsprache {
    position: absolute;
    top: 1.57rem;
    right: 5rem;
    width: 2.8rem;
    height: 2.8rem;
}


.inszenierung_text .spielplan_headline p {
    font-size: 2.8rem;
    line-height: 1.07;
}

.inszenierungen_vorstellung b {
    float: left;
}

.inszenierungen_vorstellung div {
    float: left;
    font-weight: 400;
}

.inszenierungen_vorstellung {
    position: absolute;
    left: 4rem;
    bottom: 2rem;
}


.inszenierung_text .spielplan_headline i {
    font-size: 2.8rem;
    line-height: 1;
}


.inszenierung_text .spielplan_subheading {
    font-size: 1.6rem;
    margin-top: 0.4rem;
}

.inszenierung_image_holder .premiere_holder i {
    font-style: normal;
}

.nav-level-2-col-2 a,
.nav-level-2-col-3 a {
    border: 0;
}

.nav-level-2-col-2 a img,
.nav-level-2-col-3 a img {
    transition: transform 0.5s ease;
}

.nav-level-2-col-2 a:hover img,
.nav-level-2-col-3 a:hover img {
    transform: scale(1.1);
}

.nav-level-2-col-2 p,
.nav-level-2-col-3 p {
    width: 100%;
    max-width: 44.5rem;
    margin-left: auto;
    margin-right: auto;
    text-align: left;
    font-size: 1.8rem;
    font-weight: 400;
    margin-top: 1.5rem;
}

.menue_image_holder {
    width: 44.5rem;
    height: 28.5rem;
    overflow: hidden;
    margin-left: auto;
    margin-right: auto;
}


/* Karten-Look */
.faq-accordion .accordion-item,
:is(.frame-type-ce_accordion, .ce-accordion) .accordion-item {
    border: 0;
    border-radius: 0;
    background: #fff;
    margin-bottom: .9rem;
    overflow: hidden;
    border: 1px solid #F0F0F0;
}

/* Kopfzeile */
.faq-accordion .accordion-button,
:is(.frame-type-ce_accordion, .ce-accordion) .accordion-button {
    position: relative;
    font-weight: 600;
    background: #fff;
    box-shadow: none;
    font-size: 2.4rem;
    font-family: HurmeGeometricSans1;
}

.faq-accordion .accordion-button:focus,
:is(.frame-type-ce_accordion, .ce-accordion) .accordion-button:focus {
    box-shadow: none;
}

/* Standardpfeil ausblenden */
.faq-accordion .accordion-button::after,
:is(.frame-type-ce_accordion, .ce-accordion) .accordion-button::after {
    display: none;
}

.faq-accordion .toggle-icon,
:is(.frame-type-ce_accordion, .ce-accordion) .toggle-icon {
    position: absolute;
    right: 16px;
    top: 50%;
    transform: translateY(-50%);
    width: 4rem;
    height: 4rem;
    border-radius: 50%;
    border: 2px solid #21292F;
    background-color: #21292F;
    color: #fff;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    font-size: 5rem;
    line-height: 1;
    font-weight: 400;
    background-image: url(../Images/acc_x.svg);
    background-position: center;
    background-size: 3.5rem auto;
}


.faq-accordion .accordion-button.collapsed .toggle-icon,
:is(.frame-type-ce_accordion, .ce-accordion) .accordion-button.collapsed .toggle-icon {
    background-image: url(../Images/acc_plus.svg);
}

.accordion-button:not(.collapsed) {
    color: #21292F;
}



.faq-accordion .accordion-item,
:is(.frame-type-ce_accordion, .ce-accordion) .accordion-item {
    transition: all 0.2s;
}

.faq-accordion .accordion-item:has(.accordion-collapse.show),
:is(.frame-type-ce_accordion, .ce-accordion) .accordion-item:has(.accordion-collapse.show) {
    border-radius: 1.5rem;
    box-shadow: -2px 3px 16px 0px rgba(94, 94, 94, 0.25);
    -webkit-box-shadow: -2px 3px 16px 0px rgba(94, 94, 94, 0.25);
    -moz-box-shadow: -2px 3px 16px 0px rgba(94, 94, 94, 0.25);
}



.faq-accordion .accordion-body,
:is(.frame-type-ce_accordion, .ce-accordion) .accordion-body {
    background: #fff;
    padding: 1rem 4rem 3rem 4rem;
    font-size: 1.6rem !important;
}

:is(.frame-type-ce_accordion, .ce-accordion) .accordion-body p {
    font-size: 1.6rem !important;
}

.infokacheln {
    padding-left: 13rem;
    margin-bottom: 9.3rem;
    margin-top: 2rem;
}

.infokacheln .infokachel {
    padding: 6rem 5rem;
    border-radius: 3.5rem;
    box-shadow: -2px 3px 16px 0px rgba(94, 94, 94, 0.25);
    -webkit-box-shadow: -2px 3px 16px 0px rgba(94, 94, 94, 0.25);
    -moz-box-shadow: -2px 3px 16px 0px rgba(94, 94, 94, 0.25);
    height: 100%;
    position: relative;
}

.infokachel p {
    font-size: 1.8rem;
    line-height: 1.28;
}

.infokachel .header {
    min-height: 6rem;
    font-size: 3.6rem;
    font-weight: 600;
}


.infokachel .header p .font-hurme1 {
    font-size: 3.6rem;
    font-weight: 600;
}


.infokachel .header p .font-novela {
    font-size: 3.8rem;
    font-weight: 400;
}

.infokachel img {
    margin-bottom: 2rem;
}

.infokachel .pillbutton {
    left: 5rem;
    background-color: #21292F;
    color: #fff;
}

.infokachel .pillbutton:hover {
    background-color: #fff;
    color: #21292f;
}

#quicklinks_desktop .pillbutton {
    border: 1px solid #21292F;
    border-radius: 9999px;
    font-size: 1.8rem;
    font-weight: 600;
    text-align: center;
    padding: 0 2rem;
    transition: all 0.2s;
    display: inline;
    float: left;
    height: 4.2rem;
    line-height: 2.2;
    display: inline-block;
    float: left;
    margin-left: 1rem;
}

#quicklinks_desktop .pillbutton {
    background-color: #21292F;
    color: #fff;
}


#quicklinks_desktop .pillbutton.white {
    background-color: #fff;
    color: #21292f;
    margin-left: 2rem;
}

#quicklinks_desktop .pillbutton:hover {
    background-color: #fff;
    color: #21292f;
}



#quicklinks_desktop .pillbutton.white:hover {
    background-color: #21292f;
    color: #fff;
}

.limited,
.frame-type-ce_columns2,
.frame-type-ce_columns3,
.frame-type-ce_columns4,
:is(.frame-type-ce_accordion, .ce-accordion),
.main_content>.frame-type-textmedia {
    max-width: 160rem;
    margin-left: auto;
    margin-right: auto;
}


.font-hurme1 {
    font-family: 'HurmeGeometricSans1', system-ui, -apple-system, Segoe UI, Roboto, Arial, sans-serif;
}

.font-novela {
    font-family: 'Novela', Georgia, 'Times New Roman', serif;
}

.font-icons {
    font-family: 'IconPuppeMagdeburg';
}



.size-standard {
    font-size: 2.4rem;
    line-height: 1.21;
}

.size-big {
    font-size: 3.2rem;
}

.size-small {
    font-size: 1.8rem;
    line-height: 1.28;
}

.font-novela {
    font-size: 2.6rem;
    line-height: 1.115;
    font-weight: 400;
    font-family: 'Novela';
    font-style: italic;
}

.size-standard .font-novela {
    font-size: 2.6rem;
    line-height: 1.115;
    font-weight: 400;
    font-family: 'Novela';
    font-style: italic;
}

.size-big .font-novela {
    font-size: 3.4rem;
    font-weight: 400;
    font-family: 'Novela';
    font-style: italic;
}

.size-small .font-novela {
    font-size: 2rem;
    line-height: 1.15;
    font-weight: 400;
    font-family: 'Novela';
    font-style: italic;
}

.ce-accordion-body header h2 {
    display: none;
}

:is(.frame-type-ce_accordion, .ce-accordion) header h2 {
    margin-bottom: 3rem;
}

:is(.frame-type-ce_accordion, .ce-accordion) header h3 {
    font-weight: bold;
    font-size: 3.4rem;
    margin-bottom: 2rem;
}

.ce-accordion-body header h3 {
    font-size: 3.4rem;
    margin-bottom: 2rem;
}

.frame-type-textmedia h1 {
    font-size: 5rem;
    margin-bottom: 3rem;
    font-weight: bold;
}


.frame-type-textmedia header h3 {
    font-size: 5rem;
    margin-bottom: 3rem;
    font-weight: bold;
    font-family: 'HurmeGeometricSans1';
    font-style: normal;
    line-height: 1.2;
}


.frame-type-textmedia h2 {
    font-size: 4rem;
    margin-bottom: 2.5rem;
    line-height: 1.2;
    font-weight: bold;
    font-family: 'HurmeGeometricSans1';
    font-style: normal;
}


.frame-type-textmedia h2 .font-novela {
    font-size: 4rem;
}

.frame-type-textmedia h3 {
    font-size: 3rem;
    margin-bottom: 1.5rem;
    line-height: 1.2;
    font-weight: bold;
}


.frame-type-textmedia h3 .font-novela {
    font-size: 2.8rem;
}

.frame-type-textmedia h4 {
    font-size: 3rem;
    margin-bottom: 1.5rem;
    line-height: 1.2;
}

.frame-type-textmedia h4 .font-novela {
    font-size: 2.8rem;
}

.frame-type-textmedia a {
    text-decoration: underline;
}


.frame-type-textmedia {
    margin-bottom: 4rem;
}







.slot {
    border: 1px solid #e5e7eb;
    border-radius: 12px;
    padding: 1rem 1.5rem;
    display: flex;
    gap: .55rem;
    align-items: center;
    cursor: pointer;
    transition: .15s;
    user-select: none;
    min-width: 20rem;
    position: relative;
}

.slot:hover {
    border-color: #4CD964
}

.slot:hover .haken_reservierung {
    background-image: url(../Images/haken_reservierung_gruen.svg);
}

.slot.selected {
    border-color: #4CD964
}

.slot.selected .haken_reservierung {
    background-image: url(../Images/haken_reservierung_gruen.svg);
}

.slot.ausverkauft:hover {
    border: 1px solid #e5e7eb;
}

.slot.ausverkauft:hover .haken_reservierung {
    background-image: url(../Images/haken_reservierung_grau.svg);
}


.slot.vorbereitung:hover {
    border: 1px solid #e5e7eb;
}

.slot.vorbereitung:hover .haken_reservierung {
    background-image: url(../Images/haken_reservierung_grau.svg);
}



.smaller {
    font-size: 1.2rem;
}

.slot .zeit {
    font-size: 3rem;
}

.slot .buehne {
    font-size: 1.6rem;
    margin-top: 0.5rem;
}

.slot.verfuegbar .ausverkauft {
    display: none;
}

.slot.verfuegbar .vorbereitung {
    display: none;
}

.slot.ausverkauft .vorbereitung {
    display: none;
}

.slot.vorbereitung .ausverkauft {
    display: none;
}


.slot.vorbereitung .nochkarten {
    display: none;
}

.slot.ausverkauft {
    cursor: default;
    opacity: 0.5;
}

.slot.vorbereitung {
    cursor: default;
    opacity: 0.5;
}

.reservieren {
    text-transform: uppercase;
    font-size: 1.8rem;
    font-weight: 600;
    color: #fff;
    background-color: #21292F;
    margin-top: 3rem;
    border-radius: 50rem;
}

.reservieren:hover {
    background-color: #fff;
    color: #21292F;
    border: 1px solid #21292F;
}

.reservieren.deaktiviert {
    opacity: 0.5;
    cursor: default;
}

.semi {
    font-weight: 600;
}

.reservieren.deaktiviert:hover {
    text-transform: uppercase;
    font-size: 1.8rem;
    font-weight: 600;
    color: #fff;
    background-color: #21292F;
    margin-top: 3rem;
    opacity: 0.5;
    cursor: default;
}

.haken_reservierung {
    width: 3.5rem;
    height: 3.5rem;
    position: absolute;
    top: 0.5rem;
    right: 0.5rem;
    background-image: url(../Images/haken_reservierung_grau.svg);
}

#total {
    font-weight: 600;
}

.slot.ausverkauft .nochkarten {
    display: none;
}

.slot .nochkarten {
    font-size: 1.2rem;
    color: #4CD964;
    font-weight: bold;
}

.slot .ausverkauft {
    font-size: 1.2rem;
    font-weight: bold;
}

.gesamtpreis {
    padding: 2rem 5rem 2rem 1rem;
}

.bestellformular input[type="checkbox"] {
    width: 1.6rem;
    height: 1.6rem;
    margin-right: .8rem;
}

.bestellformular label {
    font-size: 1.4rem;
    line-height: 1.43;
}

.bestellformular a {
    text-decoration: underline;
}

.bestellformular .form-control {
    font-size: 2.4rem;
}

.bestellformular label {
    font-size: 1.2rem;
}

.bestellformular .form-floating>.form-control,
.bestellformular .form-floating>.form-select {
    height: calc(5rem + 4px);
    line-height: 2.5;
}

.bestellformular .check-text {
    margin-left: -1rem;
    width: calc(100% - 10rem);
}

.bestellformular .col-11 {
    line-height: 1;
}


#ottocitycard {
    transform: scale(2);
    margin-right: 3rem;
    margin-left: 1rem;
}

#zusenden {
    transform: scale(2);
    margin-right: 3rem;
    margin-left: 1rem;
}

.qty {
    display: flex;
    align-items: center;
    gap: .5rem
}

.small-note {
    width: 100%;
    clear: both;
    flex-basis: 100%;
}

.preisposition {

    flex-wrap: wrap;
}

.chk .row {
    width: 100%;
}

.kartenanzahl {
    width: 6rem;
}

#anschrift {
    height: 12rem;
    line-height: 1.25;
}

.qty .btn {
    width: 3.6rem;
    height: 3.6rem;
    border-radius: 999px;
    padding: 0;
    font-weight: 400;
    font-size: 3rem;
    color: #000;
    line-height: 1;
    background-color: #F0F0F0;
    border: 0;
}


.kartenanzahl {
    font-weight: bold;
}

.bestellformular .form-control.text-center {
    background-color: #fff;
    border: 0;
}

.bestellformular h1 {
    line-height: 1.02;
}

.bestellformular .form-floating,
.preisposition {
    margin-bottom: 1rem;
}

.qty button[data-action="minus"] {
    line-height: 0rem;
    font-size: 2.5rem;
    width: 4rem;
    height: 4rem;
    background-image: url(../Images/minus_karte.svg);
    background-size: contain;

}

.qty button[data-action="plus"] {
    line-height: 1;
    width: 4rem;
    height: 4rem;
    background-image: url(../Images/plus_karte.svg);
    background-size: contain;
}

.total-box {
    border: 1px dashed #d7dbe1;
    border-radius: 12px;
    padding: .85rem 1rem;
    background: #fbfcff
}

.form-floating>label {
    color: #6c7a89
}

.small-note {
    font-size: 1.2rem;
    color: var(--muted)
}


.preisposition {
    border: 1px solid #cfd6de;
    padding: 1rem;
}

header h2 {
    line-height: 1.2;
}

h2.heading_0 {
    font-size: 6.2rem;
    font-family: 'HurmeGeometricSans1';
    font-weight: 600;
}

h2.heading_10 {
    font-size: 6.2rem;
    font-family: 'Novela';
    font-weight: 400;
    font-style: italic;
    line-height: 1.2;
}

h2.heading_20 {
    font-size: 5rem;
    font-family: 'HurmeGeometricSans1';
    font-weight: 600;
}

h2.heading_30 {
    font-size: 5rem;
    font-family: 'Novela';
    font-weight: 400;
    font-style: italic;
}


h2.heading_40 {
    font-size: 4rem;
    font-family: 'HurmeGeometricSans1';
    font-weight: 600;
}

h2.heading_50 {
    font-size: 4rem;
    font-family: 'Novela';
    font-weight: 400;
    font-style: italic;
}




h2.heading_60 {
    font-size: 3.1rem;
    font-family: 'HurmeGeometricSans1';
    font-weight: 600;
}

h2.heading_70 {
    font-size: 3.1rem;
    font-family: 'Novela';
    font-weight: 400;
    font-style: italic;
}

.detail-video {
    width: 100%;
    margin: 2rem 0;
    background-color: #000;
}

.homevideo-wrapper {
    position: relative;
    width: 100%;
    aspect-ratio: 1600 / 1067;
    /* the same ratio as your image */
    overflow: hidden;
}

.homevideo {
    position: absolute;
    top: 50%;
    left: 50%;
    height: 100%;
    width: auto;
    transform: translate(-50%, -50%);
    object-fit: cover;
    /* crops center */
}

h2.heading_80 {
    font-size: 2.4rem;
    font-family: 'HurmeGeometricSans1';
    font-weight: 600;
}

h2.heading_90 {
    font-size: 2.4rem;
    font-family: 'Novela';
    font-weight: 400;
    font-style: italic;
}

/* Input focus (grey border) */
.form-control:focus {
    border-color: #aaa !important;
    /* Light grey border */
    box-shadow: 0 0 0 0.2rem rgba(170, 170, 170, 0.25) !important;
    /* soft grey glow */
}

/* Checkbox focus (grey outline) */
.form-check-input:focus {
    border-color: #aaa !important;
    box-shadow: 0 0 0 0.2rem rgba(170, 170, 170, 0.25) !important;
}

/* Checkbox checked (optional grey style) */
.form-check-input:checked {
    background-color: #aaa !important;
    border-color: #888 !important;
}

/* Checkbox checked (make background grey instead of blue) */
.form-check-input:checked {
    background-color: #999 !important;
    /* grey background */
    border-color: #777 !important;
    /* slightly darker border */
}

/* Optional: darker hover for grey checkbox */
.form-check-input:checked:hover {
    background-color: #777 !important;
    border-color: #555 !important;
}

[id^="anfrageformular-"] {
    max-width: 160rem;
    margin-left: auto;
    margin-right: auto;
}

[id^="anfrageformular-"] .next {
    position: relative;
    display: block;
    right: unset;
    bottom: unset;
}



[id^="anfrageformular-"] button.btn {
    text-transform: uppercase;
    font-size: 1.8rem;
    font-weight: 600;
    color: #fff;
    background-color: #21292F;
    margin-top: 3rem;
    border: 1px solid #21292F;
    transform: scale(1);
    border-radius: 50rem;
    padding: 1rem 2rem;
}


[id^="anfrageformular-"] button.btn:hover {
    background-color: #fff;
    color: #21292F;
    border: 1px solid #21292F;
    transform: scale(1);
    border: 1px solid #21292F;
    font-size: 1.8rem;
    font-weight: 600;
}

[id^="anfrageformular-"] .form-label {
    margin-top: 2rem;
}

[id^="anfrageformular-"] input,
[id^="anfrageformular-"] textarea {
    font-size: 2.4rem;
}

[id^="anfrageformular-"] .next:hover {
    transform: scale(1);
}

[id^="anfrageformular-"] .form-check {
    margin-top: 3rem;
    margin-left: 0;
    padding-left: 0.5rem;
}

[id^="anfrageformular-"] .form-check input {
    transform: scale(2);
    margin-left: 0;
    margin-right: 1.5rem;
}

.festival_kb {
    width: 11.4rem;
    height: 6rem;
    background-image: url(../Images/karten.svg);
    background-size: contain;
    cursor: pointer;
    position: absolute;
}

.festival_kb:hover {
    background-image: url(../Images/karten_hover.svg);
}

.festival_vorstellung {

    margin-left: 2rem;
    display: inline-block;
}

p.stueckname {
    font-weight: 600;
}

/* Show desktop on wide, mobile on narrow */
#header_mobile {
    display: none;
}

/* Mobile top bar */
#header_mobile .mobile-bar {
    display: flex;
    align-items: center;
    justify-content: space-between;
    height: 9rem;
    padding: 0 1.6rem;
}

#header_mobile .mobile-logo img {
    height: 4.8rem;
    width: auto;
    display: block;
}

.d-relative {
    display: flex;
    align-items: flex-start;
    /* aligns checkbox to top */
    gap: 0.8rem;
    /* spacing between checkbox and label */
    margin-bottom: 1rem;
}

.d-relative input {
    margin-top: 0.25rem;
}

/* Hamburger */
.hamburger {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    width: 2.5rem;
    height: 4.4rem;
    border: 0;
    background-image: url(../Images/three_dots.svg);
    background-repeat: no-repeat;
    background-size: contain;
    cursor: pointer;
    background-color: #fff;
}

/* Drawer + overlay */
.mobile-overlay {
    position: fixed;
    inset: 0;
    background: rgba(0, 0, 0, .45);
    z-index: 9998;
}

.mobile-panel {
    position: fixed;
    top: 0;
    right: 0;
    width: 100%;
    height: 100vh;
    background: #fff;
    box-shadow: -8px 0 24px rgba(0, 0, 0, .15);
    transform: translateX(100%);
    z-index: 9999;
}

.mobile-panel.open {
    transform: translateX(0);
}

.mobile-panel[aria-hidden="true"] {
    pointer-events: none;
}

.mobile-panel-inner {
    display: flex;
    flex-direction: column;
    gap: .6rem;
    padding: 6rem 1.2rem 1.2rem 1.2rem;
    height: 100%;
    overflow-y: auto;
    -webkit-overflow-scrolling: touch;
}

/* Mobile items */
.mobile-item,
.mobile-parent,
.mobile-parent-link {
    font-family: HurmeGeometricSans1, system-ui, -apple-system, Segoe UI, Roboto, Arial, sans-serif;
    font-weight: 600;
    font-size: 2rem;
    color: #21292F;
    text-decoration: none;
    text-align: left;
    padding: 1.2rem;
    border: 1px solid #e4e7ea;
    border-radius: .6rem;
    background: #fff;
    border: 0;
}

.mobile-parent {
    display: flex;
    align-items: center;
    justify-content: space-between;
    cursor: pointer;
}

.mobile-parent .chev {
    transition: transform .2s ease;
    width: 3rem;
    height: 3rem;
    display: inline-block;
    vertical-align: middle;
    transform-box: fill-box;
    transform-origin: center;
}

.mobile-parent .chev svg {
    vertical-align: top;
}

.mobile-parent[aria-expanded="true"] .chev {
    transform: rotate(180deg);
    border: 0;
}

.mobile-parent span {
    font-size: 2.8rem;
}

.mobile-item {
    font-size: 2.8rem;
}

.mobile-parent[aria-expanded="true"] span {
    border-bottom: 1px solid #000;
}

.mobile-parent-link {
    margin-top: .2rem;
    font-size: 1.7rem;
    font-weight: 500;
}

/* Submenu */
.mobile-sub {
    display: grid;
    grid-template-columns: 1fr;
    gap: .4rem;
    margin: .6rem 0 .8rem;
    padding: 0 .2rem .2rem;
}

.mobile-sub a {
    display: block;
    font-weight: 600;
    font-size: 2.8rem;
    color: #21292F;
    text-decoration: none;
    padding: .1rem 1rem;
}

/* Quicklinks */
.mobile-quicklinks {
    margin-top: 1.2rem;
    display: flex;
    align-items: center;
    gap: 1.2rem;
    justify-content: space-between;
}

.btn_preise--mobile {
    margin: 0;
}

.slider_element p {
    line-height: 1.2;
}

.mobile-close {
    position: absolute;
    top: 2rem;
    right: 2.4rem;
    width: 3rem;
    height: 3rem;
    z-index: 10000;
    background: transparent;
    border: none;
    font-size: 3.2rem;
    line-height: 1;
    cursor: pointer;
    padding: 0.4rem;
    transition: opacity 0.2s ease;
    background-image: url(../Images/x.svg);
    background-size: contain;
    background-repeat: no-repeat;
}

.mobile-close:hover,
.mobile-close:focus {
    opacity: 0.6;
    outline: none;
}







.frame-tm-gap-xxl .ce-intext.ce-right .ce-gallery,
.frame-tm-gap-xxl .ce-intext.ce-left .ce-gallery,
.frame-tm-gap-xxl .ce-above .ce-gallery {
    margin-bottom: 40px;
}

.frame-tm-gap-xxl .ce-image .ce-gallery {
    margin-bottom: 0;
}

.frame-tm-gap-xxl .ce-intext.ce-right .ce-gallery {
    margin-left: 40px;
}

.frame-tm-gap-xxl .ce-intext.ce-left .ce-gallery {
    margin-right: 40px;
}

.frame-tm-gap-xxl .ce-below .ce-gallery {
    margin-top: 40px;
}







.frame-tm-gap-lg .ce-intext.ce-right .ce-gallery,
.frame-tm-gap-lg .ce-intext.ce-left .ce-gallery,
.frame-tm-gap-lg .ce-above .ce-gallery {
    margin-bottom: 20px;
}

.frame-tm-gap-lg .ce-image .ce-gallery {
    margin-bottom: 0;
}

.frame-tm-gap-lg .ce-intext.ce-right .ce-gallery {
    margin-left: 20px;
}

.frame-tm-gap-lg .ce-intext.ce-left .ce-gallery {
    margin-right: 20px;
}

.frame-tm-gap-lg .ce-below .ce-gallery {
    margin-top: 20px;
}





.frame-tm-gap-xl .ce-intext.ce-right .ce-gallery,
.frame-tm-gap-xl .ce-intext.ce-left .ce-gallery,
.frame-tm-gap-xl .ce-above .ce-gallery {
    margin-bottom: 30px;
}

.frame-tm-gap-xl .ce-image .ce-gallery {
    margin-bottom: 0;
}

.frame-tm-gap-xl .ce-intext.ce-right .ce-gallery {
    margin-left: 30px;
}

.frame-tm-gap-xl .ce-intext.ce-left .ce-gallery {
    margin-right: 30px;
}

.frame-tm-gap-xl .ce-below .ce-gallery {
    margin-top: 30px;
}



.frame-tm-gap-xxl .ce-intext.ce-right .ce-gallery,
.frame-tm-gap-xxl .ce-intext.ce-left .ce-gallery,
.frame-tm-gap-xxl .ce-above .ce-gallery {
    margin-bottom: 40px;
}

.frame-tm-gap-xxl .ce-image .ce-gallery {
    margin-bottom: 0;
}

.frame-tm-gap-xxl .ce-intext.ce-right .ce-gallery {
    margin-left: 40px;
}

.frame-tm-gap-xxl .ce-intext.ce-left .ce-gallery {
    margin-right: 40px;
}

.frame-tm-gap-xxl .ce-below .ce-gallery {
    margin-top: 40px;
}



@media screen and (max-width: 1699px) {

    .text_teaser_slider .teaser_slider_nav h2,
    .text_teaser_slider .teaser_slider_nav h2 p,
    .text_teaser_slider .teaser_slider_nav h2 p i {
        font-size: 5rem;
    }

    .text_teaser_slider .heading {
        font-size: 3rem;
        line-height: 1.15;
    }
}


@media screen and (max-width: 1620px) {

    .limited,
    .frame-type-ce_columns2,
    .frame-type-ce_columns3,
    .frame-type-ce_columns4,
    :is(.frame-type-ce_accordion, .ce-accordion),
    .main_content>.frame-type-textmedia {
        max-width: calc(100vW - 50px);
    }

    .nav-level-1 {
        padding: 0 2rem;
    }
}


@media screen and (max-width: 1450px) {
    .nav-level-1 {
        padding: 0 1rem;
    }

    .btn_preise {
        margin-left: 1.2rem;
    }
}

@media screen and (max-width: 1300px) {
    #logo_desktop img {
        width: 12rem;
    }

    .nav-level-1 {
        font-size: 2rem;
    }
}


@media screen and (max-width: 1179px) {
    .nav-level-2-col-1 {
        width: 30%;
    }

    .nav-level-2-col-2,
    .nav-level-2-col-3 {
        width: 35%;
        padding: 2rem;
    }

    .menue_image_holder {
        max-width: calc(100% - 2rem);
    }

    .teaser_slider_nav h2 {
        margin-left: 1rem;
    }

    .spielplan_zeiten {
        font-size: 2rem;
    }

    .spielplan_zeiten b {
        font-size: 3.8rem;
    }

    .spielplan_headline i {
        font-size: 4rem;
    }

    .spielplan_headline p {
        font-size: 3.8rem;
        line-height: 1.2;
    }
}



@media (max-width: 1024px) {

    #header_desktop,
    #quicklinks_desktop {
        display: none;
    }

    #header {
        height: 9.5rem;
        padding-top: 0;
    }

    #header_mobile {
        display: block;
    }

    .main_content_holder {
        padding: 9rem 0 0 0;
    }

    body,
    body p,
    .main_content_holder p {
        font-size: 1.92rem;
    }

    .headerslider_header p {
        font-size: 6rem;
    }

    .headerslider_header p i {
        font-size: 5.84rem;
    }

    .headerslider_subheader,
    .headerslider_subheader p {
        font-size: 5.76rem;
    }

    .page-73 .frame-tm-gap-md .ce-intext.ce-left .ce-gallery {
        width: 36%;
        max-width: 22rem;
        margin-right: 2rem;
    }

    .page-73 .frame-tm-gap-md .ce-intext.ce-left .ce-gallery .ce-column,
    .page-73 .frame-tm-gap-md .ce-intext.ce-left .ce-gallery figure,
    .page-73 .frame-tm-gap-md .ce-intext.ce-left .ce-gallery img {
        width: 100% !important;
        max-width: 100%;
        height: auto;
    }

    .page-173 h2.heading_0 {
        font-size: 4.96rem;
    }

    .breadcrumb-item,
    .breadcrumb-item+.breadcrumb-item::before {
        font-size: 3.2rem;
    }

    .breadcrumb {
        flex-direction: column;
        align-items: flex-start;
    }

    .breadcrumb-item {
        width: 100%;
    }

    .breadcrumb-item+.breadcrumb-item {
        padding-left: 0;
    }

    .breadcrumb-item.active.current a {
        text-decoration: underline;
        text-decoration-thickness: 0.1rem;
        text-underline-offset: 0.3rem;
    }
}


@media screen and (max-width: 1000px) {

    .headerslider_header {
        font-size: 5rem;
        line-height: 1.2;
    }

    .headerslider_subheader {
        font-size: 5rem;
        line-height.1.2;
    }

    .info_dreispaltig .row {
        padding-left: 0;
    }

    .info_3_links {
        width: 25rem;
    }

    .info_3_mitte {
        width: calc(100% - 26rem);
    }

    .info_3_rechts {
        margin-top: 5rem;
    }

    #sponsoren {
        display: inline-block;
        padding: 1rem;
    }

    #footer_desktop h3 {
        margin-bottom: 1rem;
        font-weight: 600;
    }

    #footer_desktop .col-2 {
        width: 33%;
        padding-bottom: 2rem;
    }

    #footer_desktop .col-4 {
        width: 66%;
        padding-bottom: 2rem;
    }

    html {
        font-size: 50%;
    }

    .footerItem,
    .footerItem a {
        font-size: 2rem;
    }

    .bestellformular label {
        font-size: 2rem;
    }

    #terms,
    #datasave {
        transform: scale(1.5);
    }

    .bestellformular .check-text {
        margin-left: 1.5rem;
    }

    #footer_desktop a {
        font-size: 2rem;
    }

    .homeslider .inszenierung .altersempfehlung {
        top: 5rem;
        right: 2.2rem;
        width: 4rem;
    }

    .homeslider .inszenierung .altersempfehlung img {
        width: 5rem;
        height: 5rem;
    }



    .aktuelles_hochbild img {
        height: 86rem !important;
        width: auto !important;
    }

    .inszenierung_p .altersempfehlung_inner img {
        width: 5.4rem;
        height: 5.4rem;
    }


    .abschlusstext.limited {
        padding: 2rem;
    }

    .inszenierung_p .slider_termin_trenner {
        display: none;
    }

    .person.limited .col-7 {
        max-width: 30%;
        margin-left: 1.5rem;
    }

    .person.limited .col-5 {
        max-width: 68%;
        width: 68%;
    }

    .infokacheln {
        padding-left: 0;
    }

    .kontakte {
        display: grid;
        grid-template-columns: repeat(auto-fill, minmax(33.8rem, 1fr));
        gap: 2rem;
        width: 100%;
        padding-left: 0rem;
    }

}


@media screen and (max-width: 800px) {

    .menschen_filter {
        font-size: 3rem;

    }

    .beteiligung_title p {
        font-size: 4rem;
        line-height: 1.1;
    }

    .headerslider_overlay {
        display: none;
    }


    .headerslider_overlay_small {
        display: block;
        padding: 2rem;
    }

    .infokacheln .col-5,
    .infokacheln .col-7 {
        width: 100%;
        margin-bottom: 5rem;
    }

    .infokacheln .infokachel {
        padding: 6rem 5rem 10rem 5rem;
    }

    .home_title_holder {
        top: 3rem;
        left: 3rem;
    }

    .home_title p {
        font-size: 5rem;
        line-height: 1.02;
    }

    .home_title p i {
        font-size: 5.5rem;
        line-height: 0.95;
    }

    .home_subtitle {
        font-size: 2rem;
        line-height: 1.1rem;
    }

    .spielplan_buttons .claim-ohne-lautsprache {
        display: none;
    }

    .spielplan_zeiten .claim-ohne-lautsprache {
        display: block;
        border-bottom: 0;
    }

    .spielplan_zeiten .claim-ohne-lautsprache:hover {
        transform: scale(1.1);
    }

    .person.limited .col-7 {
        width: 50%;
        max-width: 50%;
        margin-left: 2rem;
    }

    .person.limited .col-5 {
        max-width: 100%;
        width: 100%;
        padding-left: 2rem;
    }



    .person.limited .col-6 {
        max-width: 100%;
        width: 100%;
        padding-left: 2rem;
    }
}

@media screen and (max-width: 640px) {

    .limited {
        max-width: 100%;
    }

    .infokacheln.limited {
        max-width: none;
        width: auto;
        margin-left: 2rem;
        margin-right: 0;
    }


    .page-37 .homeslider .img-fluid {
        width: 300%;
        max-width: 300%;
        margin-left: -100%;
    }

    .page-37 .homeslider {
        font-size: 3rem;
    }

    .spielplan_teaser {
        font-size: 1.8rem;
    }

    .kontakte {

        grid-template-columns: repeat(2, 1fr);
    }

    .headerslider_headlines {
        position: absolute;
        top: 2.5rem;
        left: 2.5rem;
    }

    .person.limited .col-7 {
        width: calc(100% - 2rem);
        max-width: 100%;
        margin-left: 2rem;
    }

    .info_3_rechts {
        width: 100%;
        padding-right: 2rem;
    }

    .person.limited .homeslider_prev {
        right: 8rem;
        bottom: 1rem;
    }

    .person.limited .homeslider_next {
        right: 3rem;
        bottom: 1rem;
    }

    .inszenierung_p .col-5 {
        width: 100%;
        margin-left: 1.5rem;
    }

    .inszenierung_p .col-7 {
        width: 100%;
    }

    .inszenierung_p .homeslider_prev {
        right: 10rem;
        bottom: 1rem;
    }

    .inszenierung_p .homeslider_next {
        right: 3rem;
        bottom: 1rem;
    }

    .sponsoren_holder>* {
        flex: 0 0 calc((100% - 2rem) / 3);
        box-sizing: border-box;
    }

    .sponsoren_holder img {
        display: block;
        margin-left: auto;
        margin-right: auto;
        margin-bottom: 5px;
    }

    .home_title p i {
        font-size: 6.5rem;
        line-height: 0.9;
    }

    .home_title p {
        font-size: 6rem;
        line-height: 1.15;
    }

    .homeslider .slider_overlay {
        transform: scale(0.75);
        bottom: 1rem;
        left: -1.5rem;
    }

    .home_subtitle {
        font-size: 3.2rem;
        line-height: 1.15;
        margin-top: 0.5rem;
        margin-left: 0.25rem;
    }


    .homeslider .inszenierung .altersempfehlung {
        top: 2rem;
        transform: scale(0.8);
    }

    .homeslider .inszenierung .ohne_lautsprache {
        top: 1.9rem;
        right: 4rem;
        transform: scale(0.65);
    }

    h2 {
        font-size: 3.1rem;
        margin-bottom: 2.25rem;
    }

    .teaser_slider_nav h2 {
        font-size: 5rem;
    }

    .teaser_slider .slider_img_holder img {
        width: 35rem;
    }

    .teaser_slider {
        margin-bottom: 10rem;
    }

    .slider_prev {
        right: 6rem;
        bottom: -46rem;
    }


    .slider_next {
        right: 1rem;
        bottom: -46rem;
    }


    .spontan_slider .slider_prev {
        right: 6rem;
        bottom: -75rem;
    }


    .home_title_holder {
        width: calc(100% - 16rem);
    }

    .spontan_slider .slider_next {
        right: 1rem;
        bottom: -75rem;
    }




    .homeslider_prev {
        right: 6rem;
        bottom: 1rem;
    }

    .homeslider_next {
        right: 1rem;
        bottom: 1rem;
    }

    .gelbe_kugel {
        width: 11.25rem;
        height: 11.4rem;
    }

    .slider_element {
        margin-right: 0rem;
        border: 5px solid white;
    }


    .spontan_slider .slider_img_holder img {
        width: 34rem;
        height: auto;
    }

    .spontan_slider .termin.text-center {
        font-size: 2rem;
    }

    .slider_bottom {
        padding: 1rem;
    }

    .slider_play_title p {
        font-size: 2rem;
        line-height: 1.2;
    }

    .slider_play_title p i {
        font-size: 2.2rem;
        line-height: 1.2;
    }


    .slider_title_text {
        font-size: 2.4rem;
        line-height: 1;
    }

    .teaser_slider_nav h2 p i {
        font-size: 5rem;
    }

    .schwarze_kugel {
        width: 11rem;
        height: 11rem;
    }

    .slider_title_arrow {
        margin-top: -0.5rem;
    }

    .w36 {
        max-width: 21.8rem;
    }

    .spielplan_zeiten.col-2 {
        width: 100%;
        position: relative;
    }

    .spielplan_infos.col-6 {
        width: 66%;
    }

    .spielplan_item {
        padding-left: 2rem;
        padding-right: 2rem;
    }

    .spielplan_bild.col-4 {
        width: 100%;
        padding-bottom: 3rem;
    }

    .spielplan_infos.col-6 {
        width: 100%;
    }

    .spielplan_buttons .slider_action .infos {
        left: 0;
    }

    .spielplan_buttons .slider_action .karten_verfuegbar {
        left: 18rem;
    }

    .spielplan_headline p {
        font-size: 4.6rem;
    }

    .spielplan_headline p i {
        font-size: 4.4rem;
    }

    .main_content .limited {
        width: calc(100% - 1rem);
        margin-left: 1rem;
    }


    .spielplan_zeiten .claim-ohne-lautsprache {
        position: absolute;
        top: -5rem;
        right: 1rem;
        width: 11rem;
    }

    .main_content>.container {
        width: calc(100% - 2rem);
        margin-left: 1rem;
    }

    .haken_reservierung {
        background-size: contain;
        background-repeat: no-repeat;
    }

    .spielplan_headline i {
        font-size: 3rem;
    }



    .spieplan_altersempfehlung img {
        width: 4rem;
        height: 4rem;
    }

    .spielplan_headline {
        width: calc(100% - 4rem);
        padding-top: 1rem;
    }

    .spielplan_bild {
        text-align: center;
        margin-top: 1.5rem;
    }

    .spielplan_subheading {
        font-size: 3rem;
        line-height: 1.2;
    }

    .custom-select-pill {
        font-size: 1rem;
    }

    .inszenierung_text {
        padding: 3.5rem 1rem 0 1rem;

    }

    .main_content {
        padding-right: 2rem;
    }

    .menschen {
        grid-template-columns: repeat(2, 1fr);
    }
}

@media screen and (max-width: 600px) {
    h2.heading_0 {
        font-size: 4.2rem;
    }

    .kontakte {
        grid-template-columns: 1fr;
        gap: 4rem;
        padding-right: 2rem;
        padding-left: 2rem;
    }

    .kontakt {
        display: flex;
        flex-direction: column;
        align-items: flex-start;
        height: auto;
        margin-bottom: 0;
    }

    .kontaktbutton {
        position: static;
        margin-top: 1.5rem;
    }
}


@media screen and (max-width: 500px) {
    h2.heading_30 {
        font-size: 3rem;
    }

    .slider_holder.slider {
        touch-action: pan-y;
    }

    .teaser_slider .slider_inner {
        display: flex;
        align-items: stretch;
    }

    .teaser_slider .teaser_slider_nav {
        position: static;
    }

    .teaser_slider .slider_prev,
    .teaser_slider .slider_next {
        bottom: -6rem;
    }

    .text_teaser_slider .slider_element {
        height: auto !important;
        min-height: 0;
        padding-bottom: 9rem;
    }

    .info_3_links {
        width: 100%;
        margin-bottom: 5rem;
    }

    .info_3_mitte {
        width: 100%;
    }

    .headerslider_header {
        font-size: 3rem;
    }

    h2.moh {
        font-size: 3rem;
        margin-top: 5rem;
    }

    .teaser_slider_nav h2 {
        padding-right: 0;
    }

    h2.moh i {
        font-size: 3rem;
    }

    .slider_holder.slider {
        margin-left: 2rem;
        width: calc(100% - 2rem);
    }

    .slider_element {
        max-width: 80vW;
    }

    .text_teaser_slider .slider_element {
        padding: 2rem;
    }

    .page-23 .slider_prev {
        bottom: -66rem;
    }

    .slider_element .tt_headline p {
        line-height: 1.1;
    }

    .page-23 .slider_next {
        bottom: -66rem;
    }

    .headerslider_subheader {
        font-size: 3rem;
    }

    .sponsoren_holder>* {
        flex: 0 0 calc((100% - 1rem) / 2);
        box-sizing: border-box;
    }

    .sponsoren_holder img {
        display: block;
        margin-left: 0;
        margin-right: auto;
    }

    #sponsoren {
        overflow-x: hidden;
    }

    #footer_desktop .col-2 {
        width: 49%;
        padding-bottom: 2rem;
    }

    #footer_desktop .col-4 {
        width: 49%;
        padding-bottom: 2rem;
    }

    #footer_desktop .col-2.text-end {
        width: 100%;
        text-align: center;
    }

    #footer_desktop a {
        font-size: 1.8rem;
    }

    #footer_desktop {
        overflow-x: hidden;
    }

    .home_title_holder {
        left: 1.25rem;
    }

    .homeslider .slider_overlay {
        transform: scale(1);
        left: 2rem;
        bottom: 2rem;
        width: 33rem;
    }


    .inszenierung.limited .homeslider .slider_overlay {
        display: none !important;
    }

    .homeslider_prev.prev {
        display: none;
    }

    .homeslider_next.next {
        display: none;
    }

    .aktuelles_slider.teaser_slider .slider_element {
        width: 35rem !important;
        height: auto;
        min-height: 86rem;
        overflow-y: visible;
        display: grid;
        grid-template-rows: 43rem auto;
    }

    .aktuelles_slider .slider_inner {
        display: flex;
        align-items: stretch;
    }

    .aktuelles_hochbild {
        display: none;
    }

    .aktuelles_slider.teaser_slider .slider_element.slider_element_hochbild {
        width: 1px !important;
    }


    .aktuelles_slider .teaser_slider_nav {
        position: static;
    }

    .aktuelles_slider .slider_prev,
    .aktuelles_slider .slider_next {
        bottom: -6rem;
    }

    .aktuelles_slider .slider_holder {
        touch-action: pan-y;
    }

    .aktuelles_infotext {
        margin-top: 2rem;
        font-size: 2rem;
    }

    .sponsoren_label {
        margin-top: 2rem;
        margin-bottom: 2rem;
        text-align: left;
        padding-left: 2rem;
        font-size: 1.8rem;
        text-transform: uppercase;
    }

    .sponsoren_holder {
        padding-left: 2rem;
        padding-top: 2rem;
    }

    #footer_desktop {
        display: none;
    }

    #footer_mobile {
        display: inline-block;
    }

    #footer_mobile .col-7 {
        padding-left: 0;
        margin-bottom: 4rem;
    }

    #footer_mobile .col-6 {
        padding-left: 0;
        margin-bottom: 4rem;
    }

    .spielplan_bild.col-4 {
        padding: 0 0 0 1rem;
    }

    .spielplan_infos .altersempfehlung {
        margin-top: 1rem;
    }

    .inszenierungs-infos-mobile {
        background-color: #f4f4f4;
        margin: 0 0 0 2rem;
        width: calc(100% - 3rem);
        padding: 1rem;
        display: block;
    }

    .inszenierungs-infos-mobile .slider_overlay_heading {
        margin-bottom: 1rem;
    }

    #footer_mobile {
        font-weight: 600;
    }

    .spielplan_heading {
        padding-left: 2rem;
        font-size: 3rem;
        margin-top: 2rem;

    }

    .aktuelles_slider.teaser_slider .slider_element .aktuelles_bild .slider_img_holder {
        top: 0;
        left: 0;
        width: 100%;
        height: 100%;
        position: absolute;
        overflow: hidden;
    }

    .aktuelles_slider.teaser_slider .slider_element .aktuelles_bild {
        grid-row: 1;
        height: 43rem;
        position: relative;
    }

    .inszenierung_infos {
        font-size: 3rem;
    }

    .inszenierung_zusatzinfos {
        padding-right: 2rem;
        padding-left: 2rem;
    }

    .inszenierung_zusatzinfos>.row {
        --bs-gutter-x: 0;
    }

    .inszenierungsuebersicht_items {
        width: calc(100% - 2rem);
        margin-left: 2rem;
        overflow-x: hidden;
        padding: 0;
    }


    .aktuelles_slider.teaser_slider .slider_element .aktuelles_bild .slider_img_holder img {
        width: 100%;
        height: 100%;
        object-fit: cover;
        display: block;
    }

    .aktuelles_slider.teaser_slider .slider_element .aktuelles_text {
        grid-row: 2;
        top: auto;
        left: 0;
        width: 100%;
        height: auto;
        min-height: 43rem;
        position: relative;
    }

    .aktuelles_text {
        padding: 4.5rem 3rem 3rem !important;
    }

    .aktuelles_slider .aktuelles_button {
        position: static;
        display: inline-block;
        margin-top: 2rem;
    }

    .custom-select-pill.alter {
        font-size: 2rem;
        padding: 0.5rem;
        width: 12rem;
    }

    .custom-select-pill.monat {
        font-size: 2rem;
        padding: 0.5rem width: 12rem;
    }

    .spielplan_filter {
        padding-left: 2rem;
        margin-top: 5rem;
    }

    #footer {
        padding: 3rem;
    }

    .teaser_slider .slider_prev,
    .teaser_slider .slider_next {
        bottom: -6rem;
    }

    .text_teaser_slider .slider_element {
        display: flex;
        flex-direction: column;
        height: auto !important;
        padding: 2rem !important;
    }

    .text_teaser_slider a.pillbutton {
        position: static;
        align-self: flex-start;
        margin-top: auto;
    }

}

.home-info-mobile {
    display: none;
}

/* Home-Slider: mobile cards keep the full content in the height calculation. */
@media screen and (max-width: 640px) {
    .home-slider-cards.homeslider {
        display: grid;
        height: auto !important;
        /* Override the desktop image height set by JS. */
        background: #fff;
    }

    .home-slider-cards.homeslider figure {
        position: relative;
        inset: auto;
        grid-area: 1 / 1;
        align-self: start;
        min-width: 0;
        display: flex;
        flex-direction: column;
        visibility: hidden;
    }

    .home-slider-cards.homeslider figure.is-active {
        visibility: visible;
    }

    .home-slider-cards.homeslider figure>.img-fluid,
    .home-slider-cards.homeslider figure>a,
    .home-slider-cards.homeslider .homevideo-wrapper {
        order: -1;
        display: block;
        width: 100%;
        max-width: 100%;
        margin: 0;
        aspect-ratio: 283 / 297;
        overflow: hidden;
    }

    .home-slider-cards.homeslider figure>.img-fluid,
    .home-slider-cards.homeslider figure>a>.img-fluid {
        width: 100%;
        max-width: 100%;
        height: auto;
        margin: 0;
        aspect-ratio: 283 / 297;
        object-fit: cover;
    }

    .home-slider-cards.homeslider .homevideo {
        width: 100%;
        height: 100%;
    }

    .home-slider-cards .home_title_holder {
        position: static;
        width: 100%;
        margin-top: 12px;
        text-shadow: none;
        overflow-wrap: anywhere;
    }

    .home-slider-cards .home_title p {
        color: #000;
        font-size: 28px;
        line-height: 1.1;
    }

    .home-slider-cards .home_title p i {
        color: #000;
        font-size: 29px;
        line-height: 1.1;
    }

    .home-slider-cards .home_subtitle {
        color: #000;
        font-size: 13px;
        line-height: 1.2;
        margin: 12px 0 0;
    }

    .home-slider-cards figcaption {
        display: none;
    }

    .home-slider-cards.homeslider .slider_overlay {
        position: static;
        display: grid;
        grid-template-columns: minmax(0, 1fr) auto;
        grid-template-areas:
            "topper date"
            "info ticket";
        align-items: center;
        gap: 18px 14px;
        width: 100%;
        height: auto;
        min-height: 0;
        padding: 18px 12px;
        margin: 20px 0 0;
        transform: none;
        background: #f4f4f4;
        color: #000;
    }

    .home-slider-cards.homeslider .slider_overlay_heading,
    .home-slider-cards.homeslider .slider_overlay .slider_overlay_vorstellung {
        position: static;
        margin: 0;
        padding: 0;
        font-size: 18px;
        line-height: 1.3;
        white-space: normal;
    }

    .home-slider-cards.homeslider .slider_overlay_heading {
        grid-area: topper;
    }

    .home-slider-cards.homeslider .slider_overlay .slider_overlay_vorstellung {
        grid-area: date;
    }

    .home-slider-cards .slider_overlay_vorstellung .termin b {
        gap: 5px;
        font-size: 24px;
    }

    .home-slider-cards .slider_overlay_heading:empty {
        display: none;
    }

    .home-slider-cards.homeslider .slider_overlay .infos,
    .home-slider-cards.homeslider .slider_overlay .karten_verfuegbar,
    .home-slider-cards.homeslider .slider_overlay .ausverkauft {
        position: static;
    }

    .home-slider-cards .slider_overlay .pillbutton {
        width: 80px;
        height: 32px;
        padding: 0;
        font-size: 12px;
        line-height: 30px;
        letter-spacing: 0.05em;
    }

    .home-slider-cards.homeslider .slider_overlay .karten_verfuegbar {
        position: relative;
        width: 150px;
        height: 42px;
        padding: 8px 14px;
        background: #1d1d1d;
        background-image: none;
        font-size: 14px;
    }

    .home-slider-cards .home-slider-ticket-label {
        font-size: 12px;
    }

    .home-slider-cards .slider_overlay .ausverkauft {
        flex-direction: column;
        align-items: flex-start;
        gap: 2px;
        width: 150px;
        max-width: 100%;
        font-size: 13px;
    }

    .home-slider-cards.homeslider .inszenierung .altersempfehlung {
        top: 13px;
        right: 13px;
        width: 26px;
        height: 26px;
        transform: none;
    }

    .home-slider-cards.homeslider .inszenierung .altersempfehlung_inner {
        position: static;
        line-height: 1;
    }

    .home-slider-cards.homeslider .inszenierung .altersempfehlung img {
        display: block;
        width: 26px;
        height: 26px;
    }

    .home-slider-cards.homeslider .inszenierung .ohne_lautsprache {
        top: 13px;
        right: 49px;
        width: 26px;
        height: 26px;
        transform: none;
    }

    .home-slider-cards .home-info-desktop {
        display: none;
    }

    .home-slider-cards .home-info-mobile {
        display: inline;
    }
}

.spielplan-mobile-age,
.spielplan-info-mobile {
    display: none;
}

.spielplan-calendar .spielplan_filter {
    flex-wrap: wrap;
}

.spielplan-empty[hidden] {
    display: none;
}

.spielplan-calendar :is(button, select):focus-visible {
    outline: 2px solid #21292f;
    outline-offset: 2px;
}

.spielplan-empty {
    padding: 24px 0;
    font-size: 16px;
}

@media screen and (max-width: 640px) {

    .spielplan-calendar .spielplan_heading,
    .spielplan-calendar .spielplan_heading i {
        padding: 0;
        font-size: 23px;
        line-height: 1.3;
        color: #707070;
    }

    .spielplan-calendar .spielplan_heading .nav_item {
        float: none;
        margin: 0;
        color: inherit;
    }

    .spielplan-calendar .spielplan_filter {
        margin-top: 28px;
        padding: 0 0 10px;
        gap: 8px;
    }

    .spielplan-calendar .spielplan_filter> :is(button, select, .button_lautsprache) {
        width: 80px;
        min-width: 0;
        max-width: 33%;
        height: 30px;
        margin: 0;
        font-size: 12px;
        padding: 3px 20px 3px 8px;
        border-color: #ddd;
        background-size: 9px;
    }

    .spielplan-calendar .spielplan_filter>.spielplan-month {
        width: auto;
        max-width: 100%;
        background-position: right 8px center;
    }

    .spielplan-calendar .spielplan_filter>.button_lautsprache {
        background-size: 80%;
    }

}

/* Production catalogue: mobile cards with content-driven height. */
@media screen and (max-width: 640px) {

    .inszenierungsuebersicht .spielplan_heading,
    .inszenierungsuebersicht .spielplan_heading i {
        padding: 0;
        font-size: 23px;
        line-height: 1.3;
        color: #707070;
    }

    .inszenierungsuebersicht .spielplan_heading .nav_item {
        float: none;
        margin: 0;
        color: inherit;
    }

    .inszenierungsuebersicht .spielplan_filter {
        margin-top: 28px;
        padding: 0 0 10px;
        gap: 8px;
    }

    .inszenierungsuebersicht .spielplan_filter .custom-select-pill,
    .inszenierungsuebersicht .spielplan_filter .button_lautsprache {
        width: 90px;
        height: 30px;
        margin: 0;
        padding: 3px 20px 3px 8px;
        border-color: #ddd;
        font-size: 12px;
    }

    .inszenierungsuebersicht .inszenierungsuebersicht_items {
        grid-template-columns: minmax(0, 1fr);
        gap: 18px;
        width: 100%;
        margin: 0;
        padding: 0;
        overflow: visible;
    }

    .inszenierungsuebersicht .inszenierungsuebersicht_items>a {
        min-width: 0;
    }

    .inszenierungsuebersicht .inszenierung_image_holder>.img-fluid {
        display: block;
        width: 100%;
        height: auto;
        aspect-ratio: 283 / 210;
        object-fit: cover;
    }

    .inszenierungsuebersicht .inszenierung_image_holder .altersempfehlung_inner {
        top: 12px;
        right: 12px;
    }

    .inszenierungsuebersicht .inszenierung_image_holder .altersempfehlung_inner img {
        width: 26px;
        height: 26px;
        aspect-ratio: 1;
    }

    .inszenierungsuebersicht .inszenierung_image_holder .ohne_lautsprache {
        top: 12px;
        right: 48px;
        width: 26px;
        height: 26px;
    }

    .inszenierungsuebersicht .inszenierung_text {
        display: grid;
        grid-template-columns: minmax(0, 1fr) auto;
        align-items: end;
        column-gap: 12px;
        height: auto;
        padding: 12px 10px;
        background: #f4f4f4;
        color: #000;
    }

    .inszenierungsuebersicht .inszenierung_text .spielplan_headline {
        grid-column: 1 / -1;
        width: 100%;
        padding: 0;
        overflow-wrap: anywhere;
    }

    .inszenierungsuebersicht .inszenierung_text .spielplan_headline p {
        margin: 0;
        font-size: 20px;
        line-height: 1.15;
        color: #000;
    }

    .inszenierungsuebersicht .inszenierung_text .spielplan_headline i {
        font-size: 21px;
        line-height: 1.15;
    }

    .inszenierungsuebersicht .inszenierung_text .spielplan_subheading {
        grid-column: 1 / -1;
        margin: 10px 0 0;
        font-size: 13px;
        line-height: 1.2;
        overflow-wrap: anywhere;
    }

    .inszenierungsuebersicht .inszenierungen_vorstellung {
        position: static;
        display: flex;
        flex-wrap: wrap;
        align-items: baseline;
        gap: 4px 8px;
        grid-column: 1;
        grid-row: 3;
        margin-top: 28px;
        font-size: 18px;
        line-height: 1.3;
    }

    .inszenierungsuebersicht .inszenierungen_vorstellung>b,
    .inszenierungsuebersicht .inszenierungen_vorstellung>div {
        float: none;
        white-space: nowrap;
    }

    .inszenierungsuebersicht .spielzeitinfo {
        position: static;
        grid-column: 2;
        grid-row: 3;
        margin: 28px 0 0;
        font-size: 9px;
        line-height: 1.5;
        text-align: right;
        max-width: 110px;
        overflow-wrap: anywhere;
    }
}

/* Spontaneous cards show only individually bookable performances with remaining seats. */
.spontan_slider .slider_inner {
    display: flex;
    align-items: stretch;
}

.spontan_slider .slider_element {
    display: flex;
    flex-direction: column;
    flex: 0 0 380px;
    width: 380px;
    max-width: calc(100vw - 32px);
    margin-right: 30px;
    padding: 0;
    border: 0;
    float: none;
}

.spontan_slider .slider_img_holder {
    display: block;
    flex-shrink: 0;
    width: 100%;
}

.spontan_slider .slider_img_holder img {
    display: block;
    width: 100%;
    height: auto;
    aspect-ratio: 380 / 335;
    object-fit: cover;
}

.spontan_slider .slider_bottom {
    display: flex;
    flex-direction: column;
    flex: 1;
    min-height: 360px;
    margin: 0;
    padding: 24px 18px 25px;
    border: 1px solid #292929;
    border-top: 0;
    color: #000;
}

.spontan_slider .termin.text-center {
    margin-bottom: 26px;
    font-size: 40px;
    line-height: 1.2;
}

.spontan_slider .termin b {
    font-family: HurmeGeometricSans1;
    font-weight: 600;
    display: inline-flex;
    align-items: baseline;
    gap: 8px;
}

.spontan_slider .termin sup {
    position: static;
    align-self: flex-start;
    padding-top: 5px;
    font-size: 0.6em;
    line-height: 1.2;
}

.spontan_slider .spontan-performances {
    display: grid;
    grid-template-columns: repeat(auto-fit, minmax(145px, 1fr));
    justify-content: center;
    gap: 18px 14px;
    width: 100%;
}

.spontan_slider .spontan-performance {
    position: relative;
    justify-self: center;
    width: 100%;
    max-width: 172px;
    min-width: 0;
}

.spontan_slider .spontan-ticket {
    position: relative;
    display: grid;
    grid-template-columns: 16px max-content max-content;
    align-items: center;
    justify-content: center;
    gap: 4px;
    width: 100%;
    min-height: 52px;
    padding: 12px 16px;
    border-radius: 9px;
    background: #1d1d1d;
    color: #fff;
    font-family: HurmeGeometricSans1;
    font-weight: 400;
    font-style: normal;
    letter-spacing: 0;
    font-size: 16px;
    font-variant-numeric: tabular-nums;
    line-height: 1.2;
    text-align: left;
    text-decoration: none;
    white-space: nowrap;
}

.spontan_slider .spontan-ticket:hover,
.spontan_slider .spontan-ticket:focus-visible {
    background: #454545;
    color: #fff;
}

.spontan_slider .spontan-ticket:focus-visible {
    outline: 2px solid #000;
    outline-offset: 3px;
}

.spontan_slider .spontan-ticket-label {
    font-size: inherit;
    letter-spacing: 0;
}

.spontan_slider .spontan-availability-key {
    display: flex;
    align-items: center;
    justify-content: center;
    gap: 10px;
    margin: 13px 0 0;
    color: #c7c7c7;
    font-size: 13px;
    line-height: 1.2;
}

.spontan_slider .slider_play_title {
    display: flex;
    width: 100%;
    min-height: 0;
    max-width: 100%;
    margin: 30px 0 20px;
    overflow-wrap: anywhere;
}

.spontan_slider .slider_play_title,
.spontan_slider .slider_play_title p {
    font-size: 24px;
    line-height: 1.2;
    color: #000;
}

.spontan_slider .slider_play_title p {
    margin: 0;
}

.spontan_slider .slider_play_title i,
.spontan_slider .slider_play_title p i {
    font-size: 26px;
    line-height: 1.2;
}

.spontan_slider .slider_action {
    display: flex;
    justify-content: center;
    margin-top: auto;
}

.spontan_slider .slider_action .infos,
.spontan_slider .slider_action .pillbutton {
    position: static;
    width: 104px;
    height: 52px;
}

.spontan_slider .slider_action .pillbutton {
    padding: 0;
    font-size: 18px;
    line-height: 50px;
}

@media screen and (max-width: 640px) {
    .spontan_slider .teaser_slider_nav h2 {
        margin-left: 16px;
        padding-right: 16px;
        margin-bottom: 32px;
    }

    .spontan_slider .teaser_slider_nav h2,
    .spontan_slider .teaser_slider_nav h2 p,
    .spontan_slider .teaser_slider_nav h2 p i {
        font-size: 28px;
        line-height: 1.2;
    }

    .spontan_slider .teaser_slider_nav h2 p {
        margin-bottom: 0;
    }

    .spontan_slider {
        position: relative;
        padding-bottom: 76px;
    }

    .spontan_slider .teaser_slider_nav {
        position: static;
    }

    .spontan_slider .slider_prev,
    .spontan_slider .slider_next {
        display: block;
        top: auto;
        bottom: 0;
        width: 4rem;
        height: 4rem;
    }

    .spontan_slider .slider_prev {
        left: auto;
        right: 6rem;
    }

    .spontan_slider .slider_next {
        left: auto;
        right: 1rem;
    }

    .spontan_slider .slider_holder {
        touch-action: pan-y;
    }

    .spontan_slider .slider_element {
        flex-basis: calc(100vw - 72px);
        width: calc(100vw - 72px) !important;
        max-width: 405px;
        height: auto;
        margin-right: 8px;
        padding: 0;
        border: 0;
    }

    .spontan_slider .slider_bottom {
        min-height: 350px;
        padding: 18px 12px 20px;
    }

    .spontan_slider .termin.text-center {
        margin-bottom: 18px;
        font-size: clamp(32px, 9vw, 40px);
    }

    .spontan_slider .spontan-performances {
        grid-template-columns: repeat(auto-fit, minmax(132px, 1fr));
        gap: 14px 12px;
    }

    .spontan_slider .spontan-ticket {
        grid-template-columns: 14px max-content max-content;
        gap: 3px;
        padding: 10px 8px;
        font-size: 14px;
    }

    .spontan_slider .spontan-availability-key {
        gap: 8px;
        margin-top: 10px;
    }

    .spontan_slider .slider_play_title {
        margin: 22px 0 16px;
    }

    .spontan_slider .slider_play_title,
    .spontan_slider .slider_play_title p {
        font-size: 22px;
    }

    .spontan_slider .slider_play_title i,
    .spontan_slider .slider_play_title p i {
        font-size: 24px;
    }
}

/* Decorative stone directly before the home page's Spontan slider (content 78). */
.page-37 .schwarze_kugel {
    margin-left: -6rem;
}

.page-37 #c78 .schwarze_kugel {
    background-image: url(../Images/Kugeln_gelb.png);
}

.booking-status-label {
    text-align: right;
    max-width: 16rem;
    font-size: 1.6rem;
    line-height: 1.3;
    white-space: normal;
}

.spielplan_zeiten .zusatz {
    text-align: right;
    max-width: 100%;
    overflow-wrap: anywhere;
}

.booking-status-line {
    display: block;
    white-space: nowrap;
}

/* Schedule cards: three columns, then tablet rows, then a single mobile column. */
.spielplan-calendar .spielplan_item {
    display: grid;
    grid-template-columns: minmax(180px, 0.6fr) minmax(0, 1fr) minmax(0, 1.8fr);
    gap: clamp(20px, 2.6vw, 44px);
    margin: 0;
    padding: 38px 0;
    color: #1d1d1d;
    opacity: 1;
    border-top: 1px solid #292929;
}

.spielplan-calendar .spielplan_item> :is(.spielplan_zeiten, .spielplan_bild, .spielplan_infos) {
    min-width: 0;
    width: auto;
    margin: 0;
    padding: 0;
}

.spielplan-calendar .spielplan_zeiten div {
    border: 0;
}

.spielplan-calendar .spielplan-date b {
    display: flex;
    align-items: baseline;
    gap: 8px;
    font-size: clamp(32px, 2.6vw, 44px);
    line-height: 1.2;
    white-space: nowrap;
}

.spielplan-calendar .spielplan-date sup {
    position: static;
    align-self: flex-start;
    padding-top: 5px;
    font-size: 0.55em;
    line-height: 1.2;
}

.spielplan-calendar .spielplan-times {
    display: grid;
    grid-template-columns: 198px;
    justify-content: start;
    gap: 16px;
    margin-top: 20px;
}

.spielplan-calendar .spielplan_zeit {
    display: flex;
    flex-direction: column;
    align-items: flex-start;
    max-width: 100%;
    gap: 6px;
}

.spielplan-calendar .spielplan-time-ticket {
    position: relative;
    display: inline-grid;
    grid-template-columns: 18px 5ch minmax(0, 1fr);
    align-items: center;
    text-align: left;
    gap: 7px;
    width: 198px;
    max-width: 100%;
    min-height: 52px;
    padding: 12px 20px;
    border: 0;
    border-radius: 9px;
    background: #1d1d1d;
    color: #fff;
    font: inherit;
    font-variant-numeric: tabular-nums;
    font-size: 18px;
    line-height: 1.2;
    text-decoration: none;
    white-space: nowrap;
    cursor: pointer;
}

.spielplan-calendar .spielplan-time-ticket .iconfont {
    font-size: 18px;
}

.spielplan-calendar a.spielplan-time-ticket:hover {
    background: #454545;
}

.spielplan-calendar .spielplan-time-ticket:disabled {
    background: #a3a3a3;
    color: #fff;
    opacity: 1;
    cursor: default;
}

.spielplan-calendar a:focus-visible {
    outline: 2px solid #000;
    outline-offset: 4px;
}

.spielplan-calendar .spielplan-time-note {
    width: 198px;
    max-width: 100%;
    font-size: 13px;
    line-height: 1.3;
}

.spielplan-calendar .spielplan_bild {
    position: relative;
    align-self: start;
}

.spielplan-calendar .spielplan_bild>.img-fluid {
    display: block;
    width: 100%;
    height: auto;
    aspect-ratio: 1.29;
    object-fit: cover;
}

.spielplan-calendar .spielplan_infos {
    position: relative;
    display: flex;
    flex-direction: column;
    align-items: flex-start;
}

.spielplan-calendar .spieplan_altersempfehlung {
    position: absolute;
    top: 0;
    right: 0;
    float: none;
    width: 42px;
}

.spielplan-calendar .spieplan_altersempfehlung :is(.altersempfehlung, .altersempfehlung_inner) {
    position: static;
    width: 42px;
    height: 42px;
    margin: 0;
    padding: 0;
}

.spielplan-calendar .spieplan_altersempfehlung img {
    width: 42px;
    height: 42px;
    transform: none;
}

.spielplan-calendar .spielplan_headline {
    width: 100%;
    padding: 0 58px 0 0;
    overflow-wrap: anywhere;
}

.spielplan-calendar .spielplan_headline p {
    font-size: clamp(28px, 2.7vw, 48px);
    line-height: 1.12;
    margin: 0 0 16px;
}

.spielplan-calendar .spielplan_headline p i {
    font-size: inherit;
    line-height: inherit;
}

.spielplan-calendar .spielplan_subheading {
    font-size: clamp(18px, 1.6vw, 26px);
    line-height: 1.3;
    margin-bottom: 12px;
    overflow-wrap: anywhere;
}

.spielplan-calendar .spielplan_teaser {
    font-size: clamp(16px, 1.25vw, 21px);
    line-height: 1.5;
    overflow-wrap: anywhere;
}

.spielplan-calendar .spielplan_buttons {
    height: auto;
    margin-top: auto;
    padding-top: 28px;
}

.spielplan-calendar .spielplan_buttons .slider_action .infos {
    position: static;
    width: auto;
    height: auto;
}

.spielplan-calendar .spielplan_buttons .pillbutton {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    width: 128px;
    height: 52px;
    padding: 0;
    font-size: 20px;
    line-height: 1;
}

.spielplan-calendar .spielplan_zeiten .claim-ohne-lautsprache {
    display: none;
}

.spielplan-calendar .spielplan_buttons .claim-ohne-lautsprache {
    display: block;
    position: static;
    margin-top: 16px;
    width: 118px;
    height: 32px;
}

.spielplan-calendar :is(.spielplan-mobile-date-tabs, .spielplan-mobile-tabpanel) {
    display: none;
}

@media (min-width: 768px) and (max-width: 1179px) {
    .spielplan-calendar .spielplan_item {
        grid-template-columns: minmax(0, 1fr) minmax(0, 1.35fr);
        gap: 24px;
    }

    .spielplan-calendar .spielplan_zeiten {
        grid-column: 1 / -1;
        display: flex;
        align-items: flex-start;
        flex-wrap: wrap;
        gap: 20px 28px;
    }

    .spielplan-calendar .spielplan-times {
        flex: 1 1 198px;
        grid-template-columns: repeat(auto-fit, 198px);
        justify-content: start;
        margin-top: 0;
    }
}

@media (max-width: 767px) {
    .spielplan-calendar .spielplan_item {
        grid-template-columns: minmax(0, 1fr);
        gap: 0;
        padding: 0 0 38px;
    }

    .spielplan-calendar .spielplan_zeiten .spielplan-date {
        padding: 20px 0 16px;
        border-bottom: 1px solid #292929;
    }

    .spielplan-calendar .spielplan-date b {
        font-size: 40px;
    }

    .spielplan-calendar .spielplan-times {
        grid-template-columns: repeat(auto-fit, 180px);
        justify-content: start;
        margin: 18px 0;
        gap: 12px 18px;
    }

    .spielplan-calendar .spielplan-time-ticket {
        width: 180px;
        font-size: 16px;
    }

    .spielplan-calendar .spielplan_bild>.img-fluid {
        aspect-ratio: 1.35;
    }

    .spielplan-calendar .spielplan-mobile-age {
        display: block;
        position: absolute;
        top: 13px;
        right: 13px;
        filter: invert(1);
    }

    .spielplan-calendar .spielplan-mobile-age img {
        display: block;
        width: 40px;
        height: 40px;
    }

    .spielplan-calendar .spieplan_altersempfehlung,
    .spielplan-calendar .spielplan_teaser,
    .spielplan-calendar .spielplan-heading-arrow {
        display: none;
    }

    .spielplan-calendar .spielplan_headline {
        padding: 0;
        margin-top: 8px;
    }

    .spielplan-calendar .spielplan_headline p {
        font-size: 5rem;
        line-height: 1.15;
        margin-bottom: 12px;
    }

    .spielplan-calendar .spielplan_headline p i {
        font-size: 5.5rem;
    }

    .spielplan-calendar .spielplan_subheading {
        font-size: 20px;
        line-height: 1.25;
        margin-bottom: 0;
    }

    .spielplan-calendar .spielplan_buttons {
        margin-top: 0;
        padding-top: 28px;
    }

    .spielplan-calendar .spielplan_buttons .pillbutton {
        width: 104px;
    }

    .spielplan-calendar .spielplan-mobile-group-primary .spielplan_zeiten> :is(.spielplan-date, .spielplan-times) {
        display: none;
    }

    .spielplan-calendar .spielplan_zeiten .spielplan-mobile-date-tabs {
        display: flex;
        flex-wrap: wrap;
        align-items: baseline;
        justify-content: flex-start;
        gap: 10px 18px;
        width: 100%;
        padding: 20px 0 16px;
        border-bottom: 1px solid #292929;
        overflow: visible;
    }

    .spielplan-calendar .spielplan-date-tab {
        flex: 0 0 auto;
        margin: 0;
        padding: 0;
        border: 0;
        background: transparent;
        color: #c8c8c8;
        cursor: pointer;
    }

    .spielplan-calendar .spielplan-date-tab[hidden] {
        display: none;
    }

    .spielplan-calendar .spielplan-date-tab[aria-selected="true"] {
        color: #1d1d1d;
    }

    .spielplan-calendar .spielplan-date-tab b {
        display: flex;
        align-items: baseline;
        gap: 7px;
        color: inherit;
        font-size: 40px;
        line-height: 1.2;
        white-space: nowrap;
    }

    .spielplan-calendar .spielplan-date-tab sup {
        position: static;
        align-self: flex-start;
        padding-top: 5px;
        font-size: 0.55em;
        line-height: 1.2;
    }

    .spielplan-calendar .spielplan-date-tab:focus-visible {
        outline: 2px solid #21292f;
        outline-offset: 4px;
    }

    .spielplan-calendar .spielplan-mobile-tabpanel {
        display: block;
    }

    .spielplan-calendar .spielplan-mobile-tabpanel .spielplan-times {
        margin: 18px 0;
    }
}

@media (max-width: 640px) {
    .spielplan-calendar .spielplan_headline p {
        font-size: 28px;
    }

    .spielplan-calendar .spielplan_headline p i {
        font-size: 29px;
    }
}

@media (max-width: 500px) {
    .spielplan-calendar .spielplan-times {
        grid-template-columns: repeat(auto-fill, minmax(135px, 1fr));
        gap: 12px;
    }

    .spielplan-calendar .spielplan-time-ticket {
        grid-template-columns: 14px 5ch minmax(0, max-content);
        justify-content: center;
        gap: 4px;
        width: 100%;
        padding: 10px 8px;
        font-size: 14px;
    }

    .spielplan-calendar .spielplan-time-ticket .iconfont {
        font-size: 14px;
    }

    .spielplan-calendar .spielplan-ticket-label {
        font-size: 12px;
    }
}

/* Catalogue premiere toggle follows the production premiere banner. */
.inszenierungsuebersicht .spielplan_filter {
    flex-wrap: wrap;
    align-items: center;
}

.inszenierungsuebersicht .catalogue-categories {
    margin-top: 2rem;
}

.inszenierungsuebersicht .catalogue-categories .breadcrumb {
    display: block;
    margin-bottom: 0;
}

.inszenierungsuebersicht .catalogue-categories .breadcrumb-item {
    display: inline;
    width: auto;
    color: #707070;
}

.inszenierungsuebersicht .catalogue-categories .breadcrumb-item + .breadcrumb-item {
    padding-left: 0;
}

.inszenierungsuebersicht .catalogue-categories .breadcrumb-item::before {
    content: none;
}

.inszenierungsuebersicht .catalogue-categories button {
    padding: 0;
    border: 0;
    background: transparent;
    color: inherit;
    font: inherit;
    text-decoration: none;
}

.inszenierungsuebersicht .catalogue-categories button.active,
.inszenierungsuebersicht .catalogue-categories button:hover {
    color: #21292f;
}

															  
							   
									  
								  
 

.inszenierungsuebersicht .catalogue-categories button:focus-visible {
    outline: 2px solid #21292f;
    outline-offset: 4px;
}

.spontan_slider button.slider_prev,
.spontan_slider button.slider_next {
    border: 0;
    padding: 0;
    background-color: transparent;
}

.spontan_slider button:focus-visible {
    outline: 2px solid #222;
    outline-offset: 4px;
}

@media (min-width: 768px) {
    /* Badge top: centered 5rem holder in 6.5rem row, with -0.35rem margin. */
    .production-intro > .homeslider {
        margin-top: calc(var(--bs-gutter-y) + 0.575rem);
    }

    .production-intro .altersempfehlung_inner.il img {
        display: block;
    }
}

/* Footer logos use the editor's height; SVGs with small source dimensions can grow. */
.sponsoren_holder > * {
    display: flex;
    flex: 0 1 18rem;
    align-items: center;
    justify-content: center;
    min-width: 0;
}

.sponsoren_holder img {
    width: auto;
    height: 12rem;
    max-width: 100%;
    max-height: none;
    object-fit: contain;
}

@media (min-width: 768px) {
    #sponsoren {
        display: block;
        padding: clamp(3rem, 4vw, 5rem);
    }

    .sponsoren_label {
        margin-bottom: 3rem;
        text-align: left;
        text-transform: uppercase;
        font-size: 1.8rem;
    }

    .sponsoren_holder {
        display: flex;
        flex-wrap: wrap;
        justify-content: center;
        gap: 3rem 2rem;
    }

    .sponsoren_holder > * {
        flex: 0 0 calc((100% - 6rem) / 4);
    }

    .sponsoren_end {
        display: none;
    }
}

@media (min-width: 1801px) {
    .sponsoren_holder {
        flex-wrap: nowrap;
    }

    .sponsoren_holder > * {
        flex: 1 1 0;
    }
}

@media (max-width: 767px) {
    #footer {
        padding: 3rem 2.5rem 4rem;
    }

    #footer_desktop {
        display: none;
    }

    #footer_mobile {
        display: block;
        width: 100%;
        font-weight: normal;
    }

    #footer_mobile .row {
        display: grid;
        grid-template-columns: repeat(2, minmax(0, 1fr));
        gap: 3rem 2rem;
        margin: 0;
    }

    #footer_mobile .row > * {
        width: auto;
        min-width: 0;
        margin: 0;
        padding: 0;
    }

    #footer_mobile .footer-mobile-extra {
        grid-column: 1 / -1;
    }

    #footer_mobile h3 {
        margin: 0 0 1.5rem;
        font-size: 1.75rem;
        font-weight: 400;
        line-height: 1.3;
    }

    #footer_mobile .footerItem,
    #footer_mobile .footerItem a {
        font-size: 1.8rem;
        line-height: 1.5;
        font-weight: 600;
    }

    #footer_mobile .footer-mobile-social {
        white-space: nowrap;
    }

    #footer_mobile .footer-mobile-social a {
        display: inline-flex;
        width: 5.5rem;
        height: 5.5rem;
        margin-left: 1rem;
        vertical-align: top;
    }

    #footer_mobile .footer-mobile-social .socialmediaicon {
        display: block;
        width: 100%;
        height: 100%;
        margin: 0;
        object-fit: contain;
    }

    #sponsoren {
        display: block;
        width: 100%;
        padding: 3.5rem 2.5rem 4rem;
        overflow: visible;
    }

    .sponsoren_label {
        margin: 0 0 2.5rem;
        padding: 0;
        text-align: left;
        text-transform: uppercase;
        font-size: 1.8rem;
    }

    .sponsoren_holder {
        display: grid;
        grid-template-columns: repeat(2, minmax(0, 1fr));
        gap: 2.5rem 2rem;
        padding: 0;
    }

    .sponsoren_holder > * {
        width: 100%;
        min-width: 0;
    }

    .sponsoren_holder > img {
        width: auto;
        justify-self: center;
    }

    .sponsoren_holder img {
        height: 12rem;
        margin: 0;
    }

    .sponsoren_end {
        display: none;
    }
}

/* Home navigation stays inside the image, independently of the text below. */
.home-slider-cards.homeslider {
    container-type: inline-size;
}

.home-slider-cards.homeslider > :is(.homeslider_prev.prev, .homeslider_next.next) {
    display: block;
    top: 50%;
    bottom: auto;
    transform: translateY(-50%);
}

.home-slider-cards.homeslider > .homeslider_prev.prev {
    left: 1rem;
    right: auto;
}

.home-slider-cards.homeslider > .homeslider_next.next {
    left: auto;
    right: 1rem;
}

@media screen and (max-width: 640px) {
    .home-slider-cards.homeslider > :is(.homeslider_prev.prev, .homeslider_next.next) {
        /* Mobile image aspect ratio is 283 / 297. */
        top: calc(100cqw * 297 / 566);
    }
}

.home-slider-cards.homeslider > :is(.homeslider_prev.prev, .homeslider_next.next):hover {
    transform: translateY(-50%) scale(1.2);
}

/* Native group controls retain the existing Menschen navigation typography. */
.menschen_filter button.nav_item_filter {
    appearance: none;
    border: 0;
    padding: 0;
    background: transparent;
    font: inherit;
    color: inherit;
    text-align: left;
}
.menschen_filter button.nav_item_filter.active,
.menschen_filter button.nav_item_filter:hover {
    color: #21292F;
}

/* Akkordeonüberschriften der Menschen-Seite. */
body.page-15 :is(.frame-type-ce_accordion, .ce-accordion, .faq-accordion) .accordion-button {
    font-family: 'Novela';
    font-size: 36px;
    font-weight: 400;
    font-style: italic;
}

/* Inszenierungsdetail: Galerie oberhalb der redaktionellen Spalten. */
.production-detail { margin-bottom: 4rem; }
.production-detail .production-gallery {
    position: relative;
    max-width: 100%;
    width: var(--production-gallery-width, 100%);
    margin: 0 auto 5rem;
    --production-gallery-height: calc(100svh - 14rem);
}
.production-gallery-stage { display: grid; place-items: center; }
.production-gallery .production-slide { margin: 0; min-width: 0; width: 100%; }
.production-gallery .production-slide[hidden],
.production-gallery [hidden] { display: none !important; }
.production-gallery .production-slide img,
.production-gallery .production-slide video,
.production-gallery .production-slide iframe {
    display: block;
    width: auto;
    max-width: 100%;
    height: auto;
    max-height: var(--production-gallery-height);
    object-fit: contain;
    margin: 0 auto;
}
.production-gallery .production-slide video { width: 100%; }
.production-gallery .production-slide iframe { width: 100%; aspect-ratio: 16 / 9; }
.production-gallery-controls {
    position: absolute;
    inset: 0;
    pointer-events: none;
}
.production-gallery-dots {
    display: flex;
    flex-wrap: wrap;
    justify-content: center;
    gap: .6rem;
    position: absolute;
    left: 50%;
    transform: translateX(-50%);
    max-width: 50%;
    bottom: 1.5rem;
}
.production-gallery-dots button {
    width: 1rem;
    height: 1rem;
    padding: 0;
    border: 0;
    border-radius: 50%;
    background: #ffffff66;
    pointer-events: auto;
}
.production-gallery-dots button[aria-current="true"] { background: white; }
.production-gallery-arrows button {
    position: absolute;
    top: 50%;
    bottom: auto;
    width: 4rem;
    height: 4rem;
    padding: 0;
    border: 0;
    background-color: transparent;
    background-size: contain;
    background-repeat: no-repeat;
    transform: translateY(-50%);
    transition: transform .2s;
    cursor: pointer;
    pointer-events: auto;
}
.production-gallery-prev { left: 1rem; background-image: url(../Images/prev.svg); }
.production-gallery-next { right: 1rem; background-image: url(../Images/next.svg); }
.production-gallery-arrows button:hover { transform: translateY(-50%) scale(1.2); }
.production-gallery-controls.is-video .production-gallery-dots { bottom: auto; top: 1.5rem; }
.production-columns {
    display: grid;
    grid-template-columns: minmax(0, 3fr) minmax(0, 2fr);
    align-items: start;
    gap: 4rem;
}
.production-copy, .production-sidebar { min-width: 0; }
.production-detail h1 { margin: 0; font-size: 4rem; line-height: 1.15; }
.production-detail h1 i { font-style: italic; }
.production-detail .production-subtitle { margin: 2rem 0; font-size: 2.5rem; line-height: 1.3; }
.production-detail .beschreibung { margin-top: 2rem; text-align: left; }
.production-detail .beschreibung p { font-size: 1.8rem; line-height: 1.6; }
.production-detail .mitwirkende { margin-top: 2rem; }
.production-detail .mitwirkende p { font-size: 1.8rem; line-height: 1.4; }
.production-easy-language { border-block: 1px solid #707070; margin-top: 2rem; padding: 1rem 0; }
.production-easy-language summary { display: flex; align-items: center; gap: 1.5rem; cursor: pointer; list-style: none; font-size: 1.5rem; }
.production-easy-language summary::-webkit-details-marker { display: none; }
.production-easy-language summary::after {
    content: '';
    flex: 0 0 1rem;
    width: 1rem;
    height: 1rem;
    margin: 0 .8rem 0 auto;
    border-right: 2px solid currentColor;
    border-bottom: 2px solid currentColor;
    transform: translateY(-.25rem) rotate(45deg);
    transition: transform .2s;
}
.production-easy-language[open] summary::after { transform: translateY(.25rem) rotate(225deg); }
.production-book { display: grid; place-items: center; width: 4rem; height: 4rem; border: 1px solid; border-radius: 50%; }
.production-detail .production-easy-language p { font-size: 1.8rem; }
.production-meta { display: flex; align-items: center; flex-wrap: wrap; gap: 1.4rem; padding: 1rem; border-block: 1px solid #707070; font: italic 2.2rem 'Novela'; }
.production-meta .production-duration { margin-left: auto; }
.production-meta .production-age { width: 3rem; height: 3rem; }
.production-meta .ohne_lautsprache { position: static; padding: 0; border: 0; flex: 0 0 3rem; width: 3rem; height: 3rem; }
.production-detail .production-preparation { margin-top: 2rem; padding: 2.5rem; box-shadow: 0 .5rem .8rem #0000000d; }
.production-detail .production-preparation h2 { margin: 0 0 2rem; font-size: 3.2rem; line-height: 1.15; }
.production-detail .production-preparation p { font-size: 1.6rem; line-height: 1.5; }
.production-material { display: inline-flex; align-items: center; justify-content: center; gap: .8rem; padding: 1rem 2.5rem; border-radius: 4rem; background: #21292f; color: white; font-size: 1.6rem; font-weight: 600; margin: 1rem 1rem 0 0; text-decoration: none; }
.production-material:hover { background: #48525a; color: white; }
.production-extra-content { width: 100%; margin-top: 4rem; }
.production-extra-content img { max-width: 100%; height: auto; }
.production-extra-content .frame { max-width: 100%; }
@media (max-width: 767px) {
    .production-detail .production-gallery { margin-bottom: 5rem; --production-gallery-height: none; }
    .production-columns { grid-template-columns: minmax(0, 1fr); gap: 4rem; }
    .production-detail h1 { font-size: 3rem; }
    .production-detail .production-subtitle { font-size: 2.2rem; }
    .production-detail .beschreibung p { font-size: 1.6rem; line-height: 1.55; }
    .production-detail .production-preparation { margin-top: 2rem; }
    .production-meta { font-size: 2rem; }
}

.production-detail .beschreibung.smaller p { font-size: 1.6rem; }

.production-gallery picture { display: block; }

.production-material svg { flex: 0 0 1.8rem; width: 1.8rem; height: 1.8rem; }

/* Next Bilettix performance within the production information column. */
.production-next-date { padding: 3.5rem 1rem 2rem; border-bottom: 1px solid #707070; }
.production-next-date h2 { margin: 0 0 1.4rem; font: 400 1.8rem/1.4 'HurmeGeometricSans1', sans-serif; }
.production-next-date-row { display: flex; align-items: flex-start; flex-wrap: wrap; gap: 1.5rem; }
.production-next-date time { display: flex; align-items: flex-start; gap: 1rem; padding-top: .7rem; font-size: 3rem; line-height: 1; font-weight: 600; white-space: nowrap; }
.production-next-weekday { font-size: 1.6rem; line-height: 2.3rem; }
.production-next-ticket { min-width: 0; }
.production-next-ticket .spielplan-time-ticket { width: 16rem; min-height: 4.4rem; padding: .8rem 1.4rem; grid-template-columns: 1.4rem 5ch minmax(0, 1fr); gap: .5rem; font-size: 1.4rem; }

/* Optional additional person information. Bootstrap manages dialog focus and dismissal. */
.person-more-link {
    display: inline-block;
    margin-top: 1.5rem;
    padding: 0;
    border: 0;
    background: transparent;
    color: inherit;
    font: italic 400 2.4rem 'Novela', Georgia, serif;
    text-decoration: underline;
    text-underline-offset: .2em;
    cursor: pointer;
}

.person-more-link:hover,
.person-more-link:focus-visible {
    color: #707070;
}

.person-more-modal .modal-body {
    padding-top: 4rem;
    overflow-wrap: anywhere;
}
