body,form,figure{margin:0;padding:0}img{border:0}header,footer,nav,section,aside,article,figure,figcaption{display:block}body{font-size:100.01%}select,input,textarea{font-size:99%}#container,.inside{position:relative}#main,#left,#right{float:left;position:relative}#main{width:100%}#left{margin-left:-100%}#right{margin-right:-100%}#footer{clear:both}#main .inside{min-height:1px}.ce_gallery>ul,.content-gallery>ul{margin:0;padding:0;overflow:hidden;list-style:none}.ce_gallery>ul li,.content-gallery>ul li{float:left}.ce_gallery>ul li.col_first,.content-gallery>ul li.col_first{clear:left}.float_left,.media--left>figure{float:left}.float_right,.media--right>figure{float:right}.block{overflow:hidden}.media{display:flow-root}.clear,#clear{height:.1px;font-size:.1px;line-height:.1px;clear:both}.invisible{border:0;clip:rect(0 0 0 0);height:1px;margin:-1px;overflow:hidden;padding:0;position:absolute;width:1px}.custom{display:block}#container:after,.custom:after{content:"";display:table;clear:both}
@media (max-width:767px){#wrapper{margin:0;width:auto}#container{padding-left:0;padding-right:0}#main,#left,#right{float:none;width:auto}#left{right:0;margin-left:0}#right{margin-right:0}}img{max-width:100%;height:auto}.audio_container audio{max-width:100%}.video_container video{max-width:100%;height:auto}.aspect,.responsive{position:relative;height:0}.aspect iframe,.responsive iframe{position:absolute;top:0;left:0;width:100%;height:100%}.aspect--16\:9,.responsive.ratio-169{padding-bottom:56.25%}.aspect--16\:10,.responsive.ratio-1610{padding-bottom:62.5%}.aspect--21\:9,.responsive.ratio-219{padding-bottom:42.8571%}.aspect--4\:3,.responsive.ratio-43{padding-bottom:75%}.aspect--3\:2,.responsive.ratio-32{padding-bottom:66.6666%}.aspect--9\:16,.responsive.ratio-916{padding-bottom:177.7777%}.aspect--1\:1,.responsive.ratio-11{padding-bottom:100%}
#wrapper{width:960px;margin:0 auto}.grid1,.grid2,.grid3,.grid4,.grid5,.grid6,.grid7,.grid8,.grid9,.grid10,.grid11,.grid12{float:left;margin-left:10px;margin-right:10px;display:inline}.mod_article [class^=ce_],.mod_article [class*=" ce_"],.mod_article [class^=content-],.mod_article [class*=" content-"],.mod_article [class^=mod_],.mod_article [class*=" mod_"],.mod_article [class^=module-],.mod_article [class*=" module-"]{margin-left:10px;margin-right:10px}.ce_sliderStart>.content-slider{margin-left:0;margin-right:0}.mod_article .mod_newsreader,.mod_article .mod_eventreader{margin-left:0;margin-right:0}.mod_article [class^=layout_]>*,.mod_article [class*=" layout_"]>*,.mod_article [class^=event_]>*,.mod_article [class*=" event_"]>*{margin-left:10px;margin-right:10px}.mod_article.grid1,.mod_article.grid2,.mod_article.grid3,.mod_article.grid4,.mod_article.grid5,.mod_article.grid6,.mod_article.grid7,.mod_article.grid8,.mod_article.grid9,.mod_article.grid10,.mod_article.grid11,.mod_article.grid12{margin-left:0;margin-right:0}#main .inside{overflow:hidden}.grid1{width:60px}.grid2{width:140px}.grid3{width:220px}.grid4{width:300px}.grid5{width:380px}.grid6{width:460px}.grid7{width:540px}.grid8{width:620px}.grid9{width:700px}.grid10{width:780px}.grid11{width:860px}.grid12{width:940px}.mod_article.grid1{width:80px}.mod_article.grid2{width:160px}.mod_article.grid3{width:240px}.mod_article.grid4{width:320px}.mod_article.grid5{width:400px}.mod_article.grid6{width:480px}.mod_article.grid7{width:560px}.mod_article.grid8{width:640px}.mod_article.grid9{width:720px}.mod_article.grid10{width:800px}.mod_article.grid11{width:880px}.mod_article.grid12{width:960px}.offset1{margin-left:90px!important}.offset2{margin-left:170px!important}.offset3{margin-left:250px!important}.offset4{margin-left:330px!important}.offset5{margin-left:410px!important}.offset6{margin-left:490px!important}.offset7{margin-left:570px!important}.offset8{margin-left:650px!important}.offset9{margin-left:730px!important}.offset10{margin-left:810px!important}.offset11{margin-left:890px!important}.offset12{margin-left:970px!important}.mod_article.offset1{margin-left:80px!important}.mod_article.offset2{margin-left:160px!important}.mod_article.offset3{margin-left:240px!important}.mod_article.offset4{margin-left:320px!important}.mod_article.offset5{margin-left:400px!important}.mod_article.offset6{margin-left:480px!important}.mod_article.offset7{margin-left:560px!important}.mod_article.offset8{margin-left:640px!important}.mod_article.offset9{margin-left:720px!important}.mod_article.offset10{margin-left:800px!important}.mod_article.offset11{margin-left:880px!important}.mod_article.offset12{margin-left:960px!important}@media (min-width:768px) and (max-width:979px){#wrapper{width:744px}.grid1{width:42px}.grid2{width:104px}.grid3{width:166px}.grid4{width:228px}.grid5{width:290px}.grid6{width:352px}.grid7{width:414px}.grid8{width:476px}.grid9{width:538px}.grid10{width:600px}.grid11{width:662px}.grid12{width:724px}.mod_article.grid1{width:62px}.mod_article.grid2{width:124px}.mod_article.grid3{width:186px}.mod_article.grid4{width:248px}.mod_article.grid5{width:310px}.mod_article.grid6{width:372px}.mod_article.grid7{width:434px}.mod_article.grid8{width:496px}.mod_article.grid9{width:558px}.mod_article.grid10{width:620px}.mod_article.grid11{width:682px}.mod_article.grid12{width:744px}.offset1{margin-left:72px!important}.offset2{margin-left:134px!important}.offset3{margin-left:196px!important}.offset4{margin-left:258px!important}.offset5{margin-left:320px!important}.offset6{margin-left:382px!important}.offset7{margin-left:444px!important}.offset8{margin-left:506px!important}.offset9{margin-left:568px!important}.offset10{margin-left:630px!important}.offset11{margin-left:692px!important}.offset12{margin-left:754px!important}.mod_article.offset1{margin-left:62px!important}.mod_article.offset2{margin-left:124px!important}.mod_article.offset3{margin-left:186px!important}.mod_article.offset4{margin-left:248px!important}.mod_article.offset5{margin-left:310px!important}.mod_article.offset6{margin-left:372px!important}.mod_article.offset7{margin-left:434px!important}.mod_article.offset8{margin-left:496px!important}.mod_article.offset9{margin-left:558px!important}.mod_article.offset10{margin-left:620px!important}.mod_article.offset11{margin-left:682px!important}.mod_article.offset12{margin-left:744px!important}}@media (max-width:767px){#wrapper{width:auto}.grid1,.grid2,.grid3,.grid4,.grid5,.grid6,.grid7,.grid8,.grid9,.grid10,.grid11,.grid12{float:none!important;display:block!important;width:auto!important}.offset1,.offset2,.offset3,.offset4,.offset5,.offset6,.offset7,.offset8,.offset9,.offset10,.offset11,.offset12{margin-left:10px!important}}
legend{width:100%;display:block;font-weight:700;border:0}input[type=text],input[type=password],input[type=date],input[type=datetime],input[type=email],input[type=number],input[type=search],input[type=tel],input[type=time],input[type=url],input:not([type]),textarea{width:100%;display:inline-block;padding:3px 6px;background:#fff;border:1px solid #ccc;-moz-border-radius:3px;-webkit-border-radius:3px;border-radius:3px;-moz-box-shadow:inset 0 1px 1px #eee;-webkit-box-shadow:inset 0 1px 1px #eee;box-shadow:inset 0 1px 1px #eee;-moz-transition:all .15s linear;-webkit-transition:all .15s linear;-o-transition:all .15s linear;transition:all .15s linear;-moz-box-sizing:border-box;-webkit-box-sizing:border-box;box-sizing:border-box}input[type=text]:focus,input[type=password]:focus,input[type=date]:focus,input[type=datetime]:focus,input[type=email]:focus,input[type=number]:focus,input[type=search]:focus,input[type=tel]:focus,input[type=time]:focus,input[type=url]:focus,input:not([type]):focus,textarea:focus{outline:0;background:#fcfcfc;border-color:#bbb}input[type=file]{cursor:pointer}select,input[type=file]{display:block}form button,input[type=file],input[type=image],input[type=submit],input[type=reset],input[type=button],input[type=radio],input[type=checkbox]{width:auto}textarea,select[multiple],select[size]{height:auto}input[type=radio],input[type=checkbox]{margin:0 3px 0 0}input[type=radio],input[type=checkbox],label{vertical-align:middle}input[disabled],select[disabled],textarea[disabled],input[readonly],select[readonly],textarea[readonly]{cursor:not-allowed;background:#eee}input[type=radio][disabled],input[type=checkbox][disabled],input[type=radio][readonly],input[type=checkbox][readonly]{background:0 0}form button,input[type=submit],.button{display:inline-block;padding:4px 15px 4px 14px;margin-bottom:0;text-align:center;vertical-align:middle;line-height:16px;font-size:11px;color:#000;cursor:pointer;border:1px solid #ccc;-moz-border-radius:3px;-webkit-border-radius:3px;border-radius:3px;background-color:#ececec;background-image:-moz-linear-gradient(top,#fff,#ececec);background-image:-webkit-linear-gradient(top,#fff,#ececec);background-image:-ms-linear-gradient(top,#fff,#ececec);background-image:-o-linear-gradient(top,#fff,#ececec);background-image:linear-gradient(to bottom,#fff,#ececec);background-repeat:repeat-x;-moz-transition:background .15s linear;-webkit-transition:background .15s linear;-o-transition:background .15s linear;transition:background .15s linear}form button:hover,input[type=submit]:hover,.button:hover{text-decoration:none;background-position:0 -15px!important}form button:active,input[type=submit]:active,.button:active{background-color:#e6e6e6;background-position:0 -30px!important}form button.blue,input[type=submit].blue,.button.blue{background-color:#2f96b4;background-image:-moz-linear-gradient(top,#5bc0de,#2f96b4);background-image:-webkit-linear-gradient(top,#5bc0de,#2f96b4);background-image:-ms-linear-gradient(top,#5bc0de,#2f96b4);background-image:-o-linear-gradient(top,#5bc0de,#2f96b4);background-image:linear-gradient(to bottom,#5bc0de,#2f96b4);border-color:#2f96b4;color:#fff}form button.blue:active,input[type=submit].blue:active,.button.blue:active{background-color:#2e95b3}form button.green,input[type=submit].green,.button.green{background-color:#51a351;background-image:-moz-linear-gradient(top,#62c462,#51a351);background-image:-webkit-linear-gradient(top,#62c462,#51a351);background-image:-ms-linear-gradient(top,#62c462,#51a351);background-image:-o-linear-gradient(top,#62c462,#51a351);background-image:linear-gradient(to bottom,#62c462,#51a351);border-color:#51a351;color:#fff}form button.green:active,input[type=submit].green:active,.button.green:active{background-color:#4f9f4f}form button.orange,input[type=submit].orange,.button.orange{background-color:#f89406;background-image:-moz-linear-gradient(top,#fbb450,#f89406);background-image:-webkit-linear-gradient(top,#fbb450,#f89406);background-image:-ms-linear-gradient(top,#fbb450,#f89406);background-image:-o-linear-gradient(top,#fbb450,#f89406);background-image:linear-gradient(to bottom,#fbb450,#f89406);border-color:#f89406;color:#fff}form button.orange:active,input[type=submit].orange:active,.button.orange:active{background-color:#f28f04}form button.red,input[type=submit].red,.button.red{background-color:#bd362f;background-image:-moz-linear-gradient(top,#ee5f5b,#bd362f);background-image:-webkit-linear-gradient(top,#ee5f5b,#bd362f);background-image:-ms-linear-gradient(top,#ee5f5b,#bd362f);background-image:-o-linear-gradient(top,#ee5f5b,#bd362f);background-image:linear-gradient(to bottom,#ee5f5b,#bd362f);border-color:#bd362f;color:#fff}form button.red:active,input[type=submit].red:active,.button.red:active{background-color:#be322b}.widget{margin-bottom:12px}.widget>label{display:block;margin-bottom:6px;font-weight:700}.inline-form .widget{display:inline-block;margin-bottom:0;vertical-align:middle}.horizontal-form .widget:after{content:"";display:table;clear:both}.horizontal-form .widget>label{width:20%;float:left;padding:3px 2% 0 0;text-align:right}.horizontal-form .widget>input,.horizontal-form .widget>textarea{width:78%;float:left}.horizontal-form .widget>fieldset{margin-left:20%}
.rs-columns {
  clear: both;
  display: inline-block;
  width: 100%;
}

.rs-column {
  float: left;
  width: 100%;
  margin-top: 7.69231%;
  margin-right: 7.69231%;
}
.rs-column.-large-first {
  clear: left;
}
.rs-column.-large-last {
  margin-right: -5px;
}
.rs-column.-large-first-row {
  margin-top: 0;
}
.rs-column.-large-col-1-1 {
  width: 100%;
}
.rs-column.-large-col-2-1 {
  width: 46.15385%;
}
.rs-column.-large-col-2-2 {
  width: 100%;
}
.rs-column.-large-col-3-1 {
  width: 28.20513%;
}
.rs-column.-large-col-3-2 {
  width: 64.10256%;
}
.rs-column.-large-col-3-3 {
  width: 100%;
}
.rs-column.-large-col-4-1 {
  width: 19.23077%;
}
.rs-column.-large-col-4-2 {
  width: 46.15385%;
}
.rs-column.-large-col-4-3 {
  width: 73.07692%;
}
.rs-column.-large-col-4-4 {
  width: 100%;
}
.rs-column.-large-col-5-1 {
  width: 13.84615%;
}
.rs-column.-large-col-5-2 {
  width: 35.38462%;
}
.rs-column.-large-col-5-3 {
  width: 56.92308%;
}
.rs-column.-large-col-5-4 {
  width: 78.46154%;
}
.rs-column.-large-col-5-5 {
  width: 100%;
}
.rs-column.-large-col-6-1 {
  width: 10.25641%;
}
.rs-column.-large-col-6-2 {
  width: 28.20513%;
}
.rs-column.-large-col-6-3 {
  width: 46.15385%;
}
.rs-column.-large-col-6-4 {
  width: 64.10256%;
}
.rs-column.-large-col-6-5 {
  width: 82.05128%;
}
.rs-column.-large-col-6-6 {
  width: 100%;
}
@media screen and (max-width: 900px) {
  .rs-column {
    margin-top: 7.69231%;
    margin-right: 7.69231%;
  }
  .rs-column.-large-first {
    clear: none;
  }
  .rs-column.-large-last {
    margin-right: 7.69231%;
  }
  .rs-column.-large-first-row {
    margin-top: 7.69231%;
  }
  .rs-column.-medium-first {
    clear: left;
  }
  .rs-column.-medium-last {
    margin-right: -5px;
  }
  .rs-column.-medium-first-row {
    margin-top: 0;
  }
  .rs-column.-medium-col-1-1 {
    width: 100%;
  }
  .rs-column.-medium-col-2-1 {
    width: 46.15385%;
  }
  .rs-column.-medium-col-2-2 {
    width: 100%;
  }
  .rs-column.-medium-col-3-1 {
    width: 28.20513%;
  }
  .rs-column.-medium-col-3-2 {
    width: 64.10256%;
  }
  .rs-column.-medium-col-3-3 {
    width: 100%;
  }
  .rs-column.-medium-col-4-1 {
    width: 19.23077%;
  }
  .rs-column.-medium-col-4-2 {
    width: 46.15385%;
  }
  .rs-column.-medium-col-4-3 {
    width: 73.07692%;
  }
  .rs-column.-medium-col-4-4 {
    width: 100%;
  }
  .rs-column.-medium-col-5-1 {
    width: 13.84615%;
  }
  .rs-column.-medium-col-5-2 {
    width: 35.38462%;
  }
  .rs-column.-medium-col-5-3 {
    width: 56.92308%;
  }
  .rs-column.-medium-col-5-4 {
    width: 78.46154%;
  }
  .rs-column.-medium-col-5-5 {
    width: 100%;
  }
  .rs-column.-medium-col-6-1 {
    width: 10.25641%;
  }
  .rs-column.-medium-col-6-2 {
    width: 28.20513%;
  }
  .rs-column.-medium-col-6-3 {
    width: 46.15385%;
  }
  .rs-column.-medium-col-6-4 {
    width: 64.10256%;
  }
  .rs-column.-medium-col-6-5 {
    width: 82.05128%;
  }
  .rs-column.-medium-col-6-6 {
    width: 100%;
  }
}
@media screen and (max-width: 599px) {
  .rs-column {
    margin-top: 7.69231%;
    margin-right: 7.69231%;
  }
  .rs-column.-large-last {
    margin-right: 7.69231%;
  }
  .rs-column.-large-first-row {
    margin-top: 7.69231%;
  }
  .rs-column.-medium-first {
    clear: none;
  }
  .rs-column.-medium-last {
    margin-right: 7.69231%;
  }
  .rs-column.-medium-first-row {
    margin-top: 7.69231%;
  }
  .rs-column.-small-first {
    clear: left;
  }
  .rs-column.-small-last {
    margin-right: -5px;
  }
  .rs-column.-small-first-row {
    margin-top: 0;
  }
  .rs-column.-small-col-1-1 {
    width: 100%;
  }
  .rs-column.-small-col-2-1 {
    width: 46.15385%;
  }
  .rs-column.-small-col-2-2 {
    width: 100%;
  }
  .rs-column.-small-col-3-1 {
    width: 28.20513%;
  }
  .rs-column.-small-col-3-2 {
    width: 64.10256%;
  }
  .rs-column.-small-col-3-3 {
    width: 100%;
  }
  .rs-column.-small-col-4-1 {
    width: 19.23077%;
  }
  .rs-column.-small-col-4-2 {
    width: 46.15385%;
  }
  .rs-column.-small-col-4-3 {
    width: 73.07692%;
  }
  .rs-column.-small-col-4-4 {
    width: 100%;
  }
  .rs-column.-small-col-5-1 {
    width: 13.84615%;
  }
  .rs-column.-small-col-5-2 {
    width: 35.38462%;
  }
  .rs-column.-small-col-5-3 {
    width: 56.92308%;
  }
  .rs-column.-small-col-5-4 {
    width: 78.46154%;
  }
  .rs-column.-small-col-5-5 {
    width: 100%;
  }
  .rs-column.-small-col-6-1 {
    width: 10.25641%;
  }
  .rs-column.-small-col-6-2 {
    width: 28.20513%;
  }
  .rs-column.-small-col-6-3 {
    width: 46.15385%;
  }
  .rs-column.-small-col-6-4 {
    width: 64.10256%;
  }
  .rs-column.-small-col-6-5 {
    width: 82.05128%;
  }
  .rs-column.-small-col-6-6 {
    width: 100%;
  }
}

.glightbox-container{width:100%;height:100%;position:fixed;top:0;left:0;z-index:999999!important;overflow:hidden;-ms-touch-action:none;touch-action:none;-webkit-text-size-adjust:100%;-moz-text-size-adjust:100%;-ms-text-size-adjust:100%;text-size-adjust:100%;-webkit-backface-visibility:hidden;backface-visibility:hidden;outline:0}.glightbox-container.inactive{display:none}.glightbox-container .gcontainer{position:relative;width:100%;height:100%;z-index:9999;overflow:hidden}.glightbox-container .gslider{-webkit-transition:-webkit-transform .4s ease;transition:-webkit-transform .4s ease;transition:transform .4s ease;transition:transform .4s ease,-webkit-transform .4s ease;height:100%;left:0;top:0;width:100%;position:relative;overflow:hidden;display:-webkit-box!important;display:-ms-flexbox!important;display:flex!important;-webkit-box-pack:center;-ms-flex-pack:center;justify-content:center;-webkit-box-align:center;-ms-flex-align:center;align-items:center;-webkit-transform:translate3d(0,0,0);transform:translate3d(0,0,0)}.glightbox-container .gslide{width:100%;position:absolute;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none;display:-webkit-box;display:-ms-flexbox;display:flex;-webkit-box-align:center;-ms-flex-align:center;align-items:center;-webkit-box-pack:center;-ms-flex-pack:center;justify-content:center;opacity:0}.glightbox-container .gslide.current{opacity:1;z-index:99999;position:relative}.glightbox-container .gslide.prev{opacity:1;z-index:9999}.glightbox-container .gslide-inner-content{width:100%}.glightbox-container .ginner-container{position:relative;width:100%;display:-webkit-box;display:-ms-flexbox;display:flex;-webkit-box-pack:center;-ms-flex-pack:center;justify-content:center;-webkit-box-orient:vertical;-webkit-box-direction:normal;-ms-flex-direction:column;flex-direction:column;max-width:100%;margin:auto;height:100vh}.glightbox-container .ginner-container.gvideo-container{width:100%}.glightbox-container .ginner-container.desc-bottom,.glightbox-container .ginner-container.desc-top{-webkit-box-orient:vertical;-webkit-box-direction:normal;-ms-flex-direction:column;flex-direction:column}.glightbox-container .ginner-container.desc-left,.glightbox-container .ginner-container.desc-right{max-width:100%!important}.gslide iframe,.gslide video{outline:0!important;border:none;min-height:165px;-webkit-overflow-scrolling:touch;-ms-touch-action:auto;touch-action:auto}.gslide:not(.current){pointer-events:none}.gslide-image{-webkit-box-align:center;-ms-flex-align:center;align-items:center}.gslide-image img{max-height:100vh;display:block;padding:0;float:none;outline:0;border:none;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none;max-width:100vw;width:auto;height:auto;-o-object-fit:cover;object-fit:cover;-ms-touch-action:none;touch-action:none;margin:auto;min-width:200px}.desc-bottom .gslide-image img,.desc-top .gslide-image img{width:auto}.desc-left .gslide-image img,.desc-right .gslide-image img{width:auto;max-width:100%}.gslide-image img.zoomable{position:relative}.gslide-image img.dragging{cursor:-webkit-grabbing!important;cursor:grabbing!important;-webkit-transition:none;transition:none}.gslide-video{position:relative;max-width:100vh;width:100%!important}.gslide-video .plyr__poster-enabled.plyr--loading .plyr__poster{display:none}.gslide-video .gvideo-wrapper{width:100%;margin:auto}.gslide-video::before{content:'';position:absolute;width:100%;height:100%;background:rgba(255,0,0,.34);display:none}.gslide-video.playing::before{display:none}.gslide-video.fullscreen{max-width:100%!important;min-width:100%;height:75vh}.gslide-video.fullscreen video{max-width:100%!important;width:100%!important}.gslide-inline{background:#fff;text-align:left;max-height:calc(100vh - 40px);overflow:auto;max-width:100%;margin:auto}.gslide-inline .ginlined-content{padding:20px;width:100%}.gslide-inline .dragging{cursor:-webkit-grabbing!important;cursor:grabbing!important;-webkit-transition:none;transition:none}.ginlined-content{overflow:auto;display:block!important;opacity:1}.gslide-external{display:-webkit-box;display:-ms-flexbox;display:flex;width:100%;min-width:100%;background:#fff;padding:0;overflow:auto;max-height:75vh;height:100%}.gslide-media{display:-webkit-box;display:-ms-flexbox;display:flex;width:auto}.zoomed .gslide-media{-webkit-box-shadow:none!important;box-shadow:none!important}.desc-bottom .gslide-media,.desc-top .gslide-media{margin:0 auto;-webkit-box-orient:vertical;-webkit-box-direction:normal;-ms-flex-direction:column;flex-direction:column}.gslide-description{position:relative;-webkit-box-flex:1;-ms-flex:1 0 100%;flex:1 0 100%}.gslide-description.description-left,.gslide-description.description-right{max-width:100%}.gslide-description.description-bottom,.gslide-description.description-top{margin:0 auto;width:100%}.gslide-description p{margin-bottom:12px}.gslide-description p:last-child{margin-bottom:0}.zoomed .gslide-description{display:none}.glightbox-button-hidden{display:none}.glightbox-mobile .glightbox-container .gslide-description{height:auto!important;width:100%;position:absolute;bottom:0;padding:19px 11px;max-width:100vw!important;-webkit-box-ordinal-group:3!important;-ms-flex-order:2!important;order:2!important;max-height:78vh;overflow:auto!important;background:-webkit-gradient(linear,left top,left bottom,from(rgba(0,0,0,0)),to(rgba(0,0,0,.75)));background:linear-gradient(to bottom,rgba(0,0,0,0) 0,rgba(0,0,0,.75) 100%);-webkit-transition:opacity .3s linear;transition:opacity .3s linear;padding-bottom:50px}.glightbox-mobile .glightbox-container .gslide-title{color:#fff;font-size:1em}.glightbox-mobile .glightbox-container .gslide-desc{color:#a1a1a1}.glightbox-mobile .glightbox-container .gslide-desc a{color:#fff;font-weight:700}.glightbox-mobile .glightbox-container .gslide-desc *{color:inherit}.glightbox-mobile .glightbox-container .gslide-desc .desc-more{color:#fff;opacity:.4}.gdesc-open .gslide-media{-webkit-transition:opacity .5s ease;transition:opacity .5s ease;opacity:.4}.gdesc-open .gdesc-inner{padding-bottom:30px}.gdesc-closed .gslide-media{-webkit-transition:opacity .5s ease;transition:opacity .5s ease;opacity:1}.greset{-webkit-transition:all .3s ease;transition:all .3s ease}.gabsolute{position:absolute}.grelative{position:relative}.glightbox-desc{display:none!important}.glightbox-open{overflow:hidden}.gloader{height:25px;width:25px;-webkit-animation:lightboxLoader .8s infinite linear;animation:lightboxLoader .8s infinite linear;border:2px solid #fff;border-right-color:transparent;border-radius:50%;position:absolute;display:block;z-index:9999;left:0;right:0;margin:0 auto;top:47%}.goverlay{width:100%;height:calc(100vh + 1px);position:fixed;top:-1px;left:0;background:#000;will-change:opacity}.glightbox-mobile .goverlay{background:#000}.gclose,.gnext,.gprev{z-index:99999;cursor:pointer;width:26px;height:44px;border:none;display:-webkit-box;display:-ms-flexbox;display:flex;-webkit-box-pack:center;-ms-flex-pack:center;justify-content:center;-webkit-box-align:center;-ms-flex-align:center;align-items:center;-webkit-box-orient:vertical;-webkit-box-direction:normal;-ms-flex-direction:column;flex-direction:column}.gclose svg,.gnext svg,.gprev svg{display:block;width:25px;height:auto;margin:0;padding:0}.gclose.disabled,.gnext.disabled,.gprev.disabled{opacity:.1}.gclose .garrow,.gnext .garrow,.gprev .garrow{stroke:#fff}.gbtn.focused{outline:2px solid #0f3d81}iframe.wait-autoplay{opacity:0}.glightbox-closing .gclose,.glightbox-closing .gnext,.glightbox-closing .gprev{opacity:0!important}.glightbox-clean .gslide-description{background:#fff}.glightbox-clean .gdesc-inner{padding:22px 20px}.glightbox-clean .gslide-title{font-size:1em;font-weight:400;font-family:arial;color:#000;margin-bottom:19px;line-height:1.4em}.glightbox-clean .gslide-desc{font-size:.86em;margin-bottom:0;font-family:arial;line-height:1.4em}.glightbox-clean .gslide-video{background:#000}.glightbox-clean .gclose,.glightbox-clean .gnext,.glightbox-clean .gprev{background-color:rgba(0,0,0,.75);border-radius:4px}.glightbox-clean .gclose path,.glightbox-clean .gnext path,.glightbox-clean .gprev path{fill:#fff}.glightbox-clean .gprev{position:absolute;top:-100%;left:30px;width:40px;height:50px}.glightbox-clean .gnext{position:absolute;top:-100%;right:30px;width:40px;height:50px}.glightbox-clean .gclose{width:35px;height:35px;top:15px;right:10px;position:absolute}.glightbox-clean .gclose svg{width:18px;height:auto}.glightbox-clean .gclose:hover{opacity:1}.gfadeIn{-webkit-animation:gfadeIn .5s ease;animation:gfadeIn .5s ease}.gfadeOut{-webkit-animation:gfadeOut .5s ease;animation:gfadeOut .5s ease}.gslideOutLeft{-webkit-animation:gslideOutLeft .3s ease;animation:gslideOutLeft .3s ease}.gslideInLeft{-webkit-animation:gslideInLeft .3s ease;animation:gslideInLeft .3s ease}.gslideOutRight{-webkit-animation:gslideOutRight .3s ease;animation:gslideOutRight .3s ease}.gslideInRight{-webkit-animation:gslideInRight .3s ease;animation:gslideInRight .3s ease}.gzoomIn{-webkit-animation:gzoomIn .5s ease;animation:gzoomIn .5s ease}.gzoomOut{-webkit-animation:gzoomOut .5s ease;animation:gzoomOut .5s ease}@-webkit-keyframes lightboxLoader{0%{-webkit-transform:rotate(0);transform:rotate(0)}100%{-webkit-transform:rotate(360deg);transform:rotate(360deg)}}@keyframes lightboxLoader{0%{-webkit-transform:rotate(0);transform:rotate(0)}100%{-webkit-transform:rotate(360deg);transform:rotate(360deg)}}@-webkit-keyframes gfadeIn{from{opacity:0}to{opacity:1}}@keyframes gfadeIn{from{opacity:0}to{opacity:1}}@-webkit-keyframes gfadeOut{from{opacity:1}to{opacity:0}}@keyframes gfadeOut{from{opacity:1}to{opacity:0}}@-webkit-keyframes gslideInLeft{from{opacity:0;-webkit-transform:translate3d(-60%,0,0);transform:translate3d(-60%,0,0)}to{visibility:visible;-webkit-transform:translate3d(0,0,0);transform:translate3d(0,0,0);opacity:1}}@keyframes gslideInLeft{from{opacity:0;-webkit-transform:translate3d(-60%,0,0);transform:translate3d(-60%,0,0)}to{visibility:visible;-webkit-transform:translate3d(0,0,0);transform:translate3d(0,0,0);opacity:1}}@-webkit-keyframes gslideOutLeft{from{opacity:1;visibility:visible;-webkit-transform:translate3d(0,0,0);transform:translate3d(0,0,0)}to{-webkit-transform:translate3d(-60%,0,0);transform:translate3d(-60%,0,0);opacity:0;visibility:hidden}}@keyframes gslideOutLeft{from{opacity:1;visibility:visible;-webkit-transform:translate3d(0,0,0);transform:translate3d(0,0,0)}to{-webkit-transform:translate3d(-60%,0,0);transform:translate3d(-60%,0,0);opacity:0;visibility:hidden}}@-webkit-keyframes gslideInRight{from{opacity:0;visibility:visible;-webkit-transform:translate3d(60%,0,0);transform:translate3d(60%,0,0)}to{-webkit-transform:translate3d(0,0,0);transform:translate3d(0,0,0);opacity:1}}@keyframes gslideInRight{from{opacity:0;visibility:visible;-webkit-transform:translate3d(60%,0,0);transform:translate3d(60%,0,0)}to{-webkit-transform:translate3d(0,0,0);transform:translate3d(0,0,0);opacity:1}}@-webkit-keyframes gslideOutRight{from{opacity:1;visibility:visible;-webkit-transform:translate3d(0,0,0);transform:translate3d(0,0,0)}to{-webkit-transform:translate3d(60%,0,0);transform:translate3d(60%,0,0);opacity:0}}@keyframes gslideOutRight{from{opacity:1;visibility:visible;-webkit-transform:translate3d(0,0,0);transform:translate3d(0,0,0)}to{-webkit-transform:translate3d(60%,0,0);transform:translate3d(60%,0,0);opacity:0}}@-webkit-keyframes gzoomIn{from{opacity:0;-webkit-transform:scale3d(.3,.3,.3);transform:scale3d(.3,.3,.3)}to{opacity:1}}@keyframes gzoomIn{from{opacity:0;-webkit-transform:scale3d(.3,.3,.3);transform:scale3d(.3,.3,.3)}to{opacity:1}}@-webkit-keyframes gzoomOut{from{opacity:1}50%{opacity:0;-webkit-transform:scale3d(.3,.3,.3);transform:scale3d(.3,.3,.3)}to{opacity:0}}@keyframes gzoomOut{from{opacity:1}50%{opacity:0;-webkit-transform:scale3d(.3,.3,.3);transform:scale3d(.3,.3,.3)}to{opacity:0}}@media (min-width:769px){.glightbox-container .ginner-container{width:auto;height:auto;-webkit-box-orient:horizontal;-webkit-box-direction:normal;-ms-flex-direction:row;flex-direction:row}.glightbox-container .ginner-container.desc-top .gslide-description{-webkit-box-ordinal-group:1;-ms-flex-order:0;order:0}.glightbox-container .ginner-container.desc-top .gslide-image,.glightbox-container .ginner-container.desc-top .gslide-image img{-webkit-box-ordinal-group:2;-ms-flex-order:1;order:1}.glightbox-container .ginner-container.desc-left .gslide-description{-webkit-box-ordinal-group:1;-ms-flex-order:0;order:0}.glightbox-container .ginner-container.desc-left .gslide-image{-webkit-box-ordinal-group:2;-ms-flex-order:1;order:1}.gslide-image img{max-height:97vh;max-width:100%}.gslide-image img.zoomable{cursor:-webkit-zoom-in;cursor:zoom-in}.zoomed .gslide-image img.zoomable{cursor:-webkit-grab;cursor:grab}.gslide-inline{max-height:95vh}.gslide-external{max-height:100vh}.gslide-description.description-left,.gslide-description.description-right{max-width:275px}.glightbox-open{height:auto}.goverlay{background:rgba(0,0,0,.92)}.glightbox-clean .gslide-media{-webkit-box-shadow:1px 2px 9px 0 rgba(0,0,0,.65);box-shadow:1px 2px 9px 0 rgba(0,0,0,.65)}.glightbox-clean .description-left .gdesc-inner,.glightbox-clean .description-right .gdesc-inner{position:absolute;height:100%;overflow-y:auto}.glightbox-clean .gclose,.glightbox-clean .gnext,.glightbox-clean .gprev{background-color:rgba(0,0,0,.32)}.glightbox-clean .gclose:hover,.glightbox-clean .gnext:hover,.glightbox-clean .gprev:hover{background-color:rgba(0,0,0,.7)}.glightbox-clean .gprev{top:45%}.glightbox-clean .gnext{top:45%}}@media (min-width:992px){.glightbox-clean .gclose{opacity:.7;right:20px}}@media screen and (max-height:420px){.goverlay{background:#000}}
.content-slider{overflow:hidden;visibility:hidden;position:relative}.slider-wrapper{overflow:hidden;position:relative}.slider-wrapper>*{float:left;width:100%;position:relative}.slider-control{height:30px;position:relative}.slider-control a,.slider-control .slider-menu{position:absolute;top:9px;display:inline-block}.slider-control .slider-prev{left:0}.slider-control .slider-next{right:0}.slider-control .slider-menu{top:0;width:50%;left:50%;margin-left:-25%;font-size:27px;text-align:center}.slider-control .slider-menu b{color:#bbb;cursor:pointer}.slider-control .slider-menu b.active{color:#666}
@layer reset{html{box-sizing:border-box}*,*::before,*::after{box-sizing:inherit}body{margin:0;min-height:100vh;text-rendering:optimizeLegibility;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}img,picture,video,canvas,svg{display:block;max-width:100%;height:auto}input,button,textarea,select{font:inherit;color:inherit}button{cursor:pointer;background:none;border:0;padding:0}a{color:inherit;text-decoration:none}:where(h1, h2, h3, h4, h5, h6, p, span, a, ul, ol, li, blockquote, figure){margin:0;padding:0;font:inherit;letter-spacing:inherit;text-transform:inherit}:where(ul, ol){list-style:none}table{border-collapse:collapse;border-spacing:0}}
@layer typography{.text-overlay,.headline-xs,.headline-sm,.headline-md,.headline-lg,.headline-xl,.subline,.overline,.decotext-lg,.decotext-subline{line-height:1}.text-sm,.text-md,.side-nav .level_2 a,.side-nav .level_2 strong,.text-intro,.text-overlay,.overline{letter-spacing:0}.text-sm{font-family:var(--font2), sans-serif;font-style:normal;font-weight:400;font-size:1.4rem;line-height:1.5}.text-md,.side-nav .level_2 a,.side-nav .level_2 strong{font-family:var(--font2), sans-serif;font-style:normal;font-weight:400;font-size:clamp(1.2rem, 2vw, 1.4rem);line-height:1.5}.text-footer-big{font-family:var(--font2), sans-serif;font-style:normal;font-weight:400;font-size:clamp(1.3rem, 2vw, 2rem);line-height:1.5}.text-intro{font-family:var(--font2), sans-serif;font-style:normal;font-weight:400;font-size:clamp(2rem, 2.75vw, 3.5rem);line-height:1.2}.text-overlay{font-family:var(--font2), sans-serif;font-style:normal;font-weight:400;font-size:3rem}.headline-xs{font-family:var(--font1), sans-serif;font-style:normal;font-weight:500;font-size:2.5rem}.headline-sm{font-family:var(--font1), sans-serif;font-style:normal;font-weight:500;font-size:3.5rem}.headline-md{font-family:var(--font1), sans-serif;font-style:normal;font-weight:500;font-size:clamp(2.5rem, 5.5vw, 7.5rem)}.headline-lg{font-family:var(--font1), sans-serif;font-style:normal;font-weight:500;font-size:clamp(2.5rem, 6vw, 9rem)}.headline-xl{font-family:var(--font1), sans-serif;font-style:normal;font-weight:500;font-size:clamp(2.5rem, 6vw, 10rem)}.subline{font-family:var(--font1), sans-serif;font-style:normal;font-weight:400;font-size:clamp(2rem, 4vw, 4.5rem);word-break:break-word}.overline{font-family:var(--font2), sans-serif;font-style:normal;font-weight:400;font-size:1rem;text-transform:uppercase}.decotext-lg{font-family:var(--font3), serif;font-style:normal;font-weight:500;font-size:20rem;font-size:clamp(10rem, 15vw, 20rem)}.decotext-tight{font-family:var(--font3), serif;font-style:normal;font-weight:500;font-size:min(25vh, max(26vw, 8rem));line-height:0.8;margin-block:0.8em}.decotext-subline{font-family:var(--font2), sans-serif;font-style:normal;font-weight:400;font-size:5.5rem;letter-spacing:0.5rem}.text-sm strong,.text-md strong,.side-nav .level_2 a strong,.side-nav .level_2 strong strong,.text-intro strong,.subline strong{font-weight:600}.text-sm em,.text-md em,.side-nav .level_2 a em,.side-nav .level_2 strong em,.text-intro em{text-decoration:underline}.headline-xs strong,.headline-sm strong,.headline-md strong,.headline-lg strong,.headline-xl strong{font-family:var(--font2), sans-serif;font-style:normal;font-weight:550;letter-spacing:0.125rem;font-size:inherit;line-height:inherit}.angebot .list.headline-xs strong{font-family:unset;letter-spacing:unset}@media (min-width:1200px) and (max-width:1449px){.text-md,.side-nav .level_2 a,.side-nav .level_2 strong{font-size:1.4rem}.headline-xs{font-size:2.3rem}.headline-sm{font-size:3.2rem}}@media (min-width:992px) and (max-width:1199px){.text-md,.side-nav .level_2 a,.side-nav .level_2 strong{font-size:1.25rem}.text-overlay{font-size:2.25rem}.headline-xs{font-size:2rem}.headline-sm{font-size:3rem}.headline-md{font-size:5.5rem}.decotext-lg{font-size:10rem}}@media (min-width:768px) and (max-width:991px){.text-md,.side-nav .level_2 a,.side-nav .level_2 strong{font-size:1.3rem}.text-overlay{font-size:2rem}.text-intro{font-size:1.5rem}.headline-xs{font-size:1.8rem}.headline-sm{font-size:2.5rem}.headline-md{font-size:4rem}.subline{font-size:4rem}.decotext-lg{font-size:10rem}}@media (max-width:767px){.text-sm{font-size:1rem}.text-md,.side-nav .level_2 a,.side-nav .level_2 strong{font-size:1.15rem;line-height:1.4}.text-overlay{font-size:2rem}.text-intro{font-size:1.6rem}.headline-xs{font-size:1.8rem}.headline-sm{font-size:2.3rem;line-height:1.1}.headline-md{font-size:2rem}.subline{font-size:2rem}.decotext-lg{font-size:7rem}.decotext-subline{font-size:1.5rem;letter-spacing:0}.overline{font-size:1rem}}}
@font-face {
    font-family: 'PPWriter';
    src: url('../../files/fonts/PPWriter-Thin.otf') format('opentype');
    font-weight: 200;
    font-style: normal;
    font-display: swap;
}

/* Regular */
@font-face {
    font-family: 'PPWriter';
    src: url('../../files/fonts/PPWriter-Regular.otf') format('opentype');
    font-weight: 400;
    font-style: normal;
    font-display: swap;
}

/* Book */
@font-face {
    font-family: 'PPWriter';
    src: url('../../files/fonts/PPWriter-Book.otf') format('opentype');
    font-weight: 500;
    font-style: normal;
    font-display: swap;
}

/* Bold */
@font-face {
    font-family: 'PPWriter';
    src: url('../../files/fonts/PPWriter-Bold.otf') format('opentype');
    font-weight: 700;
    font-style: normal;
    font-display: swap;
}

/* Ultrabold */
@font-face {
    font-family: 'PPWriter';
    src: url('../../files/fonts/PPWriter-Ultrabold.otf') format('opentype');
    font-weight: 800;
    font-style: normal;
    font-display: swap;
}
@layer reset, typography;

:root {
  --col1: #907137;
  --col2: #636849;
  --col3: #d85f13;
  --col4: #471224;
  --col5: #c7981a;
  --col6: #616754;
  --col7: #e6dfd3;
  --col8: #ff5b1f;
  --hg1: #f5f2ed;
  --hg2: #cfebe2;
  --white: #ffffff;
  --black: #000000;
  --grey: #f2f2f2;

  --font1: "PPWriter", sans-serif;
  --font2: "neue-haas-grotesk", sans-serif;
  --font3: "gazzetta-variable", serif;
}

html {
  box-sizing: border-box;
  scroll-behavior: smooth;
}

.buttons-header-buttons {
  display: none;
}

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


.mod_article [class^="ce_"],
.mod_article [class*=" ce_"],
.mod_article [class^="content-"],
.mod_article [class*=" content-"],
.mod_article [class^="mod_"],
.mod_article [class*=" mod_"],
.mod_article [class^="module-"],
.mod_article [class*=" module-"] {
  margin: 0;
}


.mod_article [class^="layout_"]>*,
.mod_article [class*=" layout_"]>*,
.mod_article [class^="event_"]>*,
.mod_article [class*=" event_"]>* {
  margin-left: 0;
  margin: 0;
}

.decotext-tight.decotext-tight,
.headline-md.headline-md,
.mod_article .headline-sm,
.headline-lg.headline-lg {
  margin-block: 0.8em;
}

.margin-0.margin-0 {
  margin: 0;
}

.rsts-slide {
  overflow: visible;
}

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

body {
  background: var(--hg);
}

.no-header .header-buttons {
  display: none;
}

html.sidePanelOpen,
body.sidePanelOpen {
  overflow: hidden;
  height: 100vh;
}

#footer {
  max-width: 100vw;
  overflow: hidden;
}

.upper {
  text-transform: uppercase;
}

.image-big {
  max-width: 700px;
}

.image-hexagon img {
  clip-path: polygon(20% 0%, 80% 0%, 100% 50%, 80% 100%, 20% 100%, 0% 50%);

}

.ml-auto.ml-auto {
  margin-left: auto;
}

.mt-auto.mt-auto {
  margin-top: auto;
}

.mb-auto.mb-auto {
  margin-bottom: auto;
}

.mr-auto.mr-auto {
  margin-right: auto;
}

.minline-auto.minline-auto {
  margin-inline: auto;
}

.mblock-auto.mblock-auto {
  margin-block: auto;
}

.width-fit {
  width: fit-content;
}

.limited-width {
  max-width: 1800px;
}

.overflow-visible {
  overflow: visible;
}

a {
  transition: 0.3s ease-out;
  -webkit-transition: 0.3s ease-out;
}

li {
  list-style: none;
}

.relative {
  position: relative;
}

.absolute {
  position: absolute;
}

.home-text h1,
.home-text.home-text {
  margin-top: 0px;
}

.container {
  padding-left: 50px;
  padding-right: 50px;
}

.container-sm {
  padding-left: 50px;
  padding-right: 50px;
  max-width: 1200px;
  margin-left: auto !important;
  margin-right: auto !important;
}

.container-no-right {
  padding-left: 50px;
}

.container-big {
  padding-left: 150px;
  padding-right: 50px;
}

.container-middle {
  padding-left: 50px;
  padding-right: 50px;
}

#wrapper {
  width: unset;
}

.pad-top {
  padding-top: 100px;
}

.pad-bot {
  padding-bottom: 100px;
}

.pad-top-big {
  padding-top: 200px;
}

.pad-bot-big {
  padding-bottom: 200px;
}

.pad-left {
  padding-left: 50px;
}

.right-50 {
  padding-right: 50px;
}

.pad-bot-small {
  padding-bottom: 50px;
}

.pad-top-small {
  padding-top: 50px;
}

.marg-top-small {
  margin-top: 50px;
}

.grid-pad-left-right {
  padding-left: 10%;
  padding-right: 10%;
}

.grid-pad-right {
  padding-right: 10%;
}

.grid-pad-left {
  padding-left: 10%;
}

.gold {
  color: var(--col1);
}

.green {
  color: var(--col2);
}

.white {
  color: var(--white);
}

.red {
  color: var(--col4);
}

.back-gold {
  background-color: var(--hg1);
}

.home-text p {
  margin-top: 5px;
  margin-bottom: 5px;
}

.mod_newslist h2 {
  margin-bottom: 0;
}

.text-90 {
  width: 90%;
}

.text-80 {
  width: 80%;
}

.text-60 {
  width: 60%;
}

.flex-around {
  display: flex;
  justify-content: space-between;
  gap: 100px;
}

.grid-70 {
  display: grid;
  grid-template-columns: 2fr 1fr;
  gap: 5%;
}

.gold a:hover {
  /* color: var(--black); */
  opacity: 0.5;
}

.right {
  text-align: right;
}

.buttons-grid {
  display: grid;
  width: fit-content;

  :first-child {
    grid-column-start: 2;
  }
}



/* BUTTONS */

/* Base setup */
.button-white,
.button-orange,
.button-grey,
.button-green,
.button-brown,
.button-orange-light,
.button-light-gold,
.more,
.back,
.green-button-underline,
.grey-button-underline,
.gold-button-underline,
.orange-button-underline,
.light-gold-button-underline {
  a {
    position: relative;
    color: var(--button-color);
    padding-left: var(--button-padding-left, 0);
    /* font-family: var(--font2); */

    &::after {
      content: "";
      position: absolute;
      background-image: var(--button-bg);
      background-position: center center;
      background-repeat: no-repeat;
      background-size: 100% 100%;
      transition: 0.3s ease-out;
      -webkit-transition: 0.3s ease-out;
      pointer-events: none;
    }

    &:hover {
      /* color: var(--black); */
      opacity: 0.5;
    }
  }
}

/* Circle buttons */
.button-white,
.button-orange,
.button-grey,
.button-green,
.button-brown,
.button-orange-light,
.button-light-gold,
.more,
.back {
  a {
    display: flex;
    width: fit-content;
    justify-content: center;
    align-items: center;
    padding: 1em 2em;
    line-height: 1;

    &::after {
      inset: 0;
      width: 100%;
      height: 100%;
    }

    &:hover::after {
      /* background-image: url("../../files/grafiken/black-circle.svg"); */
    }
  }
}

.button-white {
  --button-color: var(--white);
  --button-bg: url("../../files/grafiken/white-circle.svg");
}

.button-orange {
  --button-color: var(--col3);
  --button-bg: url("../../files/grafiken/orange-circle.svg");
}

.button-orange-light {
  --button-color: var(--col8);
  --button-bg: url("../../files/grafiken/orange-light-circle.svg");
}

.button-light-gold {
  --button-color: var(--col5);
  --button-bg: url("../../files/grafiken/light-gold-circle.svg");
}

.button-grey {
  --button-color: var(--col7);
  --button-bg: url("../../files/grafiken/grey-circle.svg");
}

.button-green {
  --button-color: var(--col2);
  --button-bg: url("../../files/grafiken/green-circle.svg");
}

.more, .back,
.button-brown {
  --button-color: var(--col1);
  --button-bg: url("../../files/grafiken/brown-circle.svg");
}

/* Underline buttons */
.green-button-underline,
.grey-button-underline,
.gold-button-underline,
.orange-button-underline,
.light-gold-button-underline {
  --underline-height: 1em;
  --underline-gap: 1em;
  --underline-extra-width: 1em;

  a {
    display: block;
    width: fit-content;
    padding-left: 0;
    padding-bottom: var(--underline-gap, 1em);

    &::after {
      left: 50%;
      bottom: 0;
      width: calc(100% + var(--underline-extra-width, 0.6em));
      height: var(--underline-height, 0.9em);
      transform: translateX(-50%);
      background-size: 100% 100%;
    }

    &:hover::after {
      /* background-image: url("../../files/grafiken/underline-black.svg"); */
    }
  }
}

.green-button-underline {
  --button-color: var(--col2);
  --button-bg: url("../../files/grafiken/underline-green.svg");
}

.grey-button-underline {
  --button-color: var(--col7);
  --button-bg: url("../../files/grafiken/underline-grey.svg");
}

.orange-button-underline {
  --button-color: var(--col3);
  --button-bg: url("../../files/grafiken/underline-orange.svg");
}

.gold-button-underline {
  --button-color: var(--col1);
  --button-bg: url("../../files/grafiken/underline-gold.svg");
}

.light-gold-button-underline {
  --button-color: var(--col5);
  --button-bg: url("../../files/grafiken/underline-light-gold.svg");
}



.hochkant-oval img,
.hochkant-oval-switch img {
  --border-radius: 120px;
}

.hochkant-oval img {
  border-radius: var(--border-radius) 0;
}

.hochkant-oval-switch img {
  border-radius: 0 var(--border-radius);
}

.right>figure>img {
  margin-left: auto;
}

.flex-item {
  flex: 1;
}

.three-grid {
  display: grid;
  grid-template-columns: 1fr 1fr 1fr;
  gap: 100px;
}

.mod_newslist {
  display: grid;
  grid-template-columns: 1fr 1fr 1fr;
  gap: 100px;
}

.two-grid {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 50px;

  &.large-gap {
    gap: 7%;
  }
}

.flex-center {
  align-items: center;
}

.back-green {
  background-color: var(--hg2);
}

.back-red {
  background-color: var(--col4);
}

.right-20 {
  position: relative;
  right: 30%;
}

.orange {
  color: var(--col3);
}

.orange-light {
  color: var(--col8) !important;
}

.light-gold {
  color: var(--col5);
}

.inside-image-text {
  bottom: 0;
  left: 0;
  padding: 40px;
  z-index: 2;
}


.relative .image-gradient figure:after {
	content: "";
	width: 100%;
	min-height: 60vh;
	background: #000;
  background: linear-gradient(19deg,rgba(0, 0, 0, 0.89) 0%, rgba(0, 0, 0, 0) 20%);
	position: absolute;
	z-index: 0;
	bottom: 0;
	left: 0;
}

.relative .hochkant-oval.image-gradient figure:after {
  border-radius: var(--border-radius);
}

.inside-image-text p {
  color: var(--col8);
  z-index:1;
  font-size:3rem;
  font-family: var(--font3);
}

.info {
  display: none;
}

.zimmer-einzeln h2 {
  margin-bottom: 10px;
}

.center-align-left h2 {
  justify-content: center;
  display: grid;
}

.abgerundet img {
  border-radius: 50px;
}

.pad-bot-20 {
  padding-bottom: 20px;
  overflow: revert-layer;
}

.pad-right {
  padding-right: 200px;
}

.header {
  height: 100vh;
}

.grid-30 {
  display: grid;
  grid-template-columns: 30% 50%;
  gap: 10%;
}

.grid-50 {
  display: grid;
  grid-template-columns: 50% 30%;
  gap: 10%;
}

.center {
  text-align: center;
}

.footer {
  padding: 100px 50px;
  background: var(--col1);
  display: flex;
  color: var(--white);
  gap: 5%;
  justify-content: space-between;


  p {
    color: var(--white);
  }

  .left-footer,
  .right-footer {
    display: flex;
    flex-direction: column;
    gap: 80px;
    justify-content: space-between;
    width: 100%;
  }

  a:hover {
    /* color: var(--black); */
    opacity: 0.5;
  }

  .left-logo {
    width: max(30%, 250px);
  }

  .left-links {
    display: grid;
    grid-template-columns: auto auto;
    /* justify-content: space-between; */
    width: fit-content;
    column-gap: 80px;
  }

  .right-top {
    display: flex;
    gap: 40px;
    justify-content: space-between;
  }

  .icons {
    display: flex;
    gap: 20px;

    img {
      width: 18px;
      height: auto;
    }
  }

  .newsletter-social-row {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 30px;
  }

  .right-bottom {
    display: grid;
    grid-template-columns: auto auto auto;
    column-gap: 40px;
    justify-content: space-between;
  }

  .right-bottom>div {
    width: fit-content;
  }
}

.header img,
.header-us img,
.event_header img {
  filter: brightness(60%) !important;
}

.header video {
  filter: brightness(70%);
}

.inline-buttons {
  display: inline-flex;
  gap: 30px;
  align-items: end;
  flex-wrap: wrap;
}

.martins .decotext-subline h3 {
  white-space: nowrap;
  display: inline-block;
}

.rsts-skin-default .rsts-nav ul {
  display: none;
}

.header-flex {
  z-index: 666;
  position: absolute;
  display: flex;
  justify-content: space-between;
  padding-left: 50px;
  padding-right: 50px;
  bottom: 50px;
  width: 100%;
}

.header-flex p {
  color: var(--col7);
  text-transform: uppercase;
  margin: 0px;
  line-height: 1;
}

.events .mod_breadcrumb li,
.events .mod_breadcrumb li a {
  color: var(--col8);
}

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

.mod_breadcrumb {
  position: relative;
  background-color: var(--hg1);

  a {
    color: var(--col1);

    &:hover {
      text-decoration: underline;
    }
  }

  ul {
    display: flex;
    padding-left: 50px;
    margin-top: 40px;
    margin-bottom: 40px;
  }

  li {
    color: var(--col1);
    position: relative;
    padding-right: 30px;
    list-style: none;

    &:after {
      position: absolute;
      content: "/";
      width: 15px;
      height: 15px;
      display: inline-block;
      top: 1px;
      right: 4px;
      font-weight: 500;
    }

    &:last-child:after {
      display: none;
    }

    &.active {
      font-weight: 600;
      text-transform: uppercase;
    }
  }
}

.green .mod_breadcrumb {

  li {
    color: var(--col2);
  }

  a {
    color: var(--col2);
  }
}

.light-gold .mod_breadcrumb {

  li {
    color: var(--col5);
  }

  a {
    color: var(--col5);
  }
}

.orange-light .mod_breadcrumb {

  li {
    color: var(--col8);
  }

  a {
    color: var(--col8);
  }
}

.orange .mod_breadcrumb {

  li {
    color: var(--col3);
  }

  a {
    color: var(--col3);
  }
}

.navbar a {
  color: #e6dfd3;
  text-decoration: none;
}

.navbar {
  position: fixed;
  top: 0;
  left: 0;
  z-index: 1000;
  display: grid;
  grid-template-columns: 1fr auto 1fr;
  width: 100%;
  padding: 25px 50px;
  background-color: var(--col1);
  transform: translateY(0);
  transition: transform 0.3s ease, background-color 0.3s ease, padding 0.3s ease;
}

.navbar.nav-hidden {
  transform: translateY(-100%);
}


.navbar.nav-top {
  background-color: transparent;
  padding: 45px 50px;
}


.navbar li {
  color: #e6dfd3;
}

.burger-menu img {
  height: 50px;
  cursor: pointer;
  object-fit: contain;
}

.nav-top .burger-menu img {
  height: 50px;
}

.burger-menu {
  background-color: unset;
  border: none;
}

.nav-center {
  flex: 1;
  display: flex;
  justify-content: center;
  align-items: center;
}

.nav-center .logo {
  height: 50px;
  width: auto;
}

.nav-top .nav-center .logo {
  height: 60px;
}

.nav-right {
  text-align: right;
}

.before-header-right .level_1 {
  display: inline-flex;
}

.before-header-right a {
  /* font-size: 1em; */
  padding-left: 40px;
  white-space: nowrap;
}

.before-header-right li:nth-child(1) {
  padding-top: 20px;
}

.before-header-right ul {
  margin: 0px;
  padding: 0px;
}

.before-header-right a:hover {
  opacity: 0.7 !important;
}

/* .before-header-right a.login:hover {
  color: var(--white) !important;
} */

/* .level_1 {
  display: inline-flex;
} */

/*.mod_newsreader {
  padding-top: 50px;
  position: relative;
  padding-left: 50px;
  padding-right: 50px;
} */

.blogleser .content-text a {
  text-decoration: underline;
  transition: all 0.3s ease-out;
  -webkit-transition: all 0.3s ease-out;
}

.blogleser .content-text a:hover {
  opacity: 0.5;
  transition: all 0.3s ease-out;
  -webkit-transition: all 0.3s ease-out;
}

.blogleser .navbar {
  background-color: var(--col1);
  padding: 25px 50px;
}

.blogleser .gold-element-top-dark::after {
  display: none;
}

.sidePanelOpen .navbar {
  background-color: unset;
}

.header-buttons {
  position: absolute;
  top: 200px;
  left: 14%;
  z-index: 1;
}

.header-button-two {
  top: 30px;
  position: relative;
  left: 10em;
}

/* STARS */

/* Base */
:is(.gold-element-top,
  .green-element-top,
  .orange-element-top,
  .light-gold-element-top,
  .gold-element-top-new,
  .gold-element-top-dark) {
  position: relative;
  --window-image: none;
}

:is(.gold-element-top,
  .green-element-top,
  .orange-element-top,
  .light-gold-element-top,
  .gold-element-top-new,
  .gold-element-top-dark)::before {
  --element-height: 12%;
  content: "";
  position: absolute;
  top: calc(var(--element-height)/(-2));
  right: var(--element-height);
  height: var(--element-height);
  aspect-ratio: 1/2;

  background: center / 46px auto no-repeat var(--window-image);
  background-size: contain;
  transition: 0.3s ease-out;

  z-index: 1;
}

/* Variants */
.gold-element-top {
  --window-image: url("../../files/grafiken/window-gold.svg");
}

.green-element-top {
  --window-image: url("../../files/grafiken/window-green.svg");
}

.orange-element-top {
  --window-image: url("../../files/grafiken/window-orange.svg");
}

.gold-element-top-new,
.gold-element-top-dark,
.light-gold-element-top {
  --window-image: url("../../files/grafiken/window-light-gold.svg");
}

.green-star-left,
.orange-star-left,
.gold-star-left,
.star-gold-left {
  position: relative;
  --star-image: none;
}

.green-star-left::before,
.orange-star-left::before,
.gold-star-left::before,
.star-gold-left::before {
  content: "";
  position: absolute;
  top: -55px;
  left: -150px;
  width: 98px;
  height: 98px;
  background: center / 76px auto no-repeat var(--star-image);
  transition: 0.3s ease-out;
}

.green-star-left {
  --star-image: url("../../files/grafiken/green-star.svg");
}

.gold-star-left {
  --star-image: url("../../files/grafiken/gold-flower.svg");
}

.orange-star-left {
  --star-image: url("../../files/grafiken/orange-flower.svg");
}

.star-gold-left {
  --star-image: url("../../files/grafiken/gold-star.svg");
}


.underline {
  text-decoration: underline;
}

.left-20 {
  padding-left: 20%;
}

.element-z:after {
  width: 168px;
  height: 138px;
  right: 50px;
  position: absolute;
  background-image: url("../../files/grafiken/sleepy-z.svg");
  background-position: center center;
  background-repeat: no-repeat;
  background-size: 156px auto;
  content: "";
  transition: 0.3s ease-out;
  -webkit-transition: 0.3s ease-out;
  top: -55px;
}

.sidePanelOpen .header-flex {
  display: none;
}

.before-header-right {
  display: inline;
}

.martins {
  bottom: 5%;
  right: 5%;
}

/*.impr h2,
.impr h3 {
  color: var(--col2);
}*/

.impr .cta-right {
  display: none;
}

.events-specials.events-specials {
  display: flex;
  flex-wrap: wrap;
  justify-content: space-around;
  position: relative;
  min-height: 85vh;
  max-width: 2500px;
  margin-inline: auto;


  .background-image-big {
    position: absolute;
    width: 45vh;
    top: 20%;
    right: 44%;
  }

  .background-image-small {
    position: absolute;
    width: 20vh;
    right: 7%;
    top: 5vh;
  }

  .decotext-tight {
    margin: 0;
  }

  &>.content-text {
    position: relative;
    height: fit-content;
  }

  &>.content-element-group {
    display: flex;
    flex-wrap: wrap;
    justify-content: center;
    align-items: center;
    position: relative;
    margin-top: auto;
    gap: 3em;

    &>:first-child {
      transform: rotate(-15deg);
      margin-bottom: 0.3em;
    }
  }
}

.angebot .content-element-group {
  display: flow-root;
}

.angebot .three-grid.content-element-group {
  display: grid !important;
}

.event.layout_full > h1 {
  display: none;
}

/* Listen Aufzählung */

.angebot .list li {
  line-height: 1.2;
  padding-top: 10px;
  padding-bottom: 10px;
}

.list li {

  padding-left: 45px;
  padding-top: 8px;
  padding-bottom: 8px;
  position: relative;

  &::before {
    display: inline-block;
    position: absolute;
    width: 22px;
    height: 27px;
    left: 0px;
    top: 22px;
    content: "";
    background-image: url("../../files/grafiken/green-star.svg");
    background-size: 100%;
    background-repeat: no-repeat;
    background-position: center center;
  }
}

.list.text-intro li {
  font-size: 2vw;
}

.list.text-intro li::before {
  top: 20px;
}

.list-sm li {
  padding-left: 30px;
  padding-top: 3px;
  padding-bottom: 3px;
  position: relative;

  &::before {
    display: inline-block;
    position: absolute;
    width: 15px;
    height: 20px;
    left: 0px;
    top: 8px;
    content: "";
    background-image: url("../../files/grafiken/orange-flower.svg");
    background-size: 100%;
    background-repeat: no-repeat;
    background-position: center center;
  }
}

.orange .list li::before {
  background-image: url("../../files/grafiken/orange-flower.svg");
}

.light-gold .list li::before {
  background-image: url("../../files/grafiken/gold-star.svg");
}

.orange-light .list li::before {
  background-image: url("../../files/grafiken/orange-light-star.svg");
}

.gold .list li::before {
  background-image: url("../../files/grafiken/gold-flower.svg");
}

.light-gold .orange.list-sm li::before {
  background-image: url("../../files/grafiken/orange-flower.svg");
}

.green .list-sm li::before {
  background-image: url("../../files/grafiken/green-star.svg");
}

.gold .list-sm li::before {
  background-image: url("../../files/grafiken/gold-flower.svg");
}

.light-gold .list-sm li::before {
  background-image: url("../../files/grafiken/gold-star.svg");
}

.list-sm ul {
  margin-top: 20px;
}

.list-sm.no-marg-top ul {
  margin-top: 0px;
}

/* Galerie Impressionen */

.galerie li {
  padding: 25px;
  width: 33.33%;
}

/* Two Grid */

.small-column-center {
  padding-left: 15%;
  padding-right: 15%;
}

.small-column-right {
  padding-left: 30%;
}

.small-column-left {
  padding-right: 30%;
}

/* ZIMMER Nachrichtenliste */

/*
.zimmer .mod_newslist {
  grid-template-columns: 1fr;
  gap: 150px;
  max-width:1800px;
  margin-left: auto;
  margin-right: auto;

  & .image-content,
  & .text-content {
    padding-left: 5%;
    padding-right: 5%;
  }

  & .button-price,
  & .button-booking,
  & .more,
  & .back {
    display: inline-block;
  }

  & .button-price {
    margin-right: 30px;
  }

  & .button-booking {
    margin-right: 20px;
  }

  & .ce_text .facts {
    margin-bottom: 20px;
    display: block;
  }
}

.zimmer .uebersicht-headline {
  max-width:1800px;
  margin-left: auto;
  margin-right: auto;
  padding-left: 50px;
  padding-right: 50px;
}

.switch .image-content {
  order:2;
}

.switch .text-content {
  order:1;
}
  */

.zimmer .zimmer-uebersicht {
  max-width:1800px;
  margin-left: auto;
  margin-right: auto;

  & .facts {
    margin-bottom: 20px;
    display: block;
  }
}

.zimmer,
.zimmer-detail {

  & .button-price,
  & .button-booking,
  & .button-more {
    display: inline-block;
  }

  & .button-price {
    margin-right: 30px;
  }

  & .button-booking {
    margin-right: 20px;
  }
}

.zimmer-detail .list-sm ul {
  margin-top: 0px;
}

.absatz p {
  margin-bottom: 25px;
}

.absatz p:last-child {
  margin-bottom: 0px;
}

.oeffnungszeiten p a,
.p-link p a {
  text-decoration: underline;
  transition: all 0.3s ease-out;
  -webkit-transition: all 0.3s ease-out;
}

.oeffnungszeiten p a:hover,
.p-link p a:hover {
  opacity: 0.6;
  transition: all 0.3s ease-out;
  -webkit-transition: all 0.3s ease-out;
}

/* CTA HEADER rechts */

.cta-right {
  position: fixed;
  top: 50%;
  right: 50px;
  transform: translateY(-50%);
  z-index: 1000; 

  &.scroll .item img {
    background-color: var(--col1);
    border-radius: 50px;
  }

  &.scroll .item p {
    color: var(--col1);
  }

  &.scroll .item a:hover {
    opacity: 1;
  }

  & .item {
    margin-top: 15px;
    margin-bottom: 15px;
    text-align: right;
  }

  & .item .before-text {
    display: none;
    transition: all 0.3s ease-out;
    -webkit-transition: all 0.3s ease-out;
  }

  & .item p {
    text-align: right;
    color: var(--col7);
    font-size: 0.85em;
    display: inline-block;
    line-height: 1.2;
  }

  & .item:hover .before-text {
    display: block;
    transition: all 0.3s ease-out;
    -webkit-transition: all 0.3s ease-out;
  }

  & .item img {
    width: 70px;
    height: auto;
    display: inline-block;    
  }

  & a:hover {
    opacity: 0.7;
    transition: all 0.3s ease-out;
    -webkit-transition: all 0.3s ease-out;
  }

  & a {
    transition: all 0.3s ease-out;
    -webkit-transition: all 0.3s ease-out;
    display: flex;
    align-items: center;
    justify-content: flex-end;
    gap: 20px;
    text-align: center;
  }
  }
  
  
.event-link {
  position: absolute;
  width:100%;
  height:100%;
  display: flex;
  z-index:1;
}


.news-categories-ajax .news-categories-rendered ul {
    margin: 0;
    padding: 0;
    list-style: none;
}

.news-categories-ajax .news-categories-rendered li {
    margin: 0 0 10px 0;
}

.news-categories-ajax .news-categories-rendered a {
    display: inline-block;
    text-decoration: none;
}
.news-categories-ajax .news-categories-rendered strong {
    display: inline-block;
    text-decoration: underline;
}

.news-categories-ajax .news-categories-rendered a:hover {
    text-decoration: underline;
}

.news-categories-ajax .news-categories-rendered strong,
.news-categories-ajax .news-categories-rendered .is-active .name {
    font-weight: 700;
}

.news-categories-ajax .news-categories-rendered .quantity {
    margin-left: 4px;
}

.news-categories-ajax .reset-link,
.news-categories-ajax .active-categories,
.news-categories-ajax .inactive-categories {
    display: none;
}









/* ==ANGEBOTE-GRID START== (Angebote & Pauschalen card grid — module 26 ".angebote-grid", scoped) */
.angebote-grid .layout_latest {
  display: flex;
  flex-direction: column;
}

/* media + overlay */
.angebote-grid .card-media {
  position: relative;
  overflow: hidden;
  line-height: 0;
}
.angebote-grid .card-media figure,
.angebote-grid .card-media img {
  display: block;
  margin: 0;
  width: 100%;
  height: auto;
}
.angebote-grid .card-media::after {
  content: "";
  position: absolute;
  inset: 0;
  background: linear-gradient(to top, rgba(0, 0, 0, 0.7) 0%, rgba(0, 0, 0, 0.18) 40%, rgba(0, 0, 0, 0) 62%);
  pointer-events: none;
  z-index: 1;
}
.angebote-grid .card-overlay {
  position: absolute;
  left: 0;
  right: 0;
  bottom: 0;
  padding: 38px 50px 48px;
  z-index: 2;
  pointer-events: none;
  line-height: 1.1;
}
.angebote-grid .card-overlay a {
  pointer-events: auto;
  color: inherit;
}
.angebote-grid .card-title {
  margin: 0;
  color: var(--hg1);
  font-size: clamp(2rem, 3.6vw, 3.4375rem); /* XD 55px ceiling */
  line-height: 0.9; /* XD 57/55 */
}
.angebote-grid .card-subtitle {
  margin: 0.4em 0 0;
  color: var(--hg1);
  font-family: var(--font2), sans-serif;
  font-weight: 700;
  font-size: clamp(1.1rem, 1.8vw, 1.6875rem); /* XD 27px ceiling */
  line-height: 1.48; /* XD 40/27 */
  opacity: 0.92;
}

/* body */
.angebote-grid .card-body {
  padding-top: 26px;
}
.angebote-grid .facts {
  color: var(--col1);
  font-family: var(--font2), sans-serif;
  font-size: clamp(1.2rem, 2vw, 1.4rem); /* .text-md body-text style (matches events cards) */
  line-height: 1.5;
}
.angebote-grid .facts p {
  margin: 0;
}
.angebote-grid .card-actions {
  display: flex;
  align-items: flex-end;
  gap: 28px;
  flex-wrap: wrap;
  margin-top: 18px;
}
.angebote-grid .card-actions p {
  margin: 0;
}

/* corner variants — 3 variants only (round / oval / square, no oval-b);
   no two identical touch (h/v) in a 3-col grid; Latin-square pattern, period 9 */
.angebote-grid .layout_latest:nth-child(9n+1) .card-media,
.angebote-grid .layout_latest:nth-child(9n+6) .card-media,
.angebote-grid .layout_latest:nth-child(9n+8) .card-media {
  border-radius: var(--card-radius-round, 46px);
}
.angebote-grid .layout_latest:nth-child(9n+2) .card-media,
.angebote-grid .layout_latest:nth-child(9n+4) .card-media,
.angebote-grid .layout_latest:nth-child(9n+9) .card-media {
  border-radius: var(--card-radius-oval, 70px) 0;
}
.angebote-grid .layout_latest:nth-child(9n+3) .card-media,
.angebote-grid .layout_latest:nth-child(9n+5) .card-media,
.angebote-grid .layout_latest:nth-child(9n+7) .card-media {
  border-radius: 0;
}

/* responsive columns (override global .mod_newslist via the doubled class) — tablet = 2 cols, mobile = 1 col; desktop stays 3 */
@media (min-width: 768px) and (max-width: 1449px) {
  .angebote-grid.mod_newslist {
    grid-template-columns: 1fr 1fr;
  }
}
@media (max-width: 767px) {
  .angebote-grid.mod_newslist {
    grid-template-columns: 1fr;
  }
}

/* corner variants re-tiled for 2-col & 1-col (period 3, no oval-b) so no two identical touch */
@media (max-width: 1449px) {
  .angebote-grid .layout_latest:nth-child(3n+1) .card-media {
    border-radius: var(--card-radius-round, 46px);
  }
  .angebote-grid .layout_latest:nth-child(3n+2) .card-media {
    border-radius: var(--card-radius-oval, 70px) 0;
  }
  .angebote-grid .layout_latest:nth-child(3n+3) .card-media {
    border-radius: 0;
  }
}
/* ==ANGEBOTE-GRID END== */


/* ==CARD-FEATURE-GRID START== (homepage Bildkarten content element, scoped) */
.card-feature-grid {
  display: flex;
  flex-direction: column;
  gap: 50px;
}
.card-group {
  display: grid;
  gap: 50px;
}
.card-group--top {
  grid-template-columns: repeat(3, 1fr);
}
.card-group--bottom {
  grid-template-columns: repeat(2, 1fr);
}

.card-feature .card-media {
  position: relative;
  overflow: hidden;
  line-height: 0;
  height: 100%;
}
.card-feature .card-media figure,
.card-feature .card-media img {
  display: block;
  margin: 0;
  width: 100%;
  height: 100%;
  object-fit: cover;
}
/* desktop orientation: top = portrait, bottom = landscape */
.card-group--top .card-media {
  aspect-ratio: 3 / 4;
}
.card-group--bottom .card-media {
  aspect-ratio: 3 / 2;
}

.card-feature .card-media::after {
  content: "";
  position: absolute;
  inset: 0;
  background: linear-gradient(to top, rgba(0, 0, 0, 0.7) 0%, rgba(0, 0, 0, 0.15) 45%, rgba(0, 0, 0, 0) 65%);
  pointer-events: none;
  z-index: 1;
}
.card-feature .card-overlay {
  position: absolute;
  left: 0;
  right: 0;
  bottom: 0;
  padding: 50px 50px 50px;
  z-index: 2;
  line-height: 1.1;
}
.card-feature .card-title {
  margin: 0;
  color: var(--hg1);
  font-size: clamp(2rem, 3.6vw, 3.4375rem);
  line-height: 1.04;
}
.card-feature .card-subline {
  margin: 0.4em 0 0;
  color: var(--hg1);
  font-family: var(--font2), sans-serif;
  font-weight: 700;
  font-size: clamp(1.1rem, 1.8vw, 1.6875rem);
  line-height: 1.48;
}
/* whole card is a link (stretched over the media) */
.card-feature .card-link {
  position: absolute;
  inset: 0;
  z-index: 3;
}

/* corner variants (per-card, chosen in backend).
   --card-radius is set responsively by files/js/responsive-border-radius.js
   (oval = min(w,h)/3, round = min(w,h)/8) so it grows with the image; the px
   values here are no-JS fallbacks. */
.card-feature.corner-round .card-media {
  border-radius: var(--card-radius-round, 46px);
}
.card-feature.corner-oval-a .card-media {
  border-radius: var(--card-radius-oval, 110px) 0;
}
.card-feature.corner-oval-b .card-media {
  border-radius: 0 var(--card-radius-oval, 110px);
}
.card-feature.corner-square .card-media {
  border-radius: 0;
}

/* tablet: two equal-height columns — left = 3 landscape, right = 2 portrait.
   The right column's portrait aspect defines the height; the grid stretches the
   left column to match, and its 3 cards share that height (becoming landscape). */
@media (min-width: 768px) and (max-width: 1199px) {
  .card-feature-grid {
    display: grid;
    grid-template-columns: 1fr 1fr;
    gap: 32px;
    align-items: stretch;
  }
  .card-group {
    display: flex;
    flex-direction: column;
    gap: 32px;
  }
  .card-group--bottom .card-media {
    aspect-ratio: 3 / 4;
  }
  .card-group--top .card-feature {
    flex: 1 1 0;
    min-height: 0;
  }
  .card-group--top .card-media {
    aspect-ratio: auto;
    height: 100%;
  }
}

/* mobile: single column (full responsive pass still to come) */
@media (max-width: 767px) {
  .card-feature-grid {
    gap: 28px;
  }
  .card-group {
    grid-template-columns: 1fr;
    gap: 28px;
  }
  .card-group--top .card-media,
  .card-group--bottom .card-media {
    aspect-ratio: 3 / 2;
  }
}
/* ==CARD-FEATURE-GRID END== */


/* ==CARD-HOVER START== (image zoom on hover for homepage card_grid + Angebote/Pauschalen cards;
   only the image scales — the overlaid text stays unchanged, clipped by .card-media overflow) */
.card-feature .card-media img,
.angebote-grid .card-media img {
  transition: transform 0.6s ease;
}
.card-feature .card-media:hover img,
.angebote-grid .card-media:hover img {
  transform: scale(1.06);
}
/* Pauschalen cards sit inside .mod_newslist.gold, so the global
   ".gold a:hover { color: black; opacity: .5 }" would fade the image/title on
   hover. Cancel it on the card media — hover should only zoom the image.
   (Buttons live in .card-body and keep their own hover.) */
.angebote-grid .card-media a:hover {
  color: inherit;
  opacity: 1;
}
/* ==CARD-HOVER END== */

/* Hide the fixed contact widget (.cta-right) while the nav overlay is open */
.sidePanelOpen .cta-right {
  display: none;
}


/* ==CTA-BOTTOM-BAR START== Mobile (<=767px): fixed bottom CTA bar (persistent).
   Uses ring-less *-plain.svg icons (desktop keeps the ringed ones), enlarged,
   with dividers between items. Hidden while nav overlay open (.sidePanelOpen). */
@media (max-width: 767px) {
  body {
    padding-bottom: 62px;
  }
  .cta-right {
    top: auto;
    bottom: 0;
    left: 0;
    right: 0;
    transform: none;
    width: 100%;
    display: flex;
    justify-content: space-around;
    align-items: center;
    gap: 0;
    padding: 0px;
    background: var(--col1);
    box-shadow: 0 -2px 14px rgba(0, 0, 0, 0.18);
    z-index: 1000;
  }
  .cta-right .item {
    flex: 1;
    margin: 0;
    text-align: center;
    position: relative;
    padding: 12px;
  }
  /* divider between items */
  .cta-right .item + .item::before {
    content: "";
    position: absolute;
    left: 0;
    top: 50%;
    transform: translateY(-50%);
    width: 1px;
    height: 100%;
    background: rgba(230, 224, 212, 0.4);
  }
  /* swap ringed icon -> plain (ring-less) symbol, enlarged */
  .cta-right .item img {
    display: none;
  }
  .cta-right .item a {
    display: flex;
    flex-direction: column;
    align-items: center;
    justify-content: flex-start;
    gap: 4px;
    height: auto;
    padding: 0;
    padding-top: 26px;
    background-repeat: no-repeat;
    background-position: top center;
    background-size: 21px 21px;
  }
  .cta-right .item:nth-child(1) a {
    background-image: url("../../files/grafiken/icon-speisekarten-plain.svg");
  }
  .cta-right .item:nth-child(2) a {
    background-image: url("../../files/grafiken/icon-oeffnungszeiten-plain.svg");
  }
  .cta-right .item:nth-child(3) a {
    background-image: url("../../files/grafiken/icon-onlinebuchung-plain.svg");
  }
  .cta-right .item:nth-child(4) a {
    background-image: url("../../files/grafiken/icon-anfrage-plain.svg");
  }
  .cta-right.scroll .item img {
    background-color: transparent;
    border-radius: 0;
  }
  .cta-right .item .before-text,
  .cta-right .item:hover .before-text {
    display: block;
    font-size: 12px;
    line-height: 1;
    padding-top: 3px;
  }
  .cta-right .item .before-text p {
    font-size: 12px;
    line-height: 1;
    text-align: center;
    color: var(--col7);
    margin: 0;
    white-space: nowrap;
  }
}
/* ==CTA-BOTTOM-BAR END== */

/* When the nav overlay is open, swap the burger icon for the close (X) icon */
.sidePanelOpen .burger-menu img {
  display: none;
}
.sidePanelOpen button.burger-menu {
  width: 50px;
  height: 50px;
  background: url("../../files/grafiken/close.svg") no-repeat center / 34px auto;
}



/* ==FAQ-ACCORDION START== (modern Contao accordion / handorgel on the Glutenfrei FAQ) */
.faq-accordion.content-accordion {
  border-bottom: 1px solid rgba(144, 113, 55, 0.3);
}
.faq-accordion .handorgel__header {
  margin: 0;
}
.faq-accordion .handorgel__header__button {
  position: relative;
  width: 100%;
  padding: 22px 44px 22px 0;
  border: none;
  border-top: 1px solid rgba(144, 113, 55, 0.3);
  background: transparent;
  text-align: left;
  cursor: pointer;
  transition: opacity 0.2s ease;
  font-size: clamp(1.55rem, 1.95vw, 1.85rem);
  letter-spacing: normal;
  line-height: 1.3;
}
.faq-accordion .handorgel__header__button:hover {
  opacity: 0.65;
}
/* chevron arrow (rotates when the section is open) */
.faq-accordion .handorgel__header__button::after {
  content: "";
  position: absolute;
  right: 8px;
  top: 50%;
  width: 11px;
  height: 11px;
  border-right: 2px solid currentColor;
  border-bottom: 2px solid currentColor;
  transform: translateY(-70%) rotate(45deg);
  transition: transform 0.25s ease;
}
.faq-accordion .handorgel__header--open .handorgel__header__button::after {
  transform: translateY(-30%) rotate(225deg);
}
/* the panel that opens — transparent, thin line separating it from the question */
.faq-accordion .handorgel__content {
  background: transparent;
  border-top: 1px solid rgba(144, 113, 55, 0.3);
}
.faq-accordion .handorgel__content__inner {
  padding: 18px 44px 26px 0;
}
.faq-accordion .handorgel__content__inner p {
  margin: 0 0 0.6em;
}
.faq-accordion .handorgel__content__inner p:last-child {
  margin-bottom: 0;
}
/* ==FAQ-ACCORDION END== */






























































































































/* ==EVENTS-OVERVIEW START== */
/* Events & Specials overview: left filter + right event cards (App, gellnwirt) */

/* Filter — same typography/behaviour as the blog category filter
   (.news-categories-ajax: inherited font-size, 10px gaps, active = bold+underline),
   colour orange instead of gold. Category + month groups sit side by side,
   stacking only below 768px (where rsColumns makes the filter full width). */
.events-overview-filter .events-filter {
  display: flex;
  gap: 1.5rem;
  margin-top: 1rem;
  scroll-margin-top: 120px;
}

.events-overview-filter .filter-group {
  flex: 1 1 0;
  min-width: 0;
}

.events-overview-filter .filter-title {
  font-family: var(--font2), sans-serif;
  font-weight: 400;
  font-size: 1rem;
  text-transform: uppercase;
  letter-spacing: 1px;
  color: var(--col8);
  opacity: 0.6;
  margin: 0 0 1.25rem;
}

.events-overview-filter ul {
  margin: 0;
  padding: 0;
  list-style: none;
}

.events-overview-filter .filter-item {
  margin: 0 0 10px 0;
}

.events-overview-filter .filter-item a {
  display: inline-block;
  text-decoration: none;
  color: var(--col8);
  transition: opacity 0.25s ease-out;
}

.events-overview-filter .filter-item a:hover {
  text-decoration: underline;
  opacity: 0.5;
}

.events-overview-filter .filter-item.active a {
  font-weight: 700;
  text-decoration: underline;
}

.events-overview-filter .events-filter-reset {
  margin: 1.8rem 0 0;
  --button-color: var(--col8);
}

/* recolour the reset button underline to --col8 (mask the orange SVG, fill --col8) */
.events-overview-filter .events-filter-reset a::after {
  background-image: none;
  background-color: var(--col8);
  -webkit-mask: var(--button-bg) center / 100% 100% no-repeat;
  mask: var(--button-bg) center / 100% 100% no-repeat;
}

@media (max-width: 767px) {
  .events-overview-filter .events-filter {
    flex-direction: column;
    gap: 2rem;
  }
}

/* events page intro heading ("Aktuelle Events") — a bit smaller than the
   global .decotext-lg deco size, scoped to this page only */
#article-233 .decotext-lg {
  font-size: clamp(5rem, 10vw, 13rem);
}

#article-233 .home-text.decotext-lg {
  margin-bottom: 2rem;
}

/* page headline "Die Gellnwirt Events & Specials" (article 180) */
#article-180 .home-text.decotext-lg,
#article-180 .home-text.decotext-lg h1 {
  line-height: 0.8;
}

/* event cards — reuse the Pauschalen ".angebote-grid" card look (image +
   overlay title/subline, gradient, corner variants), set via the module cssID.
   Here we only add the 3-column grid + the category (orange) and price lines. */
.events-overview-list {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 50px;
  margin-top: 1rem;
}

/* 50px inset for the overlay texts; bottom 45px so it looks optically equal
   to the 50px sides (deco-font descenders) */
.events-overview-list .card-overlay {
  padding: 50px 50px 45px;
}

/* push the category down a touch so the image↔category gap reads the same as
   the category↔subline gap below it (the bold subline's tall line-box adds
   visual space below, so the top needs a little more than the default 26px). */
.events-overview-list .card-body {
  padding-top: 30px;
}

/* category line under the image, sized like the filter titles (1rem) */
.events-overview-list .event-card-category {
  margin: 0 0 0.2em;
  font-family: var(--font2), sans-serif;
  font-weight: 400;
  text-transform: uppercase;
  letter-spacing: 1px;
  font-size: 1rem;
  color: var(--col8);
  opacity: 0.6;
}

/* date and price at body-text size (the ".text-md" style) */
.events-overview-list .facts,
.events-overview-list .event-card-price {
  font-family: var(--font2), sans-serif;
  font-weight: 400;
  font-size: clamp(1.2rem, 2vw, 1.4rem);
  line-height: 1.5;
  letter-spacing: 0;
}

.events-overview-list .event-card-price {
  margin: 4px 0 0;
  color: var(--col8);
}

/* more space between the text and the "Details dazu" button */
.events-overview-list .card-actions {
  margin-top: 28px;
}

/* card headline in the deco font (like the "Aktuelle Events" heading),
   same size as the Pauschalen card title, capitalised. Overlay texts orange. */
.events-overview-list .card-title {
  font-family: var(--font3), serif;
  font-weight: 500;
  font-style: normal;
  text-transform: none;
  color: var(--col8);
  font-size: clamp(3rem, 5.4vw, 5.15625rem);
}

/* date in the image overlay above the headline, styled like the subline */
.events-overview-list .card-overlay-date {
  margin: 0 0 0.3em;
  color: var(--col8);
  font-family: var(--font2), sans-serif;
  font-weight: 700;
  font-size: clamp(1.1rem, 1.8vw, 1.6875rem);
  line-height: 1.48;
}

/* subline now sits in the body; same styling as the homepage card_grid sublines
   (.card-feature .card-subline), colour kept in --col8 */
.events-overview-list .facts .card-subtitle {
  margin: 18px 0;
  color: var(--col8);
  font-family: var(--font2), sans-serif;
  font-weight: 700;
  font-size: clamp(1.1rem, 1.8vw, 1.6875rem);
  line-height: 1.48;
}

/* mobile = 1 col */
@media (max-width: 767px) {
  .events-overview-list {
    grid-template-columns: 1fr;
  }
}

/* homepage event tiles: one per row (bigger tiles), a bit narrower; text sizes stay shared */
.events-overview-list.events-home {
  grid-template-columns: 1fr;
  max-width: 85%;
}

/* ==EVENTS-OVERVIEW END== */


/* ==GALERIE START== */
/* Impressionen-Galerie (Contao stock gallery CE, cssID class .galerie):
   echte Masonry-Optik via CSS-columns. Image-Size 13 ist auf width-only
   (proportional) gestellt, sodass die nativen Bildverhältnisse durchkommen.
   Lightbox (glightbox) bleibt unangetastet. Selektoren matchen Contaos
   eigene Spezifität (.ce_gallery > ul li = 0,1,2), source-order wins. */

.galerie ul {
  column-count: 3;
  column-gap: 24px;
  padding: 0;
  margin: 0;
  list-style: none;
}

.galerie ul li {
  float: none;
  display: block;
  break-inside: avoid;
  margin: 0 0 24px;
  padding: 0;
  width: 100%;
}

.galerie ul figure { margin: 0; }
.galerie ul a      { display: block; }

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

@media (min-width: 1450px) {
  .galerie ul { column-count: 4; column-gap: 28px; }
  .galerie ul li { margin-bottom: 28px; }
}

@media (max-width: 991px) {
  .galerie ul { column-count: 2; column-gap: 20px; }
  .galerie ul li { margin-bottom: 20px; }
}

@media (max-width: 575px) {
  .galerie ul { column-count: 1; }
}
/* ==GALERIE END== */

/* ==OVAL-BUTTON TEXT-ALIGN START== */
/* The oval CTA buttons set `justify-content: center` + `align-items: center` on
   the <a> flex container, which centers the (single) text node BLOCK. When the
   text wraps to 2 lines, text-align: start (= left) leaves the lines
   left-aligned inside that block. Add text-align: center so wrapped lines stay
   centered inside the oval. Applies at all viewports. */
.button-white a,
.button-orange a,
.button-grey a,
.button-green a,
.button-brown a,
.button-orange-light a,
.button-light-gold a,
.more a,
.back a {
  text-align: center;
}
/* ==OVAL-BUTTON TEXT-ALIGN END== */

/* ===== Tischreservierungs-Formular: Pärchen nebeneinander ===== */
.tischreservierung-form .formbody {
  display: flex;
  flex-wrap: wrap;
  gap: 16px 20px;
}
.tischreservierung-form .formbody > .widget { flex: 1 1 100%; }
.tischreservierung-form .formbody > .widget.half { flex: 1 1 calc(50% - 10px); }
.tischreservierung-form .formbody .widget > label { margin-bottom: 0px; }
.tischreservierung-form .formbody input:not([type="checkbox"]):not([type="radio"]),
.tischreservierung-form .formbody select,
.tischreservierung-form .formbody textarea { width: 100%; box-sizing: border-box; }
@media (max-width: 767px) {
  .tischreservierung-form .formbody > .widget.half { flex-basis: 100%; }
}

/* Tischreservierung: Felder ohne Rahmen, nur Unterstrich in Titel-Farbe (--black) */
.tischreservierung-form .formbody input:not([type="checkbox"]):not([type="radio"]),
.tischreservierung-form .formbody select,
.tischreservierung-form .formbody textarea {
  border: 0;
  border-bottom: 1px solid var(--col5);
  border-radius: 0;
  background: transparent;
  padding: 8px 0px;
  line-height: 1;
  box-shadow: none;
}

/* Tischreservierung: Checkbox-Fieldsets (AGB/Newsletter) ohne Default-Rahmen */
.tischreservierung-form .formbody fieldset.checkbox_container {
  border: 0;
  margin: 0;
  padding: 0;
  min-width: 0;
}

/* Tischreservierung: Absenden-Button als Oval (wie .button-light-gold) */
.tischreservierung-form .formbody button.submit {
  position: relative;
  display: flex;
  width: fit-content;
  justify-content: center;
  align-items: center;
  padding: 1em 2em;
  font: inherit; /* <button> erbt Doku-Font nicht -> auf Groesse der <a>-Oval-Buttons bringen */
  line-height: 1;
  color: var(--col5);
  background: transparent;
  border: 0;
  cursor: pointer;
  transition: 0.3s ease-out;
}
.tischreservierung-form .formbody button.submit::after {
  content: "";
  position: absolute;
  inset: 0;
  width: 100%;
  height: 100%;
  background-image: url("../../files/grafiken/light-gold-circle.svg");
  background-position: center center;
  background-repeat: no-repeat;
  background-size: 100% 100%;
  pointer-events: none;
}
.tischreservierung-form .formbody button.submit:hover {
  opacity: 0.5;
}

/* Tischreservierung: Datenschutz/Newsletter als kleiner, dezenter Block */
.tischreservierung-form .formbody .widget-checkbox {
  font-size: 0.8em;
  line-height: 1.3;
}
.tischreservierung-form .formbody .widget-checkbox + .widget-checkbox {
  margin-top: -20px; /* zieht die 2. Checkbox dichter an die 1. heran */
}
.tischreservierung-form .formbody .widget-checkbox span {
  display: flex;
  align-items: flex-start;
  gap: 8px;
}
.tischreservierung-form .formbody .widget-checkbox input.checkbox {
  margin-top: 0.15em; /* Checkbox an die erste Textzeile ausrichten */
  flex: 0 0 auto;
}
.tischreservierung-form .formbody .widget-checkbox label a {
  text-decoration: underline;
  transition: 0.3s ease-out;
}
.tischreservierung-form .formbody .widget-checkbox label a:hover {
  opacity: 0.5;
}







/* ---------------------------------------------------------------------------
   Newsletter-Anmeldung (CE newsletter_signup): Inline-Form + Footer-Popup
   --------------------------------------------------------------------------- */

/* Inline-Variante: seitlicher Mindestabstand (Artikel-Sektion hat keinen) */
.newsletter-signup {
  padding: 0 20px;
}

.newsletter-signup .newsletter-form,
.newsletter-dialog .newsletter-form {
  display: flex;
  flex-direction: column;
  align-items: center;
  gap: 30px;
  width: 100%;
  max-width: 420px;
  margin: 0 auto;
}

/* CleverReach-Honeypot (email_confirm) – fuer Menschen unsichtbar */
.newsletter-form .nl-hp {
  position: absolute;
  left: -9999px;
  width: 1px;
  height: 1px;
  opacity: 0;
}

.newsletter-form .nl-field {
  width: 100%;
  display: flex;
  flex-direction: column;
  gap: 6px;
  text-align: left;
}

.newsletter-form .nl-label {
  font-weight: 700;
}

/* Eingabefeld wie Tischreservierung: nur Unterstrich */
.newsletter-form input[type="email"] {
  border: 0;
  border-bottom: 1px solid var(--col1);
  border-radius: 0;
  background: transparent;
  padding: 8px 0;
  line-height: 1;
  box-shadow: none;
  font: inherit;
  color: inherit;
  width: 100%;
  box-sizing: border-box;
}

/* Absenden als Oval-Button (wie .tischreservierung-form button.submit) */
.newsletter-form button.nl-submit {
  position: relative;
  display: flex;
  width: fit-content;
  justify-content: center;
  align-items: center;
  padding: 1em 2em;
  font: inherit;
  line-height: 1;
  color: var(--col5);
  background: transparent;
  border: 0;
  cursor: pointer;
  transition: 0.3s ease-out;
}

.newsletter-form button.nl-submit::after {
  content: "";
  position: absolute;
  inset: 0;
  width: 100%;
  height: 100%;
  background-image: url("../../files/grafiken/light-gold-circle.svg");
  background-position: center center;
  background-repeat: no-repeat;
  background-size: 100% 100%;
  pointer-events: none;
}

.newsletter-form button.nl-submit:hover {
  opacity: 0.5;
}

.newsletter-form button.nl-submit:disabled {
  opacity: 0.4;
  cursor: not-allowed;
}

/* Popup: Submit-Text + Oval in derselben Farbe wie Überschrift/Text oben (--col1) */
.newsletter-dialog .newsletter-form button.nl-submit {
  color: var(--col1);
}

.newsletter-dialog .newsletter-form button.nl-submit::after {
  background-image: url("../../files/grafiken/brown-circle.svg");
}

/* Popup: natives <dialog>, Optik wie die back-gold-Sektionen */
dialog.newsletter-dialog {
  border: 0;
  padding: 0;
  background: var(--hg1);
  color: var(--col1);
  width: min(720px, calc(100vw - 40px));
  border-radius: 30px;
  text-align: center;
}

dialog.newsletter-dialog::backdrop {
  background: rgba(0, 0, 0, 0.45);
}

.newsletter-dialog .nl-inner {
  position: relative;
  display: flex;
  flex-direction: column;
  gap: 25px;
  padding: 60px;
}

.newsletter-dialog .nl-close {
  position: absolute;
  top: 18px;
  right: 24px;
  background: none;
  border: 0;
  font-size: 30px;
  line-height: 1;
  color: var(--col1);
  cursor: pointer;
}

.newsletter-dialog .nl-close:focus-visible {
  outline: 1px solid var(--col5);
  border-radius: 6px;
}

/* Typografie kommt aus den Utility-Klassen (headline-xs/-md, text-md) —
   hier nur Struktur/Abstände. */
.newsletter-dialog .nl-headline {
  margin: 0;
}

.newsletter-dialog .nl-text p {
  margin: 0;
}

/* Inline: Abstand zwischen Intro-Text und Formular */
.newsletter-signup .newsletter-form {
  margin-top: 40px;
}

@media (max-width: 767px) {
  .newsletter-dialog .nl-inner {
    padding: 50px 20px;
  }
}

/* Anfrage-Button (HUGO-Link) in der zentrierten #anfrage-Sektion mittig ausrichten */
#anfrage .content-hyperlink a {
  margin-inline: auto;
}



/* ================= Cookiebar (oveleon) ================= */
/* Optik wie Newsletter-Dialog: Creme-Karte, PPWriter-Headline in col1,
   Akzeptieren = Oval orange-circle/col3, Speichern = Underline-Button gold/col1 */

.contao-cookiebar {
  font-family: var(--font2), sans-serif;
  --ccb-bg: var(--hg1);
  --ccb-clr: var(--black);
  --ccb-text: var(--black);
  --ccb-checked-clr: var(--col2);
  --ccb-checked-bg: #eceee5;
  --ccb-bdr: rgba(144, 113, 55, 0.35);
  --ccb-cookies-bg: rgba(255, 255, 255, 0.4);
  --ccb-cookies-bdr: rgba(144, 113, 55, 0.15);
  --ccb-info-bg: rgba(255, 255, 255, 0.4);
  --ccb-info-bdr: rgba(144, 113, 55, 0.15);
}

.contao-cookiebar .cc-inner {
  border-radius: 30px;
  padding: 30px;
}

.contao-cookiebar .cc-head h3 {
  font-family: var(--font1), sans-serif;
  font-weight: 500;
  font-size: 1.5em;
  line-height: 1.2;
  margin: 0 0 10px;
  color: var(--col1);
}

/* Bundle-JS injiziert einen ✕-Dismiss-Button (nicht im Template) — ausgeblendet */
.contao-cookiebar .cc-close {
  display: none;
}

.contao-cookiebar .cc-footer {
  display: flex;
  justify-content: center;
  align-items: center;
  flex-wrap: wrap;
  gap: 1em 3em;
}

.contao-cookiebar .cc-btn {
  position: relative;
  padding: 1em 2em;
  margin: 0;
  border: 0;
  border-radius: 0;
  background: transparent;
  font: inherit;
  line-height: 1;
}

.contao-cookiebar .cc-btn:hover,
.contao-cookiebar .cc-btn:focus {
  background: transparent;
  opacity: 0.6;
}

.contao-cookiebar .cc-btn::after {
  content: "";
  position: absolute;
  inset: 0;
  width: 100%;
  height: 100%;
  background-position: center center;
  background-repeat: no-repeat;
  background-size: 100% 100%;
  pointer-events: none;
}

.contao-cookiebar .cc-btn.save {
  color: var(--col1);
  width: auto;
  padding: 0 0 0.6em;
}

.contao-cookiebar .cc-btn.save::after {
  inset: auto auto 0 50%;
  width: calc(100% + 1em);
  height: 0.9em;
  transform: translateX(-50%);
  background-image: url("../../files/grafiken/underline-gold.svg");
}

.contao-cookiebar .cc-btn.success {
  color: var(--col3);
}

.contao-cookiebar .cc-btn.success::after {
  background-image: url("../../files/grafiken/orange-circle.svg");
}

/* Karten-Ueberschriften: normale Woerter am Leerzeichen in die naechste Zeile,
   nur ein Einzelwort, das breiter als die Zeile ist, dt. trennen (2026-09-16).
   hyphenate-limit-chars 11 = erst ab 11 Zeichen trennen (kuerzere passen in
   die Karte). Nur h3 (Navigation nutzt dieselbe Klasse, bleibt unberuehrt). */
h3.headline-sm {
  -webkit-hyphens: auto;
  hyphens: auto;
  hyphenate-limit-chars: 11 4 3;
  overflow-wrap: break-word;
}

.side-panel {
    position: fixed;
    top: 0;
    right: -100%;
    width: 100vw;
    height: 100vh;
    background: var(--col6);
    z-index: 99;
    padding: 40px;
    transition: right 0.35s ease;
    overflow-y: auto;
    display: none;
}

.sidePanelOpen .side-panel {
    display: block;
}

body .sidePanelOpen {
    position: fixed !important;
}

body.sidePanelOpen .side-panel {
    right: 0;
}

.side-panel-inner {
    min-height: 100%;
    display: flex;
    align-items: center;
}

.sidepanel-content {
    width: 100%;
    display: flex;
    justify-content: space-between;
    left: 0;
    position: relative;
    align-items: center;
    gap: 40px;
}

.side-nav {
    flex: 1;
}

.side-nav ul {
    margin: 0;
    padding: 0;
    list-style: none;
}

.side-nav .level_1>li {
    padding: 9px 0;
    position: relative;
}

.side-nav .nav-item-row {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 20px;
}

.side-nav .nav-item-row>a,
.side-nav .nav-item-row>strong {
    color: var(--col7);
    text-decoration: none;
    display: inline-block;
}

.side-nav .nav-item-row>a:hover {
    color: var(--white);
}

.submenu-toggle {
    background: none;
    border: 0;
    color: var(--col7);
    cursor: pointer;
    padding: 0;
    flex-shrink: 0;
}

.submenu-toggle:hover {
    color: var(--white);
}

.submenu-toggle__icon {
    display: inline-block;
    width: 1.5rem;
    text-align: center;
}

.submenu-wrapper {
    max-height: 0;
    overflow: hidden;
    opacity: 0;
    transform: translateY(4px);
    transition: max-height 0.3s ease, opacity 0.25s ease, transform 0.25s ease;
}

.side-nav li.is-open>.submenu-wrapper {
    max-height: 800px;
    opacity: 1;
    transform: translateY(0);
}

.side-nav .level_2 {
    margin: 0;
    padding: 0;
    list-style: none;
}

.side-nav .level_2 a,
.side-nav .level_2 strong {
    opacity: 0.85;
    margin: 0;
    display: block;
    color: var(--col7);
    text-decoration: none;
}

.side-nav .level_2 strong {
    text-decoration: underline;
}

.side-image {
    width: 40%;
    max-width: 420px;
    right: 110px;
    position: relative;
    height: 60vh;
}

.side-image img {
    width: 100%;
    object-fit: cover;
    border-radius: 8px;
    height: 60vh;
}

.side-nav .submenu>.nav-item-row {
    cursor: pointer;
}

.side-nav .submenu>.nav-item-row>a,
.side-nav .submenu>.nav-item-row>strong {
    cursor: pointer;
}

.side-nav .nav-item-row {
    padding: 6px 0;
}

.mod_navigation {
    overflow: visible;
}

.side-image {
    position: relative;
}

.side-image>* {
    opacity: 0;
    pointer-events: none;
    position: absolute;
    inset: 0;
    transition: opacity 0.3s ease;
}

.sidepanel-content:not(:has(.level_1>li:hover)) .side-image>:last-child,
.sidepanel-content:has(.level_1>li:nth-child(1):hover) .side-image>:nth-child(1),
.sidepanel-content:has(.level_1>li:nth-child(2):hover) .side-image>:nth-child(2),
.sidepanel-content:has(.level_1>li:nth-child(3):hover) .side-image>:nth-child(3),
.sidepanel-content:has(.level_1>li:nth-child(4):hover) .side-image>:nth-child(4),
.sidepanel-content:has(.level_1>li:nth-child(5):hover) .side-image>:nth-child(5),
.sidepanel-content:has(.level_1>li:nth-child(6):hover) .side-image>:nth-child(6),
.sidepanel-content:has(.level_1>li:nth-child(7):hover) .side-image>:nth-child(7),
.sidepanel-content:has(.level_1>li:nth-child(8):hover) .side-image>:nth-child(8),
.sidepanel-content:has(.level_1>li:nth-child(9):hover) .side-image>:nth-child(9),
.sidepanel-content:has(.level_1>li:nth-child(10):hover) .side-image>:nth-child(10) {
    opacity: 1;
}

/* desktop only: hover opens submenu, toggle hidden */
@media (min-width: 1025px) and (hover: hover) and (pointer: fine) {
    .side-nav {
        position: relative;
    }

    .side-nav .submenu-toggle {
        display: none;
    }

    .side-nav .level_1>li {
        display: block;
        position: relative;
        padding: 9px 0;
    }

    .side-nav .nav-item-row {
        display: block;
        width: calc(50% - 20px);
    }

    .side-nav .submenu-wrapper {
        position: absolute;
        top: 0;
        left: calc(50% + 20px);
        width: calc(50% - 20px);
        max-height: 0;
        opacity: 0;
        overflow: hidden;
        transform: translateY(4px);
        padding-left: 0;
        margin-top: 0;
        pointer-events: none;
        z-index: 2;
    }

    .side-nav .submenu:hover>.submenu-wrapper,
    .side-nav .submenu:focus-within>.submenu-wrapper {
        max-height: 800px;
        opacity: 1;
        transform: translateY(0);
        pointer-events: auto;
    }
}

/* tablet + mobile + no-hover devices: accordion version */
@media (max-width: 1024px),
(hover: none),
(pointer: coarse) {
    .side-nav .submenu-toggle {
        display: inline-flex;
        align-items: center;
        justify-content: center;
    }

    .side-nav .level_1>li {
        display: block;
        padding: 6px 0;
    }

    .side-nav .nav-item-row {
        display: flex;
        align-items: center;
        justify-content: space-between;
        gap: 20px;
        width: 100%;
    }

    .side-nav .submenu-wrapper {
        position: static;
        width: 100%;
        padding-left: 20px;
        margin-top: 10px;
        pointer-events: auto;
    }
}
/* Sprachumschalter (Modul 110) unten rechts im Overlay-Menue */
.side-lang {
    position: absolute;
    bottom: 32px;
    right: 48px;
}

.side-lang .lang-nav {
    margin: 0;
    padding: 0;
    list-style: none;
    display: flex;
    align-items: center;
}

.side-lang .lang-nav li+li::before {
    content: "|";
    color: var(--col7);
    opacity: 0.4;
    margin: 0 12px;
}

.side-lang .lang-nav a,
.side-lang .lang-nav span {
    color: var(--col7);
    text-decoration: none;
    letter-spacing: 0.08em;
}

.side-lang .lang-nav a:hover {
    color: var(--white);
}

.side-lang .lang-nav .active span {
    color: var(--white);
    text-decoration: underline;
    text-underline-offset: 4px;
}

/* tablet + mobile: unter dem Menue, rechtsbuendig (side-image ist dort ausgeblendet) */
@media (max-width: 1024px),
(hover: none),
(pointer: coarse) {
    .side-panel-inner {
        flex-wrap: wrap;
    }

    .side-lang {
        position: static;
        width: 100%;
        display: flex;
        justify-content: flex-end;
        margin-top: 24px;
    }
}

@media (min-width: 1200px) and (max-width: 1449px) {

  .container {
    padding-left: 50px;
    padding-right: 50px;
  }

  .container-no-right {
    padding-left: 50px;
  }

  .container-big {
    padding-left: 50px;
  }

  .container-middle {
    padding-left: 50px;
  }

  .three-grid {
    gap: 70px;
  }

  .two-grid {
    gap: 40px;
  }

  .grid-70 {
    grid-template-columns: 1.5fr 1fr;
  }

  .grid-30 {
    grid-template-columns: 35% 50%;
    gap: 8%;
  }

  .footer {
    padding: 80px 40px;
    grid-template-columns: 40% 50%;
  }

  .flex-around {
    display: grid;
    grid-template-columns: 1fr 1fr;
    gap: 50px;
  }

  .pad-top {
    padding-top: 50px;
  }

  .pad-bot {
    padding-bottom: 50px;
  }


  .pad-top-big {
    padding-top: 100px;
  }

  .pad-bot-big {
    padding-bottom: 100px;
  }

  .wow-text {
    left: 5%;
    top: 0;
  }

  .events-text {
    left: 50%;
    bottom: 0;
  }

  .and-text {
    left: 35%;
    bottom: 150px;
    transform: rotate(-20deg);
  }

  .footer.left-links {
    padding-top: 95px;
  }

  .navbar {
    padding-top: 15px;
    padding-bottom: 15px;
  }

  .side-image {
    display: none;
  }

  /* .sidepanel-content {
    left: 0;
  }

  .side-nav .level_1>li {
    margin: 8px 0;
  }

  .side-nav a {
    font-size: 2rem;
    line-height: 1;
  }

  .side-nav .level_2 {
    left: 450px;
  } */

  .button-right-align {
    /* right: 50px; */
  }
}

@media (min-width: 992px) and (max-width: 1199px) {

  .navbar {
    padding-top: 15px;
    padding-bottom: 15px;
  }

  .container {
    padding: 30px;
  }

  .container-no-right {
    padding-left: 30px;
  }

  .container-big {
    padding-left: 30px;
  }

  .container-middle {
    padding-left: 30px;
  }

  .mod_newsreader {
    padding-left: 30px;
    padding-right: 30px;
  }

  .three-grid {
    grid-template-columns: 1fr 1fr;
    gap: 50px;
  }

  .two-grid {
    gap: 30px;
  }

  .grid-70 {
    grid-template-columns: 1fr 1fr;
    gap: 5%;
  }

  .grid-30 {
    grid-template-columns: 30% 60%;
  }

  .footer {
    padding: 70px 30px;
    gap: 50px;
  }

  .right-top {
    font-size: 28px;
  }

  .right-bottom {
    font-size: 24px;
  }

  .flex-around {
    display: grid;
    grid-template-columns: 1fr 1fr;
    gap: 50px;
  }

  .pad-top {
    padding-top: 50px;
  }

  .pad-bot {
    padding-bottom: 50px;
  }

  .pad-top-big {
    padding-top: 100px;
  }

  .pad-bot-big {
    padding-bottom: 100px;
  }

  .right-20 {
    right: unset !important;
  }

  .mod_newslist {
    display: grid;
    grid-template-columns: 1fr;
    gap: 50px;
  }

  .wow-text {
    left: 5%;
    top: 0;
  }

  .events-text {
    left: 50%;
    bottom: 0;
  }

  .and-text {
    left: 35%;
    bottom: 150px;
    transform: rotate(-20deg);
  }

  .mod_breadcrumb ul {
    padding-left: 30px;
  }

  .header-flex {
    padding-left: 30px;
    padding-right: 30px;
    bottom: 30px;
  }
  
  .cta-right {
    right: 30px;
    
    & .item img {
    width: 65px;
    height: auto;
  }
  }
  

  .navbar.nav-top {
    padding: 30px;
    width: 100%;
  }

  .gallery-image {
    height: 800px;
  }


  .side-image {
    display: none;
  }

  /* .sidepanel-content {
    left: 0;
  }

  .side-nav a {
    font-size: 2rem;
    line-height: 1;
  }

  .side-nav .level_2 {
    left: 350px;
  } */

  .button-right-align {
    /* right: 50px; */
  }
}

@media (min-width: 768px) and (max-width: 991px) {

  .navbar {
    padding-top: 15px;
    padding-bottom: 15px;
  }

  .container,
  .container-middle,
  .container-big {
    padding-left: 30px;
    padding-right: 30px;
  }

  .mod_newsreader {
    padding-left: 30px;
    padding-right: 30px;
  }

  .container-no-right {
    padding-left: 30px;
  }

  .three-grid {
    grid-template-columns: 1fr;
    gap: 40px;
  }

  .two-grid {
    grid-template-columns: 1fr;
    gap: 40px;
  }

  .grid-70 {
    grid-template-columns: 1fr;
    gap: 30px;
  }

  .grid-30 {
    grid-template-columns: 1fr;
    gap: 30px;
  }

  .footer {
    padding: 50px 30px;


    .right-top {
      flex-direction: column;
    }

    .right-bottom {
      grid-template-columns: 1fr 1fr;
      gap: 0;
    }

    .right-top,
    .icons {
      gap: 20px;
    }

    .left-links {
      grid-template-columns: 1fr;
      padding-top: 0;
    }
  }

  .flex-around {
    display: grid;
    grid-template-columns: 1fr;
    gap: 50px;
  }

  .right {
    text-align: left;
  }

  .pad-top {
    padding-top: 50px;
  }

  .pad-bot {
    padding-bottom: 50px;
  }

  .pad-top-big {
    padding-top: 200px;
  }

  .pad-bot-big {
    padding-bottom: 100px;
  }

  .footer {
    gap: 50px;
    padding-bottom: 100px;
  }

  .right-20 {
    right: unset !important;
  }

  .left-logo img {
    width: 350px;
  }

  .mod_newslist {
    display: grid;
    grid-template-columns: 1fr;
    gap: 50px;
  }

  .wow-text {
    right: unset !important;
    left: 5%;
    top: 0;
  }

  .events-text {
    left: 50%;
    bottom: 0;
  }

  .and-text {
    left: 35%;
    bottom: 150px;
    transform: rotate(-20deg);
  }

  .star-gold-left::before {
    left: -100px;
    background-size: 50px auto;
  }

  .element-z::after {
    width: 98px;
    height: 93px;
    right: 50px;
    position: absolute;
    background-image: url("../../files/grafiken/sleepy-z.svg");
    background-position: center center;
    background-repeat: no-repeat;
    background-size: 95px auto;
    content: "";
    transition: 0.3s ease-out;
    -webkit-transition: 0.3s ease-out;
    top: -35px;
  }

  .left-20 {
    padding-left: 0;
  }

  .mod_breadcrumb ul {
    padding-left: 30px;
  }

  .header-flex {
    padding-left: 30px;
    padding-right: 30px;
    bottom: 30px;
  }
  
  .cta-right {
    right: 30px;
    
    & .item img {
    width: 65px;
    height: auto;
  }
  }
  
  .header-buttons {
    left: 60px;
  }
  
  .header-button-two {
    top: 15px;
  }

  .navbar.nav-top {
    padding: 30px;
    width: 100%;
  }

  .gallery-image {
    height: 700px;
  }


  .side-image {
    display: none;
  }

  /* .sidepanel-content {
    left: 0;
  }

  .side-nav .level_1>li {
    margin: 8px 0;
  }

  .side-nav a {
    font-size: 2rem;
    line-height: 1;
  } */

  .button-right-align {
    /* text-align: left; */
    /* right: unset; */
  }

  .buttons-header-buttons {
    display: grid;
    position: fixed;
    bottom: 0;
    grid-template-columns: 50% 50%;
    width: 100%;
    z-index: 999;
    text-align: center;
  }

  .fix-button a {
    color: white;
    background-color: black;
    display: block;
    color: white;
    display: block;
    padding-top: 25px;
    padding-bottom: 25px;
    font-size: 1em;
  }

  .fix-button-green a {
    background-color: var(--col6);
  }

  .fix-button-orange a {
    background-color: var(--col8);
  }

  .fix-button-green:hover a {
    background-color: var(--black);
  }

  .fix-button-orange:hover a {
    background-color: var(--black);
  }
}

@media (max-width: 767px) {

  .events-overview-list.events-home {
    max-width: unset;
  }
  
  .events-overview-list {
    gap: 30px;
  }
  
  .events-overview-list .card-overlay {
    padding: 20px;
  }
  
  .list li::before {
    width: 17px;
    height: 22px;
    top: 12px;
  }
  
  .list li {
    padding-left: 30px;
    padding-top: 7px;
    padding-bottom: 7px;
  }

  .navbar {
    padding-top: 15px;
    padding-bottom: 15px;
  }

  .container,
  .container-middle,
  .container-big {
    padding-left: 20px;
    padding-right: 20px;
  }

  .mod_newsreader {
    padding-left: 20px;
    padding-right: 20px;
  }

  .container-no-right {
    padding-left: 20px;
    padding-right: 20px;
  }

  .pad-top {
    padding-top: 50px;
  }

  .pad-bot {
    padding-bottom: 50px;
  }

  .pad-top-small {
    padding-top: 35px;
  }

  .pad-bot-small {
    padding-bottom: 35px;
  }

  .pad-top-big {
    padding-top: 100px;
  }

  .pad-bot-big {
    padding-bottom: 100px;
  }

  .text-90,
  .text-80,
  .text-60 {
    width: 100%;
  }

  .three-grid,
  .two-grid,
  .grid-70,
  .grid-30 {
    grid-template-columns: 1fr;
    gap: 30px;
  }

  .footer {
    padding: 40px 20px;
    flex-direction: column;
    gap: 40px;
    padding-bottom: 80px;


    .left-links {
      grid-template-columns: 1fr;
      padding-top: 0;
    }

    .right-top,
    .right-bottom {
      gap: 10px;
    }

    .right-bottom {
      grid-template-columns: 1fr 1fr;
    }

    .right-top {
      flex-direction: column;
    }

    .left-footer,
    .right-footer {
      gap: 30px;
    }

    /* Mobil: Newsletter-Button und Social-Icons untereinander statt nebeneinander */
    .newsletter-social-row {
      flex-direction: column;
      align-items: flex-start;
      gap: 20px;
    }
  }

  .header img {
    height: 600px !important;
  }

  .header {
    height: 600px !important;
  }

  .flex-around {
    display: grid;
    grid-template-columns: 1fr;
    gap: 50px;
  }

  .right {
    text-align: left;
  }

  .right-20 {
    right: unset !important;
  }

  .wow-text {
    right: unset !important;
    left: 20px;
  }

  .left-logo img {
    width: 150px;
  }

  .mod_newslist {
    display: grid;
    grid-template-columns: 1fr;
    gap: 50px;
  }

  .wow-text {
    left: 5%;
    top: 0;
  }

  .events-text {
    left: 30%;
    bottom: 0;
  }

  .and-text {
    left: 10%;
    bottom: 150px;
    transform: rotate(-20deg);
  }

  .inside-image-text {
    padding: 25px;
  }

  .right-bottom {
    grid-template-columns: 1fr;
  }

  .star-gold-left::before {
    left: -70px;
    background-size: 26px auto;
  }

  .green-star-left::before {
    background-size: 36px auto;
    left: -30px;
  }

  .green-star-left {
    padding-left: 50px;
  }

  .element-z::after {
    width: 78px;
    height: 73px;
    right: 20px;
    position: absolute;
    background-image: url("../../files/grafiken/sleepy-z.svg");
    background-position: center center;
    background-repeat: no-repeat;
    background-size: 75px auto;
    content: "";
    transition: 0.3s ease-out;
    -webkit-transition: 0.3s ease-out;
    top: -80px;
  }

  .left-20 {
    padding-left: 0;
  }

  .mod_breadcrumb ul {
    padding-left: 20px;
    flex-wrap: wrap;
    row-gap: 6px;
  }

  .header-flex {
    padding-left: 20px;
    padding-right: 20px;
  }

  .navbar,
  .navbar.nav-top {
    padding: 20px 20px;
    width: 100%;
  }

  .header-flex {
    margin-top: -200px !important;
    display: grid;
    bottom: 20px;
  }

  .header-flex p {
    font-size: 1em;
    margin-top: 10px;
  }

  .header-buttons {
    left: 20px;
    top: unset;
    bottom: 120px;
  }
  
    .cta-right {
    right: 30px;
    
    & .item img {
    width: 65px;
    height: auto;
  }
  }
  
  .mod_breadcrumb ul {
    margin-top: 20px;
    margin-bottom: 20px;
  }
  
  .header-button-two {
    top: 15px;
    display: inline-block;
    left: 9em;
  }

  .nav-right {
    display: none;
    font-size: 7rem;
  }

  .nav-center {
    justify-content: right;
  }

  .navbar {
    grid-template-columns: 1fr 1fr;
  }

  .right-50 {
    padding-right: 0;
  }

  .center {
    text-align: left;
  }

  .nav-center .logo {
    height: 40px;
  }

  .nav-top .nav-center .logo {
    height: 60px;
  }

  .burger-menu img {
    height: 40px;
  }

  .nav-top .burger-menu img {
    height: 50px;
  }

  .side-image {
    display: none;
  }

  /* .sidepanel-content {
    left: 0;
  }

  .side-nav .level_1>li {
    margin: 8px 0;
    grid-template-columns: 1fr;
  }

  .side-nav a {
    font-size: 2rem;
    line-height: 1;
  }

  .side-nav .level_2 {
    right: 0;
    left: unset;
    position: relative;
    padding-left: 2px;
  } */

  .button-right-align {
    /* text-align: left; */
    /* right: unset; */
  }

  .inline-buttons {
    display: grid;
  }

  /* .side-panel {
    padding: 30px;
  } */

  .buttons-header-buttons {
    display: grid;
    position: fixed;
    bottom: 0;
    grid-template-columns: 50% 50%;
    width: 100%;
    z-index: 999;
    text-align: center;
  }

  .fix-button a {
    color: white;
    background-color: black;
    display: block;
    color: white;
    display: block;
    padding-top: 20px;
    padding-bottom: 20px;
    font-size: 1.2em;
  }

  .fix-button-green a {
    background-color: var(--col6);
  }

  .fix-button-orange a {
    background-color: var(--col8);
  }

  .fix-button-green:hover a {
    background-color: var(--black);
  }

  .fix-button-orange:hover a {
    background-color: var(--black);
  }

  .events-specials.events-specials {

    .background-image-big {
      right: 10%;
    }
  }
}
/* grid-50 collapses to one column on mobile (grid-30 already does, above) */
@media (max-width: 767px) {
  .grid-50 {
    grid-template-columns: 1fr;
    gap: 30px;
  }
}


/* ==SMALL-COLUMN MOBILE START== */
/* .small-column-center / -left / -right sind 15%/30% horizontale Padding-
   Utilities (style.css ~L1294). Bei ≤767px verengen sie den Content unnötig –
   `.container-middle` liefert auf Mobil bereits den Seitenrand. */
@media (max-width: 767px) {
  .small-column-center,
  .small-column-left,
  .small-column-right {
    padding-left: 0;
    padding-right: 0;
  }
}
/* ==SMALL-COLUMN MOBILE END== */

/* ==PAD-UTILITIES MOBILE START== */
/* Inline-Padding-Utilities (style.css:217 / 242–248 / 613): werden ausschließlich
   auf element_groups innerhalb von .two-grid eingesetzt (DB-Inventar: ~50 uses,
   keine standalone). Bei ≤767px kollabiert die Spalte – die Insets verengen
   den Inhalt nur. .container-middle liefert weiterhin den Seitenrand. */
@media (max-width: 767px) {
  .pad-left,
  .pad-right,
  .right-50,
  .grid-pad-left,
  .grid-pad-right,
  .grid-pad-left-right {
    padding-left: 0;
    padding-right: 0;
  }
}
/* ==PAD-UTILITIES MOBILE END== */

/* ==CONTAINER-SM RESPONSIVE START== */
/* .container-sm (style.css:175) wurde im Responsive-Pass übersehen –
   Geschwister .container/.container-middle/.container-big skalieren auf 30/20px,
   .container-sm blieb auf 50px → Content auf Mobil zu schmal
   (z. B. inklusivleistungen FAQ, newsletter Platzhalter). */
@media (min-width: 768px) and (max-width: 991px) {
  .container-sm { padding-left: 30px; padding-right: 30px; }
}
@media (max-width: 767px) {
  .container-sm { padding-left: 20px; padding-right: 20px; }
}
/* ==CONTAINER-SM RESPONSIVE END== */


/* ==LARGE-GAP MOBILE START== */
/* `.two-grid.large-gap { gap: 7% }` (style.css:526) survived the mobile reset
   `.two-grid { gap: 30px }` because the compound selector has higher specificity
   (0,2,0 vs 0,1,0). On a single-column mobile grid, the 7% resolves against the
   grid block size and pushes the second row below the parent's overflow:hidden
   bounds — e.g. das-haus article 288 clipped the "Philosophie & Küche" button. */
@media (max-width: 767px) {
  .two-grid.large-gap {
    gap: 30px;
  }
}
/* ==LARGE-GAP MOBILE END== */

/* ==PAD-BIG IN GRID MOBILE START== */
/* On desktop, `.pad-top-big`/`.pad-bot-big` (100/200px) is often added to a
   column inside a `.two-grid` (image on one side, text on the other) to
   visually align the text column with the image's vertical center. When the
   grid collapses to one column at ≤767px, that inset becomes redundant
   whitespace between the heading and the body text (e.g. das-haus
   "Lehre & Arbeiten…" article). Reset it only inside grids — standalone
   .mod_article.pad-top-big section dividers keep their breathing room. */
@media (max-width: 767px) {
  .two-grid .pad-top-big,
  .three-grid .pad-top-big,
  .grid-30 .pad-top-big,
  .grid-50 .pad-top-big,
  .grid-70 .pad-top-big {
    padding-top: 0;
  }
  .two-grid .pad-bot-big,
  .three-grid .pad-bot-big,
  .grid-30 .pad-bot-big,
  .grid-50 .pad-bot-big,
  .grid-70 .pad-bot-big {
    padding-bottom: 0;
  }
}
/* ==PAD-BIG IN GRID MOBILE END== */

/* ==LEFT-IMAGE-GROW DESKTOP START== */
/* On larger screens, two-grid intro sections often have an image-only column
   next to a column with image + heading + text + button. The image-only
   column gets `.small-column-center` (15% inset) so the image renders at
   ~70% of column width with whitespace beside it AND below it. Drop the
   inset only on image-only columns so the picture fills the column width
   (e.g. unsere-geschichte "Wir sind tief verwurzelt", glutenfreie-bio-kueche
   "Hi, ich bin Verena."). The `:has(> .content-image:only-child)` keeps the
   rule scoped to columns whose sole child is an image CE. */
@media (min-width: 1200px) {
  .two-grid > .small-column-center:has(> .content-image:only-child) {
    padding-left: 0;
    padding-right: 0;
  }
  .two-grid > .small-column-center:has(> .content-image:only-child) img {
    width: 100%;
    height: auto;
  }
}
/* ==LEFT-IMAGE-GROW DESKTOP END== */

/* Mobil: card_feature Overlay-Padding reduziert */
@media (max-width: 767px) {
  .card-feature .card-overlay {
    padding: 20px;
  }
}

/* Mobil: Stagger-pad-top des mittleren Bildes in Dreier-Galerien (.three-grid) entfernen */
@media (max-width: 767px) {
  .three-grid .pad-top {
    padding-top: 0;
  }
}

.mod_calendar {
  margin: 2rem 0;
}

.mod_calendar .calendar {
  width: 80%;
  border-collapse: separate;
  border-spacing: 0;
  table-layout: fixed;
  background: #fff;
  border: 1px solid #e7e2db;
  border-radius: 1.5rem;
  overflow: hidden;
  /* margin-top:5rem;  */
  /* margin-bottom:5rem; */
  /* margin-left:auto; */
  /* margin-right:auto; */
}

/* Kopfbereich */
.mod_calendar .calendar thead th {
  padding: 1rem 0.75rem;
  font-weight: 600;
  font-size: 0.95rem;
  line-height: 1.3;
}

.mod_calendar .calendar thead tr:first-child th {
  background: #f7f3ee;
  color: #2f2a26;
  border-bottom: 1px solid #e7e2db;
}

.mod_calendar .calendar thead .current {
  text-align: center;
  font-size: 1.1rem;
  font-weight: 700;
  letter-spacing: 0.02em;
}

.mod_calendar .calendar thead .previous {
  text-align: left;
}

.mod_calendar .calendar thead .next {
  text-align: right;
}

.mod_calendar .calendar thead .previous a,
.mod_calendar .calendar thead .next a {
  color: #7a5c43;
  text-decoration: none;
  transition: color 0.25s ease, opacity 0.25s ease;
}

.mod_calendar .calendar thead .previous a:hover,
.mod_calendar .calendar thead .next a:hover {
  color: #000;
  opacity: 0.85;
}

/* Wochentage */
.mod_calendar .calendar thead tr:last-child th {
  background: #fff;
  color: #7a736c;
  text-transform: uppercase;
  font-size: 0.72rem;
  letter-spacing: 0.08em;
  border-bottom: 1px solid #eee7df;
}

.mod_calendar .calendar thead .weekend {
  color: #a68d79;
}

/* Zellen */
.mod_calendar .calendar tbody td {
  vertical-align: top;
  height: 130px;
  padding: 0.65rem;
  background: #fff;
  border-right: 1px solid #f1ebe4;
  border-bottom: 1px solid #f1ebe4;
  transition: background 0.25s ease, transform 0.25s ease;
  position: relative;
}

.mod_calendar .calendar tbody tr td:last-child {
  border-right: 0;
}

.mod_calendar .calendar tbody tr:last-child td {
  border-bottom: 0;
}

/* Leere Tage */
.mod_calendar .calendar tbody td.empty {
  background: #faf8f5;
}

/* Wochenende */
.mod_calendar .calendar tbody td.weekend {
  background: #fcfaf7;
}

/* Tageszahl */
.mod_calendar .calendar .header {
  font-size: 0.95rem;
  font-weight: 700;
  color: #2f2a26;
  margin-bottom: 0.75rem;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  min-width: 2rem;
  min-height: 2rem;
  border-radius: 999px;
  height:initial;
}

/* Aktiver Tag mit Event */
.mod_calendar .calendar tbody td.active {
  background: linear-gradient(180deg, #fffaf4 0%, #fff 100%);
}

.mod_calendar .calendar tbody td.active .header {
  background: #7a5c43;
  color: #fff;
  padding: 0.35rem 0.7rem;
}

/* Events */
.mod_calendar .calendar .event {
  margin-top: 0.35rem;
  padding: 0.55rem 0.7rem;
  border-radius: 0.9rem;
  background: #f4ede6;
  border-left: 4px solid #7a5c43;
  font-size: 0.85rem;
  line-height: 1.35;
}

.mod_calendar .calendar .event + .event {
  margin-top: 0.45rem;
}

.mod_calendar .calendar .event a {
  color: #2f2a26;
  text-decoration: none;
  font-weight: 600;
  display: block;
  transition: color 0.25s ease;
}

.mod_calendar .calendar .event a:hover {
  color: #7a5c43;
}

/* Vergangene Events */
.mod_calendar .calendar .event.bygone {
  opacity: 0.72;
  background: #f8f5f1;
}

/* Hover */
.mod_calendar .calendar tbody td:not(.empty):hover {
  background: #fdf9f5;
}

/* Responsive */
@media (max-width: 991px) {
  .mod_calendar .calendar {
    width:100%;
  }
  
  .mod_calendar .calendar thead tr:last-child th {
    font-size: 0.65rem;
    padding: 0.75rem 0.3rem;
  }

  .mod_calendar .calendar tbody td {
    height: 110px;
    padding: 0.45rem;
  }

  .mod_calendar .calendar .header {
    font-size: 0.85rem;
    min-width: 1.8rem;
    min-height: 1.8rem;
      height:initial;
  }

  .mod_calendar .calendar .event {
    font-size: 0.78rem;
    padding: 0.45rem 0.55rem;
  }
}

@media (max-width: 767px) {
  .mod_calendar {
    overflow-x: auto;
  }

  .mod_calendar .calendar .header {
      height:initial!important;
  }

  .mod_calendar .calendar {
    min-width: 700px;
  }
}
