@import url('https://fonts.googleapis.com/css2?family=Lobster&family=Montserrat:wght@400;600;700&family=Open+Sans:wght@400;600;700&family=Oswald:wght@400;600;700&family=Playfair+Display:wght@400;700&family=Roboto+Slab:wght@400;700&display=swap');
*{box-sizing:border-box}html{scroll-behavior:smooth}body{margin:0;background:#fff;color:#222;font-family:Georgia,'Times New Roman',serif;line-height:1.55}a{color:inherit}
.original-header{background:#fff;box-shadow:0 8px 18px rgba(0,0,0,.16);position:relative;z-index:100}
.original-head-inner{width:min(1500px,96vw);min-height:178px;margin:auto;display:flex;align-items:center;gap:48px}
.circus-logo{display:flex;align-items:center;justify-content:center;width:400px;min-width:300px;text-decoration:none}.circus-logo img{max-width:330px;max-height:145px;object-fit:contain}
.original-nav{display:flex;align-items:stretch;margin-left:auto;background:var(--blue);height:54px}
.original-nav a{display:flex;align-items:center;padding:0 26px;color:#fff;text-decoration:none;font-size:20px;white-space:nowrap}.original-nav a:hover,.original-nav a.active{background:var(--red)}
.hamb{display:none}.wrap{width:min(1420px,90vw);margin:auto}.content{padding:50px 0;font-size:20px}.content h1,.content h2,.content h3{line-height:1.15}.content h1{font-size:46px}.content h2{font-size:34px}.content h3{font-size:28px}.content a{color:#a81718}.content img{max-width:100%;height:auto}
.hero-slider{height:var(--hero-height);position:relative;overflow:hidden;background:#111}.hero-slide{position:absolute;inset:0;background-size:cover;background-position:center;opacity:0;transition:opacity 1s ease,transform 7s ease;transform:scale(1.01)}.hero-slide.active{opacity:1;transform:scale(1.045)}.hero-slider:after{content:"";position:absolute;inset:0;background:linear-gradient(to top,rgba(0,0,0,.48),transparent 52%)}.hero-caption{position:absolute;z-index:3;left:50%;bottom:42px;transform:translateX(-50%);width:min(1400px,90vw);color:#fff;text-shadow:0 2px 8px #000}.hero-caption h1{font:400 clamp(3rem,6vw,6rem)/1 'Lobster',cursive;margin:0}.hero-kicker{font-family:'Oswald',sans-serif;text-transform:uppercase;letter-spacing:.16em;color:#f2c64f}.hero-dots{position:absolute;z-index:4;bottom:16px;left:50%;transform:translateX(-50%);display:flex;gap:8px}.hero-dots button{width:11px;height:11px;border-radius:50%;border:1px solid #fff;background:transparent}.hero-dots button.active{background:#fff}.page-title{padding:42px 0 25px}.page-title h1{font:400 58px 'Lobster',cursive;color:#a81718;margin:0}
.original-script{font-family:'Lobster',cursive!important;color:#a81718!important;text-shadow:2px 3px 5px rgba(0,0,0,.18);font-weight:400!important}.original-centered{text-align:center}.original-centered h1{font:400 clamp(3rem,6vw,5.4rem)/1.05 'Lobster',cursive;color:#a81718;text-shadow:2px 3px 5px rgba(0,0,0,.2)}.original-centered p{font-size:23px}

/* PROGRAMM - editorial instead of cards */
.program-hero{padding:58px 0 32px;text-align:center}.program-hero h1{font:400 clamp(3.2rem,6vw,5.6rem) 'Lobster',cursive;color:#a81718;margin:0}.program-hero .sub{font-size:25px;font-weight:700;letter-spacing:.02em}.program-hero .intro{font-size:21px;margin-top:8px}
.program-list{width:min(1500px,94vw);margin:auto}
.program-act{padding:72px 0;border-top:1px solid #ddd}.program-act:first-child{border-top:0}.program-act-inner{display:grid;grid-template-columns:minmax(0,1.08fr) minmax(420px,.92fr);gap:55px;align-items:center}.program-act:nth-child(even) .program-media{order:2}.program-act:nth-child(even) .program-copy{order:1}
.program-main-image{width:100%;aspect-ratio:16/10;object-fit:cover;box-shadow:0 18px 45px rgba(0,0,0,.18)}
.program-gallery{display:grid;grid-template-columns:repeat(3,1fr);gap:9px;margin-top:9px}.program-gallery img{width:100%;aspect-ratio:4/3;object-fit:cover;cursor:pointer;transition:.25s}.program-gallery img:hover{transform:translateY(-3px);box-shadow:0 8px 20px rgba(0,0,0,.2)}
.program-copy h2{font:400 clamp(2.5rem,4vw,4.5rem)/1 'Lobster',cursive;color:#a81718;margin:0 0 8px;text-shadow:2px 3px 5px rgba(0,0,0,.14)}.program-subtitle{font:700 24px/1.25 Georgia,serif;margin-bottom:24px}.program-description{font-size:19px;line-height:1.65}.program-description p{margin:0 0 1em}.program-act.featured{background:linear-gradient(135deg,#faf6ee,#fff)}.program-note{text-align:center;padding:40px 20px 65px;font-style:italic;color:#555}
.image-lightbox{display:none;position:fixed;inset:0;background:rgba(0,0,0,.9);z-index:9999;place-items:center;padding:30px}.image-lightbox.open{display:grid}.image-lightbox img{max-width:95vw;max-height:90vh}.image-lightbox button{position:absolute;right:25px;top:20px;font-size:35px;background:none;border:0;color:#fff}

/* INFOS */
.info-page{padding-bottom:70px}.info-top{text-align:center;padding:22px 0 16px}.info-gift{font:400 37px 'Lobster',cursive;color:#a81718;text-shadow:2px 3px 5px rgba(0,0,0,.17)}.info-season{font:400 32px 'Lobster',cursive;color:#a81718;margin:7px 0}.info-location{font-size:20px;color:#084a80;text-decoration:underline}.show-grid{display:grid;grid-template-columns:repeat(4,1fr);width:min(1400px,90vw);margin:15px auto 32px}.show-card{min-height:300px;padding:36px 28px;text-align:center;display:flex;flex-direction:column;align-items:center;justify-content:flex-start;color:#fff}.show-card h2{font:400 30px 'Lobster',cursive;margin:0 0 26px;color:inherit}.show-card p{font-size:21px;line-height:1.38;margin:4px 0}.show-card-icon{font-size:45px;margin-top:auto;padding-top:20px}.heated{text-align:center;font-size:21px;margin:28px 0 48px}
.info-section{width:min(1400px,90vw);margin:38px auto}.info-section-title{font:700 30px Georgia,serif;color:#a81718;text-shadow:1px 2px 3px rgba(0,0,0,.12);border-bottom:2px solid #eee;padding-bottom:8px}.info-ticket-block{display:grid;grid-template-columns:repeat(3,1fr);gap:22px;margin-top:24px}.info-ticket-item{padding:25px;border:1px solid #ddd;background:#fff;box-shadow:0 10px 25px rgba(0,0,0,.07);position:relative}.info-ticket-item:before{content:"";position:absolute;left:0;top:0;right:0;height:5px;background:var(--red)}.info-ticket-item h3{font-size:21px;margin:4px 0 15px}.info-ticket-item p{font:18px Arial,sans-serif;line-height:1.55}.hotline-big{font-size:26px!important;color:#237ed0;text-decoration:underline}.cash-note{background:#fff7dc;border-left:5px solid #d7a62b;padding:15px 18px;margin-top:15px}
.price-wrap{width:min(1400px,90vw);margin:45px auto}.price-table{width:100%;border-collapse:collapse;box-shadow:0 12px 30px rgba(0,0,0,.08)}.price-table th{background:#084a80;color:#fff;padding:16px;text-align:left;font-size:18px}.price-table td{padding:15px 16px;border-bottom:1px solid #ddd;font:17px Arial,sans-serif}.price-table tr:nth-child(even) td{background:#f7f7f7}.special-prices{background:linear-gradient(135deg,#a81718,#801015);color:#fff;padding:35px;margin-top:38px;text-align:center}.special-prices h2{font:400 36px 'Lobster',cursive;margin:0 0 14px}.special-prices p{font-size:20px}
.site-footer{background:#f7f7f7;border-top:1px solid #ddd;padding:26px;text-align:center;font-size:14px}.site-footer a{margin:0 7px}
@media(max-width:1100px){.original-head-inner{min-height:120px}.circus-logo{width:300px}.original-nav a{padding:0 13px;font-size:16px}.program-act-inner{grid-template-columns:1fr;gap:25px}.program-act:nth-child(even) .program-media,.program-act:nth-child(even) .program-copy{order:initial}.show-grid{grid-template-columns:1fr 1fr}.info-ticket-block{grid-template-columns:1fr}}
@media(max-width:760px){.original-head-inner{flex-wrap:wrap;padding:10px 0}.circus-logo{width:auto;min-width:0}.circus-logo img{max-height:90px}.hamb{display:block;margin-left:auto;border:0;background:none;font-size:28px}.original-nav{display:none;width:100%;height:auto;flex-direction:column}.original-nav.open{display:flex}.original-nav a{padding:13px 18px}.hero-slider{height:420px}.show-grid{grid-template-columns:1fr}.program-list{width:92vw}.program-act{padding:45px 0}.program-gallery{grid-template-columns:repeat(2,1fr)}.content{font-size:17px}.info-ticket-block{grid-template-columns:1fr}}
/* TICKET-SHOP – klassisch wie Original, aber dynamisch */
.ticket-wow{padding-bottom:70px;background:#fff}
.ticket-intro{width:min(1450px,92vw);margin:auto;padding:44px 0 25px}
.ticket-kicker{font-family:'Oswald',sans-serif;letter-spacing:.20em;color:#d6a331;font-size:16px}
.ticket-intro h1{font:400 clamp(3.3rem,6vw,5.8rem)/1 'Lobster',cursive;color:#a81718;margin:8px 0 70px;text-shadow:2px 3px 5px rgba(0,0,0,.16)}
.ticket-season{display:flex;flex-direction:column;gap:4px;font-size:24px}
.ticket-season strong{font-size:28px}
.ticket-board{width:min(1500px,92vw);margin:auto}
.ticket-year-head{background:#a81718;color:#fff;display:flex;justify-content:space-between;align-items:center;padding:14px 16px;font-weight:700;font-size:22px}
.ticket-year-head a{color:#fff;text-decoration:underline}
.ticket-original-list{width:100%}
.ticket-original-row{display:grid;grid-template-columns:1.55fr .55fr 100px;align-items:center;min-height:90px;padding:14px 16px;background:#fff}
.ticket-original-row.alt{background:#e9f2f9}
.ticket-original-date{font-size:23px;font-weight:700}
.ticket-original-sub{font-size:21px;color:#a81718}
.ticket-original-note{font-size:16px;color:#555;margin-top:3px}
.ticket-buy a{font-size:21px;color:#2874b7;text-decoration:underline;white-space:nowrap}
.ticket-icon{font-size:28px;vertical-align:middle}
.ticket-discount{text-align:center}
.discount-fire{width:54px;height:65px;margin:auto;display:grid;place-items:center;color:#fff;font:bold 24px Arial;background:radial-gradient(circle at 50% 58%,#ff6a00 0 34%,#ffa800 35% 60%,transparent 61%);filter:drop-shadow(0 2px 2px rgba(0,0,0,.2))}

/* Infos fourth card */
.show-card-secondary{margin-top:22px;padding-top:18px;border-top:1px solid rgba(255,255,255,.55);width:100%}
.show-card-secondary h3{font:400 28px 'Lobster',cursive;color:inherit;margin:0 0 8px}

/* Anfahrt WOW */
.arrival-page{background:#fff}
.arrival-hero{display:grid;grid-template-columns:1fr 1.08fr;min-height:610px}
.arrival-left{padding:55px 7vw 45px;background:#fff;text-align:center}
.arrival-script{font:400 48px 'Lobster',cursive;color:#a81718;text-shadow:2px 3px 5px rgba(0,0,0,.17);margin-bottom:24px}
.arrival-address-main{display:flex;flex-direction:column;gap:2px;font-size:23px;letter-spacing:.10em}
.arrival-address-main strong{font-size:24px}
.arrival-highlight{font-size:28px;color:#a81718;font-weight:700;letter-spacing:.08em;margin:38px 0 30px}
.arrival-copy{font-size:21px;letter-spacing:.08em;line-height:1.55;margin:0 auto 34px;max-width:720px}
.arrival-navi{font-size:23px;letter-spacing:.12em}.arrival-navi span,.arrival-navi strong{display:block}
.arrival-map{min-height:610px;background:#ddd}.arrival-map iframe{width:100%;height:100%;min-height:610px;border:0;display:block}
.arrival-methods{width:min(1450px,92vw);margin:0 auto;padding:70px 0;display:grid;grid-template-columns:repeat(3,1fr);gap:28px}
.arrival-method{position:relative;padding:32px 30px;background:#fafafa;border-top:6px solid #084a80;box-shadow:0 14px 32px rgba(0,0,0,.08)}
.arrival-method:nth-child(2){border-top-color:#a81718}.arrival-method:nth-child(3){border-top-color:#d7a62b}
.arrival-method h2{font:400 34px 'Lobster',cursive;color:#a81718;margin:5px 0 20px}
.arrival-method ul{padding-left:20px;font-size:18px;line-height:1.6}.arrival-method p{font-size:18px}
.arrival-icon{font-size:42px}
.arrival-bottom{background:linear-gradient(110deg,#084a80 0 55%,#a81718 55% 100%);color:#fff;padding:35px 5vw;display:flex;justify-content:center;gap:240px;align-items:center}
.arrival-bottom-kicker{font-family:'Oswald',sans-serif;letter-spacing:.16em;text-transform:uppercase;color:#f2c64f}
.arrival-bottom h2{font-size:28px;margin:5px 0}
.arrival-bottom > div{min-width:420px}
.arrival-map-button{background:#fff;color:#084a80;text-decoration:none;font-weight:700;padding:14px 20px;box-shadow:0 6px 18px rgba(0,0,0,.18)}
@media(max-width:900px){
.ticket-original-row{grid-template-columns:1fr;gap:10px}.ticket-discount{text-align:left}.discount-fire{margin:0}
.ticket-intro h1{margin-bottom:35px}.ticket-season{font-size:19px}
.arrival-hero{grid-template-columns:1fr}.arrival-map,.arrival-map iframe{min-height:430px}.arrival-methods{grid-template-columns:1fr}.arrival-bottom{flex-direction:column;gap:20px;text-align:center}.arrival-bottom > div{min-width:0}
}

/* V8 visual polish */
body{overflow-x:hidden}
.original-header:after{content:"";display:block;height:3px;background:linear-gradient(90deg,#a81718,#d7a62b,#084a80)}
.original-nav a{transition:background .22s ease,color .22s ease,transform .22s ease}
.original-nav a:hover{transform:translateY(-1px)}
.hero-slider{height:var(--hero-height);box-shadow:0 20px 45px rgba(0,0,0,.18)}
.hero-slider:after{background:linear-gradient(to top,rgba(0,0,0,calc(var(--hero-overlay)/100)),transparent 56%)}
.page-title,.program-hero,.info-top,.ticket-intro{position:relative}
.page-title:after,.program-hero:after,.info-top:after,.ticket-intro:after{content:"";display:block;width:110px;height:3px;background:linear-gradient(90deg,var(--red),var(--gold));margin:20px auto 0;border-radius:3px}

/* Links */
a.circus-link,.info-location a,.ticket-buy a,.ticket-year-head a,.content a,.arrival-map-button{
transition:.2s ease;
text-underline-offset:4px;
text-decoration-thickness:1px;
}
.info-location a,.content a{color:var(--link);text-decoration:none;border-bottom:1px solid rgba(31,111,174,.35)}
.info-location a:hover,.content a:hover{color:var(--link-hover);border-bottom-color:var(--link-hover)}
.phone-link{display:inline-flex;align-items:center;gap:8px;color:var(--link)!important;text-decoration:none!important;border-bottom:0!important;font-weight:700}
.phone-link:hover{color:var(--link-hover)!important;transform:translateY(-1px)}
.ticket-buy a{display:inline-flex;align-items:center;gap:8px;color:var(--link);font-weight:700;text-decoration:none;border-bottom:2px solid transparent}
.ticket-buy a:hover{color:var(--link-hover);border-bottom-color:var(--link-hover)}
.ticket-year-head a{border:1px solid rgba(255,255,255,.55);padding:7px 12px;text-decoration:none;border-radius:2px}
.ticket-year-head a:hover{background:#fff;color:var(--red)}

/* WOW surfaces */
.info-page,.ticket-wow,.arrival-page{background:
radial-gradient(circle at 15% 0,rgba(215,166,43,.08),transparent 28%),
radial-gradient(circle at 90% 12%,rgba(168,23,24,.055),transparent 30%),
#fff}
.info-top{padding-top:40px}
.show-grid{box-shadow:0 16px 38px rgba(0,0,0,.10)}
.show-card{min-height:245px;padding:28px 25px;transition:transform .25s ease,box-shadow .25s ease}
.show-card:hover{transform:translateY(-5px);box-shadow:0 16px 28px rgba(0,0,0,.16);z-index:2}
.show-card h2{margin-bottom:16px}
.show-card p{font-size:19px;line-height:1.3}
.show-card-icon{font-size:38px;padding-top:12px}
.show-card-secondary{margin-top:14px;padding-top:13px}
.show-card-secondary h3{font-size:25px}
.info-ticket-item{transition:transform .25s ease,box-shadow .25s ease}
.info-ticket-item:hover{transform:translateY(-5px);box-shadow:0 18px 36px rgba(0,0,0,.12)}
.price-table{border-radius:4px;overflow:hidden}
.special-prices{box-shadow:0 18px 38px rgba(124,10,17,.20);position:relative;overflow:hidden}
.special-prices:before{content:"★";position:absolute;right:28px;top:10px;font-size:90px;color:rgba(255,255,255,.08)}

.ticket-original-row{transition:transform .18s ease,box-shadow .18s ease}
.ticket-original-row:hover{transform:translateX(4px);box-shadow:0 5px 18px rgba(0,0,0,.08);position:relative;z-index:1}
.discount-fire{transition:transform .2s ease}.ticket-original-row:hover .discount-fire{transform:scale(1.1) rotate(3deg)}

.arrival-method{transition:transform .25s ease,box-shadow .25s ease}.arrival-method:hover{transform:translateY(-6px);box-shadow:0 20px 42px rgba(0,0,0,.12)}

/* Hero admin */
.hero-preview{width:100%;aspect-ratio:16/9;background-size:cover;background-repeat:no-repeat}
.compact-form{gap:8px}
.compact-form input[type=range]{padding:0}
.or-divider{text-align:center;color:#8b95a6;text-transform:uppercase;font-size:.75rem;letter-spacing:.14em}
.hero-admin-card .pad{padding:12px}

/* Better mobile */
@media(max-width:760px){
 .original-header{position:sticky;top:0}
 .original-head-inner{min-height:78px;padding:6px 12px}
 .circus-logo img{max-height:64px;max-width:190px}
 .hamb{font-size:30px;padding:8px}
 .original-nav{box-shadow:0 12px 25px rgba(0,0,0,.18)}
 .original-nav a{font-size:17px;padding:13px 16px}
 .hero-slider{height:var(--hero-mobile-height);min-height:0}
 .hero-caption{bottom:28px}
 .hero-caption h1{font-size:3.1rem}
 .hero-kicker{font-size:11px}
 .ticket-intro{padding:28px 0 20px}
 .ticket-intro h1{font-size:3.35rem;margin-bottom:28px}
 .ticket-kicker{font-size:12px}
 .ticket-season strong{font-size:23px}
 .ticket-year-head{font-size:17px;padding:11px 12px;gap:10px}
 .ticket-year-head a{font-size:14px;padding:6px 8px}
 .ticket-original-row{padding:14px 12px}
 .ticket-original-date{font-size:18px}
 .ticket-original-sub{font-size:17px}
 .ticket-buy a{font-size:17px}
 .ticket-icon{font-size:22px}

 .info-top{padding:28px 12px 18px}
 .info-gift{font-size:29px}
 .info-season{font-size:25px}
 .info-location{font-size:17px}
 .show-grid{width:94vw;margin-top:10px}
 .show-card{min-height:auto;padding:24px 18px}
 .show-card h2{font-size:27px}
 .show-card p{font-size:18px}
 .heated{font-size:18px;margin:20px 0 32px}
 .info-section,.price-wrap{width:94vw}
 .info-ticket-item{padding:20px}
 .hotline-big{font-size:21px!important}

 .price-table,.price-table tbody,.price-table tr,.price-table td{display:block;width:100%}
 .price-table thead,.price-table tr:first-child{display:none}
 .price-table tr{margin-bottom:14px;border:1px solid #ddd;background:#fff;box-shadow:0 6px 16px rgba(0,0,0,.06)}
 .price-table td{display:grid;grid-template-columns:46% 54%;gap:10px;border-bottom:1px solid #eee;padding:11px 13px;font-size:16px}
 .price-table td:last-child{border-bottom:0}
 .price-table td:before{content:attr(data-label);font-weight:700;color:#084a80}
 .price-table td[data-label="Kategorie"]{display:block;background:#084a80;color:#fff;font-size:18px}
 .price-table td[data-label="Kategorie"]:before{display:none}

 .arrival-left{padding:36px 20px}
 .arrival-script{font-size:38px}
 .arrival-address-main{font-size:17px;letter-spacing:.06em}
 .arrival-address-main strong{font-size:19px}
 .arrival-highlight{font-size:21px;letter-spacing:.04em}
 .arrival-copy{font-size:17px;letter-spacing:.03em}
 .arrival-navi{font-size:19px}
 .arrival-map,.arrival-map iframe{min-height:360px}
 .arrival-methods{padding:40px 0}
 .arrival-bottom h2{font-size:22px}

 .program-hero{padding:38px 15px 22px}
 .program-hero h1{font-size:3.1rem}
 .program-hero .sub{font-size:20px}
 .program-act{padding:38px 0}
 .program-copy h2{font-size:2.9rem}
 .program-subtitle{font-size:20px}
 .program-description{font-size:17px}
}

/* tablet */
@media(min-width:761px) and (max-width:1100px){
 .show-grid{grid-template-columns:repeat(2,1fr)}
 .ticket-original-row{grid-template-columns:1.3fr .6fr 80px}
 .ticket-original-date{font-size:20px}
 .original-nav{flex-wrap:wrap;height:auto}
}

/* V9 PROGRAMM – Aufbau wie die bestehende Originalseite */
.program-page-head{
    padding:55px 20px 34px;
    text-align:center;
    background:
        radial-gradient(circle at 50% -30%,rgba(215,166,43,.13),transparent 50%),
        #fff;
}
.program-page-head h1{
    margin:0;
    color:#a81718;
    font:400 clamp(3rem,6vw,5.2rem)/1 'Lobster',cursive;
    text-shadow:2px 3px 5px rgba(0,0,0,.16);
}
.program-page-tagline{
    margin-top:12px;
    font-size:25px;
    font-weight:700;
}
.program-page-head p{font-size:20px;margin:6px 0 0}

.program-original-layout{
    width:min(1460px,91vw);
    margin:auto;
}
.original-program-act{
    padding:34px 0 8px;
}
.original-program-title{
    display:flex;
    flex-wrap:wrap;
    align-items:baseline;
    gap:12px 20px;
    margin-bottom:18px;
}
.original-program-title h2{
    color:#a81718;
    font:400 clamp(2.3rem,4vw,3.65rem)/1 'Lobster',cursive;
    text-shadow:2px 3px 5px rgba(0,0,0,.16);
    margin:0;
}
.original-program-subtitle{
    font-size:23px;
    font-weight:700;
    line-height:1.25;
}

.original-program-images{
    display:grid;
    grid-template-columns:repeat(2,minmax(0,1fr));
    gap:8px;
    width:100%;
    margin-bottom:17px;
}
.original-program-images.count-1{grid-template-columns:1fr}
.original-program-image{
    padding:0;
    border:0;
    background:none;
    cursor:zoom-in;
    overflow:hidden;
    width:100%;
    aspect-ratio:16/9;
}
.original-program-image img{
    width:100%;
    height:100%;
    object-fit:cover;
    display:block;
    transition:transform .35s ease;
}
.original-program-image:hover img{transform:scale(1.015)}

.original-program-description{
    font-size:20px;
    line-height:1.58;
}
.original-program-description p{margin:0 0 1.2em}
.original-program-description strong{font-weight:700}
.original-program-description a{
    color:var(--link);
    text-decoration:none;
    border-bottom:1px solid rgba(31,111,174,.35);
}
.original-program-description a:hover{
    color:var(--link-hover);
    border-bottom-color:var(--link-hover);
}

.program-separator{
    display:flex;
    align-items:center;
    justify-content:center;
    gap:5px;
    max-width:720px;
    margin:34px auto 8px;
    filter:drop-shadow(1px 2px 2px rgba(0,0,0,.22));
}
.separator-line{
    height:5px;
    background:linear-gradient(#777,#222,#777);
    flex:1;
    max-width:280px;
    box-shadow:0 2px 3px rgba(0,0,0,.25);
}
.separator-star{
    font-size:42px;
    line-height:1;
    -webkit-text-stroke:1px #fff;
}
.separator-star.blue{color:#064777}
.separator-star.red{
    color:#a81718;
    font-size:54px;
}
.program-change-note{
    text-align:center;
    padding:30px 20px 60px;
    font-size:16px;
    color:#666;
    font-style:italic;
}
.program-empty{text-align:center;padding:60px 20px}

/* Mobil: Bilder nicht winzig nebeneinander quetschen */
@media(max-width:700px){
    .program-page-head{padding:36px 14px 24px}
    .program-page-head h1{font-size:3.1rem}
    .program-page-tagline{font-size:20px}
    .program-page-head p{font-size:16px}

    .program-original-layout{width:93vw}
    .original-program-act{padding-top:30px}
    .original-program-title{
        display:block;
        margin-bottom:13px;
    }
    .original-program-title h2{
        font-size:2.8rem;
        margin-bottom:5px;
    }
    .original-program-subtitle{font-size:18px}

    .original-program-images{
        grid-template-columns:1fr;
        gap:7px;
    }
    .original-program-image{aspect-ratio:16/10}

    .original-program-description{
        font-size:17px;
        line-height:1.55;
    }
    .program-separator{max-width:92%;margin-top:26px}
    .separator-star{font-size:30px}
    .separator-star.red{font-size:39px}
    .separator-line{height:4px}
}

/* V10 – Programm näher am Original */
.program-original-layout{
    width:min(1180px,92vw)!important;
}
.original-program-act{
    padding:30px 0 4px!important;
}
.original-program-title{
    gap:10px 15px!important;
    margin-bottom:13px!important;
}
.original-program-title h2{
    font-size:clamp(2.1rem,3.4vw,3.2rem)!important;
}
.original-program-subtitle{
    font-size:20px!important;
}
.original-program-images{
    gap:6px!important;
    margin-bottom:15px!important;
}
.original-program-images.one{
    grid-template-columns:minmax(0,1fr)!important;
    max-width:900px;
    margin-left:auto;
    margin-right:auto;
}
.original-program-images.two{
    grid-template-columns:repeat(2,minmax(0,1fr))!important;
}
.original-program-images.three{
    grid-template-columns:repeat(3,minmax(0,1fr))!important;
}
.original-program-images.one .original-program-image{
    aspect-ratio:16/9!important;
}
.original-program-images.two .original-program-image{
    aspect-ratio:16/10!important;
}
.original-program-images.three .original-program-image{
    aspect-ratio:1/1!important;
}
.original-program-description{
    font-size:18px!important;
    line-height:1.55!important;
}
.program-separator{
    max-width:600px!important;
    margin-top:28px!important;
}
.separator-line{
    max-width:235px!important;
}

/* V10 Tickets */
.ticket-season-card{
    display:flex;
    flex-wrap:wrap;
    gap:14px 34px;
    align-items:center;
    padding:18px 22px;
    margin-top:10px;
    border-left:5px solid var(--red);
    background:#fff;
    box-shadow:0 9px 24px rgba(0,0,0,.07);
    font-size:18px;
}
.ticket-season-card > div:first-child{
    display:grid;
}
.ticket-season-label{
    font:700 12px 'Oswald',sans-serif;
    letter-spacing:.14em;
    color:#a81718;
    text-transform:uppercase;
}
.ticket-season-card strong{
    font-size:25px;
}
.ticket-season-card a{
    color:var(--link);
    text-decoration:none;
    font-weight:700;
}
.ticket-status-line{
    display:flex;
    flex-wrap:wrap;
    gap:7px;
    min-height:0;
    margin-bottom:5px;
}
.ticket-status-badge{
    display:inline-flex;
    align-items:center;
    border-radius:999px;
    padding:4px 9px;
    font:700 12px Arial,sans-serif;
    text-transform:uppercase;
    letter-spacing:.05em;
}
.past-badge{
    background:#e6e6e6;
    color:#666;
}
.sold-badge{
    background:#a81718;
    color:#fff;
}
.ticket-original-row.past{
    opacity:.62;
    filter:saturate(.55);
}
.ticket-original-row.past:hover{
    opacity:.78;
}
.ticket-original-row.sold-out:not(.past){
    box-shadow:inset 5px 0 0 #a81718;
}
.ticket-ended-label{
    color:#777;
    font:700 15px Arial,sans-serif;
}
.sold-out-display{
    display:inline-flex;
    align-items:center;
    gap:8px;
    color:#a81718;
    font:700 15px Arial,sans-serif;
    padding:8px 11px;
    border:1px solid rgba(168,23,24,.32);
    background:#fff3f3;
    border-radius:4px;
}
.sold-out-display span{
    display:grid;
    place-items:center;
    width:21px;
    height:21px;
    border-radius:50%;
    color:#fff;
    background:#a81718;
}
.special-price-badge{
    display:inline-flex;
    align-items:center;
    gap:5px;
    padding:7px 10px;
    border-radius:999px;
    background:linear-gradient(135deg,#ffc32b,#f68b15);
    color:#472800;
    box-shadow:0 5px 14px rgba(215,143,16,.25);
    font:800 12px Arial,sans-serif;
    white-space:nowrap;
}
.special-price-badge span{
    font-size:18px;
}
.ticket-discount{
    min-width:120px;
}

@media(max-width:700px){
    .original-program-images.two,
    .original-program-images.three{
        grid-template-columns:1fr!important;
    }
    .original-program-images.two .original-program-image,
    .original-program-images.three .original-program-image{
        aspect-ratio:16/10!important;
    }
    .program-original-layout{
        width:94vw!important;
    }
    .original-program-title h2{
        font-size:2.55rem!important;
    }
    .original-program-subtitle{
        font-size:17px!important;
    }
    .original-program-description{
        font-size:16.5px!important;
    }

    .ticket-season-card{
        display:grid;
        gap:8px;
        padding:15px;
    }
    .ticket-original-row{
        grid-template-columns:1fr!important;
    }
    .ticket-discount{
        text-align:left!important;
        min-width:0;
    }
    .special-price-badge{
        width:max-content;
    }
}

/* V11 – Feinschliff Programmseite */
.ticket-intro .ticket-kicker{display:none!important}

.program-page-head .program-page-tagline,
.program-page-head p,
.original-program-subtitle,
.original-program-description,
.original-program-description p,
.original-program-description li,
.original-program-description blockquote,
.program-change-note{
    text-shadow:1px 1px 2px rgba(0,0,0,.08);
}
.original-program-subtitle{
    text-shadow:1px 2px 4px rgba(0,0,0,.12);
}
.original-program-layout,
.program-original-layout{
    width:min(1320px,88vw)!important;
}
.original-program-images{
    gap:10px!important;
}
.original-program-images.one{
    max-width:760px;
    margin-left:auto;
    margin-right:auto;
}
.original-program-images.one .original-program-image{
    aspect-ratio:16/10!important;
}
.original-program-image{
    border:0;
    padding:0;
    background:none;
    cursor:pointer;
}
.original-program-image-frame{
    display:block;
    width:100%;
    height:100%;
    overflow:hidden;
    box-shadow:0 10px 26px rgba(0,0,0,.11);
}
.original-program-image img{
    width:100%;
    height:100%;
    object-fit:cover;
    transform:scale(var(--img-scale,1));
    transition:transform .25s ease,object-position .25s ease;
}
.original-program-image:hover img{
    transform:scale(calc(var(--img-scale,1) * 1.02));
}
.original-program-description{
    max-width:1180px;
    margin-inline:auto;
}

.reveal-on-scroll{
    opacity:0;
    transform:translateY(48px);
    transition:opacity .9s ease,transform .9s cubic-bezier(.19,1,.22,1);
    will-change:opacity,transform;
}
.reveal-on-scroll.in-view{
    opacity:1;
    transform:none;
}
.reveal-on-scroll .original-program-title,
.reveal-on-scroll .original-program-images,
.reveal-on-scroll .original-program-description,
.reveal-on-scroll .program-separator{
    transition:inherit;
}

@media(max-width:700px){
    .program-original-layout{width:94vw!important}
    .original-program-images.one{max-width:none}
}

/* V12 – Partnerlogos, Ticketbadges und Zoom-Fix */
.partner-page{
    background:#fff;
    padding:46px 0 90px;
}
.partner-page-inner{
    width:min(1220px,90vw);
    margin:auto;
}
.partner-section{margin-bottom:54px}
.partner-section h2{
    margin:0 0 24px;
    font-size:clamp(1.8rem,3vw,2.6rem);
    text-shadow:1px 2px 4px rgba(0,0,0,.10);
}
.partner-grid{
    display:grid;
    grid-template-columns:repeat(auto-fit,minmax(185px,1fr));
    gap:24px 30px;
    align-items:stretch;
}
.partner-grid-presented{
    grid-template-columns:repeat(auto-fit,minmax(220px,300px));
}
.partner-card{
    min-height:150px;
    display:flex;
    align-items:center;
    justify-content:center;
    padding:22px;
    background:#fff;
    border:1px solid #eee;
    box-shadow:0 8px 22px rgba(0,0,0,.055);
    text-decoration:none!important;
    border-bottom:1px solid #eee!important;
    transition:transform .2s ease,box-shadow .2s ease;
}
.partner-card:hover{
    transform:translateY(-3px);
    box-shadow:0 14px 28px rgba(0,0,0,.09);
}
.partner-card img{
    display:block;
    width:auto!important;
    height:auto!important;
    max-width:220px!important;
    max-height:105px!important;
    object-fit:contain!important;
}
.partner-grid-presented .partner-card img{
    max-width:250px!important;
    max-height:120px!important;
}

.ticket-original-row{
    grid-template-columns:minmax(0,1.5fr) minmax(210px,.55fr) minmax(150px,190px)!important;
    gap:16px;
}
.ticket-buy,
.ticket-discount{
    min-width:0!important;
}
.ticket-discount{
    display:flex;
    justify-content:center;
}
.special-price-badge{
    max-width:100%;
    white-space:normal!important;
    text-align:center;
    justify-content:center;
    line-height:1.15;
}
.ticket-original-row.past .special-price-badge{
    opacity:.72;
}

@media(max-width:1050px){
    .ticket-original-row{
        grid-template-columns:minmax(0,1fr) minmax(180px,.55fr)!important;
    }
    .ticket-discount{
        grid-column:2;
        justify-content:flex-start;
    }
}
@media(max-width:760px){
    .partner-page-inner{width:92vw}
    .partner-grid,
    .partner-grid-presented{grid-template-columns:repeat(2,minmax(0,1fr))}
    .partner-card{min-height:120px;padding:14px}
    .partner-card img{max-width:100%!important;max-height:85px!important}
    .ticket-original-row{grid-template-columns:1fr!important}
    .ticket-discount{grid-column:auto;justify-content:flex-start}
}
@media(max-width:480px){
    .partner-grid,
    .partner-grid-presented{grid-template-columns:1fr}
}
.original-program-image img{transform-origin:var(--focus-x,50%) var(--focus-y,50%)}

/* V13 Ticketstatus */
.running-badge{background:#fff0cf;color:#8b5b00;border:1px solid #e7bc5a}
.ticket-running-label{display:inline-flex;align-items:center;gap:8px;padding:8px 12px;border-radius:4px;background:#fff6df;color:#925f00;font:700 15px Arial,sans-serif;border:1px solid #e5c36f}
.ticket-link-pending{display:inline-flex;padding:8px 12px;border-radius:4px;background:#f3f3f3;color:#777;font:700 15px Arial,sans-serif;border:1px dashed #bbb}
.ticket-buy-link{display:inline-flex!important;align-items:center;gap:9px!important}
.ticket-svg{width:31px;height:22px;flex:0 0 auto;display:block;color:#246fae}
.ticket-original-row{grid-template-columns:minmax(0,1.55fr) minmax(220px,.55fr) minmax(130px,170px)!important;column-gap:14px}
.ticket-discount{display:flex;justify-content:flex-end;min-width:0!important;overflow:visible}
.special-price-badge{max-width:100%;box-sizing:border-box;white-space:normal!important;justify-content:center;text-align:center}
@media(max-width:900px){.ticket-original-row{grid-template-columns:1fr!important}.ticket-discount{justify-content:flex-start}.special-price-badge{width:max-content;max-width:100%}}

/* V13 Partnerseite */
.partner-page{padding:42px 0 70px}
.partner-page-inner{width:min(1180px,90vw)!important;margin:auto}
.partner-section{margin-bottom:48px!important}
.partner-section h2{font-size:clamp(1.65rem,2.6vw,2.45rem)!important;line-height:1.2;margin:0 0 24px!important;text-align:left!important;text-shadow:1px 2px 3px rgba(0,0,0,.10)}
.partner-logo-row{display:grid;grid-template-columns:repeat(auto-fit,minmax(155px,1fr));gap:24px 34px;align-items:center;margin:20px 0 34px}
.partner-card{min-height:130px!important;padding:16px!important;background:#fff!important;border:0!important;box-shadow:none!important;display:flex!important;align-items:center!important;justify-content:center!important}
.partner-card img{width:auto!important;height:auto!important;max-width:210px!important;max-height:105px!important;object-fit:contain!important}
.partner-card:hover{transform:translateY(-3px);box-shadow:0 10px 24px rgba(0,0,0,.07)!important}
.partner-text-block{max-width:1000px;margin:26px 0 38px}
.partner-text-block h3{font-size:clamp(1.45rem,2.1vw,2rem);margin:0 0 12px;text-shadow:1px 2px 3px rgba(0,0,0,.10)}
.partner-text-content{font-size:18px;line-height:1.6;text-shadow:1px 1px 2px rgba(0,0,0,.06)}
.partner-text-content p{margin:.5em 0 1em}
@media(max-width:700px){.partner-page-inner{width:92vw!important}.partner-logo-row{grid-template-columns:repeat(2,minmax(0,1fr));gap:18px 14px}.partner-card{min-height:100px!important;padding:10px!important}.partner-card img{max-width:145px!important;max-height:78px!important}.partner-text-content{font-size:16.5px}}

/* V14 – Partnerseite kompakter und Textausrichtung korrekt */
.partner-page-inner{width:min(1120px,90vw)!important}
.partner-section{margin-bottom:42px!important}
.partner-section h2{
    font-size:30px!important;
    line-height:1.18!important;
    margin:0 0 22px!important;
    text-align:left!important;
}
.partner-text-block{
    width:100%!important;
    max-width:none!important;
    margin:22px 0 34px!important;
}
.partner-text-block h3{font-size:24px!important;line-height:1.25!important;margin:0 0 10px!important}
.partner-text-content{width:100%;font-size:17px!important;line-height:1.55!important}
.partner-text-content > :first-child{margin-top:0}
.partner-text-content > :last-child{margin-bottom:0}
.partner-logo-row{margin:18px 0 30px!important}

/* V14 – ein einzelnes Programmbild wie beim Original, nicht über die ganze Seite */
.original-program-images.one{
    display:flex!important;
    justify-content:center!important;
    width:100%!important;
    max-width:none!important;
}
.original-program-images.one .original-program-image{
    display:block!important;
    width:min(950px,100%)!important;
    max-width:950px!important;
    aspect-ratio:auto!important;
}
.original-program-images.one .original-program-image-frame{
    display:block!important;
    width:100%!important;
    aspect-ratio:16/10!important;
    height:auto!important;
    overflow:hidden!important;
}

/* V14 – zusätzliche Infos & Preise Bereiche */
.info-extra-blocks{width:min(1320px,90vw);margin:42px auto 70px;display:grid;gap:20px}
.info-extra-block{background:#fff;border:1px solid #e2e2e2;padding:24px 28px;box-shadow:0 8px 22px rgba(0,0,0,.055);position:relative}
.info-extra-block.info-extra-accent{border-left:5px solid var(--gold);background:#fffaf0}
.info-extra-block.info-extra-warning{border-left:5px solid var(--red);background:#fff5f3}
.info-extra-head{display:flex;align-items:center;gap:11px;margin-bottom:10px}
.info-extra-head h2{font:700 26px Georgia,serif;margin:0;color:#2a211e;text-shadow:1px 2px 3px rgba(0,0,0,.08)}
.info-extra-icon{font-size:25px}
.info-extra-content{font:17px/1.6 Arial,sans-serif}
.info-extra-content p{margin:.45em 0 1em}
.info-extra-content a{color:var(--link);text-decoration:none;border-bottom:1px solid currentColor}

@media(max-width:700px){
    .partner-section h2{font-size:23px!important;margin-bottom:17px!important}
    .partner-text-block h3{font-size:21px!important}
    .partner-text-content{font-size:16px!important}
    .original-program-images.one .original-program-image{width:100%!important}
    .info-extra-blocks{width:92vw;margin-top:28px}
    .info-extra-block{padding:19px 17px}
    .info-extra-head h2{font-size:22px}
    .info-extra-content{font-size:16px}
}

/* V15 – Programm-Innenbereich näher am Original */
.program-original-layout{
    width:min(1120px,88vw)!important;
}
.original-program-images.one .original-program-image{
    width:min(860px,100%)!important;
    max-width:860px!important;
}
.original-program-images.one .original-program-image-frame{
    aspect-ratio:16/10!important;
}
.original-program-description{
    max-width:1080px!important;
}

/* V15 – Partner: Überschriften wirklich zentriert */
.partner-section h2,
.partner-text-block h3{
    text-align:center!important;
}
.partner-text-content{
    width:100%!important;
}
.partner-text-content img,
.info-extra-content img{
    max-width:100%!important;
    height:auto!important;
}
.partner-text-content figure,
.info-extra-content figure{
    max-width:100%;
    margin:20px auto;
}
.partner-text-content figure[style*="text-align: center"],
.info-extra-content figure[style*="text-align: center"]{
    text-align:center!important;
}

/* V15 – Infos & Preise: Preise + Manege nebeneinander wie beim Original */
.price-and-seating{
    display:grid;
    grid-template-columns:minmax(0,1.15fr) minmax(300px,.85fr);
    gap:42px;
    align-items:center;
}
.price-table-wrap{overflow:auto}
.seating-plan{
    display:flex;
    align-items:center;
    justify-content:center;
    min-width:0;
}
.seating-plan img{
    display:block;
    width:min(520px,100%);
    height:auto;
    object-fit:contain;
}
.info-extra-head{
    justify-content:center!important;
    text-align:center!important;
}
.info-extra-head h2{
    text-align:center!important;
}
.cms-editor-image img{max-width:100%;height:auto}

@media(max-width:800px){
    .program-original-layout{width:92vw!important}
    .original-program-images.one .original-program-image{width:100%!important;max-width:none!important}
    .price-and-seating{grid-template-columns:1fr;gap:24px}
    .seating-plan img{width:min(440px,92vw)}
}
.partner-section h2{font-size:26px!important}
.partner-text-block h3{font-size:22px!important}
@media(max-width:700px){.partner-section h2{font-size:21px!important}.partner-text-block h3{font-size:19px!important}}

/* V16 – Kontaktseite */
.contact-hero{
    position:relative;
    overflow:hidden;
    background:
        radial-gradient(circle at 85% 10%,rgba(218,166,42,.16),transparent 30%),
        linear-gradient(135deg,#fff 0%,#fff 58%,#faf4f0 100%);
    border-top:3px solid transparent;
    border-image:linear-gradient(90deg,#a81718,#dfa927,#084a80) 1;
}
.contact-hero-inner{
    width:min(1180px,90vw);
    margin:auto;
    padding:64px 0 72px;
}
.contact-kicker{
    color:#d69a20;
    font:500 15px 'Oswald',sans-serif;
    letter-spacing:.22em;
    text-transform:uppercase;
    margin-bottom:10px;
}
.contact-hero h1{
    margin:0;
    color:#a81718;
    font:400 clamp(3.2rem,6vw,5.4rem) 'Lobster',cursive;
    text-shadow:2px 4px 8px rgba(0,0,0,.14);
}
.contact-hero p{
    max-width:720px;
    margin:18px 0 0;
    font-size:20px;
    line-height:1.55;
    color:#333;
}
.contact-page{
    padding:54px 0 85px;
    background:#fff;
}
.contact-layout{
    width:min(1180px,90vw);
    margin:auto;
    display:grid;
    grid-template-columns:minmax(300px,.85fr) minmax(520px,1.35fr);
    gap:34px;
    align-items:start;
}
.contact-info-panel,
.contact-form-panel{
    background:#fff;
    border:1px solid #e8e2dc;
    box-shadow:0 18px 45px rgba(46,31,22,.09);
}
.contact-info-panel{
    padding:34px 38px;
    border-top:5px solid #084a80;
}
.contact-info-eyebrow{
    color:#a81718;
    font:700 13px Arial,sans-serif;
    letter-spacing:.12em;
    text-transform:uppercase;
    margin-bottom:22px;
}
.contact-rich-content{
    font-size:18px;
    line-height:1.62;
}
.contact-rich-content h1,
.contact-rich-content h2,
.contact-rich-content h3{
    color:#171717;
    line-height:1.12;
    margin:24px 0 12px;
    text-shadow:1px 2px 3px rgba(0,0,0,.08);
}
.contact-rich-content h1{font-size:34px}
.contact-rich-content h2{font-size:28px}
.contact-rich-content h3{font-size:22px}
.contact-rich-content p{margin:8px 0 18px}
.contact-rich-content a{
    color:#086db9;
    text-decoration:none;
    border-bottom:1px solid rgba(8,109,185,.32);
    transition:.18s ease;
}
.contact-rich-content a:hover{color:#a81718;border-color:#a81718}
.contact-form-panel{
    padding:34px 36px 38px;
    border-top:5px solid #a81718;
}
.contact-form-head{
    display:flex;
    gap:15px;
    align-items:flex-start;
    margin-bottom:26px;
}
.contact-form-head>span{
    width:48px;
    height:48px;
    display:grid;
    place-items:center;
    border-radius:50%;
    background:#f8ead0;
    font-size:22px;
}
.contact-form-head h2{
    margin:0 0 5px;
    font-size:30px;
}
.contact-form-head p{margin:0;color:#666;font:15px Arial,sans-serif}
.contact-form{display:grid;gap:18px}
.contact-form-grid{
    display:grid;
    grid-template-columns:1fr 1fr;
    gap:17px;
}
.contact-form label{display:grid;gap:7px}
.contact-form label>span:first-child{
    font:700 14px Arial,sans-serif;
    color:#333;
}
.contact-form input:not([type=checkbox]),
.contact-form textarea{
    width:100%;
    box-sizing:border-box;
    padding:13px 14px;
    border:1px solid #d7d4d0;
    border-radius:7px;
    background:#fcfcfc;
    color:#181818;
    font:16px Arial,sans-serif;
    outline:none;
    transition:border-color .18s ease,box-shadow .18s ease,background .18s ease;
}
.contact-form textarea{resize:vertical;min-height:170px}
.contact-form input:not([type=checkbox]):focus,
.contact-form textarea:focus{
    border-color:#a81718;
    background:#fff;
    box-shadow:0 0 0 3px rgba(168,23,24,.09);
}
.contact-privacy{
    grid-template-columns:24px 1fr!important;
    gap:10px!important;
    align-items:start;
    padding:13px 15px;
    background:#f8f7f5;
    border-radius:7px;
    font:14px/1.45 Arial,sans-serif;
}
.contact-privacy input{
    appearance:none;
    width:20px;
    height:20px;
    border:1px solid #a5a5a5;
    border-radius:4px;
    background:#fff;
    margin:0;
    cursor:pointer;
}
.contact-privacy input:checked{
    border-color:#a81718;
    background:#a81718;
    box-shadow:inset 0 0 0 4px #fff;
}
.contact-submit{
    justify-self:start;
    display:inline-flex;
    align-items:center;
    gap:20px;
    padding:14px 20px;
    border:0;
    border-radius:6px;
    background:#a81718;
    color:#fff;
    font:700 16px Arial,sans-serif;
    cursor:pointer;
    box-shadow:0 9px 20px rgba(168,23,24,.2);
    transition:.18s ease;
}
.contact-submit:hover{transform:translateY(-2px);background:#8f1112}
.contact-submit strong{font-size:21px;color:#e9bb48}
.contact-error,
.contact-success{
    padding:15px 17px;
    border-radius:7px;
    font:15px Arial,sans-serif;
}
.contact-error{background:#fff0f0;border:1px solid #efb4b4;color:#9d1717;margin-bottom:18px}
.contact-success{display:grid;gap:4px;background:#eef8f0;border:1px solid #b9dfc1;color:#236231}

/* V16 – dynamische Sonderpreis-Kacheln */
.price-highlight-grid{
    display:grid;
    grid-template-columns:1fr 1fr;
    gap:16px;
    margin-top:34px;
}
.price-highlight-card{
    min-height:285px;
    padding:30px 34px 28px;
    box-sizing:border-box;
    border-radius:34px;
    color:#fff;
    background:linear-gradient(150deg,#a91a1c 0%,#7f2436 45%,#0c4c80 100%);
    box-shadow:0 16px 34px rgba(34,42,72,.17);
    text-shadow:1px 2px 3px rgba(0,0,0,.2);
}
.price-highlight-card h2{
    margin:0 0 12px;
    color:#fff;
    font-size:25px;
    line-height:1.22;
    text-align:left;
}
.price-highlight-dates{
    margin:0 0 22px;
    font-size:17px;
    line-height:1.55;
    font-weight:600;
}
.price-highlight-list{
    list-style:none;
    padding:0;
    margin:18px 0 10px;
    display:grid;
    gap:8px;
    font-size:18px;
}
.price-highlight-list li:before{content:'• ';font-weight:900}
.price-highlight-foot{font-size:14px;font-weight:700;margin-top:14px}
.family-time-list{display:flex;flex-wrap:wrap;gap:7px;margin:-7px 0 16px}
.family-time-list span{padding:5px 8px;border:1px solid rgba(255,255,255,.28);border-radius:999px;font-size:13px}

@media(max-width:900px){
    .contact-layout{grid-template-columns:1fr}
    .price-highlight-grid{grid-template-columns:1fr}
}
@media(max-width:620px){
    .contact-hero-inner{padding:40px 0 48px}
    .contact-hero p{font-size:17px}
    .contact-page{padding-top:28px}
    .contact-layout{width:94vw;gap:20px}
    .contact-info-panel,.contact-form-panel{padding:24px 20px}
    .contact-form-grid{grid-template-columns:1fr}
    .contact-rich-content h1{font-size:28px}
    .contact-rich-content h2{font-size:24px}
    .price-highlight-card{padding:25px 22px;border-radius:24px;min-height:0}
    .price-highlight-card h2{font-size:22px}
}


/* V17 – kompaktere Sonderpreis-Kacheln */
.price-highlight-grid{gap:14px!important;margin-top:26px!important}
.price-highlight-card{
    min-height:0!important;padding:22px 27px 20px!important;border-radius:26px!important;
    box-shadow:0 12px 28px rgba(34,42,72,.14)!important;
}
.price-highlight-card h2{
    margin:0 0 9px!important;color:#fff!important;font-size:21px!important;line-height:1.15!important;
    font-weight:700!important;white-space:nowrap;
}
.price-highlight-dates{
    margin:0 0 14px!important;font-size:15.5px!important;line-height:1.45!important;font-weight:400!important;
}
.price-highlight-list{
    list-style:none!important;padding:0!important;margin:11px 0 7px!important;display:grid!important;
    gap:5px!important;font-size:15.5px!important;line-height:1.4!important;font-weight:400!important;
}
.price-highlight-list li{font-weight:400!important}
.price-highlight-list strong{font-weight:600!important}
.price-highlight-foot{margin-top:9px!important;font-size:13px!important;font-weight:400!important;opacity:.96}

/* bewusst gestalteter Standort-Link */
.info-location{margin-top:8px;text-align:center}
.info-location a{
    display:inline-flex;align-items:center;justify-content:center;gap:7px;padding:5px 12px 6px;
    color:#084a80!important;border:0!important;border-radius:999px;background:rgba(8,74,128,.055);
    font-size:19px;line-height:1.2;text-decoration:none!important;
    box-shadow:inset 0 0 0 1px rgba(8,74,128,.13);
}
.info-location a:hover{
    color:#a81718!important;background:rgba(168,23,24,.06);
    box-shadow:inset 0 0 0 1px rgba(168,23,24,.18);
}

/* gespeicherte Bildgröße/-ausrichtung aus dem WYSIWYG respektieren */
.partner-text-content figure.cms-editor-image,
.info-extra-content figure.cms-editor-image,
.content figure.cms-editor-image{max-width:100%}
.partner-text-content figure.cms-editor-image img,
.info-extra-content figure.cms-editor-image img,
.content figure.cms-editor-image img{display:block;width:100%;max-width:100%;height:auto}
.partner-text-content:after,.info-extra-content:after,.content:after{content:"";display:block;clear:both}

@media(max-width:1100px){.price-highlight-card h2{white-space:normal}}
@media(max-width:620px){
    .price-highlight-card{padding:20px 19px 18px!important;border-radius:21px!important}
    .price-highlight-card h2{font-size:19px!important;white-space:normal}
    .price-highlight-dates,.price-highlight-list{font-size:15px!important}
    .info-location a{font-size:16px}
    .partner-text-content figure.cms-editor-image,
    .info-extra-content figure.cms-editor-image,
    .content figure.cms-editor-image{
        width:100%!important;float:none!important;margin:16px auto!important;text-align:center!important;
    }
}

/* V18 – kompaktere, fast quadratische Show-Kacheln */
.show-grid{
    width:min(1480px,94vw)!important;
    box-shadow:0 18px 44px rgba(31,38,60,.11)!important;
}
.show-card{
    min-height:0!important;
    aspect-ratio:1.08/1;
    padding:24px 24px 22px!important;
    justify-content:flex-start;
    overflow:hidden;
}
.show-card h2{
    font-size:27px!important;
    margin-bottom:13px!important;
    text-shadow:2px 3px 4px rgba(0,0,0,.24);
}
.show-card h3{ text-shadow:2px 3px 4px rgba(0,0,0,.22); }
.show-card p{
    font-size:18px!important;
    line-height:1.28!important;
    text-shadow:1px 2px 3px rgba(0,0,0,.18);
}
.show-card-icon{font-size:36px!important;padding-top:8px!important;text-shadow:1px 2px 5px rgba(0,0,0,.2)}
.heated{text-shadow:1px 2px 3px rgba(0,0,0,.10)}

/* Weitere Textschatten im öffentlichen Auftritt */
.info-section-title,.info-ticket-item h3,.price-wrap h2,.price-highlight-card h2,
.info-extra-head h2,.arrival-method h2,.arrival-bottom h2,.arrival-navi strong{
    text-shadow:1px 2px 3px rgba(0,0,0,.13);
}

/* Anfahrt V18 */
.arrival-hero{grid-template-columns:.92fr 1.08fr;min-height:620px}
.arrival-left{padding:50px clamp(30px,5vw,86px) 42px}
.arrival-script{font-size:44px;margin-bottom:22px}
.arrival-address-main{font-size:19px;letter-spacing:.075em;line-height:1.45}
.arrival-address-main strong{font-size:21px}
.arrival-highlight{font-size:24px;line-height:1.35;margin:30px 0 24px;text-shadow:1px 2px 3px rgba(0,0,0,.12)}
.arrival-copy{font-size:18px;letter-spacing:.035em;line-height:1.55;max-width:610px;margin-bottom:28px}
.arrival-navi{font-size:18px;letter-spacing:.09em}
.arrival-map,.arrival-map iframe{min-height:620px}
.arrival-methods{width:min(1360px,92vw);padding:58px 0;gap:24px}
.arrival-method{padding:27px 28px 25px;min-height:320px;overflow:hidden;transition:transform .45s cubic-bezier(.2,.8,.2,1),box-shadow .45s ease}
.arrival-method:hover{transform:translateY(-9px) scale(1.012);box-shadow:0 24px 48px rgba(0,0,0,.14)}
.arrival-method h2{font-size:30px;margin:5px 0 16px}
.arrival-method-content{font-size:17px;line-height:1.55}
.arrival-method-content ul{font-size:17px;line-height:1.55;margin:0;padding-left:20px}
.arrival-method-content p{font-size:17px;line-height:1.55}
.arrival-icon{font-size:38px;animation:circusFloat 3.8s ease-in-out infinite}
.arrival-method:nth-child(2) .arrival-icon{animation-delay:.35s}.arrival-method:nth-child(3) .arrival-icon{animation-delay:.7s}

/* WOW motion – bewusst dezent, nicht verspielt */
.wow-section,.wow-card,.show-card,.info-ticket-item,.price-highlight-card,.info-extra-block{
    opacity:0;
    transform:translateY(34px);
    transition:opacity .75s ease,transform .8s cubic-bezier(.16,1,.3,1),box-shadow .35s ease;
}
.wow-visible{opacity:1!important;transform:none!important}
.show-card.wow-visible:hover,.info-ticket-item.wow-visible:hover,.price-highlight-card.wow-visible:hover{transform:translateY(-6px)!important}
@keyframes circusFloat{0%,100%{transform:translateY(0)}50%{transform:translateY(-8px)}}
@keyframes circusGlow{0%,100%{filter:drop-shadow(0 4px 8px rgba(0,0,0,.12))}50%{filter:drop-shadow(0 8px 15px rgba(168,23,24,.22))}}
.info-gift,.info-season,.arrival-script,.program-page-head h1{animation:circusGlow 4.8s ease-in-out infinite}
.page-title:after,.program-hero:after,.info-top:after,.ticket-intro:after{background-size:180% 100%;animation:accentSweep 4s ease-in-out infinite}
@keyframes accentSweep{0%,100%{background-position:0 50%}50%{background-position:100% 50%}}
.hero-slide img{transition:transform 8s linear}.hero-slide.active img{transform:scale(1.035)}

@media(max-width:1100px){
 .show-card{aspect-ratio:auto;min-height:285px!important}
 .arrival-hero{grid-template-columns:1fr}.arrival-map,.arrival-map iframe{min-height:480px}
}
@media(max-width:760px){
 .show-card{min-height:0!important;padding:23px 19px!important}
 .arrival-left{padding:38px 24px}.arrival-script{font-size:37px}.arrival-highlight{font-size:21px}
 .arrival-map,.arrival-map iframe{min-height:390px}
 .arrival-method{min-height:0}
}

@media(prefers-reduced-motion:reduce){
 *,*:before,*:after{animation:none!important;transition:none!important;scroll-behavior:auto!important}
 .wow-section,.wow-card,.show-card,.info-ticket-item,.price-highlight-card,.info-extra-block{opacity:1!important;transform:none!important}
}


/* V19 – Hero verwendet echtes Bild mit speicherbarem Zoom/Fokus */
.hero-slide{overflow:hidden;transform:scale(1)!important}
.hero-slide>img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;transition:translate .15s ease;will-change:transform,translate}
.hero-slide.active{transform:none!important}
.hero-slide.active>img{animation:heroBreath 9s ease-in-out infinite alternate}
.hero-slide .hero-caption{left:5%;right:5%;width:auto;transform:none;bottom:48px}
@keyframes heroBreath{from{filter:saturate(1)}to{filter:saturate(1.06) brightness(1.025)}}
@media(prefers-reduced-motion:reduce){.hero-slide.active>img{animation:none}}

/* V20 – Social Media */
.social-strip{background:#084a80;color:#fff;padding:22px 20px;border-top:4px solid transparent;border-image:linear-gradient(90deg,#a81718,#d7a62b,#084a80) 1}.social-strip-inner{width:min(1180px,92vw);margin:auto;display:flex;align-items:center;justify-content:center;gap:22px}.social-strip-label{font:700 18px Georgia,serif;letter-spacing:.02em}.social-links{display:flex;gap:14px}.social-links a{width:48px;height:48px;border-radius:50%;display:grid;place-items:center;background:#fff;color:#084a80!important;box-shadow:0 8px 18px rgba(0,0,0,.16);transition:transform .25s ease,box-shadow .25s ease}.social-links a:hover{transform:translateY(-4px) scale(1.05);box-shadow:0 13px 24px rgba(0,0,0,.22)}.social-links svg{width:28px;height:28px;fill:currentColor}.mobile-nav-socials{display:none}

/* V20 – Back to top: erst nach Scroll sichtbar */
.back-to-top{position:fixed;right:24px;bottom:24px;width:50px;height:50px;border-radius:50%;border:1px solid rgba(168,23,24,.2);background:rgba(255,255,255,.96);color:#a81718;font-size:28px;line-height:1;display:grid;place-items:center;box-shadow:0 10px 28px rgba(0,0,0,.14);z-index:1200;opacity:0;visibility:hidden;transform:translateY(16px) scale(.92);transition:opacity .25s ease,visibility .25s ease,transform .25s ease,background .2s ease;cursor:pointer}.back-to-top.visible{opacity:1;visibility:visible;transform:none}.back-to-top:hover{background:#a81718;color:#fff}.back-to-top span{transform:translateY(-2px)}

/* V20 – Presse mit mehr Bühne */
.press-page{width:min(1400px,92vw);margin:58px auto 80px}.press-intro{display:grid;grid-template-columns:minmax(0,1.5fr) minmax(310px,.7fr);gap:34px;align-items:stretch}.press-copy{padding:48px 50px;background:linear-gradient(145deg,#fff,#fbf7ef);border-top:5px solid #a81718;box-shadow:0 18px 45px rgba(0,0,0,.08)}.section-eyebrow{font:500 13px 'Oswald',sans-serif;letter-spacing:.18em;color:#c58d22;margin-bottom:10px}.press-copy h1{font:400 clamp(46px,5vw,72px) 'Lobster',cursive;color:#a81718;text-shadow:1px 3px 5px rgba(0,0,0,.14);margin:0 0 25px}.press-richtext{font:20px/1.75 Georgia,serif;color:#2c2724}.press-richtext p{margin:0 0 18px}.press-actions{display:flex;gap:12px;flex-wrap:wrap;margin-top:30px}.press-primary,.press-secondary{display:inline-flex;align-items:center;justify-content:center;padding:13px 20px;text-decoration:none!important;font-weight:800;border-radius:4px;transition:transform .2s ease,box-shadow .2s ease}.press-primary{background:#a81718;color:#fff!important;box-shadow:0 10px 20px rgba(168,23,24,.18)}.press-secondary{border:1px solid #084a80;color:#084a80!important;background:#fff}.press-primary:hover,.press-secondary:hover{transform:translateY(-3px)}.press-contact-card{padding:40px 34px;background:#084a80;color:#fff;display:flex;flex-direction:column;justify-content:center;box-shadow:0 18px 45px rgba(3,50,83,.18)}.press-contact-icon{font-size:42px;color:#e4b33b;margin-bottom:20px}.press-contact-card .section-eyebrow{color:#f1c956}.press-contact-card h2{font:400 38px 'Lobster',cursive;margin:0 0 15px}.press-contact-card p{font:18px/1.6 Georgia,serif}.press-contact-card a{color:#fff!important;font-weight:800;word-break:break-word}.press-services{display:grid;grid-template-columns:repeat(3,1fr);gap:22px;margin-top:36px}.press-service{padding:34px 30px;background:#fff;border-top:5px solid #084a80;box-shadow:0 14px 35px rgba(0,0,0,.07);min-height:260px}.press-service:nth-child(2){border-color:#a81718}.press-service:nth-child(3){border-color:#d7a62b}.press-service>span{font:700 12px 'Oswald',sans-serif;letter-spacing:.15em;color:#a81718}.press-service h2{font:400 30px 'Lobster',cursive;color:#a81718;text-shadow:1px 2px 3px rgba(0,0,0,.1);margin:16px 0 12px}.press-service p{font:17px/1.65 Georgia,serif;margin:0}.press-final{margin-top:36px;padding:34px 38px;display:flex;justify-content:space-between;align-items:center;gap:25px;background:linear-gradient(110deg,#f9f4ea,#fff);border-left:6px solid #d7a62b;box-shadow:0 12px 30px rgba(0,0,0,.06)}.press-final h2{font:700 30px Georgia,serif;margin:0}

@media(max-width:900px){.press-intro{grid-template-columns:1fr}.press-services{grid-template-columns:1fr}.press-final{align-items:flex-start;flex-direction:column}.press-copy{padding:34px 28px}.mobile-nav-socials{display:flex;gap:10px;padding:14px 16px 6px}.mobile-nav-socials a{width:38px!important;height:38px!important;padding:0!important;border-radius:50%;display:grid!important;place-items:center;background:#fff!important;color:#084a80!important;font:700 22px Arial,sans-serif!important}.social-strip-inner{flex-direction:column;gap:12px}}
@media(max-width:600px){.press-page{width:94vw;margin-top:32px}.press-copy{padding:28px 20px}.press-richtext{font-size:17px}.press-contact-card{padding:30px 24px}.press-service{min-height:0}.back-to-top{right:14px;bottom:14px;width:46px;height:46px}.social-strip{padding:18px 14px}}


/* V22 – Tickets & Vorverkauf: zwei statt drei Karten */
.info-ticket-block.info-ticket-block-two{grid-template-columns:repeat(2,minmax(0,1fr));gap:28px}
.info-presale-combined .hotline-big{margin:8px 0 12px}
.presale-combined-copy{max-width:720px}
@media(max-width:900px){.info-ticket-block.info-ticket-block-two{grid-template-columns:1fr}}


/* V23 – Ticket-Shop Saisonleiste sauber auf einer gemeinsamen Grundlinie */
.ticket-season-card{
    display:grid!important;
    grid-template-columns:minmax(250px,1.15fr) minmax(250px,1fr) minmax(220px,.9fr);
    gap:18px 34px!important;
    align-items:end!important;
    padding:20px 28px!important;
}
.ticket-season-cell{display:flex;flex-direction:column;justify-content:flex-end;min-width:0;gap:5px}
.ticket-season-label{display:block;min-height:16px}
.ticket-season-value,.ticket-season-card .ticket-season-value{
    display:flex;align-items:center;min-height:34px;margin:0;font-size:20px;font-family:Georgia,'Times New Roman',serif;font-weight:700;line-height:1.15;
}
.ticket-season-name strong{display:flex;align-items:center;min-height:34px;font-size:25px;line-height:1.15}
.ticket-season-phone{font-size:20px!important}

/* Anfahrt bekommt nach dem großen Headerbild dieselbe optische Luft wie Presse. */
.arrival-page{padding-top:42px}

/* Saisonvorschau */
.season-preview-ribbon{
    width:min(1180px,calc(100% - 36px));margin:24px auto -6px;padding:11px 16px;border-radius:10px;
    background:#fff5d8;border:1px solid #e0b23a;color:#5c4300;text-align:center;font:700 14px Arial,sans-serif;
    box-shadow:0 7px 20px rgba(0,0,0,.06)
}
.program-preview-error{width:min(900px,calc(100% - 36px));margin:90px auto;padding:38px;background:#fff;box-shadow:0 12px 40px rgba(0,0,0,.08)}

@media(max-width:850px){
    .ticket-season-card{grid-template-columns:1fr!important;align-items:start!important;padding:17px 19px!important}
    .ticket-season-value,.ticket-season-name strong{min-height:0}
    .arrival-page{padding-top:26px}
}


/* =========================================================
   V24 – Einstellungen > Farben wirklich mit Frontend verbinden
   ========================================================= */

/* global page canvas */
html,
body{
    background:var(--body-bg);
}
body{
    color:var(--text-color);
}

/* These pages had an explicit #fff background before and therefore
   ignored "Seitenhintergrund". Keep the decorative gradients, but
   let the selected background color shine through. */
.info-page,
.ticket-wow,
.arrival-page{
    background:
        radial-gradient(circle at 15% 0,rgba(215,166,43,.08),transparent 28%),
        radial-gradient(circle at 90% 12%,rgba(168,23,24,.055),transparent 30%),
        var(--body-bg) !important;
}

/* General content areas which should follow the page background. */
.program-hero,
.program-list,
.info-section,
.price-wrap,
.partner-page,
.contact-page,
.press-page{
    color:var(--text-color);
}

/* Standard cards/surfaces. Deliberately excludes the coloured
   red/blue circus tiles and special status/badge elements. */
.info-ticket-item,
.ticket-original-row,
.info-extra-block,
.partner-card,
.press-copy,
.press-service,
.press-final,
.arrival-method,
.contact-card,
.contact-form-panel,
.program-preview-error{
    background:var(--card-bg) !important;
    color:var(--text-color);
}

/* Some cards used gradients that hard-coded white. */
.press-copy{
    background:var(--card-bg) !important;
}
.press-final{
    background:var(--card-bg) !important;
}

/* Keep text inside configurable cards tied to the global text colour,
   unless a component explicitly has its own semantic colour. */
.info-ticket-item p,
.info-ticket-item h3,
.info-extra-block,
.press-copy .press-richtext,
.press-service p,
.press-final,
.arrival-method p,
.arrival-method li,
.contact-card,
.contact-form-panel{
    color:var(--text-color);
}

/* Tables: use card background as the base surface. */
.price-table td{
    background:var(--card-bg);
    color:var(--text-color);
}
.price-table tr:nth-child(even) td{
    background:color-mix(in srgb,var(--card-bg) 92%,#000 8%);
}

/* Inputs/content editor output on public pages should not force white
   blocks when a site theme is selected. */
.content,
.page-content{
    color:var(--text-color);
}

/* Footer remains visually separated but follows the chosen page colour
   slightly instead of forcing a completely unrelated grey. */
.site-footer{
    background:color-mix(in srgb,var(--body-bg) 92%,#000 8%);
    color:var(--text-color);
}

/* Preserve intentionally white header/navigation logo area. */
.original-header{
    background:#fff;
}

/* Graceful fallback for browsers without color-mix(). */
@supports not (background:color-mix(in srgb,#fff 50%,#000)){
    .price-table tr:nth-child(even) td,
    .site-footer{
        background:var(--card-bg);
    }
}

/* =========================================================
   V24.1 – Mobile Preistabelle
   Kategorienköpfe dürfen von der Theme-Kartenfarbe nicht
   überschrieben werden.
   ========================================================= */
@media (max-width: 780px){
    .price-table tr{
        background:var(--card-bg);
    }

    .price-table td,
    .price-table tr:nth-child(even) td{
        background:var(--card-bg);
        color:var(--text-color);
    }

    .price-table td[data-label="Kategorie"],
    .price-table tr:nth-child(even) td[data-label="Kategorie"]{
        display:block;
        background:#084a80 !important;
        color:#fff !important;
        font-size:18px;
        font-weight:700;
    }

    .price-table td[data-label="Kategorie"]:before{
        display:none;
    }

    .price-table td:not([data-label="Kategorie"]):before{
        color:#084a80;
    }

    .price-table tr:nth-child(even) td:not([data-label="Kategorie"]){
        background:color-mix(in srgb,var(--card-bg) 96%,#000 4%);
    }
}


/* =========================================================
   V24.2 – Mobile Preistabelle robust
   Jeder Kategorienkopf ist auf Mobil IMMER blau/weiß.
   Zusätzlicher :first-child-Fallback für alte/abweichende Markups.
   ========================================================= */
@media (max-width: 900px){
    .price-table tbody tr > td:first-child,
    .price-table tbody tr:nth-child(odd) > td:first-child,
    .price-table tbody tr:nth-child(even) > td:first-child,
    .price-table td[data-label="Kategorie"],
    .price-table tr:nth-child(odd) td[data-label="Kategorie"],
    .price-table tr:nth-child(even) td[data-label="Kategorie"]{
        display:block !important;
        width:100% !important;
        background:#084a80 !important;
        background-color:#084a80 !important;
        color:#fff !important;
        font-size:18px !important;
        font-weight:700 !important;
        border-bottom:0 !important;
    }
    .price-table tbody tr > td:first-child *,
    .price-table td[data-label="Kategorie"] *{
        color:#fff !important;
    }
    .price-table tbody tr > td:first-child:before,
    .price-table td[data-label="Kategorie"]:before{
        display:none !important;
        content:none !important;
    }
    .price-table tbody tr > td:not(:first-child),
    .price-table tbody tr:nth-child(odd) > td:not(:first-child),
    .price-table tbody tr:nth-child(even) > td:not(:first-child){
        background:var(--card-bg) !important;
        color:var(--text-color) !important;
    }
    .price-table tbody tr > td:not(:first-child):before{
        color:#084a80 !important;
    }
}

/* =========================================================
   V24.3 – Layout-Feinschliff
   - Ticket-Shop Saisonleiste exakt dreigeteilt
   - Startseiten-Inhalt kompakter
   - Navigation/Header auch auf Desktop sticky
   ========================================================= */

/* Header/Navigation auf allen Bildschirmgrößen beim Scrollen sichtbar. */
.original-header{
    position:sticky !important;
    top:0;
    z-index:1000;
}

/* Ticket-Shop: drei optisch identische Spalten. */
@media (min-width: 761px){
    .ticket-season-card{
        grid-template-columns:repeat(3,minmax(0,1fr)) !important;
        align-items:stretch !important;
        gap:0 !important;
        padding:0 !important;
        overflow:hidden;
    }
    .ticket-season-cell{
        min-width:0;
        padding:22px 30px;
        justify-content:center !important;
        gap:7px;
    }
    .ticket-season-cell + .ticket-season-cell{
        border-left:1px solid rgba(0,0,0,.08);
    }
    .ticket-season-label{
        min-height:18px;
        line-height:18px;
        margin:0;
    }
    .ticket-season-value,
    .ticket-season-card .ticket-season-value,
    .ticket-season-name strong{
        min-height:36px;
        margin:0;
        align-items:center;
        line-height:1.2;
    }
}

/* Startseite: redaktionellen Text nicht über fast die gesamte
   Bildschirmbreite ziehen. Andere Seiten behalten ihre bisherigen Breiten. */
.home-content{
    width:min(1180px,86vw) !important;
    margin-left:auto;
    margin-right:auto;
}

@media (max-width: 1100px){
    .home-content{width:min(980px,90vw) !important}
}
@media (max-width: 760px){
    .home-content{width:92vw !important}
}

/* =========================================================
   V24.4 – kompakter Sticky-Header auf Desktop
   Oben bleibt das Logo präsent. Nach kurzem Scrollweg schrumpfen
   Logo, Weißraum und Navigation weich auf eine kompakte Leiste.
   ========================================================= */
@media (min-width: 761px){
    .original-header,
    .original-head-inner,
    .circus-logo,
    .circus-logo img,
    .original-nav,
    .original-nav a{
        transition:
            min-height .28s ease,
            height .28s ease,
            width .28s ease,
            max-width .28s ease,
            max-height .28s ease,
            padding .28s ease,
            gap .28s ease,
            font-size .28s ease,
            box-shadow .28s ease;
    }

    .original-header.is-compact{
        box-shadow:0 7px 18px rgba(0,0,0,.14);
    }
    .original-header.is-compact .original-head-inner{
        min-height:88px;
        gap:28px;
    }
    .original-header.is-compact .circus-logo{
        width:230px;
        min-width:210px;
    }
    .original-header.is-compact .circus-logo img{
        max-width:210px;
        max-height:74px;
    }
    .original-header.is-compact .original-nav{
        height:44px;
    }
    .original-header.is-compact .original-nav a{
        padding-left:18px;
        padding-right:18px;
        font-size:17px;
    }
}

/* Auf kleineren Desktop-/Notebook-Breiten noch etwas kompakter,
   damit die Navigation weiterhin in einer Zeile bleibt. */
@media (min-width: 761px) and (max-width: 1250px){
    .original-header.is-compact .original-head-inner{
        min-height:80px;
        gap:18px;
    }
    .original-header.is-compact .circus-logo{
        width:190px;
        min-width:175px;
    }
    .original-header.is-compact .circus-logo img{
        max-width:180px;
        max-height:64px;
    }
    .original-header.is-compact .original-nav{
        height:42px;
    }
    .original-header.is-compact .original-nav a{
        padding-left:12px;
        padding-right:12px;
        font-size:15px;
    }
}

@media (prefers-reduced-motion: reduce){
    .original-header,
    .original-head-inner,
    .circus-logo,
    .circus-logo img,
    .original-nav,
    .original-nav a{
        transition:none !important;
    }
}


/* V24.5 – einheitliche Typografie für Inhaltskarten */
.info-ticket-item h3{
 font-family:Georgia,"Times New Roman",serif!important;
 font-size:22px!important;
 line-height:1.25!important;
 font-weight:700!important;
 letter-spacing:0!important;
 text-transform:none!important;
 margin:8px 0 20px!important;
}
@media(max-width:700px){.info-ticket-item h3{font-size:20px!important;line-height:1.25!important;margin:6px 0 16px!important}}

/* ============================================================
   V25 – PREMIUM DESIGN SYSTEM
   Einheitliche Typografie, Abstände, Komponenten und Animationen
   ============================================================ */
:root{
  --premium-max:1180px;
  --premium-wide:1460px;
  --space-1:8px;--space-2:14px;--space-3:22px;--space-4:34px;--space-5:52px;--space-6:78px;--space-7:110px;
  --radius-sm:10px;--radius-md:18px;--radius-lg:28px;
  --shadow-soft:0 14px 40px rgba(54,31,22,.09);
  --shadow-card:0 18px 55px rgba(54,31,22,.12);
  --shadow-float:0 24px 70px rgba(54,31,22,.17);
  --ease-premium:cubic-bezier(.22,1,.36,1);
}
body{background:var(--body-bg);color:var(--text-color);font-family:Georgia,'Times New Roman',serif;-webkit-font-smoothing:antialiased;text-rendering:optimizeLegibility}
.wrap,.section-shell{width:min(var(--premium-wide),92vw);margin-inline:auto}.section-shell{position:relative}
.content,.prose-premium{font-size:clamp(18px,1.25vw,21px);line-height:1.72}.prose-premium{max-width:var(--premium-max);margin-inline:auto}
.content p,.prose-premium p{margin:0 0 1.15em}.content ul,.content ol,.prose-premium ul,.prose-premium ol{padding-left:1.3em}
.content h1,.content h2,.content h3,.prose-premium h1,.prose-premium h2,.prose-premium h3{letter-spacing:-.018em;text-wrap:balance}
.content h2,.prose-premium h2{font-size:clamp(2rem,3vw,2.7rem)}.content h3,.prose-premium h3{font-size:clamp(1.4rem,2vw,1.8rem)}
.content a,.prose-premium a,.premium-text-link{color:var(--link);text-decoration:none;background-image:linear-gradient(currentColor,currentColor);background-size:0 1px;background-position:0 100%;background-repeat:no-repeat;transition:color .25s ease,background-size .35s var(--ease-premium)}
.content a:hover,.prose-premium a:hover,.premium-text-link:hover{color:var(--link-hover);background-size:100% 1px}

.premium-eyebrow{display:block;font-family:'Oswald',sans-serif;font-size:12px;line-height:1.2;letter-spacing:.23em;text-transform:uppercase;color:var(--gold);margin-bottom:12px}
.premium-section-heading{margin-bottom:38px}.premium-section-heading h2{font:400 clamp(2.7rem,5vw,4.7rem)/1 'Lobster',cursive;color:var(--red);text-shadow:2px 3px 6px rgba(0,0,0,.14);margin:0}.premium-section-heading p{max-width:720px;font-size:18px;margin:13px 0 0;color:color-mix(in srgb,var(--text-color) 72%,transparent)}
.premium-section-heading-split{display:flex;justify-content:space-between;gap:30px;align-items:end}.premium-text-link{font:700 15px/1.2 'Montserrat',sans-serif;white-space:nowrap;padding-bottom:5px}

.premium-button{display:inline-flex;align-items:center;justify-content:center;min-height:52px;padding:0 25px;border-radius:999px;font:700 15px/1 'Montserrat',sans-serif;text-decoration:none!important;box-shadow:0 10px 24px rgba(0,0,0,.12);transition:transform .3s var(--ease-premium),box-shadow .3s ease,background .3s ease;color:#fff!important;background-image:none!important}
.premium-button:hover{transform:translateY(-3px);box-shadow:0 17px 34px rgba(0,0,0,.2)}.premium-button-primary{background:linear-gradient(135deg,var(--red),#7d1012)}.premium-button-ghost{background:rgba(255,255,255,.12);border:1px solid rgba(255,255,255,.55);backdrop-filter:blur(8px)}
.premium-actions{display:flex;gap:14px;flex-wrap:wrap;justify-content:center;margin-top:26px}

.home-editorial{padding:clamp(55px,7vw,100px) 0;background:radial-gradient(circle at 50% -15%,rgba(215,166,43,.11),transparent 38%)}
.home-editorial .original-centered{max-width:1100px;margin-inline:auto}.home-editorial .original-centered h1{font-size:clamp(3rem,5.5vw,5.2rem)}
.home-highlights,.home-program-preview,.home-next-shows{padding:clamp(70px,8vw,115px) 0}
.home-highlights{background:linear-gradient(180deg,rgba(255,255,255,.2),rgba(255,255,255,.75))}
.home-highlight-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:16px}
.premium-card{position:relative;overflow:hidden;min-height:320px;padding:32px 28px;display:flex;flex-direction:column;border-radius:var(--radius-md);text-decoration:none!important;color:var(--text-color)!important;background:var(--card-bg);border:1px solid rgba(120,90,70,.12);box-shadow:var(--shadow-soft);transition:transform .42s var(--ease-premium),box-shadow .42s ease,border-color .3s ease;background-image:none!important}
.premium-card:before{content:"";position:absolute;inset:0 0 auto;height:5px;background:linear-gradient(90deg,var(--red),var(--gold));transform:scaleX(.35);transform-origin:left;transition:transform .45s var(--ease-premium)}.premium-card:hover{transform:translateY(-9px);box-shadow:var(--shadow-float);border-color:rgba(168,23,24,.2)}.premium-card:hover:before{transform:scaleX(1)}
.premium-card-number{font:700 12px/1 'Montserrat',sans-serif;color:rgba(0,0,0,.28);letter-spacing:.15em}.premium-card-kicker{margin-top:auto;font:600 11px/1 'Oswald',sans-serif;letter-spacing:.2em;text-transform:uppercase;color:var(--gold)}.premium-card h3{font:700 clamp(1.45rem,2vw,2rem)/1.08 Georgia,serif;margin:11px 0}.premium-card p{font:16px/1.55 'Open Sans',sans-serif;margin:0 0 22px;color:color-mix(in srgb,var(--text-color) 76%,transparent)}.premium-arrow{font:700 14px/1 'Montserrat',sans-serif;color:var(--red)}

.home-program-preview{background:var(--body-bg)}.home-act-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:18px}.home-act-card{display:block;text-decoration:none!important;color:inherit!important;background:var(--card-bg);border-radius:var(--radius-md);overflow:hidden;box-shadow:var(--shadow-soft);background-image:none!important;transition:transform .42s var(--ease-premium),box-shadow .42s ease}.home-act-card:hover{transform:translateY(-8px);box-shadow:var(--shadow-float)}.home-act-media{aspect-ratio:4/3;overflow:hidden;background:#111;position:relative}.home-act-media:after{content:"";position:absolute;inset:0;background:linear-gradient(to top,rgba(0,0,0,.25),transparent 50%)}.home-act-media img{width:100%;height:100%;object-fit:cover;transition:transform .9s var(--ease-premium)}.home-act-card:hover img{transform:scale(1.045)}.home-act-placeholder{display:grid;place-items:center;height:100%;font-size:60px;color:var(--gold)}.home-act-copy{padding:24px}.home-act-copy>span{font:700 11px 'Montserrat',sans-serif;color:var(--gold);letter-spacing:.18em}.home-act-copy h3{font:400 clamp(2rem,3.2vw,3.1rem)/1 'Lobster',cursive;color:var(--red);margin:6px 0 8px;text-shadow:1px 2px 4px rgba(0,0,0,.12)}.home-act-copy p{font:700 15px/1.4 Georgia,serif;margin:0}

.home-ticket-stage{position:relative;overflow:hidden;padding:clamp(85px,10vw,150px) 20px;text-align:center;color:#fff;background:linear-gradient(125deg,#061f34,#084a80 55%,#6f1318)}.home-ticket-stage:before{content:"";position:absolute;inset:-30%;background:radial-gradient(circle,rgba(215,166,43,.22),transparent 34%);animation:premiumGlow 10s ease-in-out infinite alternate}.home-ticket-stage-inner{position:relative;z-index:1;max-width:950px;margin:auto}.home-ticket-stage h2{font:400 clamp(3rem,6vw,5.5rem)/1 'Lobster',cursive;margin:0;text-shadow:0 5px 18px rgba(0,0,0,.3);text-wrap:balance}.home-ticket-stage p{font-size:20px}.home-ticket-stage .premium-eyebrow{color:#f5ca55}
@keyframes premiumGlow{from{transform:translate3d(-5%,0,0) scale(1)}to{transform:translate3d(7%,4%,0) scale(1.12)}}

.home-show-strip{display:grid;grid-template-columns:repeat(3,1fr);gap:14px}.home-show-mini{position:relative;padding:26px;border-radius:var(--radius-md);background:var(--card-bg);box-shadow:var(--shadow-soft);text-decoration:none!important;color:inherit!important;background-image:none!important;display:grid;grid-template-columns:auto 1fr;column-gap:16px;align-items:start;transition:transform .35s var(--ease-premium),box-shadow .35s}.home-show-mini:hover{transform:translateY(-6px);box-shadow:var(--shadow-card)}.home-show-date{grid-row:1/4;font:400 38px/1 'Lobster',cursive;color:var(--red)}.home-show-mini strong{font-size:19px}.home-show-mini small{font:14px/1.4 'Open Sans',sans-serif;opacity:.75}.home-show-mini>span:last-child{font:700 12px 'Montserrat',sans-serif;color:var(--link);margin-top:12px}

/* Globale Premium-Bewegung – dezent, performant und respektiert Reduced Motion */
.wow-section,.wow-card,.show-card,.info-ticket-item,.price-highlight-card,.info-extra-block{opacity:0;transform:translateY(26px);transition:opacity .75s var(--ease-premium),transform .75s var(--ease-premium)}.wow-section.wow-visible,.wow-card.wow-visible,.show-card.wow-visible,.info-ticket-item.wow-visible,.price-highlight-card.wow-visible,.info-extra-block.wow-visible{opacity:1;transform:none}
.original-program-image img,.hero-slide{will-change:transform}.program-separator{opacity:.86}

/* Einheitliche Inhaltskarten und Bereichsüberschriften */
.info-ticket-item,.arrival-method,.press-card,.partner-card{border-radius:var(--radius-sm);box-shadow:var(--shadow-soft)}
.info-section-title{text-transform:uppercase;font-size:clamp(1.8rem,2.4vw,2.35rem);letter-spacing:.01em}
.site-footer{padding:34px 20px;background:color-mix(in srgb,var(--body-bg) 85%,#fff);font-family:'Open Sans',sans-serif}

/* Desktop Header: kompakt beim Scrollen, ohne harten Sprung */
@media(min-width:761px){.original-header{position:sticky;top:0}.original-head-inner,.circus-logo img,.original-nav,.original-nav a{transition:all .38s var(--ease-premium)}.original-header.is-compact .original-head-inner{min-height:92px}.original-header.is-compact .circus-logo{width:250px;min-width:220px}.original-header.is-compact .circus-logo img{max-width:220px;max-height:76px}.original-header.is-compact .original-nav{height:46px}.original-header.is-compact .original-nav a{font-size:17px;padding-inline:19px}}

@media(max-width:1180px){.home-highlight-grid{grid-template-columns:repeat(2,1fr)}.home-act-grid{grid-template-columns:repeat(2,1fr)}.home-act-card:last-child{grid-column:1/-1;max-width:620px}.home-show-strip{grid-template-columns:1fr}}
@media(max-width:760px){:root{--space-6:52px;--space-7:72px}.wrap,.section-shell{width:min(94vw,680px)}.home-editorial{padding:48px 0}.home-highlight-grid,.home-act-grid{grid-template-columns:1fr}.home-act-card:last-child{grid-column:auto;max-width:none}.premium-card{min-height:255px}.premium-section-heading-split{display:block}.premium-section-heading-split .premium-text-link{display:inline-block;margin-top:18px}.premium-section-heading h2{font-size:2.8rem}.home-ticket-stage{padding:80px 18px}.home-ticket-stage h2{font-size:3.25rem}.premium-actions{flex-direction:column}.premium-button{width:100%}.home-show-mini{grid-template-columns:75px 1fr}.wow-section,.wow-card,.show-card,.info-ticket-item,.price-highlight-card,.info-extra-block{transform:translateY(16px)}}
@media(prefers-reduced-motion:reduce){*,*:before,*:after{scroll-behavior:auto!important;animation:none!important;transition-duration:.01ms!important}.wow-section,.wow-card,.show-card,.info-ticket-item,.price-highlight-card,.info-extra-block{opacity:1!important;transform:none!important}}


/* =========================================================
   V25.1 – Sticky-Navigation stabilisieren
   ---------------------------------------------------------
   Der kompakte Desktop-Header darf beim Scrollen die
   Navigation nicht horizontal unter dem Mauszeiger verschieben.
   Deshalb bleiben Logo-Spalte und Linkbreiten geometrisch stabil;
   nur Bildhöhe, Headerhöhe und Nav-Höhe werden kompakter.
   ========================================================= */
@media (min-width:761px){
    /* Keine horizontale Layout-Animation an Navigation/Links. */
    .original-head-inner{
        transition:min-height .28s ease, padding .28s ease, box-shadow .28s ease !important;
    }
    .circus-logo{
        /* Layoutbreite bleibt gleich, damit die Navigation nicht wandert. */
        width:400px !important;
        min-width:300px !important;
        transition:none !important;
    }
    .circus-logo img{
        transition:max-width .28s ease, max-height .28s ease, transform .28s ease !important;
        transform-origin:left center;
    }
    .original-nav{
        transition:height .28s ease, box-shadow .28s ease !important;
    }
    .original-nav a{
        /* Breite/Schriftgröße bleiben beim Scrollen konstant. */
        transition:background .18s ease,color .18s ease !important;
    }

    .original-header.is-compact .original-head-inner{
        min-height:88px !important;
        gap:48px !important;
    }
    .original-header.is-compact .circus-logo{
        width:400px !important;
        min-width:300px !important;
    }
    .original-header.is-compact .circus-logo img{
        max-width:205px !important;
        max-height:70px !important;
    }
    .original-header.is-compact .original-nav{
        height:44px !important;
    }
    .original-header.is-compact .original-nav a{
        padding-left:26px !important;
        padding-right:26px !important;
        font-size:20px !important;
        transform:none !important;
    }
    .original-header.is-compact .original-nav a:hover{
        transform:none !important;
    }
}

/* Notebookbreiten: Linkbreiten ebenfalls stabil halten. */
@media (min-width:761px) and (max-width:1250px){
    .circus-logo,
    .original-header.is-compact .circus-logo{
        width:300px !important;
        min-width:260px !important;
    }
    .original-header.is-compact .circus-logo img{
        max-width:175px !important;
        max-height:62px !important;
    }
    .original-header.is-compact .original-nav a{
        padding-left:13px !important;
        padding-right:13px !important;
        font-size:16px !important;
    }
}

/* =========================================================
   V25.2 – Startseite kompakter + 4 zufällige Programm-Acts
   ========================================================= */
.home-highlights,
.home-program-preview,
.home-next-shows{
    padding:clamp(44px,5.2vw,72px) 0;
}

.home-section-separator{
    display:flex;
    align-items:center;
    justify-content:center;
    gap:5px;
    width:min(520px,72vw);
    margin:0 auto;
    padding:2px 0;
    filter:drop-shadow(1px 2px 2px rgba(0,0,0,.18));
    opacity:.82;
}
.home-section-separator .separator-line{
    flex:1 1 180px;
    max-width:190px!important;
}

.home-act-grid{
    grid-template-columns:repeat(4,minmax(0,1fr));
    gap:16px;
}
.home-act-media{
    aspect-ratio:4/3;
}
.home-act-copy{
    padding:18px 18px 20px;
}
.home-act-copy h3{
    font-size:clamp(1.7rem,2.35vw,2.45rem);
}
.home-act-copy p{
    font-size:14px;
}

.home-next-shows .premium-section-heading,
.home-program-preview .premium-section-heading{
    margin-bottom:26px;
}

.home-ticket-stage{
    margin-bottom:clamp(42px,5vw,72px);
}

@media(max-width:1180px){
    .home-act-grid{grid-template-columns:repeat(2,minmax(0,1fr))}
    .home-act-card:last-child{grid-column:auto;max-width:none}
}
@media(max-width:760px){
    .home-highlights,
    .home-program-preview,
    .home-next-shows{padding:40px 0}
    .home-act-grid{grid-template-columns:1fr}
    .home-section-separator{width:min(420px,82vw)}
}

/* V25.5 – Startseite: Status, feste Badge-Zeile und Ausverkauft-Banderole */
.home-show-strip{
    align-items:stretch;
}
.home-show-mini{
    position:relative;
    overflow:hidden;
    grid-template-columns:108px minmax(0,1fr);
    grid-template-rows:34px auto auto auto;
    column-gap:16px;
    row-gap:0;
    min-height:210px;
    padding:18px 26px 24px;
}
.home-show-topline{
    grid-column:1/-1;
    grid-row:1;
    display:flex;
    align-items:center;
    justify-content:space-between;
    gap:10px;
    min-height:34px;
    width:100%;
    margin:0 0 8px;
    position:relative;
    z-index:4;
}
.home-show-topline-left,
.home-show-topline-right{
    display:flex;
    align-items:center;
    min-width:0;
}
.home-show-topline-right{margin-left:auto}
.home-show-date{
    grid-column:1;
    grid-row:2/5;
    align-self:start;
}
.home-show-mini>strong{
    grid-column:2;
    grid-row:2;
}
.home-show-mini>small{
    grid-column:2;
    grid-row:3;
    min-height:2.8em;
}
.home-show-details-link{
    grid-column:2;
    grid-row:4;
    font:700 12px 'Montserrat',sans-serif!important;
    color:var(--link)!important;
    margin-top:12px;
}
.home-show-badge,
.home-show-status-badge{
    display:inline-flex;
    align-items:center;
    justify-content:center;
    min-height:28px;
    padding:5px 11px;
    border-radius:999px;
    white-space:nowrap;
    font:700 11px/1 'Montserrat',sans-serif!important;
    letter-spacing:.01em;
}
.home-show-badge{
    min-width:112px;
    background:linear-gradient(135deg,#b9191e,#d79f26);
    color:#fff!important;
    box-shadow:0 8px 20px rgba(117,18,24,.18);
}
.home-show-status-badge{
    gap:7px;
    color:#855500!important;
    background:#fff4d8;
    border:1px solid #e5c16f;
    box-shadow:0 6px 16px rgba(131,87,0,.10);
}
.home-show-status-dot{
    width:7px;
    height:7px;
    flex:0 0 7px;
    border-radius:50%;
    background:#d89200;
    box-shadow:0 0 0 4px rgba(216,146,0,.12);
    animation:homeShowPulse 1.7s ease-in-out infinite;
}
@keyframes homeShowPulse{
    0%,100%{transform:scale(1);opacity:1}
    50%{transform:scale(.78);opacity:.55}
}
.home-show-soldout-ribbon{
    position:absolute;
    left:50%;
    top:50%;
    z-index:8;
    width:145%;
    padding:9px 20px;
    transform:translate(-50%,-50%) rotate(-17deg);
    background:linear-gradient(90deg,#991116,#cf1d22,#991116);
    color:#fff!important;
    text-align:center;
    text-transform:uppercase;
    font:900 13px/1.15 'Montserrat',sans-serif!important;
    letter-spacing:.16em;
    box-shadow:0 8px 20px rgba(103,0,0,.28);
    pointer-events:none;
}
.home-show-mini.is-sold-out .home-show-topline,
.home-show-mini.is-sold-out .home-show-date,
.home-show-mini.is-sold-out>strong,
.home-show-mini.is-sold-out>small,
.home-show-mini.is-sold-out .home-show-details-link{
    opacity:.52;
}
@media(max-width:760px){
    .home-show-mini{
        grid-template-columns:82px minmax(0,1fr);
        grid-template-rows:32px auto auto auto;
        min-height:205px;
        padding:16px 20px 22px;
        column-gap:12px;
    }
    .home-show-topline{min-height:32px;margin-bottom:7px}
    .home-show-badge{min-width:102px}
    .home-show-badge,.home-show-status-badge{font-size:10px!important;padding:5px 9px;min-height:27px}
    .home-show-soldout-ribbon{width:155%;font-size:11px!important}
}

/* V25.4 – Ticket-Shop: Preis-Badges einheitlich breit */
.ticket-shop-page .special-price-badge,
.ticket-original-row .special-price-badge{
    width:170px!important;
    min-width:170px!important;
    max-width:170px!important;
    min-height:44px;
    padding:8px 14px!important;
    box-sizing:border-box;
    justify-content:center!important;
    text-align:center!important;
    white-space:nowrap!important;
}
.ticket-shop-page .special-price-badge span,
.ticket-original-row .special-price-badge span{
    width:22px;
    flex:0 0 22px;
    text-align:center;
}
.ticket-shop-page .special-price-badge strong,
.ticket-original-row .special-price-badge strong{
    flex:1 1 auto;
    text-align:center;
}
@media(max-width:900px){
    .ticket-shop-page .special-price-badge,
    .ticket-original-row .special-price-badge{
        width:170px!important;
        min-width:170px!important;
        max-width:170px!important;
    }
}


/* =========================================================
   V25.6 – Startseite: Vorstellungs-Hover + Programm-Bildausschnitt
   ========================================================= */

/* Die Karten „Nächste Vorstellungen“ verhalten sich jetzt wie
   die vier Premium-Karten darüber: Akzentlinie fährt auf und
   die Karte hebt sich sichtbar, aber ruhig an. */
.home-show-mini{
    border:1px solid rgba(120,90,70,.10);
    isolation:isolate;
    transition:
        transform .42s var(--ease-premium),
        box-shadow .42s ease,
        border-color .3s ease,
        background-color .3s ease;
}
.home-show-mini:before{
    content:"";
    position:absolute;
    z-index:2;
    top:0;
    left:0;
    right:0;
    height:5px;
    background:linear-gradient(90deg,var(--red),var(--gold));
    transform:scaleX(.28);
    transform-origin:left center;
    transition:transform .45s var(--ease-premium);
    pointer-events:none;
}
.home-show-mini:hover{
    transform:translateY(-9px);
    box-shadow:var(--shadow-float);
    border-color:rgba(168,23,24,.20);
}
.home-show-mini:hover:before{
    transform:scaleX(1);
}
.home-show-mini.is-sold-out:hover{
    transform:translateY(-7px);
}

/* Programm-Vorschau: exakt dieselben Fokus-/Zoomwerte wie beim
   jeweiligen Programm-Act. Die 16:10-Fläche entspricht dem
   Hauptbild auf der Programmseite, damit der gespeicherte
   Ausschnitt tatsächlich gleich wirkt. */
.home-act-media{
    aspect-ratio:16/10;
}
.home-act-media img{
    width:100%;
    height:100%;
    object-fit:cover;
    object-position:var(--focus-x,50%) var(--focus-y,50%);
    transform:scale(var(--img-scale,1));
    transform-origin:var(--focus-x,50%) var(--focus-y,50%);
    transition:transform .9s var(--ease-premium),object-position .3s ease;
}
.home-act-card:hover .home-act-media img{
    transform:scale(calc(var(--img-scale,1) * 1.045));
}

@media(max-width:760px){
    .home-show-mini:hover{transform:translateY(-5px)}
}

/* =========================================================
   V25.7 – Startseite: Live-Vorstellungen + rotierende Acts
   ========================================================= */
.home-show-strip,
.home-act-grid{
    transition:opacity .28s ease,transform .34s var(--ease-premium);
    will-change:opacity,transform;
}
.home-show-strip.is-refreshing-out{
    opacity:.22;
    transform:translateY(7px);
}
.home-show-strip.is-refreshing-in{
    opacity:0;
    transform:translateY(-5px);
}
.home-act-grid.is-rotating-out{
    opacity:0;
    transform:translateY(10px) scale(.992);
}
.home-act-grid.is-rotating-in{
    opacity:0;
    transform:translateY(-9px) scale(.992);
}

/* Dezentes 5-Sekunden-Laufband. Es pausiert zusammen mit der
   Rotation, sobald auf Desktop über dem Programmbereich gehovert wird. */
.home-program-progress{
    width:min(100%,520px);
    height:2px;
    margin:-12px 0 22px;
    overflow:hidden;
    border-radius:999px;
    background:rgba(171,31,29,.10);
}
.home-program-progress>span{
    display:block;
    width:100%;
    height:100%;
    border-radius:inherit;
    background:linear-gradient(90deg,var(--red),var(--gold));
    transform:scaleX(0);
    transform-origin:left center;
    will-change:transform;
}

/* Während des dynamischen Nachladens bleiben Kartenbreite und
   Ausrichtung stabil; neu geladene Karten bekommen automatisch
   dieselben Hover-Effekte wie die initialen Cards. */
.home-act-grid:empty,
.home-show-strip:empty{
    min-height:180px;
}

@media(max-width:760px){
    .home-program-progress{
        width:100%;
        margin:-8px 0 18px;
    }
}

@media(prefers-reduced-motion:reduce){
    .home-show-strip,
    .home-act-grid{
        transition:none!important;
        transform:none!important;
    }
    .home-program-progress>span{
        transform:scaleX(1)!important;
    }
}

/* =========================================================
   V25.9 – weichere Programm-Act-Überblendung
   ========================================================= */
.home-program-transition-host{
    position:relative;
}
.home-act-transition-layer{
    position:absolute!important;
    z-index:8;
    margin:0!important;
    pointer-events:none!important;
    user-select:none;
    will-change:opacity,transform,filter;
}
.home-act-transition-layer .home-act-card{
    pointer-events:none!important;
}

/* =========================================================
   V25.10 – Startseiten-Acts kompakter + Ticket-Shop Live-Update
   ========================================================= */

/* Die laufenden Nummern der vier zufälligen Acts werden nicht mehr
   ausgegeben. Die Namen bleiben bewusst kompakt und auf einer Zeile. */
.home-act-copy{
    padding:18px 20px 21px;
}
.home-act-copy>span{
    display:none!important;
}
.home-act-copy h3{
    margin:0 0 6px;
    padding:0 0 5px;
    font-size:clamp(1.35rem,1.72vw,1.78rem)!important;
    line-height:1.16!important;
    white-space:nowrap;
    overflow:visible;
    text-overflow:clip;
}
.home-act-copy p{
    font-size:14px;
    line-height:1.35;
}

/* Ticket-Shop: Änderungen aus dem Backend sowie Statuswechsel
   (läuft / beendet) werden ohne Seiten-Reload weich übernommen. */
.ticket-board{
    transition:opacity .22s ease,transform .28s var(--ease-premium);
    will-change:opacity,transform;
}
.ticket-board.ticket-live-updating{
    opacity:.42;
    transform:translateY(3px);
}
.ticket-board.ticket-live-updated{
    animation:ticketLiveReveal .42s var(--ease-premium) both;
}
@keyframes ticketLiveReveal{
    from{opacity:.55;transform:translateY(-3px)}
    to{opacity:1;transform:translateY(0)}
}

/* Beendete Vorstellungen bleiben weiterhin sichtbar und werden nur
   optisch zurückgenommen – sie werden vom Live-Update nicht entfernt. */
.ticket-original-row.past{
    opacity:.56;
    filter:saturate(.72);
}
.ticket-original-row.past:hover{
    opacity:.72;
}

@media(max-width:1180px){
    .home-act-copy h3{
        font-size:clamp(1.35rem,2.5vw,1.7rem)!important;
    }
}
@media(max-width:760px){
    .home-act-copy h3{
        white-space:normal;
        overflow:visible;
        text-overflow:clip;
        font-size:1.85rem!important;
    }
}
@media(prefers-reduced-motion:reduce){
    .ticket-board{
        transition:none!important;
        transform:none!important;
    }
    .ticket-board.ticket-live-updated{
        animation:none!important;
    }
}

/* =========================================================
   V26 – Mobile Feinschliff
   Header, Inhaltsbreiten, Partner, Programm und Ticket-Shop
   ========================================================= */

@media (max-width: 760px){

    html,
    body{
        width:100%;
        max-width:100%;
        overflow-x:hidden !important;
    }

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

    .original-head-inner{
        min-height:72px !important;
        padding:6px 16px !important;
    }

    .circus-logo{
        width:auto !important;
        min-width:0 !important;
    }

    .circus-logo img{
        width:auto !important;
        max-width:170px !important;
        max-height:62px !important;
    }

    .hamb{
        margin-left:auto !important;
        font-size:29px !important;
        line-height:1 !important;
        padding:7px !important;
    }

    /* Headerbilder auf Mobil deutlich flacher */
    .hero-slider{
        height:265px !important;
        min-height:265px !important;
        max-height:265px !important;
    }

    .hero-caption{
        left:18px !important;
        right:18px !important;
        bottom:22px !important;
        width:auto !important;
        transform:none !important;
        overflow:visible !important;
    }

    .hero-caption h1{
        margin:0 !important;
        max-width:100% !important;
        font-size:clamp(1.8rem, 8.2vw, 2.35rem) !important;
        line-height:1.02 !important;
        white-space:nowrap !important;
        text-wrap:nowrap !important;
        letter-spacing:-.02em !important;
    }

    .hero-kicker{
        margin-bottom:7px !important;
        font-size:10px !important;
        letter-spacing:.15em !important;
        white-space:nowrap !important;
    }

    .hero-dots{
        bottom:10px !important;
        gap:7px !important;
    }

    .hero-dots button{
        width:9px !important;
        height:9px !important;
    }

    /* Startseite */
    .home-editorial{
        padding:28px 0 34px !important;
    }

    .home-editorial-inner,
    .home-editorial .original-centered{
        width:86vw !important;
        max-width:86vw !important;
        margin-left:auto !important;
        margin-right:auto !important;
    }

    .home-editorial-inner,
    .home-editorial-inner p{
        font-size:17px !important;
        line-height:1.62 !important;
    }

    .section-shell{
        width:90vw !important;
        max-width:90vw !important;
    }

    .home-highlights,
    .home-next-shows,
    .home-program-preview{
        padding-left:0 !important;
        padding-right:0 !important;
    }

    /* Datenschutz / Impressum / normale CMS-Seiten */
    .wrap.content,
    main.wrap.content,
    .page-content{
        width:88vw !important;
        max-width:88vw !important;
        margin-left:auto !important;
        margin-right:auto !important;
        padding:34px 0 48px !important;
        overflow:visible !important;
        font-size:17px !important;
        line-height:1.62 !important;
    }

    .content > *,
    .page-content > *{
        max-width:100% !important;
    }

    .content p,
    .content li,
    .content blockquote,
    .page-content p,
    .page-content li,
    .page-content blockquote{
        max-width:100% !important;
        overflow-wrap:break-word !important;
        word-break:normal !important;
    }

    .content a,
    .page-content a{
        overflow-wrap:anywhere !important;
    }

    .content img,
    .page-content img,
    .content iframe,
    .page-content iframe,
    .content table,
    .page-content table{
        max-width:100% !important;
    }

    .content h1,
    .page-content h1{
        font-size:clamp(2.25rem, 10vw, 3rem) !important;
        line-height:1.06 !important;
    }

    .content h2,
    .page-content h2{
        font-size:clamp(1.75rem, 7.5vw, 2.15rem) !important;
        line-height:1.12 !important;
    }

    .content h3,
    .page-content h3{
        font-size:clamp(1.35rem, 6vw, 1.65rem) !important;
        line-height:1.18 !important;
    }

    .page-title{
        width:88vw !important;
        margin:0 auto !important;
        padding:32px 0 20px !important;
        overflow:hidden !important;
        text-align:center !important;
    }

    .page-title h1{
        max-width:100% !important;
        margin:0 auto !important;
        font-size:clamp(2.4rem, 11vw, 3.35rem) !important;
        line-height:1.02 !important;
        overflow-wrap:break-word !important;
    }

    /* Partner */
    .partner-page{
        padding-top:30px !important;
    }

    .partner-page-inner{
        width:88vw !important;
        max-width:88vw !important;
    }

    .partner-section{
        margin-bottom:38px !important;
    }

    .partner-section h2{
        font-size:clamp(1.65rem, 7.4vw, 2rem) !important;
        line-height:1.15 !important;
        text-align:center !important;
        margin-bottom:22px !important;
    }

    .partner-logo-row,
    .partner-grid,
    .partner-grid-presented{
        grid-template-columns:repeat(2,minmax(0,1fr)) !important;
        gap:20px 14px !important;
        align-items:center !important;
    }

    .partner-card{
        min-width:0 !important;
        min-height:104px !important;
        padding:8px !important;
    }

    .partner-card img{
        max-width:145px !important;
        max-height:82px !important;
    }

    .partner-logo-row > .partner-card:only-child,
    .partner-grid > .partner-card:only-child,
    .partner-grid-presented > .partner-card:only-child,
    .partner-logo-row > .partner-card:last-child:nth-child(odd),
    .partner-grid > .partner-card:last-child:nth-child(odd),
    .partner-grid-presented > .partner-card:last-child:nth-child(odd){
        grid-column:1 / -1 !important;
        width:min(190px, 72vw) !important;
        justify-self:center !important;
    }

    .partner-text-block{
        width:100% !important;
        margin:24px auto 34px !important;
        text-align:center !important;
    }

    .partner-text-content{
        font-size:16px !important;
        line-height:1.55 !important;
    }

    /* Programm */
    .program-original-layout{
        width:90vw !important;
        max-width:90vw !important;
    }

    .original-program-act{
        padding-top:26px !important;
    }

    .original-program-title{
        display:block !important;
        margin-bottom:12px !important;
    }

    .original-program-title h2{
        margin:0 0 7px !important;
        font-size:clamp(1.5rem, 6.8vw, 1.85rem) !important;
        line-height:1.08 !important;
        letter-spacing:-.025em !important;
        white-space:nowrap !important;
        text-wrap:nowrap !important;
    }

    .original-program-subtitle{
        font-size:16px !important;
        line-height:1.3 !important;
    }

    .original-program-images{
        gap:10px !important;
    }

    /* Ticket-Shop Kopfbereich */
    .ticket-intro{
        width:91vw !important;
        max-width:91vw !important;
        padding:28px 0 18px !important;
    }

    .ticket-intro h1{
        font-size:clamp(2.45rem, 11vw, 3.35rem) !important;
        line-height:1 !important;
        margin:0 0 28px !important;
    }

    .ticket-season-card{
        width:100% !important;
        display:grid !important;
        grid-template-columns:1fr !important;
        gap:0 !important;
        padding:0 !important;
        border-left:5px solid var(--red) !important;
        overflow:hidden !important;
        text-align:center !important;
    }

    .ticket-season-cell{
        width:100% !important;
        min-width:0 !important;
        padding:17px 18px !important;
        display:flex !important;
        flex-direction:column !important;
        align-items:center !important;
        justify-content:center !important;
        gap:6px !important;
        text-align:center !important;
    }

    .ticket-season-cell + .ticket-season-cell{
        border-left:0 !important;
        border-top:1px solid rgba(55,40,35,.09) !important;
    }

    .ticket-season-label{
        min-height:0 !important;
        text-align:center !important;
        font-size:11px !important;
    }

    .ticket-season-name strong,
    .ticket-season-value,
    .ticket-season-card .ticket-season-value,
    .ticket-season-phone{
        min-height:0 !important;
        display:flex !important;
        align-items:center !important;
        justify-content:center !important;
        text-align:center !important;
        line-height:1.18 !important;
    }

    .ticket-season-name strong{
        font-size:24px !important;
    }

    .ticket-season-value,
    .ticket-season-phone{
        font-size:19px !important;
    }

    /* Ticket-Shop Vorstellungen */
    .ticket-board{
        width:91vw !important;
        max-width:91vw !important;
        margin-left:auto !important;
        margin-right:auto !important;
    }

    .ticket-year-head{
        border-radius:8px 8px 0 0 !important;
        padding:12px 14px !important;
    }

    .ticket-original-list{
        display:grid !important;
        gap:13px !important;
        padding:13px 0 0 !important;
        background:transparent !important;
    }

    .ticket-original-row,
    .ticket-original-row.alt{
        width:100% !important;
        min-height:0 !important;
        margin:0 !important;
        padding:18px 18px 17px !important;
        display:grid !important;
        grid-template-columns:1fr !important;
        gap:0 !important;
        background:var(--card-bg) !important;
        border:1px solid rgba(90,65,50,.10) !important;
        border-radius:12px !important;
        box-shadow:0 10px 25px rgba(50,35,25,.07) !important;
        overflow:hidden !important;
    }

    .ticket-original-row:hover{
        transform:none !important;
    }

    .ticket-original-info{
        min-width:0 !important;
    }

    .ticket-status-line{
        min-height:0 !important;
        margin:0 0 9px !important;
    }

    .ticket-original-date{
        font-size:18px !important;
        line-height:1.25 !important;
        margin-bottom:5px !important;
    }

    .ticket-original-sub{
        font-size:17px !important;
        line-height:1.35 !important;
    }

    .ticket-original-note{
        margin-top:5px !important;
        font-size:14px !important;
    }

    .ticket-buy{
        width:100% !important;
        min-width:0 !important;
        margin-top:15px !important;
        padding-top:14px !important;
        border-top:1px solid rgba(60,40,30,.08) !important;
        display:flex !important;
        align-items:center !important;
        justify-content:flex-start !important;
    }

    .ticket-buy a{
        font-size:17px !important;
        line-height:1.2 !important;
    }

    .ticket-link-pending,
    .ticket-ended-label,
    .ticket-running-label,
    .sold-out-display{
        font-size:14px !important;
        line-height:1.25 !important;
    }

    .ticket-discount{
        width:100% !important;
        min-width:0 !important;
        margin-top:12px !important;
        display:flex !important;
        justify-content:flex-start !important;
        text-align:left !important;
    }

    .ticket-shop-page .special-price-badge,
    .ticket-original-row .special-price-badge{
        width:154px !important;
        min-width:154px !important;
        max-width:154px !important;
        min-height:40px !important;
        padding:7px 11px !important;
        font-size:12px !important;
    }

    .ticket-original-row.past{
        opacity:.62 !important;
    }
}

@media (max-width: 390px){
    .hero-slider{
        height:245px !important;
        min-height:245px !important;
        max-height:245px !important;
    }

    .hero-caption h1{
        font-size:clamp(1.65rem, 8vw, 2.05rem) !important;
    }

    .original-program-title h2{
        font-size:clamp(1.38rem, 6.5vw, 1.68rem) !important;
    }

    .ticket-intro,
    .ticket-board{
        width:92vw !important;
        max-width:92vw !important;
    }
}

/* =========================================================
   FIX – Diaschau-Navigation: Punkte immer exakt rund
   ========================================================= */
.hero-dots{
    align-items:center;
}

.hero-dots button{
    display:block !important;
    flex:0 0 11px !important;
    width:11px !important;
    min-width:11px !important;
    max-width:11px !important;
    height:11px !important;
    min-height:11px !important;
    max-height:11px !important;
    padding:0 !important;
    margin:0 !important;
    border:1px solid #fff !important;
    border-radius:50% !important;
    background:transparent;
    appearance:none;
    -webkit-appearance:none;
    line-height:0 !important;
    font-size:0 !important;
    box-sizing:border-box !important;
    aspect-ratio:1 / 1;
    cursor:pointer;
}

.hero-dots button.active{
    background:#fff !important;
}

@media(max-width:760px){
    .hero-dots button{
        flex-basis:9px !important;
        width:9px !important;
        min-width:9px !important;
        max-width:9px !important;
        height:9px !important;
        min-height:9px !important;
        max-height:9px !important;
    }
}

/* =========================================================
   V29.4 – PROGRAMMSEITE: Frontend exakt wie Backend-Vorschau
   ========================================================= */

/* WICHTIG: Seitenbreite NICHT verbreitern. */
.program-original-layout{
    width:min(1120px,88vw) !important;
    max-width:1120px !important;
    margin-inline:auto !important;
}

.original-program-act{
    width:100% !important;
}

.original-program-title,
.original-program-images,
.original-program-description{
    width:100% !important;
    max-width:none !important;
    margin-left:0 !important;
    margin-right:0 !important;
}

.original-program-images{
    display:grid !important;
    width:100% !important;
    max-width:none !important;
    gap:10px !important;
    margin:0 0 18px !important;
    align-items:stretch !important;
}

/*
 * Gleiche Bildmodi wie im Backend (acts.php / admin style.css):
 * 1 Bild  = 16:6
 * 2 Bilder = 3:2
 * 3 Bilder = 1:1
 */
.original-program-images.one{
    grid-template-columns:1fr !important;
}
.original-program-images.two{
    grid-template-columns:repeat(2,minmax(0,1fr)) !important;
}
.original-program-images.three{
    grid-template-columns:repeat(3,minmax(0,1fr)) !important;
}

.original-program-image{
    display:block !important;
    width:100% !important;
    max-width:none !important;
    min-width:0 !important;
    height:auto !important;
    padding:0 !important;
    margin:0 !important;
    border:0 !important;
    background:none !important;
    overflow:hidden !important;
    cursor:zoom-in !important;
}

.original-program-image-frame{
    display:block !important;
    width:100% !important;
    max-width:none !important;
    height:auto !important;
    overflow:hidden !important;
    box-shadow:0 10px 26px rgba(0,0,0,.11);
}

/* exakt dieselben Seitenverhältnisse wie die Backend-Vorschau */
.original-program-images.one .original-program-image,
.original-program-images.one .original-program-image-frame{
    aspect-ratio:16 / 6 !important;
}
.original-program-images.two .original-program-image,
.original-program-images.two .original-program-image-frame{
    aspect-ratio:3 / 2 !important;
}
.original-program-images.three .original-program-image,
.original-program-images.three .original-program-image-frame{
    aspect-ratio:1 / 1 !important;
}

/* Horizontal / Vertikal / Zoom exakt aus dem Backend übernehmen. */
.original-program-image img{
    display:block !important;
    width:100% !important;
    height:100% !important;
    max-width:none !important;
    object-fit:cover !important;
    object-position:var(--focus-x,50%) var(--focus-y,50%) !important;
    transform:scale(var(--img-scale,1)) !important;
    transform-origin:var(--focus-x,50%) var(--focus-y,50%) !important;
    transition:transform .28s ease !important;
}
.original-program-image:hover img{
    transform:scale(calc(var(--img-scale,1) * 1.015)) !important;
}

/* Beschreibung bündig und genauso breit wie der Bildbereich. */
.original-program-description{
    box-sizing:border-box !important;
    font-size:18px !important;
    line-height:1.6 !important;
}
.original-program-description > :first-child{margin-top:0 !important;}
.original-program-description > :last-child{margin-bottom:0 !important;}

/* Mobil bleibt die kompakte, lesbare Einspalten-Darstellung. */
@media(max-width:700px){
    .program-original-layout{
        width:90vw !important;
        max-width:90vw !important;
    }
    .original-program-images.two,
    .original-program-images.three{
        grid-template-columns:1fr !important;
    }
    .original-program-images.one .original-program-image,
    .original-program-images.one .original-program-image-frame,
    .original-program-images.two .original-program-image,
    .original-program-images.two .original-program-image-frame,
    .original-program-images.three .original-program-image,
    .original-program-images.three .original-program-image-frame{
        aspect-ratio:16 / 10 !important;
    }
    .original-program-description{
        font-size:16.5px !important;
    }
}


/* =========================================================
   V29.6 – PROGRAMM: Bild, Titel und Beschreibung exakt bündig
   ========================================================= */

/*
 * Die Breite eines Programmpunkts wird ausschließlich durch
 * .program-original-layout bestimmt. Ein einzelnes Hauptbild
 * darf NICHT mehr links/rechts aus diesem Bereich ausbrechen.
 *
 * Ergebnis:
 * Titelbeginn = Bildbeginn = Textbeginn
 * Titelbreite = Bildbreite = Textbreite
 */
.program-original-layout{
    width:min(1120px,88vw) !important;
    max-width:1120px !important;
    margin-inline:auto !important;
}

.original-program-act,
.original-program-title,
.original-program-images,
.original-program-description{
    width:100% !important;
    max-width:100% !important;
    box-sizing:border-box !important;
    margin-left:0 !important;
    margin-right:0 !important;
    left:auto !important;
    right:auto !important;
    transform:none !important;
}

.original-program-images.one{
    display:grid !important;
    grid-template-columns:minmax(0,1fr) !important;
    width:100% !important;
    max-width:100% !important;
    margin-inline:0 !important;
}

/* Genau derselbe flache Hauptbild-Ausschnitt wie im Backend. */
.original-program-images.one .original-program-image,
.original-program-images.one .original-program-image-frame{
    display:block !important;
    width:100% !important;
    max-width:100% !important;
    aspect-ratio:16 / 6 !important;
    margin:0 !important;
}

/* Fokus und Zoom aus dem Backend unverändert übernehmen. */
.original-program-images.one .original-program-image img{
    width:100% !important;
    height:100% !important;
    object-fit:cover !important;
    object-position:var(--focus-x,50%) var(--focus-y,50%) !important;
    transform:scale(var(--img-scale,1)) !important;
    transform-origin:var(--focus-x,50%) var(--focus-y,50%) !important;
}

/* Beschreibung exakt unter dem Bild und mit derselben Breite. */
.original-program-description{
    width:100% !important;
    max-width:100% !important;
    margin-inline:0 !important;
}

/* Auf Mobilgeräten weiterhin innerhalb des Viewports bleiben. */
@media(max-width:700px){
    .program-original-layout{
        width:90vw !important;
        max-width:90vw !important;
    }

    .original-program-images.one .original-program-image,
    .original-program-images.one .original-program-image-frame{
        aspect-ratio:16 / 10 !important;
    }
}



/* =========================================================
   V31 – PROGRAMM: wählbares Layout bei genau 3 Bildern
   ========================================================= */

/* Standard / Automatisch: 3 Bilder quadratisch. */
.original-program-images.three.three-square .original-program-image,
.original-program-images.three.three-square .original-program-image-frame{
    aspect-ratio:1 / 1 !important;
}

/* Alternative pro Act: 3 Bilder rechteckig.
   4:3 orientiert sich an den flacheren Dreier-Reihen der alten Website,
   ohne die Bilder so stark abzuschneiden wie bei 16:9. */
.original-program-images.three.three-landscape .original-program-image,
.original-program-images.three.three-landscape .original-program-image-frame{
    aspect-ratio:4 / 3 !important;
}

@media(max-width:700px){
    /* Mobil bleibt die vorhandene einspaltige, lesbare Darstellung bestehen. */
    .original-program-images.three.three-square .original-program-image,
    .original-program-images.three.three-square .original-program-image-frame,
    .original-program-images.three.three-landscape .original-program-image,
    .original-program-images.three.three-landscape .original-program-image-frame{
        aspect-ratio:16 / 10 !important;
    }
}

/* =========================================================
   V30 – Saison-Vorschau + ruhige Sticky-Navigation bei Diaschau
   ========================================================= */
.season-preview-ribbon{
    position:relative;
    z-index:990;
    display:flex;
    align-items:center;
    justify-content:center;
    gap:18px;
    min-height:42px;
    padding:8px 18px;
    background:#2b1d06;
    color:#fff4cf;
    border-bottom:1px solid rgba(215,166,43,.45);
    box-shadow:0 5px 14px rgba(0,0,0,.12);
    font:700 14px/1.35 'Montserrat',Arial,sans-serif;
    text-align:center;
}
.season-preview-ribbon a{
    display:inline-flex;
    align-items:center;
    min-height:30px;
    padding:5px 11px;
    border:1px solid rgba(255,255,255,.5);
    border-radius:999px;
    color:#fff!important;
    text-decoration:none!important;
    white-space:nowrap;
    transition:background .18s ease,border-color .18s ease;
}
.season-preview-ribbon a:hover{
    background:rgba(255,255,255,.12);
    border-color:#fff;
}

/*
 * Chrome kann bei einer direkt unter einem sticky Header animierten,
 * vollflächigen Diaschau den Header bei jedem Compositor-Wechsel um
 * Bruchteile eines Pixels neu rasterisieren. Das wirkt wie ein Zittern.
 * Header und Hero bekommen deshalb getrennte, stabile Compositing-Flächen.
 */
.original-header{
    transform:translateZ(0);
    -webkit-transform:translateZ(0);
    backface-visibility:hidden;
    -webkit-backface-visibility:hidden;
    isolation:isolate;
}
.hero-slider{
    contain:layout paint;
    isolation:isolate;
    transform:translateZ(0);
    -webkit-transform:translateZ(0);
}
.hero-slider.is-slideshow .hero-slide{
    transform:none!important;
    transition:opacity .72s ease!important;
    will-change:opacity;
    backface-visibility:hidden;
    -webkit-backface-visibility:hidden;
}
.hero-slider.is-slideshow .hero-slide.active{
    transform:none!important;
}
.hero-slider.is-slideshow .hero-slide>img{
    backface-visibility:hidden;
    -webkit-backface-visibility:hidden;
    will-change:auto!important;
    animation:none!important;
}

@media(max-width:760px){
    .season-preview-ribbon{
        align-items:stretch;
        flex-direction:column;
        gap:6px;
        padding:8px 12px 10px;
        font-size:12px;
    }
    .season-preview-ribbon a{
        align-self:center;
    }
}


/* =========================================================
   V30.1 – Saison-Vorschau als feste Status-Notiz unten
           + Ticket-Shop Saisonleiste Desktop einheitlich links
   ========================================================= */

.season-preview-ribbon{
    position:fixed!important;
    left:50%!important;
    right:auto!important;
    bottom:18px!important;
    top:auto!important;
    z-index:2500!important;
    width:auto!important;
    max-width:min(920px,calc(100vw - 36px))!important;
    min-height:0!important;
    margin:0!important;
    padding:9px 11px 9px 15px!important;
    display:flex!important;
    align-items:center!important;
    justify-content:center!important;
    gap:14px!important;
    border:1px solid rgba(221,174,59,.72)!important;
    border-radius:14px!important;
    background:rgba(38,27,8,.94)!important;
    color:#fff4cf!important;
    box-shadow:0 12px 34px rgba(0,0,0,.25)!important;
    -webkit-backdrop-filter:blur(10px);
    backdrop-filter:blur(10px);
    transform:translateX(-50%)!important;
    font:700 13px/1.3 'Montserrat',Arial,sans-serif!important;
    text-align:center!important;
}
.season-preview-ribbon span{
    min-width:0;
}
.season-preview-ribbon a{
    flex:0 0 auto;
    min-height:32px!important;
    padding:6px 12px!important;
    border:1px solid rgba(255,255,255,.46)!important;
    border-radius:999px!important;
    background:rgba(255,255,255,.06)!important;
    color:#fff!important;
}
.season-preview-ribbon a:hover{
    background:rgba(255,255,255,.15)!important;
    border-color:#fff!important;
}

@media (min-width:761px){
    .ticket-season-card .ticket-season-cell,
    .ticket-season-card > div:first-child{
        display:flex!important;
        flex-direction:column!important;
        align-items:flex-start!important;
        justify-content:center!important;
        text-align:left!important;
    }

    .ticket-season-card .ticket-season-label,
    .ticket-season-card .ticket-season-value,
    .ticket-season-card .ticket-season-name strong,
    .ticket-season-card .ticket-season-phone{
        width:100%;
        justify-content:flex-start!important;
        text-align:left!important;
    }
}

@media(max-width:760px){
    .season-preview-ribbon{
        bottom:10px!important;
        width:calc(100vw - 20px)!important;
        max-width:none!important;
        padding:8px 9px 8px 12px!important;
        flex-direction:row!important;
        align-items:center!important;
        gap:8px!important;
        font-size:11px!important;
        border-radius:12px!important;
    }
    .season-preview-ribbon span{
        flex:1 1 auto;
        text-align:left;
    }
    .season-preview-ribbon a{
        align-self:auto!important;
        padding:6px 9px!important;
        font-size:11px!important;
    }
}


/* =========================================================
   V30.2 – Sticky-Header / Diaschau wirklich entkoppeln
   ---------------------------------------------------------
   Ziel:
   - kein horizontales/vertikales Zittern der Navigation beim
     Wechsel einer Hero-Diaschau
   - Header-Geometrie unabhängig vom Compositor der Diaschau
   - kein Scroll-Anchoring durch Hero-Slide-Wechsel
   ========================================================= */

html{
    scrollbar-gutter:stable;
}

/* Kein vw für die Header-Innenbreite:
   vw kann sich beim Scrollbar-/Compositor-Wechsel sichtbar verschieben. */
@media (min-width:761px){
    .original-head-inner{
        width:min(1500px,calc(100% - 48px))!important;
    }
}

/* Sticky Header NICHT als transformierte GPU-Ebene behandeln.
   Ein transformiertes sticky Element kann in Chromium beim Crossfade
   darunter neu gerastert werden. */
.original-header{
    transform:none!important;
    -webkit-transform:none!important;
    backface-visibility:visible!important;
    -webkit-backface-visibility:visible!important;
    will-change:auto!important;
    overflow-anchor:none;
}

/* Hero bleibt vollständig in seiner eigenen Malfläche. */
.hero-slider{
    contain:layout paint style;
    isolation:isolate;
    overflow:hidden!important;
    overflow-anchor:none;
}

/* Bei Diaschau werden ausschließlich Deckkraft/Visibility der Slides geändert.
   Keine Scale-/Translate-/Filter-Animation auf Slide oder Bild. */
.hero-slider.is-slideshow .hero-slide{
    position:absolute!important;
    inset:0!important;
    opacity:0!important;
    visibility:hidden!important;
    transform:none!important;
    transition:opacity .75s ease!important;
    will-change:opacity!important;
    pointer-events:none!important;
}
.hero-slider.is-slideshow .hero-slide.active{
    opacity:1!important;
    visibility:visible!important;
    transform:none!important;
}
.hero-slider.is-slideshow .hero-slide>img{
    transform:scale(var(--hero-inline-scale,1))!important;
    translate:none!important;
    animation:none!important;
    transition:none!important;
    filter:none!important;
    will-change:auto!important;
    backface-visibility:visible!important;
    -webkit-backface-visibility:visible!important;
}

/* Die Navigationsleiste selbst erhält keine Transform-Animation. */
@media (min-width:761px){
    .original-nav,
    .original-nav a,
    .circus-logo,
    .circus-logo img,
    .original-head-inner{
        transform:none!important;
    }
}


/* =========================================================
   V33.5 – Startseite: kompaktere Abstände + zusätzlicher Trenner
   ========================================================= */

/* Diashow -> saisonaler Einleitungstext: etwa halb so viel Luft. */
.home-editorial{
    padding:clamp(28px,3.6vw,48px) 0 clamp(22px,3vw,40px) !important;
}

/* Die weiteren Hauptabschnitte kompakter halten. */
.home-highlights,
.home-next-shows,
.home-program-preview{
    padding:clamp(26px,3.2vw,44px) 0 !important;
}

/* Überschrift -> Inhalt ebenfalls etwas enger. */
.home-next-shows .premium-section-heading,
.home-program-preview .premium-section-heading{
    margin-bottom:clamp(16px,1.8vw,22px) !important;
}

/* Alle Trenner behalten exakt die gleiche Grafik, nur die Abstände ändern sich. */
.home-section-separator{
    margin-left:auto !important;
    margin-right:auto !important;
}

/* Neuer Grafiktrenner direkt nach dem Einleitungstext. */
.home-section-separator--after-editorial{
    margin-top:clamp(8px,1vw,14px) !important;
    margin-bottom:clamp(16px,1.8vw,24px) !important;
}

/* Zwischen den mittleren Startseitenbereichen deutlich kompakter. */
.home-section-separator--compact{
    margin-top:clamp(8px,1vw,14px) !important;
    margin-bottom:clamp(8px,1vw,14px) !important;
}

/* Vor "Bereit für einen unvergesslichen Circusabend?" etwas mehr Luft. */
.home-section-separator--before-ticket{
    margin-top:clamp(12px,1.3vw,18px) !important;
    margin-bottom:clamp(28px,3vw,42px) !important;
}

/* Abschlussbereich selbst nicht unnötig tief beginnen lassen. */
.home-ticket-stage{
    padding-top:clamp(72px,8vw,118px) !important;
}

@media(max-width:760px){
    .home-editorial{
        padding:22px 0 26px !important;
    }

    .home-highlights,
    .home-next-shows,
    .home-program-preview{
        padding:26px 0 !important;
    }

    .home-section-separator--after-editorial{
        margin-top:6px !important;
        margin-bottom:16px !important;
    }

    .home-section-separator--compact{
        margin-top:6px !important;
        margin-bottom:6px !important;
    }

    .home-section-separator--before-ticket{
        margin-top:10px !important;
        margin-bottom:26px !important;
    }

    .home-ticket-stage{
        padding-top:68px !important;
    }
}


/* =========================================================
   V33.6 – Programm & Hauptnavigation Premium-Finish
   ========================================================= */

/* Direkte #act-Links dürfen nicht unter dem Sticky-Header verschwinden. */
.original-program-act{
    scroll-margin-top:118px;
}

/* Programmüberschriften etwas plastischer, aber weiter klassisch. */
.original-program-title h2{
    text-shadow:
        0 2px 0 rgba(255,255,255,.72),
        2px 4px 7px rgba(72,35,25,.20) !important;
}
.original-program-subtitle{
    text-shadow:0 1px 0 rgba(255,255,255,.72);
}

/* Bilder bleiben in exakt denselben Formaten/Ausschnitten, bekommen aber
   einen hochwertigen Rahmen, Tiefe und einen dezenten Hover-Effekt. */
.original-program-image{
    position:relative;
    overflow:hidden;
    border:1px solid rgba(80,51,38,.16) !important;
    border-radius:12px !important;
    background:#17120f !important;
    box-shadow:
        0 10px 24px rgba(52,34,25,.10),
        0 2px 6px rgba(52,34,25,.08);
    transition:
        transform .34s cubic-bezier(.2,.8,.2,1),
        box-shadow .34s ease,
        border-color .34s ease !important;
}
.original-program-image::after{
    content:"";
    position:absolute;
    inset:0;
    pointer-events:none;
    z-index:2;
    border-radius:inherit;
    background:
        linear-gradient(180deg,rgba(255,255,255,.10),transparent 16%,transparent 76%,rgba(0,0,0,.10));
    box-shadow:inset 0 0 0 1px rgba(255,255,255,.06);
    opacity:.72;
    transition:opacity .3s ease;
}
.original-program-image-frame{
    border-radius:inherit !important;
    overflow:hidden !important;
}
.original-program-image img{
    transition:transform .6s cubic-bezier(.2,.8,.2,1),filter .35s ease !important;
}
.original-program-image:hover{
    transform:translateY(-4px);
    border-color:rgba(168,23,24,.28) !important;
    box-shadow:
        0 18px 36px rgba(52,34,25,.16),
        0 4px 10px rgba(52,34,25,.10);
}
.original-program-image:hover::after{opacity:.35}
.original-program-image:hover img{
    transform:scale(calc(var(--img-scale,1) * 1.025)) !important;
    filter:saturate(1.025) contrast(1.015);
}

/* Navigation: weniger "blauer Balken", mehr eigenständige Premium-Leiste.
   Keine Geometrieänderung beim Hover -> die zuvor behobene Unruhe bleibt weg. */
@media (min-width:761px){
    .original-head-inner{
        gap:38px !important;
    }
    .circus-logo img{
        filter:
            drop-shadow(0 5px 8px rgba(69,34,18,.18))
            drop-shadow(0 1px 1px rgba(0,0,0,.12));
    }
    .circus-logo:hover img{
        filter:
            drop-shadow(0 7px 11px rgba(69,34,18,.23))
            drop-shadow(0 1px 1px rgba(0,0,0,.14));
    }
    .original-nav{
        position:relative;
        overflow:hidden;
        border:1px solid rgba(4,55,92,.16);
        border-radius:12px;
        background:linear-gradient(180deg,#0b5689 0%,#064777 100%) !important;
        box-shadow:
            0 9px 22px rgba(4,55,92,.16),
            inset 0 1px 0 rgba(255,255,255,.12);
    }
    .original-nav::before{
        content:"";
        position:absolute;
        inset:0 0 auto;
        height:1px;
        background:rgba(255,255,255,.16);
        pointer-events:none;
    }
    .original-nav a{
        position:relative;
        z-index:1;
        background:transparent !important;
        text-shadow:0 1px 2px rgba(0,0,0,.20);
        transition:background .2s ease,color .2s ease,box-shadow .2s ease !important;
    }
    .original-nav a + a::before{
        content:"";
        position:absolute;
        left:0;
        top:15%;
        bottom:15%;
        width:1px;
        background:rgba(255,255,255,.10);
    }
    .original-nav a:hover{
        background:rgba(255,255,255,.08) !important;
        box-shadow:inset 0 -3px 0 rgba(215,166,43,.85);
    }
    .original-nav a.active{
        background:linear-gradient(180deg,#c32625 0%,#a81718 100%) !important;
        box-shadow:
            inset 0 -3px 0 var(--gold),
            inset 0 1px 0 rgba(255,255,255,.13);
    }
    .original-header.is-compact .original-head-inner{
        gap:38px !important;
    }
}

@media (max-width:760px){
    .original-program-act{scroll-margin-top:112px}
    .original-program-image{
        border-radius:9px !important;
        box-shadow:0 8px 18px rgba(52,34,25,.11);
    }
    .circus-logo img{
        filter:drop-shadow(0 4px 7px rgba(69,34,18,.18));
    }
    .original-nav{
        border-radius:10px;
        overflow:hidden;
        box-shadow:0 10px 24px rgba(4,55,92,.15);
    }
    .original-nav a.active{
        background:linear-gradient(180deg,#c32625,#a81718) !important;
    }
}

/* =========================================================
   V33.7 – Mobile Navigation wieder zuverlässig sticky
   ========================================================= */
@media (max-width:760px){
    .original-header{
        position:-webkit-sticky !important;
        position:sticky !important;
        top:0 !important;
        z-index:5000 !important;
        width:100% !important;
        transform:none !important;
        -webkit-transform:none !important;
        isolation:isolate;
    }
    .original-head-inner{
        position:relative;
        z-index:2;
        background:#fff;
    }
    .original-nav{
        position:relative !important;
        z-index:3 !important;
    }
}


/* =========================================================
   V33.8 – Mobile Header: wirklich fixiert statt browserabhängig sticky
   =========================================================
   Auf einigen mobilen Chromium/WebView-Versionen verliert position:sticky
   seine Wirkung in Verbindung mit dem bestehenden Seitenaufbau. Deshalb
   wird der Frontend-Header mobil bewusst fixed geführt. Die echte Höhe des
   geschlossenen Headers wird per JS als Body-Abstand gesetzt.
*/
@media (max-width:760px){
    html{
        --mobile-header-height:110px;
    }
    body.mobile-fixed-header{
        padding-top:var(--mobile-header-height) !important;
    }
    .original-header{
        position:fixed !important;
        top:0 !important;
        left:0 !important;
        right:0 !important;
        width:100% !important;
        z-index:10000 !important;
        margin:0 !important;
        transform:none !important;
        -webkit-transform:none !important;
        backface-visibility:hidden;
        -webkit-backface-visibility:hidden;
    }
    .original-head-inner{
        width:100% !important;
        box-sizing:border-box !important;
        background:#fff !important;
    }
    .original-nav.open{
        max-height:calc(100vh - var(--mobile-header-height)) !important;
        overflow-y:auto !important;
        overscroll-behavior:contain;
    }
}

/* =========================================================
   V33.10 – Infos & Preise: saisonale Info-Kacheln
   ========================================================= */
.info-extra-block.info-extra-tiles,
.info-extra-tiles-block{
    padding:clamp(24px,2.2vw,34px);
    border:1px solid rgba(73,61,52,.13);
    border-radius:18px;
    background:linear-gradient(180deg,#fff 0%,#fffdf9 100%);
    box-shadow:0 16px 42px rgba(57,43,31,.075);
}
.info-extra-tiles-block .info-extra-head{
    justify-content:center;
    margin-bottom:clamp(20px,2vw,28px);
}
.info-extra-tiles-block .info-extra-head h2{
    font-size:clamp(26px,2.1vw,34px);
    text-align:center;
}
.info-extra-tiles-block .info-extra-icon{
    display:grid;
    place-items:center;
    width:auto;
    height:auto;
    border-radius:0;
    background:transparent;
    box-shadow:none;
    font-size:24px;
    line-height:1;
}
.info-mini-card-grid{
    display:grid;
    grid-template-columns:repeat(auto-fit,minmax(250px,1fr));
    gap:16px;
}
.info-mini-card{
    position:relative;
    display:flex;
    align-items:flex-start;
    gap:14px;
    min-height:142px;
    padding:22px 20px 20px;
    overflow:hidden;
    border:1px solid rgba(65,53,45,.12);
    border-radius:15px;
    background:#fff;
    box-shadow:0 10px 28px rgba(50,39,30,.065);
    transition:transform .22s ease,box-shadow .22s ease,border-color .22s ease;
}
.info-mini-card::before{
    content:"";
    position:absolute;
    inset:0 0 auto 0;
    height:4px;
    background:linear-gradient(90deg,var(--red),var(--gold));
}
.info-mini-card:hover{
    transform:translateY(-3px);
    border-color:rgba(178,29,29,.18);
    box-shadow:0 15px 34px rgba(50,39,30,.10);
}
.info-mini-card-icon{
    flex:0 0 46px;
    display:grid;
    place-items:center;
    width:46px;
    height:46px;
    margin-top:2px;
    border-radius:13px;
    background:#fff7e6;
    box-shadow:inset 0 0 0 1px rgba(210,151,31,.16);
    font-size:24px;
    line-height:1;
}
.info-mini-card-copy{
    min-width:0;
}
.info-mini-card-copy h3{
    margin:0 0 7px;
    color:#2a211e;
    font:700 clamp(18px,1.4vw,22px)/1.2 Georgia,serif;
}
.info-mini-card-copy p{
    margin:0;
    color:#544b46;
    font:16px/1.5 Arial,sans-serif;
}
@media(max-width:980px){
    .info-mini-card-grid{grid-template-columns:repeat(2,minmax(0,1fr))}
}
@media(max-width:620px){
    .info-extra-block.info-extra-tiles,
    .info-extra-tiles-block{padding:20px 16px}
    .info-mini-card-grid{grid-template-columns:1fr;gap:12px}
    .info-mini-card{min-height:0;padding:19px 17px 17px}
    .info-mini-card-copy p{font-size:15px}
}

/* V33.11 – Info-Kacheln: frei wählbare Inhaltsausrichtung */
.info-mini-card-align-center{justify-content:center;text-align:center;flex-direction:column;align-items:center}
.info-mini-card-align-center .info-mini-card-icon{margin:0 auto 3px}
.info-mini-card-align-right{justify-content:flex-end;text-align:right;flex-direction:row-reverse}
.info-mini-card-align-right .info-mini-card-copy{margin-left:auto}
.info-mini-card-align-left{text-align:left}


/* =========================================================
   V33.12 – Infos & Preise: Inhaltsüberschriften vereinheitlicht
   ========================================================= */
/*
 * Alle saisonalen Inhaltsblöcke verwenden dieselbe Typografie – unabhängig
 * davon, ob es ein normaler Textblock, Hinweisblock oder Info-Kachelblock ist.
 */
.info-extra-block .info-extra-head{
    display:flex;
    align-items:center;
    justify-content:center;
    gap:11px;
    margin-bottom:10px;
}
.info-extra-block .info-extra-head h2,
.info-extra-tiles-block .info-extra-head h2{
    margin:0;
    color:#2a211e;
    font:700 26px/1.2 Georgia,serif;
    text-align:center;
    text-shadow:1px 2px 3px rgba(0,0,0,.08);
}
.info-extra-block .info-extra-icon,
.info-extra-tiles-block .info-extra-icon{
    display:inline-grid;
    place-items:center;
    width:auto;
    height:auto;
    margin:0;
    padding:0;
    border:0;
    border-radius:0;
    background:transparent;
    box-shadow:none;
    font-size:25px;
    line-height:1;
}
@media(max-width:760px){
    .info-extra-block .info-extra-head h2,
    .info-extra-tiles-block .info-extra-head h2{
        font-size:22px;
    }
    .info-extra-block .info-extra-icon,
    .info-extra-tiles-block .info-extra-icon{
        font-size:22px;
    }
}


/* =========================================================
   V34.0 – PR-Manager Paket
   ========================================================= */

/* Globale Typografie aus Einstellungen */
body,.content,.prose-premium,.original-program-description,.info-extra-content,.partner-text-content,.contact-rich-content,.contact-form,.ticket-shop-page,.info-page{font-family:var(--font-body)!important;font-size:var(--font-body-size)!important;line-height:var(--font-body-line)!important;color:var(--font-body-color)!important;font-weight:var(--font-body-weight)!important}
.page-title h1,.premium-section-heading h2,.original-program-title h2,.info-section-title,.info-extra-head h2,.contact-hero h1,.partner-section h2,.ticket-intro h1{font-family:var(--font-heading)!important;font-size:var(--font-heading-size)!important;line-height:var(--font-heading-line)!important;color:var(--font-heading-color)!important;font-weight:var(--font-heading-weight)!important}
.original-program-subtitle,.program-page-tagline,.premium-card h3,.home-act-copy h3,.info-ticket-item h3,.price-highlight-card h2,.info-mini-card-copy h3,.partner-text-block h3,.contact-form-head h2{font-family:var(--font-subtitle)!important;font-size:var(--font-subtitle-size)!important;line-height:var(--font-subtitle-line)!important;color:var(--font-subtitle-color)!important;font-weight:var(--font-subtitle-weight)!important}

/* Startseite: redaktioneller Text als Abschluss-CTA-Look */
.home-editorial{position:relative;background:linear-gradient(125deg,#061f34,#084a80 55%,#6f1318)!important;color:#fff!important;padding:clamp(34px,4vw,58px) 0!important;overflow:hidden}
.home-editorial::before{content:"";position:absolute;left:0;right:0;top:0;height:3px;background:linear-gradient(90deg,#a81718,#d7a62b,#084a80)}
.home-editorial::after{content:"";position:absolute;inset:-45%;background:radial-gradient(circle,rgba(215,166,43,.16),transparent 32%);pointer-events:none}
.home-editorial-inner{position:relative;z-index:1}
.home-editorial,.home-editorial *{color:#fff!important}
.home-editorial a{text-decoration-color:rgba(255,255,255,.65)!important}
.home-editorial .original-centered h1,.home-editorial h1,.home-editorial h2{color:#fff!important;text-shadow:0 4px 14px rgba(0,0,0,.28)!important}
.home-show-date{display:flex!important;flex-direction:column;gap:3px}
.home-show-year{font:700 12px/1 var(--font-body)!important;color:#8a7c74!important;letter-spacing:.08em}

/* Programm: keine Klick-/Lightbox-Anmutung mehr */
.original-program-image{cursor:default!important}
.original-program-image:hover{transform:none!important}

/* Partnerlogos gestaffelt einblenden */
.partner-reveal{opacity:0;transform:translateY(18px) scale(.985);transition:opacity .55s ease var(--partner-delay),transform .55s ease var(--partner-delay)!important}
.partner-reveal.wow-visible,.partner-reveal.partner-visible{opacity:1;transform:none}

/* Infos: vor den Preis-Aktionskarten */
.info-extra-blocks-before-highlights{width:100%;margin:28px 0 24px!important}
.info-extra-blocks-before-highlights .info-extra-block{margin:0!important}

/* Kontakt-Spamschutz */
.contact-spam-trap{position:absolute!important;left:-10000px!important;top:auto!important;width:1px!important;height:1px!important;overflow:hidden!important}
.contact-spam-check{max-width:360px}
.contact-spam-check input{max-width:140px}

/* Ticket-Shop: Listen-/Kalenderwahl */
.ticket-view-switch{width:min(1400px,94vw);margin:24px auto 20px;padding:16px 18px;border:1px solid rgba(42,33,30,.12);border-radius:16px;background:#fff;display:flex;align-items:center;justify-content:space-between;gap:18px;box-shadow:0 10px 28px rgba(0,0,0,.06)}
.ticket-view-switch-copy{display:flex;flex-direction:column;gap:3px}.ticket-view-switch-copy span{font-size:14px;opacity:.68}
.ticket-view-buttons{display:flex;padding:4px;border-radius:12px;background:#edf1f5;gap:4px}.ticket-view-buttons button{border:0;border-radius:9px;background:transparent;padding:10px 18px;font:700 14px var(--font-body);cursor:pointer;color:#34465b}.ticket-view-buttons button.is-active{background:linear-gradient(135deg,var(--red),#7f2538);color:#fff;box-shadow:0 5px 14px rgba(128,24,31,.22)}
.ticket-view-panel{display:none}.ticket-view-panel.is-active{display:block}
.ticket-calendar{width:min(1400px,94vw);margin:0 auto 55px;border-radius:18px;background:#fff;border:1px solid rgba(42,33,30,.12);box-shadow:0 16px 42px rgba(0,0,0,.07);overflow:hidden}
.ticket-calendar-head{display:grid;grid-template-columns:52px 1fr 52px;align-items:center;gap:12px;padding:18px 22px;background:linear-gradient(120deg,#083e69,#0d5b8e);color:#fff}.ticket-calendar-head h2{margin:0;text-align:center;text-transform:capitalize;font-family:var(--font-subtitle);font-size:28px}.ticket-calendar-head button{width:42px;height:42px;border-radius:50%;border:1px solid rgba(255,255,255,.35);background:rgba(255,255,255,.08);color:#fff;font-size:22px;cursor:pointer}
.ticket-calendar-weekdays,.ticket-calendar-grid{display:grid;grid-template-columns:repeat(7,minmax(0,1fr))}.ticket-calendar-weekdays{padding:0 16px;background:#f6f1e9;border-bottom:1px solid #e5ddd3}.ticket-calendar-weekdays span{text-align:center;padding:12px 4px;font:700 12px var(--font-body);text-transform:uppercase;letter-spacing:.08em;color:#76685e}.ticket-calendar-grid{padding:16px;gap:8px}.ticket-cal-blank{min-height:82px}.ticket-cal-day{min-height:82px;border:1px solid #e4ddd4;border-radius:12px;background:#fff;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:6px;font:700 18px var(--font-body);cursor:pointer;transition:.18s ease}.ticket-cal-day small{font-size:11px;color:#765f53;font-weight:600}.ticket-cal-day.has-shows{border-color:#d6a634;background:#fffaf0}.ticket-cal-day.has-shows:hover,.ticket-cal-day.is-selected{transform:translateY(-2px);border-color:var(--red);box-shadow:0 8px 18px rgba(137,24,30,.12)}.ticket-cal-day.is-selected{background:#fff3f3}.ticket-cal-day.is-ended{opacity:.44}.ticket-cal-day.is-sold:not(.is-ended){background:#fff0f0;color:#a81718}
.ticket-calendar-day-shows{border-top:1px solid #eee4da;padding:20px 24px 26px;background:#fffdf9}.ticket-calendar-day-shows h3{margin:0 0 14px;font-family:var(--font-subtitle);font-size:24px;color:var(--red);text-transform:capitalize}.ticket-calendar-show-list{display:grid;gap:10px}.ticket-calendar-show{display:grid;grid-template-columns:minmax(210px,1fr) auto auto;gap:18px;align-items:center;padding:14px 16px;border-radius:12px;border:1px solid #e8e0d8;background:#fff}.ticket-calendar-show>div:first-child{display:flex;gap:12px;align-items:baseline}.ticket-calendar-show>div:first-child span{opacity:.72}.ticket-calendar-show-meta{display:flex;gap:7px}.ticket-calendar-show-meta em,.ticket-calendar-show-meta b{font-style:normal;font-size:11px;padding:5px 8px;border-radius:999px;background:#f1e7da}.ticket-calendar-show a{color:#fff!important;background:var(--red);padding:9px 12px;border-radius:8px;text-decoration:none!important;font-weight:700}.ticket-calendar-show.is-ended{opacity:.5}.ticket-cal-muted{opacity:.6}.ticket-cal-sold{color:var(--red);font-weight:800}.ticket-calendar-empty{text-align:center;padding:16px;opacity:.65}

/* Preis-Tabelle ohne Sonderpreis-Spalte: 3 saubere Spalten */
.price-table th,.price-table td{width:auto}

@media(max-width:760px){
  .home-editorial{padding:28px 0!important}
  .ticket-view-switch{align-items:stretch;flex-direction:column}.ticket-view-buttons button{flex:1}.ticket-calendar{width:94vw}.ticket-calendar-grid{padding:8px;gap:5px}.ticket-cal-day,.ticket-cal-blank{min-height:58px}.ticket-cal-day{font-size:15px}.ticket-cal-day small{font-size:9px}.ticket-calendar-show{grid-template-columns:1fr;gap:9px}.ticket-calendar-show>div:first-child{flex-wrap:wrap}.ticket-calendar-show a{display:inline-block;text-align:center}.ticket-calendar-weekdays{padding:0 8px}.ticket-calendar-head h2{font-size:23px}
}


/* =========================================================
   V34.1 – Korrekturen nach PR-Runde
   ========================================================= */

/* Seitenüberschriften konsequent aus den Typografie-Einstellungen. */
.hero-caption h1,
.page-title h1,
.program-page-head h1,
.ticket-intro h1,
.press-copy h1,
.contact-hero h1,
.partner-page h1,
.arrival-page h1,
.info-page > h1{
    font-family:var(--font-heading)!important;
    font-size:var(--font-heading-size)!important;
    line-height:var(--font-heading-line)!important;
    color:var(--font-heading-color)!important;
    font-weight:var(--font-heading-weight)!important;
    text-transform:none!important;
}

/* Infos & Preise: die beiden redaktionellen Abschnittsüberschriften nicht in Versalien. */
.info-section-title{
    text-transform:none!important;
    letter-spacing:normal!important;
    font-family:var(--font-heading)!important;
    font-size:var(--font-heading-size)!important;
    line-height:var(--font-heading-line)!important;
    color:var(--font-heading-color)!important;
    font-weight:var(--font-heading-weight)!important;
}

/* Pressebereich vollständig auf die zentralen Typografie-Vorgaben umstellen. */
.press-copy h1{
    margin:0 0 25px;
}
.press-richtext,
.press-richtext p,
.press-contact-card p,
.press-service p,
.press-final p{
    font-family:var(--font-body)!important;
    font-size:var(--font-body-size)!important;
    line-height:var(--font-body-line)!important;
    color:inherit;
    font-weight:var(--font-body-weight)!important;
}
.press-contact-card h2,
.press-service h2,
.press-final h2{
    font-family:var(--font-subtitle)!important;
    font-size:var(--font-subtitle-size)!important;
    line-height:var(--font-subtitle-line)!important;
    font-weight:var(--font-subtitle-weight)!important;
}
.press-contact-card h2{color:#fff!important}
.press-service h2,.press-final h2{color:var(--font-subtitle-color)!important}

/* Programm-Bilder: keinerlei Button-Eigenheiten, Layout bleibt exakt wie vor V34.0. */
.original-program-image{
    appearance:none!important;
    -webkit-appearance:none!important;
    border:0!important;
    padding:0!important;
    margin:0!important;
    background:transparent!important;
    font:inherit!important;
    color:inherit!important;
    text-align:inherit!important;
    cursor:default!important;
}

/* Kalender: nur echte Terminmonate sind anwählbar; Randpfeile klar deaktivieren. */
.ticket-calendar-head button:disabled{
    opacity:.28!important;
    cursor:not-allowed!important;
    transform:none!important;
}
.ticket-cal-day:disabled:not(.has-shows){
    cursor:default!important;
    opacity:.55;
}


/* =========================================================
   V34.2 – Typografie-Kontext + automatischer CSS-Cache
   ========================================================= */

/*
 * Die global gewählte Überschriftenfarbe gilt für normale Seiteninhalte.
 * Auf Headerbildern liegt die Überschrift jedoch auf einem Foto und muss
 * deshalb unabhängig von der globalen Farbe weiß bleiben.
 */
.hero-caption h1{
    color:#fff!important;
    text-shadow:0 3px 12px rgba(0,0,0,.48)!important;
}

/* Die beiden farbigen Preis-Aktionskarten besitzen einen dunklen Verlauf.
 * Deren Überschriften bleiben deshalb ebenfalls weiß. */
.price-highlight-card h2,
.price-highlight-card .price-highlight-title,
.family-card h2,
.reduced-card h2{
    color:#fff!important;
    text-shadow:0 2px 7px rgba(0,0,0,.22)!important;
}

/* ---------------------------------------------------------
   Anfahrt: konsequent die Typografie-Einstellungen verwenden
   --------------------------------------------------------- */
.arrival-script{
    font-family:var(--font-heading)!important;
    font-size:var(--font-heading-size)!important;
    line-height:var(--font-heading-line)!important;
    color:var(--font-heading-color)!important;
    font-weight:var(--font-heading-weight)!important;
}

.arrival-highlight,
.arrival-method h2,
.arrival-bottom h2{
    font-family:var(--font-subtitle)!important;
    font-size:var(--font-subtitle-size)!important;
    line-height:var(--font-subtitle-line)!important;
    color:var(--font-subtitle-color)!important;
    font-weight:var(--font-subtitle-weight)!important;
}

.arrival-address-main,
.arrival-address-main span,
.arrival-address-main strong,
.arrival-copy,
.arrival-navi,
.arrival-navi span,
.arrival-navi strong,
.arrival-method-content,
.arrival-method-content p,
.arrival-method-content li{
    font-family:var(--font-body)!important;
    font-size:var(--font-body-size)!important;
    line-height:var(--font-body-line)!important;
    color:var(--font-body-color)!important;
    font-weight:var(--font-body-weight)!important;
    letter-spacing:normal!important;
}

.arrival-address-main strong,
.arrival-navi strong{
    font-weight:700!important;
}

/* Der farbige Abschlussbereich hat einen dunklen Hintergrund. */
.arrival-bottom,
.arrival-bottom h2{
    color:#fff!important;
}
.arrival-bottom-kicker{
    color:#f2c64f!important;
}

@media(max-width:760px){
    /* Auch mobil keine alten festen Schriftgrößen mehr erzwingen. */
    .arrival-script{font-size:var(--font-heading-size)!important}
    .arrival-highlight,.arrival-method h2,.arrival-bottom h2{font-size:var(--font-subtitle-size)!important}
    .arrival-address-main,.arrival-address-main span,.arrival-address-main strong,.arrival-copy,.arrival-navi,.arrival-navi span,.arrival-navi strong,.arrival-method-content,.arrival-method-content p,.arrival-method-content li{font-size:var(--font-body-size)!important}
}

/* =========================================================
   V34.3 – Startseitentext / Doppelkalender
   ========================================================= */

/*
 * Redaktioneller Saisontext: Fremde Inline-Schriftgrößen/-fonts aus alten
 * Inhalten dürfen die zentralen Typografie-Einstellungen nicht übersteuern.
 * Überschriften bleiben Überschriften, Fließtext bleibt Fließtext.
 */
.home-editorial-inner,
.home-editorial-inner .original-centered{
    font-family:var(--font-body)!important;
    font-size:var(--font-body-size)!important;
    line-height:var(--font-body-line)!important;
    font-weight:var(--font-body-weight)!important;
}
.home-editorial-inner p,
.home-editorial-inner div:not(.original-centered),
.home-editorial-inner li,
.home-editorial-inner blockquote{
    font-family:var(--font-body)!important;
    font-size:var(--font-body-size)!important;
    line-height:var(--font-body-line)!important;
    font-weight:var(--font-body-weight)!important;
}
.home-editorial-inner h1,
.home-editorial-inner h2{
    font-family:var(--font-heading)!important;
    font-size:var(--font-heading-size)!important;
    line-height:var(--font-heading-line)!important;
    font-weight:var(--font-heading-weight)!important;
}
.home-editorial-inner h3,
.home-editorial-inner h4,
.home-editorial-inner h5,
.home-editorial-inner h6{
    font-family:var(--font-subtitle)!important;
    font-size:var(--font-subtitle-size)!important;
    line-height:var(--font-subtitle-line)!important;
    font-weight:var(--font-subtitle-weight)!important;
}
.home-editorial-inner p span,
.home-editorial-inner p font,
.home-editorial-inner p a,
.home-editorial-inner p em,
.home-editorial-inner p u,
.home-editorial-inner p s,
.home-editorial-inner li span,
.home-editorial-inner li font{
    font-family:inherit!important;
    font-size:inherit!important;
    line-height:inherit!important;
}
.home-editorial-inner strong,
.home-editorial-inner b{font-weight:700!important}

/* Ticket-Shop: alle Terminmonate gleichzeitig, auf Desktop zweispaltig. */
.ticket-calendar-months{
    display:grid;
    grid-template-columns:repeat(2,minmax(0,1fr));
    gap:22px;
    padding:22px;
    background:#fffdf9;
}
.ticket-calendar-month{
    min-width:0;
    overflow:hidden;
    border:1px solid #e4ddd4;
    border-radius:16px;
    background:#fff;
    box-shadow:0 10px 26px rgba(48,33,24,.08);
}
.ticket-calendar-month-title{
    margin:0;
    padding:15px 18px;
    text-align:center;
    text-transform:capitalize;
    font-family:var(--font-subtitle)!important;
    font-size:var(--font-subtitle-size)!important;
    line-height:var(--font-subtitle-line)!important;
    font-weight:var(--font-subtitle-weight)!important;
    color:#fff!important;
    background:linear-gradient(120deg,#083e69,#0d5b8e);
}
.ticket-calendar-month .ticket-calendar-weekdays{padding:0 10px}
.ticket-calendar-month .ticket-calendar-grid{padding:10px;gap:5px}
.ticket-calendar-month .ticket-cal-day,
.ticket-calendar-month .ticket-cal-blank{min-height:66px}
.ticket-calendar-month .ticket-cal-day{font-size:16px;border-radius:9px}
.ticket-calendar-month .ticket-cal-day small{font-size:10px}
.ticket-calendar>.ticket-calendar-day-shows{margin:0;border-top:1px solid #eee4da}
@media(max-width:900px){
    .ticket-calendar-months{grid-template-columns:1fr;padding:14px;gap:14px}
}
@media(max-width:520px){
    .ticket-calendar-month .ticket-calendar-grid{padding:7px;gap:3px}
    .ticket-calendar-month .ticket-cal-day,
    .ticket-calendar-month .ticket-cal-blank{min-height:54px}
    .ticket-calendar-month .ticket-cal-day{font-size:14px;padding:4px 2px}
    .ticket-calendar-month .ticket-cal-day small{font-size:8px}
}

/* V34.3 – reCAPTCHA im Kontaktformular */
.contact-recaptcha-wrap{
    margin:18px 0 4px;
    padding:14px;
    border:1px solid #e2ddd6;
    border-radius:12px;
    background:#fff;
    overflow-x:auto;
}
.contact-recaptcha-hint{
    margin:10px 0 4px;
    padding:10px 12px;
    border-radius:10px;
    background:#fff7df;
    border:1px solid #ead39a;
    color:#6f5414;
    font-size:13px;
    line-height:1.45;
}
@media(max-width:380px){
    .contact-recaptcha-wrap{padding:8px}
    .contact-recaptcha-wrap .g-recaptcha{transform:scale(.88);transform-origin:left top;margin-bottom:-8px}
}
.home-editorial-inner h1 *,
.home-editorial-inner h2 *{
    font-family:inherit!important;
    font-size:inherit!important;
    line-height:inherit!important;
    color:inherit!important;
}
.home-editorial-inner h3 *,
.home-editorial-inner h4 *,
.home-editorial-inner h5 *,
.home-editorial-inner h6 *{
    font-family:inherit!important;
    font-size:inherit!important;
    line-height:inherit!important;
    color:inherit!important;
}


/* V34.5 – Tickets & Vorverkauf als drei saisonabhängige Karten */
.info-ticket-sales-grid{grid-template-columns:repeat(3,minmax(0,1fr));gap:28px}
.info-ticket-sales-card{display:flex;flex-direction:column;align-items:flex-start;min-height:300px;padding:30px}
.info-ticket-kicker{margin-bottom:10px;font-family:var(--font-text);font-size:.78rem;line-height:1.2;font-weight:800;letter-spacing:.14em;text-transform:uppercase;color:#c89114}
.info-ticket-title-row{display:flex;align-items:center;gap:10px;margin-bottom:6px}
.info-ticket-title-row h3{margin:0!important}
.info-ticket-icon{font-size:1.45rem;line-height:1}
.info-ticket-sales-card .hotline-big{margin:12px 0 10px}
.info-ticket-sales-card .hotline-big a{text-decoration:none;font-weight:800}
.info-ticket-sales-card p{margin:8px 0}
.info-ticket-card-link{display:inline-flex;align-items:center;margin-top:auto;padding-top:18px;font-family:var(--font-text);font-weight:800;color:#176aa5;text-decoration:none}
.info-ticket-card-link:hover{text-decoration:underline}
@media(max-width:1050px){.info-ticket-sales-grid{grid-template-columns:1fr 1fr}.info-ticket-sales-card:last-child{grid-column:1/-1}}
@media(max-width:720px){.info-ticket-sales-grid{grid-template-columns:1fr}.info-ticket-sales-card:last-child{grid-column:auto}.info-ticket-sales-card{min-height:0}}

/* =========================================================
   V34.6 – Pressebereich: Kontaktfeld und PR-Texte
   ========================================================= */
.press-contact-kicker{
    margin:2px 0 8px;
    font-family:'Oswald',sans-serif;
    font-size:12px;
    font-weight:700;
    line-height:1.3;
    letter-spacing:.16em;
    text-transform:uppercase;
    color:#fff;
    opacity:.82;
}
.press-contact-card .section-eyebrow{
    margin-bottom:6px;
}

/* V34.7 – geschützter Pressebereich */
.press-final-actions{display:flex;gap:12px;flex-wrap:wrap;align-items:center}
.press-secondary{display:inline-flex;align-items:center;justify-content:center;padding:14px 20px;border:1px solid rgba(255,255,255,.6);border-radius:10px;color:#fff;text-decoration:none;font-weight:700}
.press-login-page,.press-portal-page{width:min(1180px,92vw);margin:0 auto;padding:70px 0 90px}
.press-login-card{max-width:560px;margin:0 auto;background:#fff;border-radius:22px;padding:42px;box-shadow:0 22px 60px rgba(0,0,0,.12);border-top:5px solid var(--red)}
.press-login-kicker,.press-portal-head>div>span{font-family:'Oswald',sans-serif;letter-spacing:.16em;color:var(--gold);font-weight:700}
.press-login-card h1,.press-portal-head h1{font-family:var(--font-heading);color:var(--font-heading-color);font-size:var(--font-heading-size);margin:8px 0 18px}
.press-login-card form{display:grid;gap:16px;margin-top:24px}.press-login-card label{display:grid;gap:7px;font-weight:700}.press-login-card input{padding:14px;border:1px solid #d6d0c8;border-radius:10px;font:inherit}.press-login-card button{padding:14px;border:0;border-radius:10px;background:var(--red);color:#fff;font-weight:800;cursor:pointer}.press-login-error{padding:12px 14px;background:#fee2e2;color:#991b1b;border-radius:10px}.press-login-back{display:inline-block;margin-top:20px}
.press-portal-head{display:flex;justify-content:space-between;gap:25px;align-items:flex-end;margin-bottom:38px}.press-portal-head p{max-width:760px}.press-portal-head>a{padding:11px 16px;border:1px solid #cfc8bf;border-radius:10px;text-decoration:none}
.press-material-section{margin-top:38px}.press-material-section>h2{font-family:var(--font-heading);color:var(--font-heading-color);font-size:calc(var(--font-heading-size)*.8)}.press-material-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:18px}.press-material-card{display:grid;grid-template-columns:auto 1fr auto;gap:18px;align-items:center;background:#fff;border:1px solid #e1ddd6;border-radius:16px;padding:22px;box-shadow:0 12px 30px rgba(0,0,0,.06)}.press-material-card h3{margin:0 0 5px;font-family:var(--font-subtitle);color:var(--font-subtitle-color)}.press-material-card p{margin:0 0 8px}.press-material-icon{font-size:30px}.press-material-card>a{white-space:nowrap;font-weight:800}.press-portal-empty{padding:30px;background:#fff;border-radius:16px;text-align:center}
@media(max-width:800px){.press-material-grid{grid-template-columns:1fr}.press-material-card{grid-template-columns:auto 1fr}.press-material-card>a{grid-column:1/-1}.press-portal-head{align-items:flex-start;flex-direction:column}.press-login-card{padding:28px 22px}}


/* V34.10 – Pressematerial-CTA großzügiger und klarer gestalten */
.press-final{
    position:relative;
    margin-top:46px;
    padding:clamp(34px,4vw,54px) clamp(30px,4vw,58px);
    display:grid;
    grid-template-columns:minmax(0,1fr) auto;
    align-items:center;
    gap:42px;
    background:linear-gradient(135deg,#fff 0%,#fbf7ef 58%,#f4ead7 100%);
    border:1px solid rgba(46,33,29,.08);
    border-left:0;
    border-radius:24px;
    overflow:hidden;
    box-shadow:0 22px 55px rgba(46,33,29,.10);
}
.press-final::before{
    content:"";
    position:absolute;
    inset:0 auto 0 0;
    width:7px;
    background:linear-gradient(180deg,#dcae2d 0%,#b7191d 52%,#0a5688 100%);
}
.press-final-copy{display:flex;align-items:flex-start;gap:24px;min-width:0}
.press-final-icon{
    flex:0 0 62px;
    width:62px;height:62px;
    display:grid;place-items:center;
    border-radius:18px;
    background:linear-gradient(145deg,#0a5688,#083d62);
    color:#fff;
    font:800 30px/1 Arial,sans-serif;
    box-shadow:0 12px 26px rgba(8,74,128,.22);
}
.press-final-text{min-width:0;max-width:960px}
.press-final .section-eyebrow{margin-bottom:8px}
.press-final h2{margin:0 0 12px!important}
.press-final p{margin:0!important;max-width:940px}
.press-final-actions{display:flex;align-items:center;justify-content:flex-end;min-width:max-content}
.press-login-cta{
    min-height:58px;
    padding:0 24px!important;
    border-radius:14px!important;
    display:inline-flex!important;
    align-items:center!important;
    gap:18px!important;
    white-space:nowrap;
    font-size:17px;
    box-shadow:0 14px 30px rgba(168,23,24,.22)!important;
}
.press-login-cta span:last-child{font-size:24px;line-height:1;transition:transform .2s ease}
.press-login-cta:hover span:last-child{transform:translateX(4px)}
@media(max-width:900px){
    .press-final{grid-template-columns:1fr;gap:28px;padding:34px 28px}
    .press-final-actions{justify-content:flex-start;min-width:0}
}
@media(max-width:560px){
    .press-final-copy{flex-direction:column;gap:18px}
    .press-final-icon{width:54px;height:54px;flex-basis:54px}
    .press-login-cta{width:100%;justify-content:space-between!important}
}

/* V34.11 – einheitliche öffentliche Fehler-/Statusseiten */
.public-status-page{
    width:min(960px,92vw);
    min-height:clamp(480px,64vh,720px);
    margin:0 auto;
    padding:clamp(58px,8vw,100px) 0 clamp(80px,10vw,125px);
    display:grid;
    place-items:center;
}
.public-status-card{
    position:relative;
    width:min(780px,100%);
    overflow:hidden;
    padding:clamp(38px,6vw,66px) clamp(24px,6vw,72px);
    text-align:center;
    background:#fff;
    border:1px solid rgba(46,33,29,.10);
    border-radius:24px;
    box-shadow:0 26px 68px rgba(46,33,29,.11);
}
.public-status-card::before{
    content:"";
    position:absolute;
    left:0;right:0;top:0;
    height:6px;
    background:linear-gradient(90deg,#b8191e 0%,#d9aa24 50%,#0b5588 100%);
}
.public-status-icon{
    width:76px;height:76px;
    margin:0 auto 22px;
    display:grid;
    place-items:center;
    border-radius:50%;
    background:linear-gradient(145deg,#fff8e8,#f4ead7);
    border:1px solid rgba(215,166,43,.28);
    box-shadow:0 12px 30px rgba(46,33,29,.08);
    font:400 32px/1 Arial,sans-serif;
}
.public-status-kicker{
    margin-bottom:10px;
    font-family:'Oswald',sans-serif;
    font-size:14px;
    font-weight:700;
    letter-spacing:.18em;
    text-transform:uppercase;
    color:var(--gold);
}
.public-status-card h1{
    margin:0 0 18px;
    font-family:var(--font-heading);
    font-size:clamp(34px,var(--font-heading-size),48px);
    line-height:1.1;
    color:var(--font-heading-color);
    text-shadow:0 4px 10px rgba(46,33,29,.08);
}
.public-status-message,
.public-status-hint{
    max-width:620px;
    margin-left:auto;
    margin-right:auto;
}
.public-status-message{margin-top:0;margin-bottom:10px;font-weight:600}
.public-status-hint{margin-top:0;margin-bottom:0;opacity:.68}
.public-status-button{
    display:inline-flex;
    align-items:center;
    justify-content:center;
    min-height:52px;
    margin-top:30px;
    padding:0 24px;
    border-radius:12px;
    background:var(--red);
    color:#fff!important;
    text-decoration:none!important;
    font-family:var(--font-body);
    font-weight:800;
    box-shadow:0 12px 26px rgba(168,23,24,.20);
    transition:transform .18s ease,box-shadow .18s ease,filter .18s ease;
}
.public-status-button:hover{
    transform:translateY(-2px);
    filter:brightness(.94);
    box-shadow:0 16px 34px rgba(168,23,24,.26);
}
@media(max-width:640px){
    .public-status-page{min-height:60vh;padding:44px 0 72px}
    .public-status-card{border-radius:18px}
    .public-status-icon{width:64px;height:64px;font-size:27px}
    .public-status-button{width:100%}
}


/* V34.12 – einheitlicher Farbverlauf direkt unter jedem echten Headerbild.
   Kontakt, Impressum und Datenschutz ohne Headerbild bleiben automatisch ohne Linie,
   weil der Trenner nur von hero.php bei vorhandenen Hero-Bildern ausgegeben wird. */
.hero-bottom-gradient{
    width:100%;
    height:4px;
    background:linear-gradient(90deg,#a81718 0%,#d7a62b 50%,#084a80 100%);
    flex:0 0 auto;
}

/* =========================================================
   V34.17 – Saisonabhängiger Pressebereich
   ========================================================= */
.press-room{width:min(1420px,92vw);margin:0 auto;padding:62px 0 100px}
.press-room-intro{display:flex;align-items:flex-start;justify-content:space-between;gap:40px;padding:36px 42px;background:#fff;border:1px solid #e5ded4;border-radius:22px;box-shadow:0 18px 48px rgba(64,40,20,.07);position:relative;overflow:hidden}
.press-room-intro:before{content:"";position:absolute;left:0;top:0;bottom:0;width:6px;background:linear-gradient(180deg,#b7191f,#d9a823,#0b5689)}
.press-room-kicker,.press-section-number{display:block;font-family:'Oswald',sans-serif;font-weight:700;letter-spacing:.17em;text-transform:uppercase;color:#d39b16;font-size:14px}
.press-room-intro h1{font-family:var(--font-heading);font-size:var(--font-heading-size);color:var(--font-heading-color);margin:8px 0 4px}
.press-room-intro p{max-width:880px;margin:12px 0 0;line-height:1.7}.press-room-season{display:inline-flex;margin:10px 0 6px;padding:7px 12px;border-radius:999px;background:#0b5689;color:#fff;font-family:'Oswald',sans-serif;font-weight:700;letter-spacing:.04em}
.press-room-logout{display:inline-flex;align-items:center;justify-content:center;padding:12px 18px;border-radius:10px;background:#b7191f;color:#fff;text-decoration:none;font-weight:800;white-space:nowrap;box-shadow:0 10px 25px rgba(183,25,31,.16)}
.press-room-empty{margin-top:34px;padding:30px 34px;border-radius:16px;background:#fff;border:1px solid #e3ddd5;text-align:center}
.press-room-section,.press-photo-gallery-detail,.press-usage-section{margin-top:56px}.press-section-title{margin:10px 0 24px}.press-section-title h2,.press-photo-gallery-detail h2,.press-usage-section h2{font-family:var(--font-heading);color:var(--font-heading-color);font-size:clamp(30px,3vw,42px);margin:0 0 8px}.press-section-title p,.press-section-head p{margin:0;max-width:900px;line-height:1.65}.press-section-head{display:flex;align-items:flex-end;justify-content:space-between;gap:24px;margin-bottom:22px}.press-section-head>div>span{font-family:'Oswald',sans-serif;letter-spacing:.16em;color:#d39b16}.press-section-head>a{font-weight:800}
.press-photo-group-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:24px}.press-photo-group-card{background:#fff;border:1px solid #e5ded4;border-radius:18px;overflow:hidden;box-shadow:0 16px 36px rgba(45,31,20,.08);transition:transform .18s ease,box-shadow .18s ease}.press-photo-group-card:hover{transform:translateY(-3px);box-shadow:0 22px 46px rgba(45,31,20,.12)}.press-photo-group-image{position:relative;aspect-ratio:16/10;overflow:hidden;background:#111;border:0;padding:0;width:100%;cursor:zoom-in;text-align:left}.press-photo-group-image img{width:100%;height:100%;object-fit:cover;display:block;transition:transform .35s ease}.press-photo-group-card:hover img{transform:scale(1.025)}.press-photo-group-image span{position:absolute;right:12px;bottom:12px;background:rgba(10,28,48,.88);color:#fff;border-radius:999px;padding:6px 10px;font:700 13px 'Oswald',sans-serif;letter-spacing:.04em}.press-photo-group-body{padding:22px 22px 24px}.press-photo-group-body h3{font-family:var(--font-subtitle);color:var(--font-subtitle-color);font-size:var(--font-subtitle-size);margin:0 0 7px}.press-photo-group-body p{margin:0 0 18px;line-height:1.5}.press-photo-group-body a{font-weight:850;color:#0b5689;text-decoration:none}
.press-photo-gallery-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:22px}.press-photo-detail-card{background:#fff;border:1px solid #e4ddd4;border-radius:16px;overflow:hidden;box-shadow:0 14px 34px rgba(45,31,20,.07)}.press-photo-preview{display:block;width:100%;aspect-ratio:4/3;overflow:hidden;background:#111;border:0;padding:0;cursor:zoom-in}.press-photo-preview img{width:100%;height:100%;object-fit:cover;display:block}.press-photo-detail-info{padding:18px;display:flex;flex-direction:column;gap:6px}.press-photo-detail-info>span,.press-photo-detail-info small{color:#766e66}.press-photo-detail-info>a{margin-top:7px;font-weight:800;color:#0b5689;text-decoration:none}
.press-download-list{display:grid;gap:12px}.press-download-row{display:grid;grid-template-columns:auto minmax(0,1fr) auto;gap:18px;align-items:center;padding:20px 24px;background:#fff;border:1px solid #e4ddd4;border-radius:15px;box-shadow:0 10px 26px rgba(45,31,20,.055)}.press-download-icon{width:48px;height:48px;display:grid;place-items:center;border-radius:12px;background:#f7efe2;font-size:24px}.press-download-row h3{margin:0 0 5px;font-family:var(--font-subtitle);color:var(--font-subtitle-color)}.press-download-row p{margin:0 0 6px}.press-download-row span{color:#766e66}.press-download-row>a{font-weight:850;color:#0b5689;text-decoration:none;white-space:nowrap}.press-section-note{margin:14px 0 0;color:#766e66;font-style:italic}
.press-assets-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:20px}.press-asset-card{padding:24px;background:#fff;border:1px solid #e4ddd4;border-radius:16px;box-shadow:0 13px 32px rgba(45,31,20,.06)}.press-asset-icon{width:46px;height:46px;border-radius:12px;display:grid;place-items:center;background:#0b5689;color:#fff;font-size:20px}.press-asset-preview{position:relative;width:100%;aspect-ratio:16/10;border:0;padding:0;border-radius:12px;overflow:hidden;background:#111;cursor:zoom-in}.press-asset-preview img{width:100%;height:100%;object-fit:cover;display:block}.press-asset-preview span{position:absolute;right:10px;bottom:10px;padding:6px 9px;border-radius:999px;background:rgba(10,28,48,.88);color:#fff;font:700 12px 'Oswald',sans-serif}.press-download-thumb{width:62px;height:62px;border:0;padding:0;border-radius:10px;overflow:hidden;background:#111;cursor:zoom-in}.press-download-thumb img{width:100%;height:100%;object-fit:cover;display:block}.press-image-modal{position:fixed;inset:0;z-index:9999;background:rgba(4,8,13,.92);display:grid;place-items:center;padding:64px 28px}.press-image-modal[hidden]{display:none}.press-image-modal-inner{max-width:min(1500px,94vw);max-height:90vh;display:flex;flex-direction:column;gap:12px;align-items:center}.press-image-modal img{max-width:100%;max-height:82vh;object-fit:contain;border-radius:14px;box-shadow:0 30px 90px rgba(0,0,0,.5)}.press-image-modal-caption{color:#fff;font-weight:800;text-align:center}.press-image-modal-close{position:fixed;top:22px;right:26px;width:50px;height:50px;border:1px solid rgba(255,255,255,.35);border-radius:50%;background:#fff;color:#111;font-size:30px;line-height:1;cursor:pointer;z-index:10000}.press-asset-card h3{font-family:var(--font-subtitle);color:var(--font-subtitle-color);margin:15px 0 8px}.press-asset-card p{margin:0 0 13px}.press-format-badges{display:flex;gap:7px;flex-wrap:wrap;margin:12px 0 16px}.press-format-badges span{padding:5px 8px;border-radius:7px;background:#f4eee5;font:700 12px 'Oswald',sans-serif}.press-asset-downloads{display:flex;flex-direction:column;gap:8px}.press-asset-downloads a{font-weight:800;color:#0b5689;text-decoration:none}
.press-usage-section{padding:34px 38px;border-radius:20px;background:linear-gradient(115deg,#0a4f83 0%,#0b5689 58%,#273852 100%);color:#fff;box-shadow:0 18px 45px rgba(11,86,137,.15)}.press-usage-section .press-section-number{color:#f2c64f}.press-usage-section h2{color:#fff}.press-usage-section>p{max-width:1050px;line-height:1.72}.press-contact-cta{margin-top:26px;padding-top:22px;border-top:1px solid rgba(255,255,255,.22);display:flex;align-items:center;justify-content:space-between;gap:20px}.press-contact-cta>div{display:flex;flex-direction:column;gap:4px}.press-contact-cta span{color:#d8e7f2}.press-contact-cta strong{font-family:var(--font-subtitle);font-size:24px}.press-contact-cta a{display:inline-flex;padding:12px 18px;border-radius:10px;background:#fff;color:#0b5689;text-decoration:none;font-weight:850}
@media(max-width:1050px){.press-photo-group-grid,.press-photo-gallery-grid,.press-assets-grid{grid-template-columns:repeat(2,minmax(0,1fr))}}
@media(max-width:720px){.press-room{width:min(94vw,680px);padding:34px 0 70px}.press-room-intro{padding:28px 24px;flex-direction:column}.press-photo-group-grid,.press-photo-gallery-grid,.press-assets-grid{grid-template-columns:1fr}.press-download-row{grid-template-columns:auto 1fr}.press-download-row>a{grid-column:1/-1}.press-section-head,.press-contact-cta{align-items:flex-start;flex-direction:column}.press-usage-section{padding:28px 24px}}


/* V34.19 – Pressefoto-Galerie: Zurück-Button */
.press-gallery-back{display:inline-flex;align-items:center;gap:9px;flex:0 0 auto;padding:11px 17px;border:1px solid rgba(12,78,125,.22);border-radius:999px;background:#fff;color:#07548a!important;text-decoration:none!important;font-family:'Merriweather',serif;font-size:15px;font-weight:800;box-shadow:0 8px 24px rgba(39,27,20,.08);transition:transform .18s ease,box-shadow .18s ease,background .18s ease,color .18s ease}
.press-gallery-back span{font-size:19px;line-height:1;transition:transform .18s ease}.press-gallery-back:hover{transform:translateY(-2px);background:#07548a;color:#fff!important;box-shadow:0 12px 30px rgba(7,84,138,.18)}.press-gallery-back:hover span{transform:translateX(-3px)}
@media(max-width:720px){.press-gallery-back{margin-top:4px}}
