.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}}
@font-face {
    font-family: 'PP Radio Grotesk';
    src: url('/files/theme/fonts/PPRadioGrotesk-Regular.woff2') format('woff2');
    font-weight: 400;
    font-style: normal;
    font-display: swap;
}
@font-face {
    font-family: 'PP Radio Grotesk';
    src: url('/files/theme/fonts/PPRadioGrotesk-Bold.woff2') format('woff2');
    font-weight: 700;
    font-style: normal;
    font-display: swap;
}
@font-face {
    font-family: 'Albra Sans';
    src: url('/files/theme/fonts/AlbraSans-Regular.woff2') format('woff2');
    font-weight: 400;
    font-style: normal;
    font-display: swap;
}
@font-face {
    font-family: 'Albra Sans';
    src: url('/files/theme/fonts/AlbraSans-Italic.woff2') format('woff2');
    font-weight: 400;
    font-style: italic;
    font-display: swap;
}

:root {

    --bg-primary:       #f8f6f2;
    --bg-white:         #FFFFFF;
    --bg-dark:          #42564c;
    --bg-dark-2:        #2E4237;
    --accent:           #b99b78;
    --accent-sage:      #8fa38b;
    --text-primary:     #2A2A22;
    --text-secondary:   #5C5C52;
    --text-on-dark:     #FFFFFF;
    --text-on-dark-2:   #D4DDD7;
    --text-on-dark-3:   #8fa38b;
    --accent-winter:    #7b94a7;
    --border-light:     #E2DED7;
    --border-dark:      rgba(255,255,255,0.15);

    --container:        1480px;
    --container-pad:    48px;
    --section-pad-y:    120px;
    --header-h:         200px;

    --spacing-unit: 8px;
    --space-xs:  calc(var(--spacing-unit) * 1);
    --space-sm:  calc(var(--spacing-unit) * 2);
    --space-md:  calc(var(--spacing-unit) * 3);
    --space-lg:  calc(var(--spacing-unit) * 4);
    --space-xl:  calc(var(--spacing-unit) * 6);
    --space-2xl: calc(var(--spacing-unit) * 8);
    --space-3xl: calc(var(--spacing-unit) * 12);
    --space-4xl: calc(var(--spacing-unit) * 15);

    --font-sans:        'PP Radio Grotesk', system-ui, -apple-system, 'Segoe UI', Roboto, sans-serif;
    --font-serif:       'Albra Sans', system-ui, -apple-system, 'Segoe UI', Roboto, sans-serif;

    --ease-out:         cubic-bezier(.2,.8,.2,1);
    --ease-in-out:      cubic-bezier(.4,0,.2,1);
    --dur:              .2s;
    --dur-med:          .4s;
    --dur-slow:         .6s;
}

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

html {
    scroll-behavior: smooth;
    -webkit-text-size-adjust: 100%;
}

body {
    font-family:      var(--font-sans);
    font-size:        16px;
    line-height:      1.6;
    color:            var(--text-primary);
    background-color: var(--bg-primary);
    overflow-x:       hidden;
}

img, video, svg {
    display:    block;
    max-width:  100%;
    height:     auto;
}

a {
    color:           inherit;
    text-decoration: none;
}

ul, ol {
    list-style: none;
}

button {
    cursor:     pointer;
    background: none;
    border:     none;
    font:       inherit;
    color:      inherit;
}

input, textarea, select {
    font: inherit;
}

:where(h1, h2, h3, h4, h5, h6, p) {
    font:   inherit;
    margin: 0;
}

:is(h1, h2, h3, h4, h5, h6) em {
    display: block;
}

:where(.einleitung__text, .text-image__text, .text-image-light__text,
       .region-intro__text, .gastgeber__text, .cta-banner__text,
       .apartment-detail__body) > p {
    margin-block-end: 1rem;
}
:where(.einleitung__text, .text-image__text, .text-image-light__text,
       .region-intro__text, .gastgeber__text, .cta-banner__text,
       .apartment-detail__body) > p:last-child {
    margin-block-end: 0;
}

.skip-link {
    position:    absolute;
    top:         -100%;
    left:        16px;
    padding:     8px 16px;
    background:  var(--bg-dark);
    color:       var(--text-on-dark);
    font-size:   .875rem;
    z-index:     9999;
    border-radius: 0 0 4px 4px;
    transition:  top var(--dur) var(--ease-out);
}
.skip-link:focus {
    top: 0;
}

.container {
    max-width: var(--container);
    margin:    0 auto;
    padding:   0 var(--container-pad);
}

.btn {
    display:        inline-flex;
    align-items:    center;
    justify-content: center;
    height:         67px;
    padding:        0 48px;
    border-radius:  40px;
    font-size:      24px;
    letter-spacing: 0.48px;
    line-height:    34px;
    font-family:    var(--font-sans);
    font-weight:    400;
    white-space:    nowrap;
    transition:     background var(--dur) var(--ease-out),
                    color      var(--dur) var(--ease-out),
                    border-color var(--dur) var(--ease-out),
                    opacity    var(--dur) var(--ease-out);
}

.btn--outline-white {
    border: 1.5px solid var(--text-on-dark);
    color:  var(--text-on-dark);
}
.btn--outline-white:hover {
    background: var(--text-on-dark);
    color:      var(--bg-dark);
}

.btn--outline-gold {
    border: 1.5px solid var(--accent);
    color:  var(--accent);
}
.btn--outline-gold:hover {
    background: var(--accent);
    color:      var(--text-on-dark);
}

.btn img {
    transition: filter var(--dur) var(--ease-out);
}
.btn:hover img {
    filter: brightness(0) invert(1);
}

.btn--outline-sage {
    border: 1.5px solid var(--accent-sage);
    color:  var(--accent-sage);
}
.btn--outline-sage:hover {
    background: var(--accent-sage);
    color:      var(--text-on-dark);
}

.btn--outline-winter {
    border: 1.5px solid var(--accent-winter);
    color:  var(--accent-winter);
}
.btn--outline-winter:hover {
    background: var(--accent-winter);
    color:      var(--text-on-dark);
}

.sr-only {
    position:   absolute;
    width:      1px;
    height:     1px;
    padding:    0;
    margin:     -1px;
    overflow:   hidden;
    clip:       rect(0,0,0,0);
    white-space: nowrap;
    border:     0;
}

.text-center { text-align: center; }
.text-left   { text-align: left; }

.section-label {
    display:        block;
    font-family:    var(--font-sans);
    font-size:      28px;
    font-weight:    700;
    letter-spacing: 0.56px;
    line-height:    24px;
    color:          var(--accent);
    margin-bottom:  32px;
}

.section-label--light {
    color: var(--text-on-dark-3);
}

:focus          { outline: none; }
:focus-visible  { outline: 2px solid var(--accent); outline-offset: 3px; }

html.cbox-open { overflow: hidden; }

.symbolbild-badge {
    position:       absolute;
    right:          clamp(8px, 1vw, 14px);
    bottom:         clamp(8px, 1vw, 14px);
    margin:         0;
    padding:        .22em .6em;
    font-family:    var(--font-sans);
    font-size:      clamp(13px, 1.1vw, 16px);
    line-height:    1.25;
    color:          var(--text-on-dark, #fff);
    background:     rgba(20, 28, 24, .5);
    border-radius:  4px;
    pointer-events: none;
    z-index:        2;
}

#colorbox #cboxTitle {
    position:      absolute;
    top:           auto;
    left:          auto;
    right:         14px;
    bottom:        14px;
    width:         auto;
    max-width:     70%;
    margin:        0;
    padding:       .22em .6em;
    font-family:   var(--font-sans);
    font-size:     15px;
    line-height:   1.25;
    text-align:    right;
    color:         var(--text-on-dark, #fff);
    background:    rgba(20, 28, 24, .5);
    border-radius: 4px;
}

.text-image__slide,
.text-image__thumb,
.text-image-light__image,
.gastgeber__image,
.region-split__season-image,
.usp-photos__item { position: relative; }

.text-image__slider:has(.text-image__arrow) .symbolbild-badge,
.usp-photos:has(.usp-photos__arrow) .symbolbild-badge {
    right:  calc(67px + 14px);
    bottom: 20px;
}

.site-header {
    position:         fixed;
    top:              0;
    left:             0;
    right:            0;
    z-index:          100;
    height:           var(--header-h);
    background:       transparent;
    transition:       background var(--dur-med) var(--ease-out),
                      border-color var(--dur-med) var(--ease-out),
                      backdrop-filter var(--dur-med) var(--ease-out),
                      height var(--dur-med) var(--ease-out);
    border-bottom:    1px solid transparent;
}

body:not(.hero) .site-header {
    background:     rgba(58, 82, 68, 0.97);
    backdrop-filter: blur(16px);
    -webkit-backdrop-filter: blur(16px);
    border-bottom-color: rgba(255,255,255,0.08);
}

body.hero .site-header:not(.scrolled) {
    background: var(--accent-sage);
}

body.hero .site-header.scrolled {
    background:     rgba(58, 82, 68, 0.95);
    backdrop-filter: blur(16px);
    -webkit-backdrop-filter: blur(16px);
    border-bottom-color: rgba(255,255,255,0.08);
}

body.nav-open .site-header {
    height:               100vh;
    overflow:             hidden;
    backdrop-filter:      none !important;
    -webkit-backdrop-filter: none !important;
    background:           var(--bg-dark);
    border-bottom-color:  transparent;
}

.site-header__inner {
    display:         flex;
    align-items:     center;
    justify-content: space-between;
    height:          var(--header-h);
    padding:         0 40px;
    position:        relative;
    z-index:         2;
    transition:      height var(--dur-med) var(--ease-out),
                     padding var(--dur-med) var(--ease-out);
}

body.scrolled {
    --header-h: 140px;
}
body.scrolled .site-header__inner {
    padding-top:    20px;
    padding-bottom: 20px;
}

body.nav-open .site-header__inner {
    height:      var(--header-h);
    flex-shrink: 0;
}

.site-header__contact {
    display:        flex;
    align-items:    center;
    gap:            24px;
    font-size:      23px;
    letter-spacing: 0.46px;
    line-height:    34px;
    color:          var(--text-on-dark);
    flex:           1;
}

.site-header__contact a {
    display:     flex;
    align-items: center;
    gap:         6px;
    opacity:     .9;
    transition:  opacity var(--dur);
}

.site-header__contact a:hover {
    opacity: 1;
}

.site-header__logo {
    position:        absolute;
    left:            50%;
    transform:       translateX(-50%);
    display:         flex;
    flex-direction:  column;
    align-items:     center;
    gap:             6px;
    color:           var(--text-on-dark);
}

.site-header__logo img,
.site-header__logo svg {
    width:      280px;
    height:     auto;
    transition: width var(--dur-med) var(--ease-out);
}

body.scrolled .site-header__logo img,
body.scrolled .site-header__logo svg {
    width: 180px;
}

.site-header__logo span {
    font-size:      .625rem;
    font-weight:    600;
    letter-spacing: .2em;
    text-transform: uppercase;
    text-align:     center;
    line-height:    1.3;
}

.site-header__right {
    display:     flex;
    align-items: center;
    gap:         32px;
    flex:        1;
    justify-content: flex-end;
}

.site-header__nav-teaser {
    display:        flex;
    align-items:    center;
    gap:            28px;
    font-size:      23px;
    letter-spacing: 0.46px;
    line-height:    34px;
    color:          var(--text-on-dark);
}

.site-header__nav-teaser a {
    opacity:    .9;
    transition: opacity var(--dur);
}

.site-header__nav-teaser a:hover {
    opacity: 1;
}

.site-header__burger {
    position:        relative;
    display:         inline-flex;
    flex-direction:  column;
    align-items:     stretch;
    gap:             13px;
    width:           auto;
    height:          auto;
    padding:         4px 0;
    color:           var(--text-on-dark);
    background:      transparent;
    border:          none;
    outline:         none;
    cursor:          pointer;
}

.site-header__burger:focus,
.site-header__burger:focus-visible {
    outline: none;
}

.site-header__burger-bars {
    display:        flex;
    flex-direction: column;
    gap:            10px;
    width:          100%;
}

.site-header__burger-bar {
    width:      100%;
    height:     2px;
    background: currentColor;
    transition: transform var(--dur) var(--ease-out), opacity var(--dur) var(--ease-out);
}

.site-header__burger-label {
    font-family:    var(--font-sans);
    font-size:      16px;
    font-weight:    500;
    letter-spacing: 2.5px;
    text-transform: uppercase;
    line-height:    1;
    text-align:     center;
}

body.nav-open .site-header__burger-bars {
    position:        absolute;
    inset:           0;
    justify-content: center;
}
body.nav-open .site-header__burger-bar:nth-child(1) { transform: translateY(6px)  rotate(45deg); }
body.nav-open .site-header__burger-bar:nth-child(2) { transform: translateY(-6px) rotate(-45deg); }
body.nav-open .site-header__burger-label { opacity: 0; }

.site-nav {
    position:       absolute;
    inset:          0;
    background:     var(--bg-dark);
    display:        flex;
    align-items:    center;
    padding:        var(--header-h) 80px 60px;
    opacity:        0;
    visibility:     hidden;
    transition:     opacity var(--dur) var(--ease-in-out),
                    visibility var(--dur);
    pointer-events: none;
    overflow-y:     auto;
}

.site-nav::after {
    content:             '';
    position:            absolute;
    inset:               0 var(--container-pad);
    background-image:    url("/files/content/graphics/bg-dark.svg");
    background-repeat:   repeat-x;
    background-position: bottom left;
    pointer-events:      none;
    opacity:             0.3;
    z-index:             0;
}

.site-nav > * {
    position: relative;
    z-index:  1;
}

body.nav-open .site-nav {
    opacity:        1;
    visibility:     visible;
    pointer-events: auto;
}

.site-nav__grid {
    column-count: 2;
    column-gap:   80px;
    width:        100%;
}

.site-nav__item {
    font-family:  var(--font-sans);
    font-size:    clamp(2.5rem, 5.9vw, 85px);
    font-weight:  400;
    color:        var(--text-on-dark);
    opacity:      .9;
    transition:   opacity var(--dur), color var(--dur);
    line-height:  1.0;
    display:      block;
    width:        fit-content;
    max-width:    100%;
    margin-bottom: 36px;
    break-inside: avoid;
}

.site-nav__item:hover {
    opacity: 1;
    color:   var(--accent-sage);
}

.site-nav__item:last-child { margin-bottom: 0; }

.site-nav__item[aria-current="page"] {
    font-family: var(--font-serif);
    font-style:  italic;
    font-weight: 400;
    color:       var(--accent-sage);
    opacity:     1;
}

body:not(.hero) main {
    padding-top: var(--header-h);
    min-height:  calc(100vh - var(--header-h));
}

.section {
    padding: var(--section-pad-y) 0;
}

.section--dark {
    background: var(--bg-dark);
    color:      var(--text-on-dark);
}

.section--flush {
    padding: 0;
}

:where(.hero__headline, .usp-section__headline, .einleitung__headline,
       .text-image__headline, .region-intro__headline, .region-split__season-title,
       .gastgeber__headline, .cta-banner__headline, .apartment-card__name,
       .apartment-section__headline, .apartment-detail__name, .apartment-detail__subheadline,
       .usp-card__title, .text-image__label-top, .text-image__eyebrow, .section-label) {
    text-wrap: balance;
}
:where(.text-image__text, .region-intro__text, .region-split__season-text,
       .einleitung__text, .usp-section__intro-text, .usp-card__text, .cta-banner__text) {
    text-wrap: pretty;
}

section.hero {
    position:        relative;
    width:           100%;
    height:          100vh;
    height:          100svh;
    min-height:      640px;
    background:      var(--accent-sage);
    display:         flex;
    align-items:     flex-end;
    overflow:        hidden;
}

.hero__bg {
    position:      absolute;
    top:           clamp(64px, 10vw, 200px);
    left:          clamp(16px, 2.6vw, 50px);
    right:         clamp(16px, 2.6vw, 50px);
    bottom:        clamp(16px, 2.5vw, 50px);
    overflow:      hidden;
    z-index:       0;
}

.hero__bg picture,
.hero__bg img {
    width:      100%;
    height:     100%;
    object-fit: cover;
}

.hero__bg::after {
    content:    '';
    position:   absolute;
    inset:      0;
    background: linear-gradient(
        to bottom,
        rgba(0,0,0,0)       0%,
        rgba(20,35,28,0.12) 40%,
        rgba(20,35,28,0.60) 100%
    );
}

.hero__content {
    position:   relative;
    z-index:    1;
    width:      100%;
    padding:    0 calc(var(--container-pad) + clamp(16px, 2.6vw, 50px)) clamp(64px, 6vw, 100px);
    max-width:  none;
    margin:     0;
    color:      var(--text-on-dark);
}

.hero__label {
    display:       block;
    font-size:     1.4rem;
    font-weight:   600;
    color:         #fff;
    margin-bottom: 16px;
}

.hero__headline {
    font-family:   var(--font-sans);
    font-size:     clamp(2.5rem, 5.9vw, 85px);
    font-weight:   400;
    line-height:   1.05;
    color:         var(--text-on-dark);
    max-width:     21ch;
    margin-bottom: 40px;
}

.hero__headline em {
    font-family: var(--font-serif);
    font-style:  italic;
    font-weight: 400;
}

@media (max-width: 799px) {
    .hero__headline br { display: none; }
}

.hero__cta {
    display:   flex;
    gap:       16px;
    flex-wrap: wrap;
}

.hero__scroll {
    position:       fixed;
    right:          clamp(32px, 5.2vw, 100px);
    top:            50%;
    transform:      translateY(-50%);
    z-index:        50;
    display:        flex;
    flex-direction: column;
    align-items:    center;
    gap:            12px;
}

.hero__scroll-dot {
    width:           67px;
    height:          67px;
    border-radius:   50%;
    border:          1.5px solid rgba(255,255,255,0.55);
    background:      rgba(255,255,255,0.0);
    color:           var(--text-on-dark);
    display:         flex;
    align-items:     center;
    justify-content: center;
    cursor:          pointer;
    transition:      background var(--dur) var(--ease-out),
                     border-color var(--dur) var(--ease-out);
    text-decoration: none;
}

.hero__scroll-dot__label { display: none; }

.hero__scroll-dot:hover {
    background:   rgba(255,255,255,0.18);
    border-color: rgba(255,255,255,0.9);
}

.hero__scroll-dot--active {
    background:   rgba(255,255,255,0.18);
    border-color: rgba(255,255,255,0.9);
}

.hero__scroll-dot {
    position: relative;
}
.hero__scroll-dot img {
    transition: opacity var(--dur) var(--ease-out);
}
.hero__scroll-dot::after {
    content:          "";
    position:         absolute;
    top:              50%;
    left:             50%;
    width:            22px;
    height:           22px;
    transform:        translate(-50%, -50%);
    background-color: var(--bg-dark);
    -webkit-mask:     var(--cta-mask) center / contain no-repeat;
            mask:     var(--cta-mask) center / contain no-repeat;
    opacity:          0;
    transition:       opacity var(--dur) var(--ease-out);
    pointer-events:   none;
}
.hero__scroll-dot--on-light img    { opacity: 0; }
.hero__scroll-dot--on-light::after { opacity: 1; }
.hero__scroll-dot--on-light {
    border-color: rgba(66, 86, 76, 0.55);
}
.hero__scroll-dot--on-light:hover,
.hero__scroll-dot--on-light.hero__scroll-dot--active {
    background:   rgba(66, 86, 76, 0.12);
    border-color: rgba(66, 86, 76, 0.85);
}

.mod_article.text-page {
    max-width:     var(--container);
    margin-inline: auto;
    padding:       clamp(120px, 12vw, 200px) var(--container-pad);
}

.mod_article.text-page h1 {
    font-family: var(--font-sans);
    font-size:   clamp(2.5rem, 5.9vw, 85px);
    font-weight: 400;
    line-height: 1.05;
    max-width:   36rem;
    margin:      0 0 32px;
}

.mod_article.text-page h1 em {
    font-family: var(--font-serif);
    font-style:  italic;
    font-weight: 400;
    display:     inline-block;
}

.mod_article.text-page p {
    font-size:      24px;
    letter-spacing: 0.48px;
    line-height:    34px;
    max-width:      36rem;
}

.einleitung {
    padding:    var(--section-pad-y) 0;
    background: var(--bg-primary);
    overflow:   hidden;
}

.einleitung__inner {
    text-align:   center;
    max-width:    1000px;
    margin-left:  auto;
    margin-right: auto;
}

.einleitung__headline {
    font-family:   var(--font-sans);
    font-size:     clamp(2.5rem, 5.9vw, 85px);
    font-weight:   400;
    line-height:   1.05;
    color:         var(--accent);
    margin-bottom: 24px;
}

.einleitung__headline em {
    font-family: var(--font-serif);
    font-style:  italic;
    font-weight: 400;
}

.einleitung__text {
    font-size:      24px;
    letter-spacing: 0.48px;
    line-height:    34px;
    color:          var(--accent);
    max-width:      60ch;
    margin-left:    auto;
    margin-right:   auto;
}

.einleitung__actions {
    margin-top: 32px;
    display:    flex;
    justify-content: center;
    gap:        16px;
    flex-wrap:  wrap;
}

.usp-section {
    padding:    var(--section-pad-y) 0;
    background: var(--bg-primary);
    overflow:   hidden;
}

.usp-section__intro {
    margin-bottom: 108px;
    text-align:    center;
    max-width:     1000px;
    margin-left:   auto;
    margin-right:  auto;
}

.usp-section__headline {
    font-family:   var(--font-sans);
    font-size:     clamp(2.5rem, 5.9vw, 85px);
    font-weight:   400;
    line-height:   1.05;
    color:         var(--accent);
    margin-bottom: 24px;
}

.usp-section__headline em {
    font-family: var(--font-serif);
    font-style:  italic;
    font-weight: 400;
}

.usp-section__intro-text {
    font-size:      24px;
    letter-spacing: 0.48px;
    line-height:    34px;
    color:          var(--accent);
    max-width:      60ch;
    margin-left:    auto;
    margin-right:   auto;
}

.usp-photos {
    position:   relative;
    max-width:  calc(var(--container) + var(--container-pad) * 2);
    margin:     0 auto 80px;
}

.usp-photos__track {
    display:              flex;
    gap:                  50px;
    padding:              0 var(--container-pad);
    overflow-x:           auto;
    overflow-y:           hidden;
    scroll-padding-left:  var(--container-pad);
    scroll-padding-right: var(--container-pad);
    scrollbar-width:      none;
    width:                100%;
}

.usp-photos__track::-webkit-scrollbar { display: none; }

.usp-photos__item {
    flex:             0 0 clamp(220px, calc((100% - 100px) / 3), 480px);
    scroll-snap-align: start;
    overflow:         hidden;
    aspect-ratio:     480 / 700;
}

.usp-photos__item img {
    width:      100%;
    height:     100%;
    object-fit: cover;
    transition: transform var(--dur-med) var(--ease-out);
}

.usp-photos__arrow {
    position:        absolute;
    bottom:          0;
    width:           67px;
    height:          67px;
    background:      var(--accent-sage);
    color:           var(--text-on-dark);
    display:         flex;
    align-items:     center;
    justify-content: center;
    z-index:         2;
    transition:      background var(--dur) var(--ease-out);
}

.usp-photos__arrow:hover { background: var(--bg-dark); }

.usp-photos__arrow--prev { left:  var(--container-pad); border-radius: 0 40px 0 0; }
.usp-photos__arrow--next { right: var(--container-pad); border-radius: 40px 0 0 0; }

.usp-photos__arrow-icon { display: block; width: 28px; height: 26px; }
.usp-photos__arrow--prev .usp-photos__arrow-icon { transform: translate(-5px, 5px); }
.usp-photos__arrow--next .usp-photos__arrow-icon { transform: translate(5px, 5px); }

.usp-photos__badge {
    position:       absolute;
    z-index:        3;
    top:            0;
    transform:      translateY(-50%);
    right:          calc(var(--container-pad) + 64px);
    width:          clamp(140px, 12vw, 230px);
    height:         auto;
    display:        block;
}

.usp-photos__badge img { width: 100%; height: auto; display: block; }

.usp-cards {

}

.usp-cards__grid {
    display:               grid;
    grid-template-columns: repeat(3, 1fr);
    gap:                   32px;
}

.usp-cards__cta {
    display:         flex;
    justify-content: center;
    margin-top:      48px;
}

.usp-card {
    background:    var(--bg-primary);
    border:        none;
    outline:       none;
    border-radius: 12px;
    padding:       40px 36px;
    display:       flex;
    flex-direction: column;
    gap:           16px;
    min-height:    298px;
    justify-content: center;
    text-align:    center;
}

.usp-card__icon {
    display:       block;
    width:         64px;
    height:        64px;
    margin:        0 auto 16px;
    object-fit:    contain;
}

.usp-card__title {
    font-family:    var(--font-sans);
    font-size:      28px;
    font-weight:    700;
    letter-spacing: 0.56px;
    line-height:    33px;
    text-wrap:      balance;
    color:          var(--accent);
}

.usp-card__text {
    font-size:      24px;
    letter-spacing: 0.48px;
    line-height:    34px;
    color:          var(--accent);
    margin:         0;
}

.text-image {
    position:   relative;
    background: var(--bg-dark);
    color:      var(--text-on-dark);
    overflow:   hidden;
}

.text-image::before {
    content:  '';
    position: absolute;
    inset:    0 var(--container-pad);
    background-image:    url("/files/content/graphics/bg-dark.svg");
    background-repeat:   repeat-x;
    background-position: top left;
    pointer-events:      none;
    opacity:             0.4;
    z-index:             0;
}

.text-image__label-corner {
    position:       absolute;
    top:            clamp(32px, 3.5vw, 50px);
    right:          clamp(16px, 2.6vw, 50px);
    font-family:    var(--font-sans);
    font-size:      28px;
    font-weight:    700;
    letter-spacing: 0.56px;
    line-height:    24px;
    color:          var(--text-on-dark);
    z-index:        2;
}

.text-image__inner {
    position:              relative;
    z-index:               1;
    display:               grid;
    grid-template-columns: 1fr 1fr;
    min-height:            700px;
    align-items:           center;
    width:                 100%;
    padding-block:         clamp(120px, 12vw, 200px);
    padding-inline:        clamp(16px, 2.6vw, 50px) clamp(32px, 10vw, 190px);
    gap:                   clamp(48px, 10vw, 190px);
}

.text-image__inner--swapped {
    grid-template-columns: 1fr 1fr;
    padding-inline:        clamp(32px, 10vw, 190px) clamp(16px, 2.6vw, 50px);
}

.text-image__slider {
    position:      relative;
    aspect-ratio:  1 / 1;
    overflow:      hidden;
    flex-shrink:   0;
}

.text-image__track {
    display:          flex;
    height:           100%;
    transition:       transform var(--dur-med) var(--ease-in-out);
}

.text-image__slide {
    flex:       0 0 100%;
    height:     100%;
    overflow:   hidden;
}

.text-image__slide img {
    width:      100%;
    height:     100%;
    object-fit: cover;
    display:    block;
}

.text-image__arrow {
    position:        absolute;
    bottom:          0;
    width:           67px;
    height:          67px;
    background:      var(--accent-sage);
    color:           var(--text-on-dark);
    display:         flex;
    align-items:     center;
    justify-content: center;
    z-index:         3;
    transition:      background var(--dur) var(--ease-out);
}

.text-image__arrow:hover {
    background: var(--bg-dark);
}

.text-image__arrow--prev { left:  0; border-radius: 0 40px 0 0; }
.text-image__arrow--next { right: 0; border-radius: 40px 0 0 0; }

.text-image__arrow-icon { display: block; width: 28px; height: 26px; }
.text-image__arrow--prev .text-image__arrow-icon { transform: translate(-5px, 5px); }
.text-image__arrow--next .text-image__arrow-icon { transform: translate(5px, 5px); }

.text-image--label-left .text-image__label-corner {
    right: auto;
    left:  clamp(16px, 2.6vw, 50px);
}

.text-image__content {
    display:        flex;
    flex-direction: column;
    align-self:     center;
    gap:            clamp(24px, 3vw, 48px);
}

.text-image__body {
    display:            flex;
    flex-direction:     column;
    gap:                24px;
    max-width:          44rem;
}

.text-image__thumb {
    align-self:    flex-end;
    width:         clamp(160px, 50%, 380px);
    aspect-ratio:  1 / 1;
    overflow:      hidden;
}

.text-image__thumb img {
    width:      100%;
    height:     100%;
    object-fit: cover;
    display:    block;
}

.text-image__media {
    display:        flex;
    flex-direction: column;
}

.text-image__label-top {
    font-family:    var(--font-sans);
    font-size:      28px;
    font-weight:    700;
    letter-spacing: 0.56px;
    line-height:    24px;
    color:          inherit;
}

.text-image--label-left .text-image__inner {
    align-items: stretch;
    padding:     clamp(16px, 2.6vw, 50px);
    padding-block-end: clamp(72px, 9vw, 160px);
}
.text-image--label-left .text-image__media,
.text-image--label-left .text-image__content {
    align-self:      stretch;
    justify-content: space-between;
    gap:             clamp(40px, 7vw, 120px);
}

.text-image__cta-group {
    display:   flex;
    gap:       16px;
    flex-wrap: wrap;
}

.text-image__headline {
    font-family: var(--font-sans);
    font-size:   clamp(2.5rem, 5.9vw, 85px);
    font-weight: 400;
    line-height: 1.05;
    color:       var(--text-on-dark);
    max-width:   none;
}

.text-image__headline em {
    font-family: var(--font-serif);
    font-style:  italic;
    font-weight: 400;
    display:     block;
}

.text-image__text {
    font-size:      24px;
    letter-spacing: 0.48px;
    line-height:    34px;
    color:          var(--text-on-dark-2);
    max-width:      none;
}

.text-image__eyebrow {
    display:        block;
    font-family:    var(--font-sans);
    font-size:      28px;
    font-weight:    700;
    letter-spacing: 0.56px;
    line-height:    24px;
    margin-bottom:  var(--space-md);
    color:          inherit;
}

.text-image--label-inline-right .text-image__eyebrow { text-align: right; }
.text-image--label-inline-left  .text-image__eyebrow { text-align: left; }

.text-image--bg-dark {  }

.text-image--bg-beige,
.text-image--bg-white {
    color: var(--accent);
}
.text-image--bg-beige::before,
.text-image--bg-white::before,
.text-image--bg-sage::before,
.text-image--bg-winter::before { display: none; }

.text-image--bg-beige  { background: var(--bg-primary); }
.text-image--bg-white  { background: var(--bg-white); }
.text-image--bg-sage   { background: var(--accent-sage);   color: var(--text-on-dark); }
.text-image--bg-winter { background: var(--accent-winter); color: var(--text-on-dark); }

.text-image--bg-beige  .text-image__headline,
.text-image--bg-white  .text-image__headline,
.text-image--bg-beige  .text-image__text,
.text-image--bg-white  .text-image__text { color: var(--accent); }

.text-image--bg-sage   .text-image__headline,
.text-image--bg-winter .text-image__headline { color: var(--text-on-dark); }
.text-image--bg-sage   .text-image__text,
.text-image--bg-winter .text-image__text { color: var(--text-on-dark-2); }

.apartment-section {
    padding: var(--section-pad-y) 0;
    overflow: hidden;
    background: var(--bg-primary);
}

.apartment-section__header {
    display:         flex;
    justify-content: space-between;
    align-items:     flex-end;
    margin-bottom:   48px;
    padding:         0 var(--container-pad);
    width:           100%;
}

.apartment-section__headline {
    font-family: var(--font-sans);
    font-size:   clamp(2.5rem, 5.9vw, 85px);
    font-weight: 400;
    line-height: 1.05;
    color:       var(--accent);
}

.apartment-section__headline em {
    font-family: var(--font-serif);
    font-style:  italic;
    font-weight: 400;
}

.apartment-section__nav {
    display:  flex;
    gap:      12px;
    flex-shrink: 0;
}

.apartment-section__arrow {
    width:           67px;
    height:          67px;
    border-radius:   50%;
    background:      var(--accent-sage);
    color:           var(--text-on-dark);
    display:         flex;
    align-items:     center;
    justify-content: center;
    transition:      background var(--dur) var(--ease-out);
    flex-shrink:     0;
}

.apartment-section__arrow:hover {
    background: var(--bg-dark);
}

.apartment-section__arrow svg {
    width:  24px;
    height: 24px;
}

.apartment-slider {
    display:             flex;
    gap:                 40px;
    padding:             0 var(--container-pad);
    overflow-x:          auto;
    overflow-y:          hidden;
    scroll-padding-left:  var(--container-pad);
    scroll-padding-right: var(--container-pad);
    scrollbar-width:     none;
    width:               100%;
    align-items:         stretch;
}

@media (pointer: coarse) {
    .apartment-slider,
    .usp-photos__track {
        scroll-snap-type: x mandatory;
    }
}

.apartment-slider::-webkit-scrollbar {
    display: none;
}

.apartment-card {
    flex:             0 0 calc((100% - 80px) / 3);
    scroll-snap-align: start;
    display:          flex;
    flex-direction:   column;
    min-width:        0;
}

@media (min-width: 1200px) {
    .apartment-slider > .apartment-card:nth-child(1):nth-last-child(2),
    .apartment-slider > .apartment-card:nth-child(2):nth-last-child(1) {
        flex-basis: calc((100% - 40px) / 2);
    }
}

.apartment-card__image {
    position:     relative;
    aspect-ratio: 573 / 628;
    overflow:     hidden;
    flex-shrink:  0;
}

.apartment-slider > .apartment-card:nth-child(1):nth-last-child(2) .apartment-card__image,
.apartment-slider > .apartment-card:nth-child(2):nth-last-child(1) .apartment-card__image {
    aspect-ratio: 570 / 350;
}

.apartment-card__image picture,
.apartment-card__image img {
    width:      100%;
    height:     100%;
    object-fit: cover;
    transition: transform var(--dur-med) var(--ease-out);
    display:    block;
}

.apartment-card__overlay {
    position:        absolute;
    inset:           0;
    display:         flex;
    flex-direction:  column;
    justify-content: space-between;
    padding:         24px 28px 28px;
    background:      linear-gradient(
        to bottom,
        rgba(0,0,0,0.45) 0%,
        rgba(0,0,0,0)    35%,
        rgba(0,0,0,0)    45%,
        rgba(0,0,0,0.6)  100%
    );
}

.apartment-card__meta {
    display:         flex;
    align-items:     center;
    width:           100%;
    gap:             16px;
    font-size:       24px;
    letter-spacing:  0.48px;
    line-height:     34px;
    color:           var(--text-on-dark);
    font-family:     var(--font-sans);
}

.apartment-card__meta > :first-child  { flex: 0 0 auto; }
.apartment-card__meta > :nth-child(2) { flex: 0 0 auto; }
.apartment-card__meta > :last-child   { flex: 1 1 auto; min-width: 0; text-align: right; }

.apartment-card__stat {
    display:     inline-flex;
    align-items: center;
    gap:         12px;
    white-space: nowrap;
}

.apartment-card__meta .apartment-card__stat-icon {
    height:     0.92em;
    width:      auto;
    object-fit: contain;
    display:    block;
}

.apartment-card__name {
    font-family: var(--font-sans);
    font-size:   clamp(2rem, 4.2vw, 60px);
    font-weight: 400;
    line-height: 1.0;
    color:       var(--text-on-dark);
    margin:      0;
}

.apartment-card__name em {
    font-family: var(--font-serif);
    font-style:  italic;
    font-weight: 400;
    display:     block;
}

.apartment-card__actions {
    display:    flex;
    gap:        12px;
    padding-top: 32px;
}

.apartment-card__actions .btn {
    flex:  0 0 auto;
    color: var(--accent);
    border-color: var(--accent);
}

.apartment-card__actions .btn:hover {
    background: var(--accent);
    color:      var(--text-on-dark);
    border-color: var(--accent);
}

.text-image-light {
    background: var(--bg-primary);
    overflow:   hidden;
}

.text-image-light__inner {
    display:               grid;
    grid-template-columns: 3fr 2fr;
    min-height:            600px;
    width:                 100%;
    gap:                   clamp(96px, 10vw, 160px);
    align-items:           center;
    padding:               var(--section-pad-y) var(--container-pad);
}

.text-image-light__image {
    overflow:      hidden;
    aspect-ratio:  4 / 3;
}

.text-image-light__image picture,
.text-image-light__image img {
    width:      100%;
    height:     100%;
    object-fit: cover;
}

.text-image-light__content {
    display:        flex;
    flex-direction: column;
    align-self:     end;
    gap:            40px;
}

.text-image-light__headline {
    font-family: var(--font-sans);
    font-size:   clamp(2.5rem, 5.9vw, 85px);
    font-weight: 400;
    line-height: 1.05;
    color:       var(--accent);
}

.text-image-light__headline em {
    font-family: var(--font-serif);
    font-style:  italic;
    font-weight: 400;
    display:     block;
}

.text-image-light__text {
    font-size:      24px;
    letter-spacing: 0.48px;
    line-height:    34px;
    color:          var(--accent);
}

.text-image-light__list {
    list-style: none;
    padding:    0;
    margin:     0;
    display:    flex;
    flex-direction: column;
    gap:        8px;
}

.text-image-light__list li {
    display:     flex;
    gap:         10px;
    font-size:   24px;
    letter-spacing: 0.48px;
    line-height: 34px;
    color:       var(--accent);
}

.text-image-light__list li::before {
    content:     '→';
    color:       var(--accent);
    flex-shrink: 0;
}

.region-split {
    padding:    0 0 var(--section-pad-y);
    background: var(--bg-white);
}

.region-split__columns {
    display:               grid;
    grid-template-columns: 1fr 1fr;
    gap:                   clamp(96px, 10vw, 160px);
    width:                 100%;
    padding:               0 var(--container-pad);
    align-items:           start;
}

.region-split__col {
    display:        flex;
    flex-direction: column;
    gap:            clamp(40px, 5vw, 64px);
}

.region-split__intro {
    display:        flex;
    flex-direction: column;
    gap:            20px;
}

.region-split__headline {
    font-family: var(--font-sans);
    font-size:   clamp(2.5rem, 5.9vw, 85px);
    font-weight: 400;
    line-height: 1.05;
    color:       var(--accent);
}

.region-split__headline em {
    font-family: var(--font-serif);
    font-style:  italic;
    font-weight: 400;
}

.region-split__intro-text {
    font-size:      24px;
    letter-spacing: 0.48px;
    line-height:    34px;
    color:          var(--text-secondary);
    max-width:      52ch;
}

.region-split__hero {
    position:      relative;
    overflow:      hidden;
    aspect-ratio:  690 / 590;
}

.region-split__hero img {
    width:      100%;
    height:     100%;
    object-fit: cover;
    display:    block;
    transition: transform var(--dur-med) var(--ease-out);
}

.region-split__season {
    display:        flex;
    flex-direction: column;
    gap:            40px;
}

.region-split__season-image {
    overflow:      hidden;
    aspect-ratio:  4 / 3;
}

.region-split__season-image picture,
.region-split__season-image img {
    width:      100%;
    height:     100%;
    object-fit: cover;
    display:    block;
}

.region-split__season-title {
    font-family: var(--font-sans);
    font-size:   clamp(2rem, 3.13vw, 60px);
    font-weight: 400;
    line-height: 1.1;
}

.region-split__season-text {
    font-size:      24px;
    letter-spacing: 0.48px;
    line-height:    34px;
    max-width:      900px;
}

.region-split__season--winter .region-split__season-title,
.region-split__season--winter .region-split__season-text,
.region-split__season--winter .btn {
    color: var(--accent-winter);
}
.region-split__season--winter .btn {
    border-color: var(--accent-winter);
}
.region-split__season--winter .btn:hover {
    background:   var(--accent-winter);
    color:        var(--text-on-dark);
    border-color: var(--accent-winter);
}

.region-split__season--sommer .region-split__season-title,
.region-split__season--sommer .region-split__season-text,
.region-split__season--sommer .btn {
    color: var(--accent-sage);
}
.region-split__season--sommer .btn {
    border-color: var(--accent-sage);
}
.region-split__season--sommer .btn:hover {
    background:   var(--accent-sage);
    color:        var(--text-on-dark);
    border-color: var(--accent-sage);
}

.region-intro {
    position:   relative;
    background: var(--bg-white);
    overflow:   hidden;
}

.region-intro__inner {
    display:               grid;
    grid-template-columns: 1fr 1fr;
    align-items:           center;
    width:                 100%;
    padding-block:         clamp(120px, 12vw, 200px);
    padding-inline:        var(--container-pad);
    gap:                   clamp(96px, 10vw, 160px);
}

.region-intro__content {
    display:             flex;
    flex-direction:      column;
    gap:                 24px;
    padding-inline-start: clamp(0px, 7.4vw, 142px);
}

.region-intro__headline {
    font-family: var(--font-sans);
    font-size:   clamp(2.5rem, 5.9vw, 85px);
    font-weight: 400;
    line-height: 1.05;
    color:       var(--accent);
    max-width:   none;
}

.region-intro__headline em {
    font-family: var(--font-serif);
    font-style:  italic;
    font-weight: 400;
    display:     inline-block;
}

.region-intro__text {
    font-size:      24px;
    letter-spacing: 0.48px;
    line-height:    34px;
    color:          var(--accent);
    max-width:      none;
}

.region-intro__image {
    position:     relative;
    overflow:     hidden;
    aspect-ratio: 1 / 1;
}

.region-intro__image picture,
.region-intro__image > picture img {
    width:      100%;
    height:     100%;
    object-fit: cover;
    display:    block;
}

.region-intro__badge {
    position:     absolute;
    top:          24px;
    left:         24px;
    width:        clamp(120px, 13vw, 248px);
    height:       clamp(120px, 13vw, 248px);
    z-index:      2;
    display:      block;
}

.region-intro__badge img { width: 100%; height: 100%; display: block; }

@keyframes badge-spin { from { transform: rotate(0deg); } to { transform: rotate(360deg); } }
a.usp-photos__badge img,
a.region-intro__badge img {
    transform-origin:     center;
    animation:            badge-spin 10s linear infinite;
    animation-play-state: paused;
}
a.usp-photos__badge:hover img,
a.region-intro__badge:hover img { animation-play-state: running; }
@media (prefers-reduced-motion: reduce) {
    a.usp-photos__badge img,
    a.region-intro__badge img { animation: none; }
}

@media (max-width: 1015px) {
    .region-intro__badge {
        width:  130px;
        height: 130px;
        top:    20px;
        left:   20px;
    }
}

@media (max-width: 767px) {
    .region-intro__badge {
        width:  100px;
        height: 100px;
        top:    14px;
        left:   14px;
    }
}

.cta-banner {
    position:     relative;
    overflow:     hidden;
    min-height:   480px;
    display:      flex;
    align-items:  center;
}

.cta-banner__bg {
    position:   absolute;
    inset:      0;
    z-index:    0;
}

.cta-banner__bg picture,
.cta-banner__bg img {
    width:      100%;
    height:     100%;
    object-fit: cover;
}

.cta-banner__bg::after {
    content:    '';
    position:   absolute;
    inset:      0;
    background: rgba(30, 50, 38, 0.6);
}

.cta-banner__content {
    position:   relative;
    z-index:    1;
    text-align: center;
    color:      var(--text-on-dark);
    max-width:  640px;
    margin:     0 auto;
    padding:    80px var(--container-pad);
    display:    flex;
    flex-direction: column;
    align-items: center;
    gap:        24px;
}

.cta-banner__headline {
    font-family:  var(--font-sans);
    font-size:    clamp(2.5rem, 5.9vw, 85px);
    font-weight:  400;
    line-height:  1.1;
    color:        var(--text-on-dark);
}

.cta-banner__headline em,
.cta-banner__headline .italic-line {
    font-family:  var(--font-serif);
    font-style:   italic;
    font-weight:  400;
    display:      block;
}

.cta-banner__text {
    font-size:      24px;
    letter-spacing: 0.48px;
    line-height:    34px;
    color:          var(--text-on-dark-2);
    max-width:      44ch;
    margin:         0;
}

.cta-banner__actions {
    display:   flex;
    gap:       16px;
    flex-wrap: wrap;
    justify-content: center;
}

.gastgeber {
    padding:    var(--section-pad-y) 0;
    background: var(--bg-primary);
}

.gastgeber__inner {
    display:               grid;
    grid-template-columns: 1fr 1fr;
    gap:                   80px;
    align-items:           center;
    max-width:             var(--container);
    margin:                0 auto;
    padding:               0 var(--container-pad);
}

.gastgeber__image {
    overflow:      hidden;
    aspect-ratio:  3/4;
}

.gastgeber__image picture,
.gastgeber__image img {
    width:      100%;
    height:     100%;
    object-fit: cover;
}

.gastgeber__content {
    display:        flex;
    flex-direction: column;
    gap:            20px;
}

.gastgeber__headline {
    font-family: var(--font-serif);
    font-size:   clamp(1.75rem, 3vw, 2.5rem);
    font-weight: 400;
}

.gastgeber__text {
    font-size:      24px;
    letter-spacing: 0.48px;
    line-height:    34px;
    color:          var(--text-secondary);
}

.gastgeber__signature {
    font-family:  var(--font-serif);
    font-style:   italic;
    font-size:    1.125rem;
    color:        var(--accent);
    margin-top:   8px;
}

.apartment-detail__hero {
    background: var(--bg-primary);
    overflow:   hidden;
}

.apartment-detail__hero-inner {
    display:               grid;
    grid-template-columns: 3fr 2fr;
    min-height:            600px;
    width:                 100%;
    gap:                   clamp(96px, 10vw, 160px);
    align-items:           center;
    padding:               var(--section-pad-y) var(--container-pad);
}

.apartment-detail__image {
    overflow:     hidden;
    aspect-ratio: 4 / 3;
}

.apartment-detail__image picture,
.apartment-detail__image img {
    width:      100%;
    height:     100%;
    object-fit: cover;
    display:    block;
}

.apartment-detail__content {
    display:        flex;
    flex-direction: column;
    align-self:     end;
    gap:            32px;
}

.apartment-detail__name {
    font-family: var(--font-sans);
    font-size:   clamp(2.5rem, 5.9vw, 85px);
    font-weight: 400;
    line-height: 1.05;
    color:       var(--accent);
    margin:      0;
}

.apartment-detail__name em {
    font-family: var(--font-serif);
    font-style:  italic;
    font-weight: 400;
    display:     block;
}

.apartment-detail__meta {
    display:     flex;
    flex-wrap:   wrap;
    gap:         16px 40px;
    list-style:  none;
    padding:     0;
    margin:      0;
    color:       var(--accent);
    font-size:   24px;
    line-height: 1.4;
}

.apartment-detail__meta li {
    position: relative;
}

.apartment-detail__meta li + li::before {
    content:  '';
    position: absolute;
    left:     -22px;
    top:      50%;
    width:    4px;
    height:   4px;
    border-radius: 50%;
    background: currentColor;
    opacity:    0.5;
    transform:  translateY(-50%);
}

.apartment-detail__actions {
    display:   flex;
    gap:       16px;
    flex-wrap: wrap;
}

.apartment-detail__subheadline {
    font-family: var(--font-sans);
    font-size:   clamp(1.5rem, 2.5vw, 2rem);
    font-weight: 400;
    margin:      var(--section-pad-y) var(--container-pad) 0;
    max-width:   var(--content-max);
}

.apartment-detail__body {
    padding: var(--section-pad-y) var(--container-pad);
}

.text-image__inner--swapped,
.text-image-light__inner--swapped,
.region-intro__inner--swapped {
    direction: rtl;
}
.text-image__inner--swapped > *,
.text-image-light__inner--swapped > *,
.region-intro__inner--swapped > * {
    direction: ltr;
}

.mod_breadcrumb {
    width:      100%;
    padding:    24px var(--container-pad);
    font-size:  16px;
    line-height: 1.4;
    letter-spacing: 0.02em;
    color:      var(--accent);
}

.mod_breadcrumb ul {
    display:    flex;
    flex-wrap:  wrap;
    gap:        8px 12px;
    align-items: center;
}

.mod_breadcrumb li {
    display:    inline-flex;
    align-items: center;
    gap:        12px;
}

.mod_breadcrumb li + li::before {
    content:    '|';
    color:      var(--accent);
    opacity:    0.5;
    font-weight: 400;
}

.mod_breadcrumb a {
    color:           var(--accent);
    text-decoration: none;
    transition:      color var(--dur) var(--ease-out);
}

.mod_breadcrumb a:hover,
.mod_breadcrumb a:focus-visible {
    color: var(--text-primary);
}

.mod_breadcrumb .active,
.mod_breadcrumb [aria-current="page"] {
    color:          var(--accent);
    font-weight:    700;
    text-transform: uppercase;
    letter-spacing: 0.06em;
}

@media (max-width: 767px) {
    .mod_breadcrumb {
        padding: 16px 20px;
        font-size: 14px;
    }
    .mod_breadcrumb ul {
        gap: 6px 10px;
    }
    .mod_breadcrumb li {
        gap: 10px;
    }
}

.c4g-sideboard.c4g-popup-container {
    position:      absolute !important;
    top:           20px !important;
    left:          20px !important;
    right:         auto !important;
    bottom:        auto !important;
    width:         320px;
    max-width:     calc(100% - 40px);
    background:    var(--accent) !important;
    color:         var(--text-on-dark) !important;
    border:        none !important;
    border-radius: 12px !important;
    box-shadow:    0 10px 28px rgba(0, 0, 0, 0.22);
    font-family:   var(--font-sans);
    overflow:      hidden;
    z-index:       50;
}

.c4g-sideboard.c4g-popup-container .c4g-popup-header {
    display:         flex;
    align-items:     center;
    padding:         12px 16px;
    background:      rgba(0, 0, 0, 0.08);
    color:           var(--text-on-dark);
    border-bottom:   1px solid rgba(255, 255, 255, 0.18);
}

.c4g-sideboard.c4g-popup-container .c4g-popup-header > div:empty {
    display: none;
}

.c4g-sideboard.c4g-popup-container .c4g-popup-header-headline {
    font-size:      13px;
    font-weight:    600;
    text-transform: uppercase;
    letter-spacing: 0.08em;
    color:          var(--text-on-dark);
}

.c4g-sideboard.c4g-popup-container .c4g-titlebar-close {
    width:           24px;
    height:          24px;
    margin-left:     auto;
    border:          none;
    background:      transparent;
    cursor:          pointer;
    padding:         0;
    position:        relative;
    opacity:         0.85;
    transition:      opacity var(--dur) var(--ease-out);
}
.c4g-sideboard.c4g-popup-container .c4g-titlebar-close:hover {
    opacity: 1;
}
.c4g-sideboard.c4g-popup-container .c4g-titlebar-close::before,
.c4g-sideboard.c4g-popup-container .c4g-titlebar-close::after {
    content:    '';
    position:   absolute;
    top:        50%;
    left:       50%;
    width:      16px;
    height:     2px;
    background: var(--text-on-dark);
    transform-origin: center;
}
.c4g-sideboard.c4g-popup-container .c4g-titlebar-close::before {
    transform: translate(-50%, -50%) rotate(45deg);
}
.c4g-sideboard.c4g-popup-container .c4g-titlebar-close::after {
    transform: translate(-50%, -50%) rotate(-45deg);
}

.c4g-sideboard.c4g-popup-container .c4g-popup-content {
    padding:     18px 18px 20px;
    color:       var(--text-on-dark);
    font-size:   15px;
    line-height: 1.55;
}

.c4g-sideboard.c4g-popup-container .c4g-popup-content strong {
    display:        block;
    margin-bottom:  8px;
    font-weight:    700;
    font-size:      16px;
    letter-spacing: 0.02em;
}

.c4g-sideboard.c4g-popup-container .c4g-popup-content a {
    color:                 var(--text-on-dark);
    text-decoration:       underline;
    text-underline-offset: 2px;
    transition:            color var(--dur) var(--ease-out);
}

.c4g-sideboard.c4g-popup-container .c4g-popup-content a:hover {
    color: var(--bg-primary);
}

.c4g-sideboard.c4g-popup-container.c4g-close {
    display: none !important;
}

.einleitung--map {
    padding-block: clamp(44px, 5vw, 72px) clamp(48px, 6vw, 96px);
}

.einleitung--map .einleitung__inner {
    text-align:            left;
    max-width:             none;
    margin:                0;
    padding-inline:        clamp(16px, 2.6vw, 50px);
    display:               grid;
    grid-template-columns: 1fr auto;
    grid-template-rows:    auto 1fr;
    min-height:            clamp(180px, 22vh, 260px);
    column-gap:            clamp(32px, 5vw, 96px);
    row-gap:               clamp(30px, 5vh, 64px);
}
.einleitung--map .section-label {
    grid-column: 2; grid-row: 1;
    justify-self: end; align-self: start; text-align: right;
}
.einleitung--map .einleitung__headline {
    grid-column: 1; grid-row: 2;
    align-self: end;
    margin: 0;
}
.einleitung--map .einleitung__headline em {
    display: block;
}
.einleitung--map .einleitung__actions {
    grid-column: 2; grid-row: 2;
    justify-self: end; align-self: end;
    margin-top: 0;
}

.lungau-map__embed {
    background:     var(--bg-primary);
    padding-inline: clamp(16px, 2.6vw, 50px);
    padding-bottom: var(--section-pad-y);
}
.lungau-map__embed iframe {
    display:       block;
    width:         100%;
    height:        clamp(560px, 50vw, 912px);
    border:        0;
    border-radius: 4px;
}
@media (max-width: 767px) {
    .einleitung--map .einleitung__inner {
        grid-template-columns: 1fr;
        grid-template-rows: none;
        min-height: 0;
        row-gap: 24px;
    }
    .einleitung--map .section-label,
    .einleitung--map .einleitung__headline,
    .einleitung--map .einleitung__actions {
        grid-column: 1; grid-row: auto;
        justify-self: start; align-self: auto; text-align: left;
    }
    .lungau-map__embed { padding-inline: 0; }
    .lungau-map__embed iframe { height: 80vh; min-height: 440px; border-radius: 0; }
}

@supports not (aspect-ratio: 1 / 1) {
    .text-image__slider::before {
        content:     '';
        display:     block;
        padding-top: 100%;
    }
    .text-image__slider > .text-image__track {
        position: absolute;
        top:      0;
        left:     0;
        right:    0;
        bottom:   0;
    }
}

.text-image__slider > .text-image__track {
    position: absolute;
    top:      0;
    left:     0;
    right:    0;
    bottom:   0;
}

@import url("/bundles/contaocookiebar/default.00b012e7.css");

.contao-cookiebar .cc-head h2,
.contao-cookiebar .cc-head h3 {
    font-size: 2em;
}
.contao-cookiebar .cc-btn.success {
    background:    var(--bg-dark);
    border-color: var(--bg-dark);
    color:        #fff;
}
.contao-cookiebar .cc-btn.success:focus,
.contao-cookiebar .cc-btn.success:hover {
    background:    var(--bg-dark-2);
    border-color: var(--bg-dark-2);
}

.hero--short {
    height:     clamp(620px, 72vh, 900px);
    min-height: 0;
}

body.hero:not(.subpage) .mod_breadcrumb { display: none; }
body.subpage main > .mod_breadcrumb     { display: none; }

.text-image__inner--swapped { direction: ltr; }
.text-image__inner--swapped > * { direction: ltr; }
.text-image__inner--swapped .text-image__media   { order: 2; }
.text-image__inner--swapped .text-image__content { order: 1; }

.text-image__section-label {
    position:        relative;
    z-index:         1;
    display:         block;
    font-family:     var(--font-sans);
    font-size:       28px;
    font-weight:     700;
    letter-spacing:  0.56px;
    line-height:     24px;
    color:           inherit;
    padding-block-start: clamp(32px, 3.5vw, 50px);
    padding-inline:  clamp(16px, 2.6vw, 50px);
}
.text-image--corner-right .text-image__section-label { text-align: right; }

.text-image--corner-left  .text-image__inner,
.text-image--corner-right .text-image__inner {
    padding-block-start: clamp(24px, 3vw, 48px);
}

.season-sommer { --accent: var(--accent-sage); }
.season-winter { --accent: var(--accent-winter); }

body.hero.season-winter .site-header:not(.scrolled) { background: var(--accent-winter); }

.season-winter section.hero { background: var(--accent-winter); }
body.hero.season-winter .site-header.scrolled { background: rgba(123, 148, 167, 0.95); }

.text-image-light__inner {
    grid-template-columns: 2fr 1fr;
    gap: clamp(40px, 5vw, 160px);
}

.season-sommer .text-image-light,
.season-winter .text-image-light {
    background: var(--accent);
    color:      var(--text-on-dark);
}
.season-sommer .text-image-light .text-image-light__headline,
.season-winter .text-image-light .text-image-light__headline,
.season-sommer .text-image-light .text-image-light__text,
.season-winter .text-image-light .text-image-light__text,
.season-sommer .text-image-light .section-label,
.season-winter .text-image-light .section-label {
    color: var(--text-on-dark);
}
.season-sommer .text-image-light .btn,
.season-winter .text-image-light .btn {
    color:        var(--text-on-dark);
    border-color: var(--text-on-dark);
}
.season-sommer .text-image-light .btn:hover,
.season-winter .text-image-light .btn:hover {
    background:   var(--text-on-dark);
    color:        var(--accent);
    border-color: var(--text-on-dark);
}

.season-sommer .region-split__season-title,
.season-sommer .region-split__season-text,
.season-sommer .region-split__season .btn,
.season-winter .region-split__season-title,
.season-winter .region-split__season-text,
.season-winter .region-split__season .btn {
    color: var(--accent);
}
.season-sommer .region-split__season .btn,
.season-winter .region-split__season .btn { border-color: var(--accent); }
.season-sommer .region-split__season .btn:hover,
.season-winter .region-split__season .btn:hover {
    background: var(--accent); color: var(--text-on-dark); border-color: var(--accent);
}

.hero--badge { overflow: visible; }
.hero__badge {
    position:       absolute;
    z-index:        20;
    right:          clamp(80px, 16vw, 300px);
    bottom:         clamp(24px, 3vw, 60px);
    width:          clamp(120px, 13vw, 230px);
    aspect-ratio:   1;
    background:     url("/files/content/graphics/badge-lungaucard.svg") center/contain no-repeat;

    transform-origin:     center;
    animation:            badge-spin 10s linear infinite;
    animation-play-state: paused;
}
.hero__badge:hover { animation-play-state: running; }

@media (max-width: 767px) {
    .hero__badge { display: none; }
}
@media (prefers-reduced-motion: reduce) {
    .hero__badge { animation: none; }
}

.text-image--bg-sage  .text-image__arrow,
.text-image--bg-beige .text-image__arrow,
.text-image--bg-white .text-image__arrow {
    background: var(--bg-dark);
}
.text-image--bg-sage  .text-image__arrow:hover,
.text-image--bg-beige .text-image__arrow:hover,
.text-image--bg-white .text-image__arrow:hover {
    background: var(--accent-sage);
}

.text-image__badge {
    position:         absolute;
    z-index:          3;
    top:              clamp(20px, 3vw, 50px);
    right:            clamp(20px, 4vw, 80px);
    width:            clamp(120px, 13vw, 230px);
    aspect-ratio:     1;
    background:       url("/files/content/graphics/badge-lungaucard.svg") center/contain no-repeat;
    transform-origin: center;
    animation:        badge-spin 10s linear infinite;
    animation-play-state: paused;
}
.text-image__badge:hover { animation-play-state: running; }
@media (prefers-reduced-motion: reduce) {
    .text-image__badge { animation: none; }
}

.region-split__cardlink { display: none; }

.season-sommer .region-split__season--winter .region-split__season-image,
.season-winter .region-split__season--winter .region-split__season-image {
    position: relative;
    overflow: visible;
}
.season-sommer .region-split__season--winter .region-split__cardlink,
.season-winter .region-split__season--winter .region-split__cardlink {
    display:          block;
    position:         absolute;
    z-index:          2;
    top:              clamp(-40px, -8%, -24px);
    left:             48%;
    width:            36%;
    aspect-ratio:     1060 / 685;
    background:       center/contain no-repeat;
    transform:        rotate(-9deg);
    transform-origin: center;
    transition:       transform var(--dur-med) var(--ease-out);
}
.season-sommer .region-split__season--winter .region-split__cardlink:hover,
.season-winter .region-split__season--winter .region-split__cardlink:hover {
    transform: rotate(-9deg) scale(1.05);
}
.season-sommer .region-split__season--winter .region-split__cardlink {
    background-image: url("/files/content/graphics/badge-lungaucard-sommer.png");
}
.season-winter .region-split__season--winter .region-split__cardlink {
    background-image: url("/files/content/graphics/badge-lungaucard-winter.png");
}
@media (prefers-reduced-motion: reduce) {
    .season-sommer .region-split__season--winter .region-split__cardlink:hover,
    .season-winter .region-split__season--winter .region-split__cardlink:hover {
        transform: rotate(-9deg);
    }
}

.region-split--badge { position: relative; }
.region-split--badge::before {
    content:        '';
    position:       absolute;
    z-index:        3;
    top:            clamp(-48px, -2.5vw, -64px);
    right:          clamp(20px, 4vw, 96px);
    width:          clamp(120px, 13vw, 230px);
    aspect-ratio:   1;
    background:     url("/files/content/graphics/badge-lungaucard.svg") center/contain no-repeat;
    pointer-events: none;
}

.gallery {
    padding:    var(--section-pad-y) 0;
    background: var(--bg-primary);
}

.gallery__headline {
    font-family:   var(--font-sans);
    font-size:     clamp(2.5rem, 5.9vw, 85px);
    font-weight:   400;
    line-height:   1.05;
    color:         var(--accent);
    text-align:    center;
    margin-bottom: clamp(48px, 5vw, 80px);
}

.gallery__grid {
    column-count:   3;
    column-gap:     clamp(16px, 1.9vw, 29px);
    padding-inline: clamp(16px, 2.6vw, 50px);
    width:          100%;
}

.gallery__item {
    position:      relative;
    break-inside:  avoid;
    margin:        0 0 clamp(16px, 1.9vw, 29px);
    overflow:      hidden;
    display:       block;
}

.gallery__item img {
    width:      100%;
    height:     auto;
    display:    block;
    transition: transform var(--dur-med) var(--ease-out);
}

.gallery__item:hover img {
    transform: scale(1.03);
}

@media (max-width: 900px) {
    .gallery__grid { column-count: 2; }
}

@media (max-width: 560px) {
    .gallery__grid { column-count: 1; }
}

.mod_article.text-page h1,
.mod_article.text-page p {
    max-width: 52rem;
}
.mod_article.text-page h2 {
    font-family: var(--font-sans);
    font-size:   clamp(1.5rem, 2.2vw, 2rem);
    font-weight: 700;
    line-height: 1.2;
    color:       var(--accent);
    max-width:   52rem;
    margin:      1.8em 0 .4em;
}
.mod_article.text-page h3 {
    font-family: var(--font-sans);
    font-size:   1.25rem;
    font-weight: 700;
    line-height: 1.3;
    max-width:   52rem;
    margin:      1.2em 0 .3em;
}
.mod_article.text-page ul {
    max-width:    52rem;
    margin:       0 0 1.2em;
    padding-left: 1.4em;
    list-style:   disc;
}
.mod_article.text-page li {
    font-size:      24px;
    letter-spacing: 0.48px;
    line-height:    34px;
    margin-bottom:  .25em;
}
.mod_article.text-page a {
    color:                 var(--accent);
    text-decoration:       underline;
    text-underline-offset: 2px;
}

.apartment-grid {
    display:               grid;

    grid-template-columns: repeat(auto-fill, minmax(min(560px, 100%), 1fr));
    gap:                   clamp(24px, 2.6vw, 40px);
    width:                 100%;
    max-width:             calc(var(--container) + var(--container-pad) * 2);
    margin:                0 auto;
    padding:               0 var(--container-pad) var(--section-pad-y);
}
.apartment-grid .apartment-card { flex: initial; width: auto; min-width: 0; }

.contact-info {
    padding:    0 var(--container-pad) var(--section-pad-y);
    background: var(--bg-primary);
}
.contact-info__inner {
    display:               grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap:                   clamp(32px, 5vw, 80px);
    max-width:             860px;
    margin:                0 auto;
}
.contact-info__col   { text-align: center; }
.contact-info__label {
    display:        block;
    font-family:    var(--font-sans);
    font-size:      20px;
    font-weight:    700;
    letter-spacing: 0.4px;
    color:          var(--accent);
    margin-bottom:  18px;
}

.contact-info__label--sub { margin-top: clamp(28px, 3vw, 40px); }
.contact-info__actions    { margin-top: clamp(28px, 3vw, 40px); }
.contact-info__body {
    font-family:    var(--font-sans);
    font-style:     normal;
    font-size:      24px;
    letter-spacing: 0.48px;
    line-height:    36px;
    color:          var(--accent);
}
.contact-info__body a {
    color:           var(--accent);
    text-decoration: none;
    transition:      opacity .2s ease;
}
.contact-info__body a:hover { text-decoration: underline; }

@media (max-width: 600px) {
    .contact-info__inner { grid-template-columns: 1fr; gap: var(--space-xl); }
}

.btn--solid-light          { background: var(--text-on-dark); color: var(--bg-dark); }
.btn--solid-light:hover    { background: var(--accent-sage); color: var(--text-on-dark); }

.apartment-detail__hero {
    display:        block;
    background:     var(--bg-dark);
    color:          var(--text-on-dark);
    padding-block:  clamp(120px, 13vw, 180px) clamp(40px, 5vw, 88px);
}
.apartment-detail__hero-inner { display: contents; }

.apartment-detail__intro {
    max-width:      920px;
    margin-inline:  auto;
    padding:        0 var(--container-pad) clamp(36px, 4vw, 56px);
    text-align:     center;
}
.apartment-detail__eyebrow {
    font-family:    var(--font-sans);
    font-size:      18px;
    letter-spacing: .06em;
    color:          var(--text-on-dark-2);
    margin:         0 0 var(--space-md);
}
.apartment-detail__name {
    font-family:    var(--font-serif);
    font-weight:    400;
    font-size:      clamp(40px, 5.2vw, 76px);
    line-height:    1.04;
    color:          var(--text-on-dark);
    margin:         0 0 var(--space-lg);
}
.apartment-detail__name em { font-style: italic; }
.apartment-detail__lead {
    max-width:      720px;
    margin:         0 auto var(--space-xl);
    color:          var(--text-on-dark-2);
    font-size:      19px;
    line-height:    1.75;
}
.apartment-detail__actions {
    display:        flex;
    flex-wrap:      wrap;
    justify-content: center;
    gap:            var(--space-md);
}

.apartment-detail__stats {
    display:               grid;

    grid-template-columns: minmax(0, 1fr) auto 1fr;
    align-items:           center;
    gap:                   var(--space-lg);
    width:                 100%;
    margin-top:            clamp(28px, 3.5vw, 60px);
    padding:               0 clamp(16px, 2.6vw, 50px) clamp(28px, 3vw, 44px);
}
.apartment-detail__stats > :first-child { justify-self: start; }
.apartment-detail__stats > :last-child  { justify-self: end; }
.apartment-detail__stat {
    display:        inline-flex;
    align-items:    center;
    gap:            12px;
    font-family:    var(--font-sans);
    font-size:      20px;
    color:          var(--text-on-dark);
}
.apartment-detail__stat-icon { flex: none; display: block; height: 22px; width: auto; }

.apartment-detail__slider {
    position: relative;
    width:    100%;
    padding:  0 clamp(16px, 2.6vw, 50px) clamp(16px, 2.5vw, 50px);
}
.apartment-detail__slidertrack {
    padding: 0;
    gap:     0;
    scroll-padding: 0;
}
.apartment-detail__slide {
    position:         relative;
    flex:             0 0 100%;
    margin:           0;
    aspect-ratio:     1820 / 910;
    scroll-snap-align: start;
}
.apartment-detail__slide img {
    display:    block;
    width:      100%;
    height:     100%;
    object-fit: cover;
}
.apartment-detail__slide-link {
    display: block;
    height:  100%;
    cursor:  zoom-in;
}

.apartment-detail__slider .text-image__arrow      { bottom: clamp(16px, 2.5vw, 50px); z-index: 4; }

.apartment-detail__dots {
    position:  absolute;
    left:      50%;
    transform: translateX(-50%);
    bottom:    calc(clamp(16px, 2.5vw, 50px) + 20px);
    display:   flex;
    gap:       10px;
    z-index:   4;
}
.apartment-detail__dot {
    position:      relative;
    width:         10px;
    height:        10px;
    padding:       0;
    border-radius: 50%;
    border:        1.5px solid rgba(255,255,255,0.55);
    background:    transparent;
    cursor:        pointer;
    transition:    background var(--dur) var(--ease-out), border-color var(--dur) var(--ease-out);
}
.apartment-detail__dot::before {

    content:  "";
    position: absolute;
    inset:    -7px;
}
.apartment-detail__dot:hover {
    background:   rgba(255,255,255,0.18);
    border-color: rgba(255,255,255,0.9);
}
.apartment-detail__dot.is-active {
    background:   #fff;
    border-color: #fff;
}
.apartment-detail__slider .text-image__arrow--prev { left:  clamp(16px, 2.6vw, 50px); right: auto; }
.apartment-detail__slider .text-image__arrow--next { right: clamp(16px, 2.6vw, 50px); left:  auto; }

.apartment-detail__breadcrumb {
    margin:     0;
    padding:    clamp(20px, 2.4vw, 32px) clamp(16px, 2.6vw, 50px);
    background: transparent;
}

.apartment-checklist {
    list-style:     none;
    margin:         var(--space-lg) 0;
    padding:        0;
    display:        grid;
    gap:            var(--space-sm);
}
.apartment-checklist li {
    position:       relative;
    padding-inline-start: 32px;
    font-family:    var(--font-sans);
    font-size:      18px;
    line-height:    1.5;
}
.apartment-checklist li::before {
    content:        '→';
    position:       absolute;
    left:           0;
    color:          var(--accent);
}
.apartment-checklist--center {
    justify-items:  center;
    text-align:     left;
    width:          fit-content;
    margin-inline:  auto;
}
.apartment-checklist--light li        { color: var(--text-on-dark); }
.apartment-checklist--light li::before { color: var(--text-on-dark); }

.apartment-rooms {
    background:     var(--bg-primary);
    padding-block:  var(--section-pad-y);
    color:          var(--accent);
}
.apartment-rooms__intro {
    max-width:      820px;
    margin-inline:  auto;
    padding-inline: var(--container-pad);
    text-align:     center;
}
.apartment-rooms__eyebrow {
    font-family:    var(--font-sans);
    font-size:      18px;
    letter-spacing: .04em;
    color:          var(--accent);
    margin:         0 0 var(--space-sm);
}
.apartment-rooms__headline {
    font-family:    var(--font-serif);
    font-weight:    400;
    font-size:      clamp(34px, 4vw, 56px);
    line-height:    1.08;
    color:          var(--accent);
    margin:         0 0 var(--space-lg);
}
.apartment-rooms__headline em { font-style: italic; }
.apartment-rooms__text {
    color:          var(--accent);
    font-size:      18px;
    line-height:    1.75;
    margin:         0 auto var(--space-md);
}
.apartment-rooms__text--note { margin-top: var(--space-lg); }

.apartment-rooms__gallery {
    display:        grid;
    grid-template-columns: repeat(3, 1fr);
    gap:            clamp(20px, 2vw, 32px);
    max-width:      var(--container);
    margin:         clamp(40px, 5vw, 72px) auto 0;
    padding-inline: var(--container-pad);
}
.apartment-rooms__shot {
    margin:         0;
    aspect-ratio:   480 / 700;
    overflow:       hidden;
    border-radius:  4px;
}
.apartment-rooms__shot img {
    display:        block;
    width:          100%;
    height:         100%;
    object-fit:     cover;
}

.apartment-incl {
    background:     var(--accent-sage);
    color:          var(--text-on-dark);
    padding-block:  var(--section-pad-y);
}
.apartment-incl__inner {
    display:        grid;
    grid-template-columns: minmax(0, 1fr) minmax(0, 1fr);
    align-items:    center;
    gap:            clamp(40px, 5vw, 96px);
    padding-inline: clamp(16px, 2.6vw, 50px);
}

.apartment-incl__media {
    background:      var(--bg-white);
    padding:         clamp(20px, 2.5vw, 40px);
    aspect-ratio:    1 / 1;
    display:         flex;
    align-items:     center;
    justify-content: center;
}
.apartment-incl__media img {
    display:    block;
    max-width:  100%;
    max-height: 100%;
    width:      auto;
    height:     auto;
    object-fit: contain;
}
.apartment-incl__eyebrow {
    font-family:    var(--font-sans);
    font-size:      18px;
    letter-spacing: .04em;
    color:          var(--text-on-dark-2);
    margin:         0 0 var(--space-sm);
}
.apartment-incl__headline {
    font-family:    var(--font-serif);
    font-weight:    400;
    font-size:      clamp(34px, 4vw, 56px);
    line-height:    1.08;
    margin:         0 0 var(--space-lg);
}
.apartment-incl__headline em { font-style: italic; }
.apartment-incl__text {
    font-size:      18px;
    line-height:    1.75;
    color:          var(--text-on-dark-2);
    margin:         var(--space-md) 0 var(--space-xl);
}
.apartment-incl__actions { margin-top: var(--space-lg); }

@media (max-width: 900px) {
    .apartment-rooms__gallery   { grid-template-columns: 1fr; max-width: 480px; }
    .apartment-incl__inner      { grid-template-columns: 1fr; gap: var(--space-xl); }
    .apartment-detail__stats    { display: flex; flex-wrap: wrap; justify-content: flex-start; gap: var(--space-md) var(--space-xl); }
}

.apartment-grid > :not(.apartment-card) {
    grid-column:    1 / -1;
    margin:         clamp(64px, 7vw, 104px) 0 var(--space-xl);
    text-align:     center;
    font-family:    var(--font-serif);
    font-weight:    400;
    font-size:      clamp(30px, 3.4vw, 48px);
    line-height:    1.1;
    color:          var(--text-primary);
}

.weitere-heading, .ce_headline.weitere-heading { padding-block-start: clamp(56px, 7vw, 96px); }
.weitere-heading h2, h2.weitere-heading {
    margin:      0 0 var(--space-xl);
    text-align:  center;
    font-family: var(--font-serif);
    font-weight: 400;
    font-size:   clamp(30px, 3.4vw, 48px);
    line-height: 1.1;
    color:       var(--text-primary);
}

.amenities.text-image-light { background: var(--accent-sage); color: var(--text-on-dark); }
.amenities .text-image-light__headline,
.amenities .text-image-light__text,
.amenities .section-label { color: var(--text-on-dark); }
.amenities .text-image-light__text ul {
    list-style: none;
    margin:     var(--space-lg) 0 0;
    padding:    0;
    display:    grid;
    gap:        var(--space-sm);
}
.amenities .text-image-light__text li {
    position:             relative;
    padding-inline-start: 32px;
    font-size:            18px;
    line-height:          1.5;
}
.amenities .text-image-light__text li::before { content: '→'; position: absolute; left: 0; }
.amenities .btn--outline-gold        { border-color: var(--text-on-dark); color: var(--text-on-dark); }
.amenities .btn--outline-gold:hover  { background: var(--text-on-dark); color: var(--accent-sage); }

.apartment-cards__header {
    max-width:      820px;
    margin:         0 auto clamp(40px, 5vw, 72px);
    padding-inline: var(--container-pad);
    text-align:     center;
}
.apartment-cards__label {
    margin:         0 0 var(--space-sm);
    font-family:    var(--font-sans);
    font-size:      18px;
    letter-spacing: .04em;
    color:          var(--accent);
}
.apartment-cards__headline {
    margin:      0;
    font-family: var(--font-serif);
    font-weight: 400;
    font-size:   clamp(34px, 4vw, 56px);
    line-height: 1.08;
    color:       var(--text-primary);
}
.apartment-cards__headline em { font-style: italic; }

.apartment-cards--grid .apartment-grid { max-width: none; }

.apartment-rooms__sublabel {
    margin:      var(--space-xl) 0 var(--space-sm);
    font-family: var(--font-sans);
    font-weight: 700;
    font-size:   17px;
    letter-spacing: .02em;
    color:       var(--accent);
    text-align:  center;
}

.apartment-incl__inner > .apartment-incl__content:only-child {
    grid-column:   1 / -1;
    max-width:     900px;
    margin-inline: auto;
}

.apartment-rooms__text p      { margin: 0; }
.apartment-rooms__text strong { font-weight: 700; }

@media (min-width: 901px) {
    .apartment-incl:has(.apartment-incl__media) {
        background: linear-gradient(to right, var(--bg-white) 50%, var(--accent-sage) 50%);
    }

    .apartment-incl:has(.apartment-incl__media) .apartment-incl__content {
        padding-inline-start: clamp(20px, 2.4vw, 48px);
    }
}

.apartment-detail__slider:has(.text-image__arrow) .symbolbild-badge {
    right:  calc(67px + 14px);
    bottom: 20px;
}

.apartment-section__more {
    text-align: left;
    padding:    0 var(--container-pad);
    margin-top: var(--space-xl);
}
@media (min-width: 901px) {
    .apartment-section__more { display: none; }

    .apartment-section__nav .apartment-section__more-btn { margin-right: 12px; }
}
@media (max-width: 900px) {
    .apartment-section__nav .apartment-section__more-btn { display: none; }
}

#footer {
    background: var(--accent-sage);
    color:      var(--text-on-dark);
}

.site-footer {
    padding:    clamp(48px, 5vw, 80px) 0 clamp(32px, 3.5vw, 48px);
}

.site-footer__logo-wrap {
    display:         flex;
    justify-content: center;
    margin-bottom:   clamp(48px, 5.5vw, 88px);
}

.site-footer__logo-wrap a {
    display: inline-block;
    line-height: 0;
}

.site-footer__logo-wrap img {
    display: block;
    width:   clamp(140px, 13vw, 248px);
    height:  auto;
}

.site-footer__main {
    display:               grid;
    grid-template-columns: 1fr 1fr 1fr;
    align-items:           start;
    width:                 100%;
    margin:                0 0 clamp(40px, 5vw, 72px);
    padding:               0 var(--container-pad);
    gap:                   32px;
}

.site-footer__address {
    font-size:      24px;
    letter-spacing: 0.48px;
    line-height:    34px;
    color:          var(--text-on-dark);
    font-style:     normal;
}

.site-footer__contact {
    display:        flex;
    flex-direction: column;
    align-items:    center;
    text-align:     center;
    gap:            0;
}

.site-footer__phone,
.site-footer__email {
    font-size:      clamp(1.75rem, 3.1vw, 60px);
    font-weight:    400;
    letter-spacing: -0.5px;
    line-height:    1.25;
    color:          var(--text-on-dark);
    display:        block;
    transition:     opacity var(--dur) var(--ease-out);
}

.site-footer__phone {
    font-family: var(--font-sans);
}

.site-footer__email {
    font-family: var(--font-serif);
    font-style:  italic;
}

.site-footer__phone:hover,
.site-footer__email:hover {
    opacity: 0.75;
}

.site-footer__social {
    display:    flex;
    gap:        16px;
    margin-top: 20px;
}

.site-footer__social a {
    display:         flex;
    align-items:     center;
    justify-content: center;
    color:           var(--text-on-dark);
    transition:      opacity var(--dur) var(--ease-out);
}

.site-footer__social a:hover {
    opacity: 0.7;
}

.site-footer__nav {
    display:        flex;
    flex-direction: column;
    align-items:    flex-end;
    gap:            4px;
    text-align:     right;
}

.site-footer__nav a {
    font-size:      24px;
    letter-spacing: 0.48px;
    line-height:    34px;
    color:          var(--text-on-dark);
    transition:     opacity var(--dur) var(--ease-out);
}

.site-footer__nav a:hover {
    opacity: 0.75;
}

.site-footer__bottom {
    display:               grid;
    grid-template-columns: 1fr auto 1fr;
    align-items:           center;
    width:                 100%;
    padding:               clamp(20px, 2.5vw, 32px) var(--container-pad) 0;
    border-top:            1px solid rgba(255,255,255,0.25);
    gap:                   24px;
}

.site-footer__copyright {
    font-size:      20px;
    letter-spacing: 0.40px;
    color:          var(--text-on-dark);
    white-space:    nowrap;
}

.site-footer__legal {
    display:    flex;
    gap:        clamp(16px, 2vw, 32px);
    flex-wrap:  wrap;
    justify-content: center;
}

.site-footer__legal a {
    font-size:      20px;
    letter-spacing: 0.40px;
    color:          var(--text-on-dark);
    white-space:    nowrap;
    transition:     opacity var(--dur) var(--ease-out);
}

.site-footer__legal a:hover {
    opacity: 0.75;
}

.site-footer__credit {
    font-size:   20px;
    letter-spacing: 0.40px;
    color:       var(--text-on-dark);
    text-align:  right;
    white-space: nowrap;
}

.site-footer__credit a {
    color:          var(--text-on-dark);
    font-weight:    700;
    letter-spacing: 0.08em;
    text-transform: uppercase;
    transition:     opacity var(--dur) var(--ease-out);
}

.site-footer__credit a:hover {
    opacity: 0.75;
}

.site-footer__credit .kwer-copyright {
    display:        inline-flex;
    align-items:    center;
    gap:            var(--space-xs);
    color:          var(--text-on-dark);
    text-decoration: none;
    font-weight:    400;
    letter-spacing: normal;
    text-transform: none;
    transition:     opacity var(--dur) var(--ease-out);
}
.site-footer__credit .kwer-copyright:hover,
.site-footer__credit .kwer-copyright:focus-visible {
    opacity: 0.7;
}
.site-footer__credit .kwer-copyright svg {
    inline-size: 4.5rem;
    block-size:  auto;
    display:     block;
    overflow:    visible;
    fill:        var(--text-on-dark);
}

@media (max-width: 900px) {
    .site-footer__main {
        grid-template-columns: 1fr 1fr;
        gap: 40px;
    }

    .site-footer__contact {
        grid-column: 1 / -1;
        order: -1;
    }

    .site-footer__nav {
        align-items: flex-start;
        text-align:  left;
    }

    .site-footer__bottom {
        grid-template-columns: 1fr 1fr;
        gap: 16px;
    }

    .site-footer__legal {
        grid-column: 1 / -1;
        order: 3;
    }
}

@media (max-width: 600px) {

    .site-footer__main {
        grid-template-columns: 1fr;
        gap:        32px;
        text-align: center;
    }

    .site-footer__address,
    .site-footer__contact,
    .site-footer__nav,
    .site-footer__bottom,
    .site-footer__legal,
    .site-footer__credit {
        align-items: center;
        text-align:  center;
        justify-content: center;
    }

    .site-footer__address,
    .site-footer__nav a {
        font-size:      16px;
        letter-spacing: 0.32px;
        line-height:    24px;
    }

    .site-footer__phone,
    .site-footer__email {
        font-size: clamp(1.25rem, 6vw, 2rem);
    }

    .site-footer__bottom {
        grid-template-columns: 1fr;
        gap: 12px;
    }

    .site-footer__legal a,
    .site-footer__copyright,
    .site-footer__credit {
        font-size:   14px;
        line-height: 20px;
    }
}

@media (max-width: 1480px) {
    :root {
        --container-pad: 40px;
        --section-pad-y: 100px;
    }

    .apartment-card {
        flex: 0 0 calc((100% - 40px) / 2);
    }

    .site-header__logo img,
    .site-header__logo svg {
        width: 230px;
    }
    body.scrolled .site-header__logo img,
    body.scrolled .site-header__logo svg {
        width: 150px;
    }

    .hero__headline,
    .text-image__headline,
    .text-image-light__headline,
    .region-intro__headline,
    .usp-section__headline,
    .einleitung__headline,
    .mod_article.text-page h1 {
        font-size: clamp(2.25rem, 5.5vw, 4.5rem);
        line-height: 1.1;
    }

    .text-image__label-corner {
        font-size:      25px;
        letter-spacing: 0.50px;
    }

    .btn {
        height:         62px;
        padding:        0 40px;
        font-size:      21px;
        line-height:    30px;
        letter-spacing: 0.42px;
    }

    .section-label {
        font-size:     23px;
        line-height:   1.3;
        margin-bottom: 32px;
    }

    .text-image__text,
    .text-image-light__text,
    .text-image-light__list li,
    .region-split__intro-text,
    .region-split__season-text,
    .region-intro__text,
    .usp-section__intro-text,
    .einleitung__text,
    .apartment-card__meta,
    .mod_article.text-page p {
        font-size:      22px;
        letter-spacing: 0.44px;
        line-height:    31px;
    }

    .usp-card__title { font-size: 27px; line-height: 33px; }
    .usp-card__text  { font-size: 20px; line-height: 28px; letter-spacing: 0.40px; }

    .site-footer__address,
    .site-footer__nav a {
        font-size:   22px;
        line-height: 31px;
    }

    .site-nav__item {
        font-size:   clamp(3.5rem, 6vw, 66px);
        line-height: 1.1;
    }

    .hero__scroll-dot {
        width:  60px;
        height: 60px;
    }
}

@media (max-width: 1199px) {
    :root {
        --container-pad: 32px;
        --section-pad-y: 80px;
        --header-h:      150px;
    }

    body.scrolled {
        --header-h: 100px;
    }

    .site-header__logo img,
    .site-header__logo svg {
        width: 210px;
    }
    body.scrolled .site-header__logo img,
    body.scrolled .site-header__logo svg {
        width: 140px;
    }

    .site-header__contact-text {
        display: none;
    }

    .site-header__nav-teaser a:not(:first-child) {
        display: none;
    }

    .usp-cards__grid {
        grid-template-columns: repeat(2, 1fr);
        gap: 24px;
    }

    .usp-photos__item {
        flex: 0 0 clamp(200px, 45%, 380px);
    }

    .apartment-card {
        flex: 0 0 calc((100% - 40px) / 2);
    }

    .region-split__columns {
        gap: clamp(48px, 6vw, 80px);
    }

    .text-image__inner,
    .text-image-light__inner,
    .region-intro__inner,
    .apartment-detail__hero-inner {
        gap: clamp(48px, 6vw, 80px);
    }

    .text-image__inner,
    .region-intro__inner {
        padding: clamp(80px, 9vw, 140px) var(--container-pad);
    }

    .hero__headline,
    .text-image__headline,
    .text-image-light__headline,
    .region-intro__headline,
    .usp-section__headline,
    .einleitung__headline,
    .mod_article.text-page h1 {
        font-size: clamp(2rem, 5vw, 3.25rem);
        line-height: 1.1;
    }

    .text-image__label-corner {
        font-size:      23px;
        letter-spacing: 0.46px;
    }

    .btn {
        height:         56px;
        padding:        0 32px;
        font-size:      18px;
        line-height:    26px;
        letter-spacing: 0.36px;
    }

    .section-label {
        font-size:     22px;
        line-height:   1.3;
        margin-bottom: 30px;
    }

    .text-image__text,
    .text-image-light__text,
    .text-image-light__list li,
    .region-split__intro-text,
    .region-split__season-text,
    .region-intro__text,
    .usp-section__intro-text,
    .einleitung__text,
    .apartment-card__meta,
    .mod_article.text-page p {
        font-size:      21px;
        letter-spacing: 0.42px;
        line-height:    30px;
    }

    .usp-card__title { font-size: 26px; line-height: 32px; }
    .usp-card__text  { font-size: 19px; line-height: 27px; letter-spacing: 0.38px; }

    .region-split__season-title {
        font-size:   clamp(1.875rem, 4vw, 2.75rem);
        line-height: 1.15;
    }

    .site-footer__address,
    .site-footer__nav a {
        font-size:   21px;
        line-height: 30px;
    }

    .site-nav__item {
        font-size:   clamp(3rem, 6vw, 60px);
        line-height: 1.1;
    }

    .hero__scroll-dot {
        width:  52px;
        height: 52px;
    }
    .hero__scroll {
        gap: 10px;
    }

    .text-image__thumb {
        width: clamp(80px, 15%, 153px);
    }

    .site-footer__copyright,
    .site-footer__legal a,
    .site-footer__credit {
        font-size:      17px;
        letter-spacing: 0.34px;
    }
}

@media (max-width: 900px) {
    :root {
        --container-pad: 24px;
        --section-pad-y: 64px;
        --header-h:      100px;
    }

    body.scrolled {
        --header-h: 70px;
    }

    .site-header__logo img,
    .site-header__logo svg {
        width: 180px;
    }
    body.scrolled .site-header__logo img,
    body.scrolled .site-header__logo svg {
        width: 120px;
    }

    .site-header__inner {
        padding: 0 24px;
    }

    .site-nav {
        display: flex;
    }

    body.nav-open {
        overflow: hidden;
    }

    .site-header__nav-teaser {
        display: none;
    }

    .site-nav__grid {
        grid-template-columns: 1fr;
        grid-template-rows:    auto;
        grid-auto-flow:        row;
        gap: 8px;
        column-count: 1;
    }

    .text-image__inner {
        grid-template-columns: 1fr;
        gap: 48px;
        padding: clamp(64px, 8vw, 100px) var(--container-pad);
    }

    .text-image__image {
        aspect-ratio: 16/9;
        min-height:   unset;
    }

    .text-image__content {
        padding: 0;
        align-self: stretch;
    }

    .apartment-detail__hero-inner {
        grid-template-columns: 1fr;
        gap: 40px;
        min-height: unset;
    }

    .text-image__thumb {
        top:   16px;
        right: 16px;
        width: clamp(80px, 18%, 140px);
    }

    .text-image-light__inner {
        grid-template-columns: 1fr;
        gap: 40px;
        min-height: unset;
    }

    .region-intro__inner {
        grid-template-columns: 1fr;
        gap: 48px;
        padding: clamp(64px, 8vw, 100px) var(--container-pad);
    }

    .text-image-light__content {
        align-self: stretch;
    }

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

    .gastgeber__image {
        aspect-ratio: 16/9;
    }

    .apartment-card {
        flex: 0 0 calc(80vw);
    }

    .apartment-section__header {
        flex-direction: column;
        align-items: flex-start;
        gap: 24px;
    }

    .region-split__columns {
        grid-template-columns: 1fr;
        gap: 48px;
    }

    .usp-section__intro {
        margin-bottom: 64px;
    }

    .hero__headline {
        max-width: 100%;
    }

    .btn {
        height:         60px;
        padding:        0 36px;
        font-size:      20px;
        line-height:    28px;
        letter-spacing: 0.40px;
    }

    .section-label {
        font-size:     24px;
        line-height:   1.3;
        margin-bottom: 28px;
    }

    .text-image__label-corner {
        position:       relative;
        top:            auto;
        right:          auto;
        left:           auto;
        display:        block;
        padding:        clamp(40px, 6vw, 64px) var(--container-pad) 0;
        margin:         0;
        text-align:     right;
        font-size:      17px;
        letter-spacing: 0.34px;
        line-height:    1.2;
    }
    .text-image--label-left .text-image__label-corner {
        text-align: left;
    }

    .text-image__text,
    .text-image-light__text,
    .text-image-light__list li,
    .region-split__intro-text,
    .region-split__season-text,
    .region-intro__text,
    .usp-section__intro-text,
    .einleitung__text,
    .apartment-card__meta,
    .mod_article.text-page p {
        font-size:      20px;
        letter-spacing: 0.40px;
        line-height:    28px;
    }

    .hero__headline,
    .text-image__headline,
    .text-image-light__headline,
    .region-intro__headline,
    .usp-section__headline,
    .einleitung__headline,
    .mod_article.text-page h1 {
        font-size:   clamp(2rem, 6vw, 3.5rem);
        line-height: 1.1;
    }

    .region-split__season-title {
        font-size:   clamp(1.75rem, 5vw, 2.5rem);
        line-height: 1.15;
    }

    .apartment-section__arrow,
    .usp-photos__arrow {
        width:  56px;
        height: 56px;
    }

    .usp-card {
        padding: 32px 28px;
        min-height: unset;
    }

    .usp-card__title { font-size: 24px; line-height: 30px; }
    .usp-card__text  { font-size: 18px; line-height: 26px; letter-spacing: 0.36px; }

    .site-footer__address,
    .site-footer__nav a {
        font-size:   20px;
        line-height: 28px;
    }

    .site-nav__item {
        font-size:   clamp(2.5rem, 7vw, 4rem);
        line-height: 1.1;
    }

    .region-intro__image {
        aspect-ratio: 16/10;
    }
}

@media (max-width: 600px) {
    :root {
        --container-pad: 20px;
        --section-pad-y: 48px;
        --header-h:      80px;
    }

    body.scrolled {
        --header-h: 60px;
    }

    .site-footer__copyright,
    .site-footer__legal a,
    .site-footer__credit {
        font-size:      14px;
        letter-spacing: 0.28px;
    }

    .site-header__logo img,
    .site-header__logo svg {
        width: 150px;
    }
    body.scrolled .site-header__logo img,
    body.scrolled .site-header__logo svg {
        width: 100px;
    }

    .site-header__inner {
        padding: 0 20px;
    }

    section.hero {
        height:     600px;
        min-height: 0;
    }

    .hero__bg {
        top: 90px;
    }

    .hero__content {
        padding-bottom: 60px;
    }

    .hero__headline {
        font-size: 2rem;
    }

    .hero__label {
        font-size: 1.1rem;
    }

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

    .hero__cta .btn {
        width: 100%;
        justify-content: center;
    }

    .usp-cards__grid {
        grid-template-columns: 1fr;
        gap: 20px;
    }

    .usp-section__headline {
        font-size: clamp(2rem, 9vw, 3rem);
    }

    .usp-cards__cta {
        margin-top: 32px;
    }

    .usp-cards__cta .btn {
        width: 100%;
        justify-content: center;
    }

    .usp-photos__item {
        flex: 0 0 clamp(260px, 80vw, 400px);
    }

    .usp-photos__track {
        gap: 24px;
    }

    .usp-photos__arrow {
        width:  52px;
        height: 52px;
    }

    .apartment-card {
        flex: 0 0 calc(100vw - 40px);
    }

    .apartment-slider {
        gap: 24px;
    }

    .apartment-card__actions {
        flex-direction: column;
    }

    .apartment-section__arrow {
        width:  48px;
        height: 48px;
    }
    .apartment-section__arrow svg {
        width:  16px;
        height: 16px;
    }

    .apartment-card__meta {
        font-size:      14px;
        letter-spacing: 0.28px;
        line-height:    20px;
    }

    .cta-banner__actions {
        flex-direction: column;
        width: 100%;
    }

    .cta-banner__actions .btn {
        width: 100%;
        text-align: center;
    }

    .text-image__thumb {
        display: none;
    }

    .text-image__headline,
    .text-image-light__headline,
    .einleitung__headline,
    .mod_article.text-page h1 {
        font-size: clamp(2rem, 9vw, 3rem);
    }

    .text-image-light__inner {
        gap: 32px;
    }

    .region-split__columns {
        gap: 32px;
    }

    .region-split__season {
        gap: 24px;
    }

    .section-label {
        font-size: 22px;
        line-height: 1.3;
        margin-bottom: 24px;
    }

    .btn {
        font-size:      16px;
        height:         auto;
        padding:        16px 32px;
        line-height:    24px;
        letter-spacing: 0.32px;
    }

    .hero__scroll-dot {
        width:  44px;
        height: 44px;
    }
    .hero__scroll-dot img,
    .hero__scroll-dot svg {
        width:  16px;
        height: 16px;
    }
    .hero__scroll {
        gap: 10px;
    }

    .site-nav__item {
        font-size:   clamp(2rem, 9vw, 3rem);
        line-height: 1.1;
    }

    .site-nav {
        padding: var(--header-h) 24px 40px;
    }

    .usp-card {
        min-height: unset;
        padding:    24px 20px;
    }

    .usp-card__text {
        font-size:   16px;
        line-height: 24px;
        letter-spacing: 0.32px;
    }

    .usp-card__title {
        font-size: 22px;
        line-height: 28px;
    }

    .text-image__inner {
        padding-top:    clamp(32px, 4vw, 50px);
        padding-bottom: clamp(32px, 4vw, 50px);
    }

    .text-image__label-corner {
        position:       relative;
        top:            auto;
        right:          auto;
        left:           auto;
        display:        block;
        padding:        clamp(40px, 6vw, 64px) var(--container-pad) 0;
        margin:         0;
        text-align:     right;
        font-size:      14px;
        letter-spacing: 0.28px;
        line-height:    1.2;
    }
    .text-image--label-left .text-image__label-corner {
        text-align: left;
    }

    .text-image__text,
    .text-image-light__text,
    .text-image-light__list li,
    .region-split__intro-text,
    .region-split__season-text,
    .region-intro__text,
    .usp-section__intro-text,
    .einleitung__text,
    .mod_article.text-page p {
        font-size:      18px;
        letter-spacing: 0.36px;
        line-height:    26px;
    }
}

@media (max-width: 900px) {
    .hero__scroll {
        position:        fixed;
        inset:           auto 0 0 0;
        top:             auto;
        right:           auto;
        transform:       none;
        width:           100%;
        flex-direction:  row;
        gap:             0;
        background:      var(--bg-dark);
        box-shadow:      0 -2px 14px rgba(0, 0, 0, 0.18);
        z-index:         90;
        padding-bottom:  env(safe-area-inset-bottom, 0px);
    }

    body.nav-open .hero__scroll { display: none; }

    .hero__scroll-dot {
        flex:           1 1 0;
        width:          auto;
        height:         auto;
        flex-direction: column;
        gap:            5px;
        border:         0;
        border-radius:  0;
        background:     none;
        padding:        11px 6px;
        border-inline-start: 1px solid rgba(255, 255, 255, 0.12);
    }
    .hero__scroll-dot:first-child { border-inline-start: 0; }

    .hero__scroll-dot img,
    .hero__scroll-dot svg {
        width:   24px;
        height:  24px;
        opacity: 1;
    }

    .hero__scroll-dot::after          { display: none; }
    .hero__scroll-dot--on-light img   { opacity: 1; }
    .hero__scroll-dot--on-light       { border-color: transparent; }
    .hero__scroll-dot:hover,
    .hero__scroll-dot--active         { background: rgba(255, 255, 255, 0.10); }

    .hero__scroll-dot__label {
        display:        block;
        font-family:    var(--font-sans);
        font-size:      12px;
        line-height:    1;
        letter-spacing: 0.02em;
        color:          var(--text-on-dark);
    }

    #footer {
        padding-bottom: calc(clamp(32px, 3.5vw, 48px) + 64px + env(safe-area-inset-bottom, 0px));
    }
}

@media (max-width: 900px) {
    .site-header {
        transition: transform .35s var(--ease-out),
                    background var(--dur-med) var(--ease-out),
                    backdrop-filter var(--dur-med) var(--ease-out);
        will-change: transform;
    }
    .hero__scroll {
        transition: transform .35s var(--ease-out);
        will-change: transform;
    }
    body.chrome-hidden .site-header { transform: translateY(-100%); }
    body.chrome-hidden .hero__scroll { transform: translateY(100%); }
}

