*,*::before,*::after{box-sizing:border-box}
html,body,div,p,h1,h2,ul,li,figure,a,button,input,nav,header,footer,main,section,article,aside{margin:0;padding:0;border:0}
html{-webkit-text-size-adjust:100%;scroll-behavior:smooth;
--black:#333;--white:#fff;--red:#dc7085;--green:#87b5a1;--blue:#4b6883;--yellow:#e9cda3;--grey:#5c605a;--grey-bg-1:#e0e8e8}
@media (prefers-contrast:more){html{--red:#a34c5c;--green:#5f8073;--blue:#2b3d4e}}
body{color:var(--black);font-family:'Cormorant Garamond',serif;font-size:1.25em;line-height:1.375;font-variant-numeric:lining-nums}
img{display:block}
svg{display:block}
main{display:block;width:100%}
ul{list-style:none}
a{text-decoration:none;color:inherit;transition:color .3s,background .3s,border .3s}
a:hover,button:hover{color:var(--red)}
button,input{-webkit-appearance:none;appearance:none;background:none;border:none;border-radius:0;font:inherit}
button:hover,input[type=submit]:hover{cursor:pointer}
a:focus-visible,button:focus-visible{outline-style:auto}
.clearfix::after{content:"";display:table;clear:both}

h1,h2{font-size:1.5em;line-height:1.25;font-family:'Comfortaa',sans-serif;font-weight:300;text-wrap:balance}
h1+p,h2+p{margin-top:.625em}
p+p{margin-top:.75em}
p+.big{margin-top:1em}
.big+p{margin-top:.5em}
.big,.extra{font-size:1.125em}
.sans{font-family:'Comfortaa',sans-serif;font-weight:300}
.sans-b{font-family:'Comfortaa',sans-serif;font-weight:700}
b,strong,.bold,.text a{font-weight:600}
.text a{color:var(--blue)}
.text a:hover{color:var(--red)}
.text a.phone{font-weight:400}
.text a.dark{color:var(--black)}
a.phone,a.phone:hover{color:var(--black);cursor:text}
.white,.white *,.white a.phone,.white a.phone:hover{color:var(--white)}
.italic{font-style:italic}
.uppercase{text-transform:uppercase}
.pfeil::after{content:'\00a0\00bb'}
.center-text{text-align:center}
.red-bg{background:var(--red)}.green-bg{background:var(--green)}.blue-bg{background:var(--blue)}.l-grey-bg{background:var(--grey-bg-1)}

.skip-link{display:block;padding:.5rem 1rem;background:#fff;position:absolute;top:0;left:50%;transform:translate(-50%,-100%);transition:all .3s}
.skip-link:focus{transform:translate(-50%,0);z-index:30}

/* layout */
.wrapper{width:100%;margin:0 auto;max-width:32rem;position:relative}
.page-cont{background:#fff}
.content{padding:0 1rem 1rem}
.block{padding:1.5rem 0}
.block+.block{padding-top:0}
.block+.outro{padding-top:1.5rem}
.text-xl{width:100%;position:relative}
.block-media{margin-top:1.5rem}
.cols{display:flex;flex-flow:row wrap}
.col{position:relative;width:100%;float:left}
.col+.col{margin-top:1rem}
.col-text{height:100%;width:100%;padding:.75rem}
.newsbox{border-top:.25rem solid var(--grey);border-bottom:.25rem solid var(--grey);padding:.5rem 0;margin-bottom:1rem}
.newsbox .col-text{text-align:center}

/* header */
#mh{position:absolute;width:100%;z-index:10;padding-left:1rem}
#mh .cols{flex-wrap:nowrap}
.logo{padding:.75rem 0;max-width:50%;position:relative;z-index:4;overflow:hidden;margin:0}
.logo a{display:block;height:4.25rem;transition:width .3s,height .3s}
.logo svg,.logo-wrap{width:auto;height:100%}
#mh.fixed{position:fixed;top:0;background:#fff;border-bottom:.25rem solid var(--red)}
#mh.fixed .logo{padding:.375rem 0}
#mh.fixed .logo a{height:2rem}
.logo-top{transition:opacity .1s;opacity:1;position:relative}
.logo-scroll,#mh.fixed .logo-top{opacity:0;position:absolute;top:0}
#mh.fixed .logo-scroll{opacity:1;position:relative}

/* nav (mobile) */
#mn{width:100%;height:100%;position:fixed;right:0;top:0;z-index:3;transform:translateX(100%);transition:transform .3s;pointer-events:none}
#mn.open{transform:translateX(0);pointer-events:auto}
#mn ul{display:none;width:100%;height:100%;position:absolute;right:0;z-index:3;padding:4.5rem 2rem;background:#fff}
.open-menu #mn ul{display:block}
#mn.open ul{box-shadow:0 0 2rem rgba(0,0,0,.5)}
#mn ul li{max-width:32rem;margin:0 auto;border-top:1px solid var(--grey);line-height:1em}
#mn ul li:first-of-type{border-top:none}
#mn li::before{content:none}
#mn a{display:block;padding:1rem 0;font-weight:400}
#mn .icon{display:none}
#mn .icon svg{fill:var(--black);width:1.75rem;height:1.75rem}
#mn .icon:hover svg{fill:var(--red)}
.search-wrap{padding-top:1rem}
.search-form{display:flex}
.search-input{width:66.66%;background:var(--grey);padding:.5rem}
.search-input::placeholder{color:#ddd}
.search-button{width:33.33%;padding:.5rem;background:var(--red)}
.search-button:hover{background:var(--green)}
.search-input,.search-button{flex:1 0 auto;color:#fff}

#pull{width:2.5rem;height:2.5rem;padding:.625rem 0 .625rem .75rem;position:absolute;top:50%;right:1rem;z-index:12;transform:translateY(-50%)}
.burger-wrap{position:relative;width:100%;height:100%}
.burger,.burger::before,.burger::after{width:1.75rem;height:.25rem;display:block;position:absolute;background:var(--blue);transition:all .3s}
.burger{left:0;top:0}
.burger::before{top:.5rem;content:''}
.burger::after{top:1rem;content:''}
#pull:hover .burger,#pull:hover .burger::before,#pull:hover .burger::after{background:var(--red)}
.open .burger,#pull.open:hover .burger{background:none}
.open .burger::before{top:.5rem;transform:rotate(45deg)}
.open .burger::after{top:.5rem;transform:rotate(-45deg)}

/* hero */
.headimg{position:relative}
.headslider{position:relative;overflow:hidden}
.headimg .img-wrap{position:relative;max-height:66.66vh;width:100%;overflow:hidden}
.headimg figure{padding-bottom:66.66%}
.headslider .slide{transition:opacity .8s}
.headslider.js .slide{position:absolute;top:0;left:0;opacity:0}
.headslider.js .slide:first-child{position:relative}
.headslider.js .slide.active{opacity:1;z-index:1}
.img-wrap img{position:absolute;top:50%;left:50%;transform:translate(-50%,-50%);width:100%;height:100%;object-fit:cover}
.img-wrap figure{position:relative;width:100%}

/* tile grid */
.img-mid figure{padding-bottom:66.66%;position:relative}
.grid .block-link{display:block;width:100%;height:100%;border-bottom:.125rem solid var(--black)}
.grid .block-link img{opacity:1;transition:opacity .3s}
.grid .block-link:hover img{opacity:.75}
.block-link .col-text{height:auto;padding:.5rem .5rem .75rem}
.block-link p+p{margin-top:.25em}
a:hover .no-hov{color:var(--black)}
.grid .col{padding:1rem .5rem 0}
.grid .col:first-child{padding-top:0}
.extra{display:flex;align-items:center;justify-content:center;text-align:center}

/* social side */
.social{display:flex}
.social li{padding:0;position:relative}
.social li::before{content:none}
.social .icon{display:block;padding:.375rem}
.social svg{fill:#fff;width:2rem;height:2rem;margin:0 auto;transition:fill .3s}
.social-wrap{display:none}
.social-wrap .icon{background:var(--green)}
.social-wrap .icon:hover{background:var(--red)}

/* map */
.map-wrap{width:100%;height:0;padding-bottom:90%;position:relative;overflow:hidden}
.map{width:100%;height:100%;position:absolute;left:0;top:0;z-index:0}
.maplibregl-popup-content{font-family:'Cormorant Garamond',serif;font-size:1rem;line-height:1.3;padding:.75rem 1rem}
.maplibregl-popup-content p+p{margin-top:.1em}

/* back to top */
#back-top{width:2.5rem;height:2.5rem;position:fixed;right:1rem;bottom:1rem;display:none;z-index:9}
#back-top a{width:2.5rem;height:2.5rem;display:block;padding:.625rem .25rem;background:rgba(75,106,132,.3);border-radius:50%}
#back-top a:hover{background:var(--blue)}
.arrow{width:2rem;height:1.25rem;position:relative}
.arrow::before,.arrow::after{width:.125rem;height:1rem;content:'';position:absolute;display:block;background:#fff;top:0}
.arrow::before{transform:rotate(45deg);left:.625rem}
.arrow::after{transform:rotate(-45deg);right:.625rem}
@keyframes pulse{0%,100%{transform:scale(1)}50%{transform:scale(1.1)}}
#back-top a:hover .arrow{animation:pulse .5s 1}

/* footer */
#mf{font-size:.75em;padding:1rem 0 1.5rem;background:var(--blue);border-top:.25rem solid var(--yellow)}
#mf .footer-inner{padding:0 1rem;font-family:'Comfortaa',sans-serif;font-weight:300}
#mf li{padding:0;line-height:1.375}
#mf li::before{content:none}
.footer-list ul+ul{padding:.75rem 0 0}
.right-al ul{justify-content:flex-start}
#mf .icon svg{width:1.5rem;height:1.5rem}
#mf .icon:hover svg{fill:var(--red)}
#mf .social li+li{padding-left:.5rem}
#mf .social .icon{padding:.375rem}
#mf .col+.col{margin-top:1rem}

@media screen and (min-width:48em){
.logo a{height:5.25rem}#mh.fixed .logo a{height:2.5rem}
#pull{right:2rem}
.headimg figure{padding-bottom:50%}
.block{padding:2rem 0}.block+.outro{padding-top:2rem}
.block-media{margin-top:2rem}
.col+.col{margin-top:0}
.col-s-m{width:50%;max-width:50%}
.grid .col{padding:1rem .5rem 0}
.grid .col:nth-of-type(1),.grid .col:nth-of-type(2){padding-top:0}
.footer-list{display:flex;flex-flow:row wrap}
.footer-list ul{flex:initial}
.footer-list ul+ul{padding:0 0 0 1.5rem}
.map-wrap,.block .map-wrap{padding-bottom:56.25%}
.social-wrap{display:block;position:fixed;right:0;top:25%;transform:translateY(-50%);z-index:1}
.social-wrap .social,.social-wrap .social li{display:block}
.social-wrap li+li{margin-top:.25rem}
#mf{padding:1rem 0 1.5rem}#mf .footer-inner{padding:0 .5rem}
#mf .col+.col{margin-top:1rem}
}
@media screen and (min-width:64em){
.wrapper{max-width:60rem}
.logo a{height:6rem}#mh.fixed .logo a{height:3rem}
.block{padding:2.5rem 0}.block+.outro{padding-top:2.5rem}
.col-s-m{width:33.33%;max-width:33.33%}
.grid .col:nth-of-type(3){padding-top:0}
.text-xl{width:75%}
.block .text-xl{margin-left:auto;margin-right:auto}
#mf .cols{justify-content:space-between}
#mf .col{width:auto}#mf .col+.col{margin-top:0}
.footer-list ul+ul{padding:0 0 0 2rem}
}
@media screen and (min-width:74em){
.extra{font-size:1.375em}
.wrapper{max-width:70rem}
#mh{padding-top:1rem}#mh.fixed{padding-top:0}
#mh .cols{justify-content:space-between;align-items:center}
.logo{flex:initial}
#pull{display:none}
#mn{width:auto;right:auto;top:auto;z-index:0;height:auto;padding:.5rem 0 0 3rem;transform:none;position:relative;font-size:.875em;pointer-events:auto}
#mn ul{display:flex;flex-flow:row nowrap;width:auto;max-width:100%;position:relative;background:none;padding:0 2rem 0 0;justify-content:flex-end;align-items:center;border-bottom:.125rem solid var(--black);height:auto}
#mh.fixed #mn ul{border-bottom:none}
#mn ul li{border-top:none;padding:0;margin:0}
#mn ul li a{padding:.75rem .5rem}
#mn ul li:first-of-type a{padding-left:0}
#mn.open ul{box-shadow:none}
#mn .icon{display:block}
#mn li.menu-search{position:static}
#mn li.menu-search .icon{padding-left:1rem}
#mn .search-wrap{display:none;position:absolute;padding-top:0;margin-top:.125rem;width:100%;left:0;top:100%}
#mn .search-wrap.show{display:block}
#mh.fixed .search-wrap{margin-top:0}
#mh.fixed .search-form{margin-top:.5rem;border-left:.25rem solid var(--red);border-bottom:.25rem solid var(--red)}
.col-text{padding:1rem}
}
@media screen and (min-width:90em){
.col .big{font-size:1.25em}
.extra{font-size:1.5em}
.wrapper{max-width:80rem}
#mh{padding-left:4rem}
#mn ul{padding-right:4rem}
#mn ul li a{padding:.75rem}
.block{padding:3rem 0}.block+.outro{padding-top:3rem}
.block-media{margin-top:2.5rem}
.block .text-xl{width:70%}
.col-text{padding:1.5rem}
.grid .col{padding:1.5rem .75rem 0}
.grid .col:nth-of-type(-n+3){padding-top:0}
#mf{padding:1.5rem 0 2rem}#mf .footer-inner{padding:0 .75rem}
}
@media screen and (min-width:120em){
body{font-size:1.375em}
.wrapper{max-width:90rem}
#mh{padding-left:5rem}
.logo a{height:7.5rem}#mh.fixed .logo a{height:3.5rem}
#mn ul{padding-right:5rem}
#mn ul li a{padding:.75rem 1rem}
#mh.fixed .search-form{margin-top:.75rem}
}
