/*
Theme Name: Baudirekt
Theme URI: http://www.baudirekt.de/
Author: SIGN+DESIGN Werbeagentur
Author URI: https://www.signunddesign.com/
Description: Wozu lange um den „heißen Brei“ reden: Unser Ziel ist Ihr Erfolg! Denn nur erfolgreiche Kunden sind auf Dauer glückliche Kunden. Und um Sie glücklich zu machen, richten wir unsere Energie auf Ihren stimmigen Auftritt und die Entwicklung zielführender Kommunikationsmaßnahmen. Werbung darf bei uns Spaß machen und ist trotzdem niemals Selbstzweck. Was zählt ist Ihr Erfolg! Die Früchte unserer Bemühungen: treue, langjährige Kunden und zahlreiche Weiterempfehlungen – mit ein Grund dafür, dass viele unserer Kunden aus dem Bereich Immobilien stammen. Und hier liegt auch seit über 20 Jahren ein Schwerpunkt unserer Arbeit.
Version: 2.1
*/@charset "UTF-8";

/* ====================================================================
   NEUE FEATURES v2.2
   Scroll-to-Top | Float-Contact | Sticky Header CTA
   Favoriten | PLZ-UX | CountUp
   ==================================================================== */

#Pfad_468 {fill: #f7f5f2!important;}
#Pfad_467 {fill: #f7f5f2!important;}
#Pfad_469 {fill: #f7f5f2!important;}

.single-haustyp .accordion.mb {margin-bottom:50px;}

/* --- FAQ Floating Button (nur single-haustyp) ----------------------- */
.faq-float-btn {
    position: fixed;
    bottom: 24px;
    left: 20px;
    z-index: 997;
    display: flex;
    align-items: center;
    gap: 7px;
    background: var(--secondary-color);
    color: #fff;
    border: none;
    border-radius: 30px;
    padding: 11px 18px;
    cursor: pointer;
    font-size: 13px;
    font-weight: 700;
    letter-spacing: .06em;
    text-transform: uppercase;
    box-shadow: 0 3px 10px rgba(0,0,0,.22);
    transition: transform .2s, box-shadow .2s;
}
.faq-float-btn svg { width: 16px; height: 16px; fill: none; stroke: #fff; stroke-width: 2.2; stroke-linecap: round; stroke-linejoin: round; flex-shrink: 0; }
.faq-float-btn:hover { transform: translateY(-3px); box-shadow: 0 6px 18px rgba(0,0,0,.28); }
.faq-modal-inner { max-width: 950px !important; }
.faq-modal-title { font-size: 22px; font-weight: 700; color: var(--primary-color); margin: 0 0 20px; text-transform: uppercase; }
.faq-modal-inner .accordion { margin: 0; }

/* --- Floating Action Stack (Scroll-Top + Phone + WhatsApp) --------- */
.float-stack {
    position: fixed;
    bottom: 24px;
    right: 20px;
    display: flex;
    flex-direction: column;
    gap: 10px;
    z-index: 997;
    opacity: 0;
    visibility: hidden;
    transition: opacity .3s, visibility .3s;
}
.float-stack.visible { opacity: 1; visibility: visible; }
.float-btn {
    width: 46px;
    height: 46px;
    border-radius: 50%;
    display: flex;
    align-items: center;
    justify-content: center;
    box-shadow: 0 3px 10px rgba(0,0,0,.22);
    transition: transform .2s, box-shadow .2s;
    border: none;
    cursor: pointer;
    text-decoration: none;
    padding: 0;
    flex-shrink: 0;
}
.float-btn:hover { transform: translateY(-3px); box-shadow: 0 6px 18px rgba(0,0,0,.28); }
.float-btn svg { width: 22px; height: 22px; fill: none; stroke: #fff; stroke-width: 2; stroke-linecap: round; stroke-linejoin: round; pointer-events: none; }
.float-top  { background: var(--primary-color); }
.float-top:hover { background: var(--secondary-color); }
.float-phone { background: var(--secondary-color); }
.float-phone:hover { background: var(--primary-color); }
.float-wa   { background: #25D366; }
.float-wa:hover { background: #1da851; }

/* --- Sticky Header CTA -------------------------------------------- */
/* Gemeinsamer Button-Style */
#mainnav ul.mainnav.desktop li.header-cta-nav a,
#mainnav ul.mainnav.desktop li.header-cta-nav button.btn-modal-trigger,
.header-cta-fixed a,
.header-cta-fixed button.btn-modal-trigger {
    background: var(--secondary-color);
    color: #fff !important;
    padding: 10px 24px;
    border-radius: 24px;
    font-weight: 700;
    font-size: 14px;
    text-decoration: none;
    display: inline-block;
    white-space: nowrap;
    box-shadow: 0 3px 12px rgba(0,0,0,.2);
    transition: background .2s, box-shadow .2s;
    border: none;
    cursor: pointer;
    font-family: inherit;
    line-height: inherit;
}
#mainnav ul.mainnav.desktop li.header-cta-nav a:hover,
#mainnav ul.mainnav.desktop li.header-cta-nav button.btn-modal-trigger:hover,
.header-cta-fixed a:hover,
.header-cta-fixed button.btn-modal-trigger:hover { background: var(--primary-color); box-shadow: 0 5px 18px rgba(0,0,0,.28); }

/* In-Nav Version (< 1880px): kein Platz vor dem Scrollen */
li.header-cta-nav {
    display: none;
    list-style: none;
    padding: 0 10px;
    margin-left: 10px;
}
html.scrolled li.header-cta-nav { display: list-item; }
body.no-scroll li.header-cta-nav { display: none !important; }
@media (max-width: 1100px)  { li.header-cta-nav { display: none !important; } }
@media (min-width: 1880px)  { li.header-cta-nav { display: none !important; } }

/* Fixed Version (>= 1880px): außerhalb wrp */
.header-cta-fixed {
    display: none;
}
@media (min-width: 1880px) {
    .header-cta-fixed {
        display: block;
        position: fixed;
        top: 20px;
        right: 100px;
        z-index: 1000;
        opacity: 0;
        visibility: hidden;
        transform: translateY(-8px);
        transition: opacity .3s, visibility .3s, transform .3s;
    }
    html.scrolled .header-cta-fixed { opacity: 1; visibility: visible; transform: translateY(0); }
    body.no-scroll .header-cta-fixed { opacity: 0 !important; visibility: hidden !important; pointer-events: none; }
}

/* --- Favoriten Herz-Button ----------------------------------------- */
.teasercard-item { position: relative; }
.fav-btn {
    position: absolute;
    top: 10px;
    right: 10px;
    width: 36px;
    height: 36px;
    background: rgba(255,255,255,.92);
    border: none;
    border-radius: 50%;
    cursor: pointer;
    display: flex;
    align-items: center;
    justify-content: center;
    z-index: 3;
    box-shadow: 0 2px 8px rgba(0,0,0,.15);
    transition: transform .2s, box-shadow .2s;
    padding: 0;
}
.fav-btn:hover { transform: scale(1.15); box-shadow: 0 4px 12px rgba(0,0,0,.22); }
.fav-btn .fav-heart { width: 18px; height: 18px; fill: none; stroke: #aaa; stroke-width: 2; stroke-linecap: round; stroke-linejoin: round; transition: fill .2s, stroke .2s; }
.fav-btn.is-fav .fav-heart { fill: #e63946; stroke: #e63946; }
.fav-btn.fav-pop { animation: favPop .3s ease; }
@keyframes favPop { 0%,100% { transform: scale(1); } 50% { transform: scale(1.4); } }

/* --- PLZ Preisrechner UX ------------------------------------------- */
.plz-error-msg {
    color: #e63946;
    font-size: 13px;
    margin-top: 5px;
    min-height: 16px;
}
.plz-loader {
    display: inline-block;
    width: 13px;
    height: 13px;
    border: 2px solid rgba(255,255,255,.4);
    border-top-color: #fff;
    border-radius: 50%;
    animation: plzSpin .7s linear infinite;
    vertical-align: middle;
    margin-left: 4px;
}
@keyframes plzSpin { to { transform: rotate(360deg); } }
#plz.loading { pointer-events: none; opacity: .7; }

/* --- CountUp Vertrauenszahlen -------------------------------------- */
.trust-zahlen {
    display: grid;
    grid-template-columns: repeat(3, 1fr);
    gap: 30px;
    text-align: center;
    padding: 40px 0;
}
.trust-zahl-item .zahl {
    font-size: clamp(38px, 5vw, 62px);
    font-weight: 900;
    color: var(--primary-color);
    line-height: 1;
    display: block;
}
.trust-zahl-item .trust-label {
    font-size: 15px;
    color: #666;
    margin-top: 8px;
    display: block;
}
@media (max-width: 600px) { .trust-zahlen { grid-template-columns: 1fr; gap: 18px; } }

/* ====================================================================
   END NEUE FEATURES v2.2
   ==================================================================== */

/*Global Reset*/
.splide__arrows {display:none!important}
body,html,h1,h2,h3,h4,h5,h6,p,ul,ol,li{padding:0;margin:0;}
body,html{overflow: unset!important;width:100%;-webkit-font-smoothing:antialiased;-webkit-overflow-scrolling:touch;}
article,aside,details,figcaption,figure,footer,header,hgroup,menu,nav,section{display:block;}
.button .wrp .link {text-align:center}
.button .wrp .link a,
.button .wrp .link .btn-modal-trigger { display: inline-block; text-align: center; font-weight: 700; padding: 10px 40px; color: #fff; background-color: var(--secondary-color); border-radius: 30px; margin: 0 auto; transition: var(--transition); border: none; cursor: pointer; font-size: 16px; }
.button .wrp .link a:hover,
.button .wrp .link .btn-modal-trigger:hover { background-color: var(--primary-color); opacity: 1; }

.fr-content, .fr-content-background {background:#fff!important;}


.single-haustyp .single-wrp .gallery ul {margin:0;display:grid;grid-template-columns: 1fr 1fr 1fr;gap:20px;}
.single-haustyp .hausgrid {display:grid;grid-template-columns: 65% auto;gap:20px;}
.single-haustyp .hausgrid .bild{position:relative;}
.single-haustyp .hausgrid .bild img{width:100%;height:100%;object-fit: cover;border-bottom-right-radius: 50px}
.single-haustyp .hausgrid .subheadline h2 {
    margin: 0 0 10px 0;
    font-size: 20px;
    line-height: 30px;
    font-weight: 400;
    text-transform: uppercase;
}
.single-haustyp .hausgrid .side {border: 1px solid #E6E4E4;padding:30px;box-sizing: border-box}
.single-haustyp .hausgrid .side h3 {margin: 0 0 5px 0;
    font-size: 20px;
    line-height: 30px;
    font-weight: 600;
    color: var(--primary-color);
    text-transform: uppercase;
}
.single-haustyp .hausgrid .side .subheadline p strong {display:block;font-size:20px;text-transform: uppercase;margin:10px 0;font-weight:600}

.single-haustyp .single-wrp .legende {display:block;max-width: 1240px;margin: 25px auto 100px auto;width: 90%;}
.single-haustyp .single-wrp .legende .wrp{display:grid;grid-template-columns: 1fr 1fr 1fr;margin:0;max-width:800px;}
.single-haustyp .single-wrp .legende .wrp .grund {background: url(assets/icon-grundflaeche.svg) left top no-repeat;background-size: 65px;padding-left:75px;}
.single-haustyp .single-wrp .legende .wrp .wohn {background: url(assets/icon-wohnflaeche.svg) left top no-repeat;background-size: 65px;padding-left:75px;}
.single-haustyp .single-wrp .legende .wrp .zimmer {background: url(assets/icon-zimmer.svg) left bottom 9px no-repeat;background-size: 65px;padding-left:75px;}
.single-haustyp .single-wrp .legende .headline {font-size:22px;font-weight:600;line-height: 20px;}
.single-haustyp .single-wrp .button {display:block;text-align:center;margin:0 auto 100px auto;}
.single-haustyp .single-wrp .button a{display:inline-block;text-align:center;font-weight:700;padding:10px 40px;color:#fff;background-color:var(--primary-color);border-radius:30px;margin:0 auto; transition: var(--transition);}
.single-haustyp .single-wrp .button a:hover{background-color:var(--secondary-color); transition: var(--transition);}

.single-haustyp .grundriss-grid {display:grid;grid-template-columns: 1fr 1fr;gap:100px;margin-bottom:100px;}
.single-haustyp .grundriss-grid .grundrisse {display:grid;grid-template-columns: 1fr 1fr;gap:50px}
.single-haustyp .grundriss-grid .grundrisse .liste-grid {display:grid;grid-template-columns: 63% auto;gap:20px}
.single-haustyp .grundriss-grid .grundrisse .liste-grid .qm {justify-self: end;}
.single-haustyp .grundriss-grid .grundrisse h3 {color:var(--primary-color);font-size:20px;margin:0 0 10px 0;font-weight:600;}
.single-haustyp .grundrisse .bild img {width:100%;height:auto;}
.single-haustyp .grundriss-grid .grundrisse .liste-grid.sum {margin-top:10px;}

.single-haustyp .stoerer .wrp h2 {display:none;}
.back-btn-wrp.wrp { margin: 0 auto 70px auto; }
.back-btn { display: inline-flex; align-items: center; gap: 6px; padding: 10px 22px; border: 1.5px solid var(--primary-color); border-radius: 40px; background: transparent; color: var(--primary-color); font-size: 14px; font-weight: 700; cursor: pointer; transition: background var(--transition), color var(--transition); text-transform: uppercase; letter-spacing: .5px; }
.back-btn svg { width: 16px; height: 16px; flex-shrink: 0; }
.back-btn:hover { background: var(--primary-color); color: #fff; }
.single-haustyp .grundrisse-hinweis {border:1px solid #ccc;padding:15px 20px;margin-bottom:60px;color:var(--primary-color);}
.single-haustyp .grundrisse-hinweis p {margin:0;font-size:15px;line-height:1.6;}
.single-haustyp .grundrisse-hinweis p:not(:last-child) {margin-bottom:8px;}
.single-haustyp .grundrisse-hinweis strong {font-weight:600;}
.single-haustyp .grundrisse-hinweis a {color:var(--primary-color);text-decoration:underline;}
.single-haustyp .grundrisse-hinweis a:hover {opacity:.8;}

.single-haustyp .icon-down {width:21px;height:21px;margin-right:5px;}
.single-haustyp .icon-go {width:28px;height:28px;margin-right:0;display:inline-block;vertical-align: middle}

.single-haustyp .single-wrp .teasercard-item .wohn {display:inline-block;margin: 20px 20px 0 0;background: url(assets/icon-wohnflaeche.svg) left top no-repeat;background-size: 65px;padding-left:75px;}
.single-haustyp .single-wrp .teasercard-item .zimmer {display:inline-block;margin: 20px 0 0 0;background: url(assets/icon-zimmer.svg) left bottom 9px no-repeat;background-size: 65px;padding-left:75px;}
.single-haustyp .single-wrp .teasercard-item .headline {font-size:22px;font-weight:600;line-height: 20px;}
.single-haustyp .single-wrp .teasercard-item .arrow {position: absolute;right: 20px;bottom: 80px;width: 35px;height: 35px;}

.single-haustyp .single-wrp .legende.smart {display:none;}

.single-haustyp .hausgrid .side .subheadline .smartlink {display:none;}

.single-haustyp .hausgrid .side .view360box {margin: 15px 0;}
.single-haustyp .hausgrid .side .view360box a {display:inline-flex;align-items:center;gap:8px;padding:10px 18px;background:var(--primary-color);color:#fff;border-radius:4px;font-weight:600;font-size:14px;text-transform:uppercase;letter-spacing:.5px;transition:var(--transition);}
.single-haustyp .hausgrid .side .view360box a:hover {background:var(--secondary-color);}
.single-haustyp .hausgrid .side .view360box svg {width:18px;height:18px;flex-shrink:0;}

.page .teasercard-item .wohn.site {display:inline-block;margin: 20px 20px 0 0;background: url(assets/icon-wohnflaeche.svg) left top no-repeat;background-size: 65px;padding-left:75px;}
.page .teasercard-item .zimmer.site {display:inline-block;margin: 20px 0 0 0;background: url(assets/icon-zimmer.svg) left bottom 9px no-repeat;background-size: 65px;padding-left:75px;}
.page .teasercard-item .site .headline.site {font-size:22px;font-weight:600;line-height: 20px;}
.page .teasercards .cards .arrow.site {position: absolute;right: 20px;bottom: 80px;width: 35px;height: 35px;}

.tabelle-wrp-2 em, .tabelle-wrp-3 em {;display:none;}
    /* ########## Fonts ++ WICHTIG font-display: swap; ++ ########## */


/* ########## Variables ########## */

* {
    --font-family: "overpass-variable", sans-serif;
    --transition: .45s ease;
    --wrp-width: 1240px;
    --font-size: 18px;
    --line-height: calc(var(--font-size) * 1.8);
    --box-shadow: 0px 5px 13px 0px rgba(0, 0, 0, 0.3);
    --border-radius: 15px;
    --primary-color: #005AAC;
    --secondary-color: #F27C00;
    --text-color:#333333;
}

/* ########## Globals ########## */

html {scroll-behavior: smooth;}
body {font-size: var(--font-size); font-family: var(--font-family), sans-serif; line-height: var(--line-height); color: var(--text-color);}
img {-ms-interpolation-mode:bicubic; vertical-align: bottom;}
svg {width: 100%; height: 100%;}
hr {border:none;height:1px;background:#ddd; margin:0;}
.no-scroll {overflow: hidden!important;height: 100%;}
.wrp {max-width: var(--wrp-width); width: 90%; margin: 0 auto; position:relative; box-sizing:border-box;}

/* Margins */

.mb {margin-bottom: 100px;}
.mb50 {margin-bottom: 50px;}

@media (max-width: 500px) {
  .mb {margin-bottom: 50px;}
  .mb50 {margin-bottom: 25px;}
}

/* Page Build */

main.withsidebar .page-build {display: grid; grid-template-columns: 70% 25%; align-items: flex-start; justify-content: space-between; max-width: var(--wrp-width); width: 90%; margin: 0 auto 100px auto;}
main.withsidebar .content .wrp {width: 100%;}

@media (max-width: 1024px) {
    main.withsidebar .page-build {grid-template-columns: 100%;}
    main.withsidebar .page-build .sidebar {display: none;}
    .footer-main__navs {display:none !important;}

}

/* Typo Styles */

h1{margin:0 0 25px 0;font-size:35px;line-height:45px;font-weight:400;text-transform: uppercase}
h1 strong{font-weight:900;color:var(--primary-color)}
h2{margin:0 0 30px 0;font-size:35px;line-height:45px;font-weight:400;text-transform: uppercase}
h2 strong{font-weight:900;color:var(--primary-color)}
h3{margin:0;font-size:20px;line-height:30px;font-weight:400;text-transform: uppercase}
h3 strong{font-weight:900;color:var(--primary-color)}

a {text-decoration: none; outline:none !important; color: var(--text-color); transition: var(--transition);}
a:hover {color: var(--secondary-color); transition: var(--transition);}

.btn {padding: 10px 30px; box-sizing:border-box;border-radius:40px;font-weight:900;text-transform:uppercase;color: var(--primary-color); background:rgba(255,255,255, 0.5);display: inline-block;}
.stage .btn { margin: 40px 10px 0 0; padding: 15px 30px; transition: background var(--transition), color var(--transition), border-color var(--transition); }
.stage .btn--primary { background: var(--secondary-color); color: #fff; border: 2px solid var(--secondary-color); }
.stage .btn--primary:hover { background: var(--primary-color); border-color: var(--primary-color); color: #fff; }
.stage .btn--secondary { background: transparent; color: #fff; border: 2px solid rgba(255,255,255,0.8); }
.stage .btn--secondary:hover { background: var(--primary-color); border-color: var(--primary-color); color: #fff; }
p {margin-bottom: var(--line-height);}
p:last-child {margin-bottom: 0;}
address {font-style: normal; color: var(--text-color);}
address a {display: block;}
ol, ul {margin-bottom: var(--line-height);}
li {margin-left: 20px;}

.infonav {position:absolute;right:0;top:0;transition: var(--transition);z-index:10}
.infonav {margin:0;list-style-type: none}
.infonav li{margin:0;display:inline-block;font-size:16px;}
.infonav li:after {content:"//";margin:0 1px 0 0;padding-left:5px;display:inline-block;}
.infonav li:nth-child(1) {font-weight:700;}
.infonav li:nth-child(4):after {content:"//";display:none;}
.infonav:has(.fav-nav-item) li:nth-child(4):after {display:inline-block;}
.infonav li:last-child::after {display:none !important;}
.infonav .fav-nav-item { position:relative; }
.infonav .fav-nav-trigger { font-weight:400; }
.fav-nav-dropdown { position:absolute; top:100%; right:0; background:#fff; border-radius:8px; box-shadow:0 4px 24px rgba(0,0,0,.14); min-width:400px; list-style:none; margin:0; padding:12px 0 8px; opacity:0; pointer-events:none; transition:opacity var(--transition), transform var(--transition); transform:translateY(-6px); z-index:100; }
.fav-nav-item:hover .fav-nav-dropdown { opacity:1; pointer-events:auto; transform:translateY(0); }
.fav-nav-dropdown { padding: 10px 10px 8px; display:flex; flex-wrap:wrap; gap:5px; }
.fav-nav-dropdown li { display:inline-flex !important; align-items:center; margin:0 !important; background:#f0f4fa; border-radius:20px; overflow:hidden; }
.fav-nav-dropdown li::after { display:none !important; }
.fav-nav-dropdown li a { padding:4px 6px 4px 10px; color:var(--primary-color); font-size:11px; font-weight:600; white-space:nowrap; transition:color var(--transition); }
.fav-nav-dropdown li a:hover { color:var(--secondary-color); background:none; }
.fav-pill-remove { background:none; border:none; cursor:pointer; color:#bbb; font-size:14px; line-height:1; padding:4px 8px 4px 2px; flex-shrink:0; transition:color var(--transition); }
.fav-pill-remove:hover { color:#e63946; }
.fav-download-row { width:100%; background:none !important; border-radius:0 !important; border-top:1px solid #e8eaed; margin-top:4px !important; padding-top:4px; }
.fav-download-btn { background:none; border:none; cursor:pointer; color:var(--primary-color); font-size:14px; font-weight:600; padding:4px 6px; opacity:.7; transition:opacity var(--transition); width:100%; text-align:left; }
.fav-download-btn:hover { opacity:1; }
.scrolled .infonav {top:-100px;transition: var(--transition);}
/* ########## Mainnav ########## */

#mainnav ul.mainnav.smart {display:none;}
#mainnav {display: block; transform: translate(0);}
#mainnav ul.mainnav.desktop li {font-weight:700;list-style-type: none; font-size: 20px; margin-left: 40px;}
#mainnav ul.mainnav.desktop li:first-child {margin-left:0;}
#mainnav ul.mainnav.desktop li a{display:block; color: var(--text-color); transition: var(--transition); padding: 50px 0 5px 0;}
#mainnav ul.mainnav.desktop li.menu-item-type-custom a:hover{color: #fff;background:var(--primary-color);transition: var(--transition);}
#mainnav ul.mainnav.desktop li a:hover, #mainnav ul.mainnav.desktop li.current-menu-item a{color: var(--primary-color); transition: var(--transition);}
#mainnav ul.mainnav.desktop li.current-page-ancestor a{color: var(--primary-color); transition: var(--transition);}

/* Subm/* Submenu */

@media (min-width: 1101px){

    #mainnav ul.mainnav.desktop {display: flex; align-items: center; margin: 0;}
    html.scrolled #mainnav ul.mainnav li a {padding: 15px 0; transition: var(--transition);}

    #mainnav ul.mainnav li.menu-item-has-children {position: relative;}
    #mainnav ul.mainnav li.menu-item-has-children ul.sub-menu {position: absolute; top: 90px; left: 0; display: block; height: auto; max-height: 0; overflow: hidden;}
    .scrolled #mainnav ul.mainnav li.menu-item-has-children ul.sub-menu {top: 69px;}
    #mainnav ul.mainnav li.menu-item-has-children ul.sub-menu li {width:285px; height: 100%;box-sizing:border-box;transition: 0.8s ease; background: rgba(255,255,255, 0.9); margin: 0 0 5px 0;}
    #mainnav ul.mainnav li.menu-item-has-children:hover > ul.sub-menu {max-height: 674px; padding: 0; overflow: visible; margin-top: -6px;}

    #mainnav ul.mainnav li.menu-item-has-children ul.sub-menu li:hover {background: var(--primary-color);}
    #mainnav ul.mainnav li.menu-item-has-children ul.sub-menu li:hover a {color: #fff;}
    #mainnav ul.mainnav li.menu-item-has-children ul.sub-menu li a {color:var(--text-color);padding: 10px;}
    #mainnav ul.mainnav li.menu-item-has-children ul.sub-menu li.current-menu-item a {color: #fff;background:var(--primary-color);transition: var(--transition);}
    #mainnav ul.mainnav li.menu-item-has-children ul.sub-menu li:last-child {margin-bottom: 0;}

    /* Zweite Ebene */

    #mainnav ul.mainnav li.menu-item-has-children ul.sub-menu li.menu-item-has-children ul.sub-menu {position: absolute; left: 100%; top: 6px; overflow: hidden;}
    #mainnav ul.mainnav li.menu-item-has-children ul.sub-menu li.menu-item-has-children:hover ul.sub-menu {overflow: visible;}
    #mainnav ul.mainnav li.menu-item-has-children ul.sub-menu li.menu-item-has-children ul.sub-menu li {background: #f5f5f5;}
    #mainnav ul.mainnav li.menu-item-has-children ul.sub-menu li.menu-item-has-children ul.sub-menu li a {color: var(--text-color);}
    #mainnav ul.mainnav li.menu-item-has-children ul.sub-menu li.menu-item-has-children ul.sub-menu li:hover a {color: var(--primary-color);}

    /* Desktop ausblenden */

    #mainnav .head,
    #mainnav address.contact,
    #mainnav ul.mainnav li.back {display: none;}
}

@media (max-width: 4500px) {


    /* Offcanvas */

    #mainnav-smart ul.mainnav.smart {display:block;}
    #mainnav-smart {position: fixed; top: 0; right: 0; bottom: 0; background: rgba(254,252,240, 0.9); width: 100%; max-width: 850px; transform: translateX(100%); transition: var(--transition); box-shadow: var(--box-shadow); z-index: 88;}
    #mainnav-smart.active {transform: translateX(0); transition: var(--transition);}
    #mainnav-smart .head {display: grid;grid-template-columns: auto auto 55px; align-items: center; padding: 20px 20px 20px 0; box-sizing: border-box; box-shadow: 0 0 8px rgba(0,0,0,0.05);}
    #mainnav-smart .head p {margin: 0; font-size: 25px; color: var(--text-color);}
    #mainnav-smart .head .buttons {display: flex; justify-content: center;justify-self: end;}

    #mainnav-smart .head .buttons a {width: 50px; height: 50px; border-radius: 2px; background: var(--primary-color); margin-left: 5px; display: flex; align-items: center; justify-content: space-around; }
    #mainnav-smart .head .buttons a:first-child {margin-left: 0;}
    #mainnav-smart .head .buttons a svg {width: 25px; height: 25px;}
    #mainnav-smart .head .buttons a svg g path {stroke: #fff}

    /* Submenu */

    #mainnav-smart ul.mainnav.smart {display: block;}
    #mainnav-smart ul.mainnav li {padding: 0; box-sizing: border-box; margin:0; border-bottom: 1px solid rgba(255,255,255, 0.5);background: none;list-style-type: none;}
    #mainnav-smart ul.mainnav li:hover {padding: 0; box-sizing: border-box; margin:0; background:none;list-style-type: none;}
    #mainnav-smart ul.mainnav li.current-menu-item a{background:var(--primary-color);list-style-type: none;}
    #mainnav-smart ul.mainnav li.current_page_ancestor a {background:var(--primary-color);}
    #mainnav-smart ul.mainnav li.menu-item-1117 {background: var(--secondary-color);font-weight: 700;color: #fff;list-style-type: none;position: absolute;top: 20px;right: 200px;text-align: center;border-radius: 30px;}
    #mainnav-smart ul.mainnav li a {padding: 10px 45px 10px 5%;display: block;text-transform: uppercase;font-size:20px;}
    #mainnav-smart ul.mainnav li:hover a {color:var(--text-color);}
    #mainnav-smart ul.mainnav li.current-menu-item a {color:#fff}
    #mainnav-smart ul.mainnav li.current_page_ancestor a {color:#fff;}
    #mainnav-smart ul.mainnav li.menu-item-1117 a {text-align:center;padding:8px 30px;color:#fff;}
    #mainnav-smart .opensubnav {cursor: pointer; width: 49px; height: 52px; position: absolute; right: 0; background:none; display: block; z-index: 100; box-sizing: border-box;}
    #mainnav-smart .opensubnav.active {background: var(--primary-color);}
    #mainnav-smart .opensubnav:after  {content: ''; transform: rotate(-45deg) translate(-50%, -50%); border: solid var(--text-color); border-width: 0 4px 4px 0; display: inline-block; padding: 3px; left: 50%; top:42%; position: absolute; transition: var(--transition);}
    #mainnav-smart .opensubnav.active:after  {content: ''; transform: rotate(45deg); -webkit-transform: rotate(45deg);  border: solid #fff; border-width: 0 4px 4px 0; left: 19px; top:18px; transition: var(--transition);}
    #mainnav-smart ul.mainnav li.current-menu-item .opensubnav:after {content: ''; transform: rotate(-45deg) translate(-50%, -50%); border: solid #fff; border-width: 0 4px 4px 0; display: inline-block; padding: 3px; left: 50%; top:42%; position: absolute; transition: var(--transition);}
    #mainnav-smart ul.mainnav li.current-menu-item .opensubnav.active:after  {content: ''; transform: rotate(45deg); -webkit-transform: rotate(45deg);  border: solid #fff; border-width: 0 4px 4px 0; left: 19px; top:18px; transition: var(--transition);}
    #mainnav-smart ul.mainnav li.current-page-ancestor .opensubnav:after {content: ''; transform: rotate(-45deg) translate(-50%, -50%); border: solid #fff; border-width: 0 4px 4px 0; display: inline-block; padding: 3px; left: 50%; top:42%; position: absolute; transition: var(--transition);}
    #mainnav-smart ul.mainnav li.current-page-ancestor .opensubnav.active:after  {content: ''; transform: rotate(45deg); -webkit-transform: rotate(45deg);  border: solid #fff; border-width: 0 4px 4px 0; left: 19px; top:18px; transition: var(--transition);}
    #mainnav-smart address.contact {padding: 5%; box-sizing: border-box; display: block;}

    /* Offcanvas Sub Layer 1 */

    #mainnav-smart li.menu-item-has-children ul.sub-menu {display: none; transition: var(--transition); margin-bottom: 0;}
    #mainnav-smart li.menu-item-has-children.active ul.sub-menu {display: block;margin-left: 5%;margin-bottom:30px}
    #mainnav-smart li.menu-item-has-children.active ul.sub-menu li {border-bottom:0;font-size:16px;}
    #mainnav-smart li.menu-item-has-children.active ul.sub-menu li a {color:var(--text-color);font-size:16px;background:none;padding: 0;margin:10px 0}
    #mainnav-smart li.menu-item-has-children.active ul.sub-menu li:hover a {background:none;}
    #mainnav-smart li.menu-item-has-children.active ul.sub-menu li.current-menu-item {background:none;}
    #mainnav-smart li.menu-item-has-children.active ul.sub-menu li.current-menu-item a {background:none;color:var(--primary-color);}
    #mainnav-smart li.menu-item-has-children.active ul.sub-menu li ul.sub-menu li a {padding-left: 10%;}

    /* Offcanvas Sub Layer 2 */

    #mainnav-smart li.menu-item-has-children ul.sub-menu li.menu-item-has-children .opensubnav {background: #f5f5f5;}
    #mainnav-smart li.menu-item-has-children.active ul.sub-menu li.menu-item-has-children ul.sub-menu {display: none; transition: var(--transition);}
    #mainnav-smart li.menu-item-has-children.active ul.sub-menu li.menu-item-has-children.active ul.sub-menu {display: block; transition: var(--transition);}

    #mainnav-smart ul.offcanvas-menu li.back a:before {display: none;}

    /* Mainnav Toggle */

    .mainnav-toggle {border-radius: 2px; display: block!important; position: relative; z-index: 10;width: 50px;height: 50px;background: var(--primary-color);box-shadow:none; transition: var(--transition);}
    .mainnav-toggle.off {border-radius: 2px; display: block!important; position: fixed; z-index: 10; top: 50px; right: 30px;transform: translateY(-50%);width: 40px;height: 40px;background:none;transition: var(--transition);}
    .scrolled .mainnav-toggle.off {top: 45px;transition: var(--transition);}
    .mainnav-toggle.off.active {display:none!important}
    .mainnav-toggle .btn-mainnav-toggle {position: absolute;top: 50%;left: 50%;transform: translate(-50%, -50%);width: 35px;cursor: pointer;}
    .mainnav-toggle .btn-mainnav-toggle span {display: block;width: 100%;border-radius: 0;height: 3px;background: var(--primary-color);transition: all .3s;position: relative;}
    .mainnav-toggle.active .btn-mainnav-toggle span {display: block;width: 100%;border-radius: 4px;height: 2px;background: #fff;transition: all .3s;position: relative;}
    .mainnav-toggle .btn-mainnav-toggle span + span {margin-top: 7px;}
    .mainnav-toggle .btn-mainnav-toggle.active span + span {margin-top: 13px;}
    .mainnav-toggle .btn-mainnav-toggle.active span:nth-child(1) {animation: ease .7s top forwards;}
    .mainnav-toggle .btn-mainnav-toggle.not-active span:nth-child(1) {animation: ease .7s top-2 forwards;}
    .mainnav-toggle .btn-mainnav-toggle.active span:nth-child(2) {animation: ease .7s scaled forwards;}
    .mainnav-toggle .btn-mainnav-toggle.not-active span:nth-child(2) {animation: ease .7s scaled-2 forwards;}
    .mainnav-toggle .btn-mainnav-toggle.active span:nth-child(3) {animation: ease .7s bottom forwards;}
    .mainnav-toggle .btn-mainnav-toggle.not-active span:nth-child(3) {animation: ease .7s bottom-2 forwards;}

    @keyframes top { 0% {top: 0; transform: rotate(0);} 50% {top: 15px;transform: rotate(0);} 100% {top: 15px;transform: rotate(45deg);} }
    @keyframes top-2 { 0% {top: 15px;transform: rotate(45deg);} 50% {top: 15px;transform: rotate(0deg);} 100% {top: 0;transform: rotate(0deg);} }
    @keyframes bottom { 0% {bottom: 0;transform: rotate(0);} 50% {bottom: 15px;transform: rotate(0);} 100% {bottom: 15px;transform: rotate(135deg);} }
    @keyframes bottom-2 { 0% {bottom: 15px;transform: rotate(135deg);} 50% {bottom: 15px;transform: rotate(0);} 100% {bottom: 0;transform: rotate(0);} }
    @keyframes scaled { 50% {transform: scale(0);} 100% {transform: scale(0);} }
    @keyframes scaled-2 { 0% {transform: scale(0);} 50% {transform: scale(0);} 100% {transform: scale(1);} }

    #mainnav-overlay {position: fixed; top: 0; right: 0; left: 0; bottom: 0; background: rgba(0,0,0,0.2); backdrop-filter: blur(7px); opacity: 0; z-index: -5; transition: var(--transition); visibility: hidden;}
    #mainnav-overlay.active {opacity: 1; z-index: 1; visibility: visible; transition: var(--transition);}
}
/* ########## Header ########## */

header {position: fixed;background: linear-gradient(0deg, rgba(255, 255, 255, 0.9) 0%, rgba(255, 255, 255, 1) 100%);top: 0; width: 100%; z-index: 10; padding: 20px 0; box-sizing: border-box; box-shadow: var(--box-shadow);transition: var(--transition);}
.scrolled header {background: linear-gradient(0deg,rgba(255, 255, 255, 0.9) 0%, rgba(255, 255, 255, 1) 100%);padding: 15px 0;box-shadow: var(--box-shadow);transition: var(--transition);}
header .header-grid {display: grid; grid-template-columns: 300px auto; grid-template-rows: auto; justify-items: start; align-items: center; justify-content: space-between;transition: var(--transition);}
.scrolled header .header-grid {display: grid; grid-template-columns: 180px auto; grid-template-rows: auto; justify-items: start; align-items: center; justify-content: space-between;transition: var(--transition);}
header .header-grid .logo {width: 100%;}
header .header-grid .logo a {display: flex; align-items: center;}
header .header-grid .mainnav-toggle {display: none;justify-self: end;}

/* Kopfbereich Startseite / Unterseite  */

.stage {aspect-ratio: 2/1; width: 100%; min-height: 400px; position: relative;}
.stage.frontpage::after { content: ''; position: absolute; inset: 0; background: rgba(0,0,0,0.52); z-index: 1; pointer-events: none; }
.stage.mb {margin-bottom:0;}
.stage .wrp {display:grid;grid-template-columns:70% auto;position: absolute; top: 50%; left: 50%; transform: translate(-50%,-50%); z-index: 2;}
.stage img {width: 100%; height: 100%; object-fit: cover; object-position: center;}
.stage .wrp h2 {font-size:40px;line-height:50px;}
.stage.frontpage .stage-content { color: #fff; text-shadow: 0 2px 8px rgba(0,0,0,0.5); }
.stage.frontpage .stage-content h1,
.stage.frontpage .stage-content h2,
.stage.frontpage .stage-content p { color: #fff; text-shadow: 0 2px 8px rgba(0,0,0,0.5); }
.stage.frontpage .stage-content strong { color: #fff; text-shadow: 0 2px 12px rgba(0,0,50,0.6); }
.stage.subpage {aspect-ratio: 2/.85; width: 100%; position: relative;}
.single-post .stage.subpage {max-height:400px;}
.stage.subpage .wrp {
    display: block;
    position: relative;
    transform: inherit;
    left: 0;
    margin: 0;
    width: 100%;
    max-width:650px;
    background:rgba(255,255,255, 0.9);border-radius:50px;padding:40px;box-sizing:border-box;
}
.single-haustyp .introblock  .wrp {
    position: absolute;
    top:-30vw;
    left: 0;
    margin: 0;
    width: 100%;
    max-width:650px;
    background:rgba(255,255,255, 0.9);border-radius:50px;padding:40px;box-sizing:border-box;
}
.stage .wrp .siegel img {max-width:240px;opacity:0.55;transition: var(--transition);}
.stage .wrp .siegel:hover img {opacity:1;transition: var(--transition);}
.stage video {width: 100%;height: 100%;object-fit: cover;}
.introblock {position:relative;max-width:1240px;margin:0 auto;top:-65%;width: 90%;}

.introblock p {margin:0;}
.stage.subpage .introblock h1, .stage.subpage .introblock h2 {font-size:32px;line-height:42px;margin:0 0 20px 0}

    /* ########## Content ########## */

.boxen .wrp {display:grid;grid-template-columns: 1fr 1fr 1fr;gap:40px;}
.boxen .wrp .box {position:relative;padding:30px;box-sizing: border-box;border:1px solid #e6e4e4;border-bottom-right-radius: 50px;background:rgba(0, 90, 172, 0.06)}
.boxen .wrp .box img {width:40px;height:40px;position:absolute;right:30px; bottom:30px;}
.boxen .wrp .box svg {width:40px;height:40px;position:absolute;right:30px; bottom:30px;}

.boxshow {display:none;background:var(--primary-color);position:fixed;padding:20px;box-sizing: border-box;border:1px solid #ccc;border-bottom-right-radius: 50px;bottom:50px;right:50px;transition: var(--transition);}
.boxshow:hover {background:var(--secondary-color);transition: var(--transition);}
.boxshow h3 {font-size:14px;line-height:25px;color:#fff;}
.boxshow h3 strong{color:#fff;}

.gallery-item.hidden { display: none; }
.load-more-wrp { text-align: center; margin-top: 20px; }
.load-more-gallery {
    background: #333;
    color: #fff;
    border: none;
    padding: 10px 20px;
    cursor: pointer;
    border-radius: 4px;
    transition: background 0.2s ease;
}
.load-more-gallery:hover { background: #555; }

.fr-window-skin-fresco .fr-thumbnail-active .fr-thumbnail-wrapper {background:#fff!important}
.fr-window-skin-fresco .fr-thumbnail-wrapper {
    box-shadow: 0 -1px 4px rgba(0, 0, 0, .3);
    background: #fff;
}


/* Text */

.text.multiple-col .wrp {-webkit-columns: 2 350px; -moz-columns: 2 350px; columns: 2 350px; -webkit-column-gap: 4em; -moz-column-gap: 4em; column-gap: 4em;}
.text.align-center {text-align: center;}

/* Text Read-More (Mobile) */
@media (max-width: 480px) {
    .text--collapsed { margin-bottom: 0 !important; }
    .text--collapsed .wrp { max-height: 115px; overflow: hidden; position: relative; }
    .text--collapsed .wrp::after { content: ''; position: absolute; bottom: 0; left: 0; right: 0; height: 60px; background: linear-gradient(to bottom, transparent, #fff); pointer-events: none; }
    .text-readmore-btn { display: block; margin: 4px auto 40px; background: none; border: 1px solid var(--primary-color); color: var(--primary-color); font-size: 14px; font-weight: 600; padding: 8px 22px; border-radius: 40px; cursor: pointer; transition: var(--transition); }
    .text-readmore-btn:hover { background: var(--primary-color); color: #fff; }
}

/* Text Bild */

.textbild {margin-bottom:50px;}
.textbild:last-of-type {margin-bottom:100px;}
.textbild .wrp { position: relative; }
.textbild-link { position: absolute; inset: 0; z-index: 1; cursor: pointer; }
.textbild .text h2, .textbild .text p, .textbild .text div { transition: color var(--transition); }
.textbild:hover .text h2 { color: var(--secondary-color); }
.textbild:hover .text h2 strong { color: var(--primary-color); }
.textbild:hover .text p, .textbild:hover .text > div { color: var(--secondary-color); }
.textbild.erstbild .wrp {border-bottom-right-radius: 50px;border-bottom-left-radius: 0; }
.textbild .wrp {border-bottom-left-radius: 50px;border-bottom-right-radius: 0; }
.textbild .wrp {display: grid; align-items: center; justify-content: space-between; box-sizing: border-box; background: #fff;border:1px solid #E6E4E4;}
.textbild.erstbild .text {box-sizing: border-box;padding:40px 40px 40px 0}
.textbild.ersttext .text {box-sizing: border-box;padding:40px}
.textbild .bild {width: 100%; height: 100%;}
.textbild .bild img {width: 100%; height: 100%; object-fit: cover;}
.textbild .text h2 {margin: 0 0 20px 0;font-size: 28px;line-height: 38px;font-weight: 400;text-transform: uppercase;}
.textbild.erstbild .wrp .text .arrow {position:absolute;right:40px;bottom:20px;width:35px;height:35px;}
.textbild.ersttext .wrp .text .arrow {position:absolute;right:40px;bottom:20px;width:35px;height:35px;}


/* Teasercards */

.teasercards .cards.no-carousel {display: grid; gap:40px; margin: 0;}
.haustyp-wrp.teasercards .cards.no-carousel {display: grid; grid-template-columns: repeat(3, 1fr);grid-column-gap: 20px; grid-row-gap: 20px; margin: 0;}
.haustyp-wrp.teasercards .cards.no-carousel .bild{width: 100%;aspect-ratio: 2 / 1.5;display: block;}
.haustyp-wrp.teasercards .cards.no-carousel .bild img{width: 100%;height: 100%;object-fit: cover;border-bottom-right-radius: 50px;}
.teasercards .cards.no-carousel.custom {display: block;margin: 0;}
.teasercards .cards.custom .teasercard-item:nth-child(odd) {display: grid; grid-template-columns:35% auto;align-items: center;justify-content: space-between;border:1px solid #E6E4E4;border-bottom-right-radius: 50px;margin-bottom:50px;}
.teasercards .cards.custom .teasercard-item:nth-child(even) {display: grid; grid-template-columns: auto 35%;align-items: center;justify-content: space-between;border:1px solid #E6E4E4;border-bottom-left-radius: 50px;margin-bottom:50px;}
.teasercards .cards.custom .teasercard-item:nth-child(odd) .img-wrp {order:1}
.teasercards .cards.custom .teasercard-item:nth-child(odd) .teasercard-content {order:2;padding: 0 40px;}
.teasercards .cards.custom .teasercard-item:nth-child(even) .img-wrp {order:2}
.teasercards .cards.custom .teasercard-item:nth-child(even) .teasercard-content {order:1;box-sizing: border-box;padding: 0 40px;}
.teasercards .cards.custom .teasercard-item .img-wrp img {border-bottom-right-radius: 0}
.teasercards .cards.custom .teasercard-item h2 {
    margin: 0 0 20px 0;
    font-size: 28px;
    line-height: 38px;
    font-weight: 400;
    text-transform: uppercase;
}
.teasercards .cards.custom .teasercard-item:nth-child(even) .teasercard-content .arrow {
    position: absolute;
    left:59%;
    bottom: 20px;
    width: 35px;
    height: 35px;
}
.teasercards .cards.custom .teasercard-item:nth-child(odd) .teasercard-content .arrow {
    position: absolute;
    right: 40px;
    bottom: 20px;
    width: 35px;
    height: 35px;
}

@media (max-width: 768px) {
    .textbild .text {order: 2!important;border: 1px solid #E6E4E4;border-bottom-right-radius: 50px;border-bottom-left-radius: 0;}
    .textbild .bild {order: 1!important;display:block;width:100%;aspect-ratio:2/1;height:auto !important;overflow:hidden;}
    .textbild .bild img {width:100%;height:100%;object-fit:cover;}
    .textbild .wrp {grid-template-columns: 100%!important; gap: 0;border:0;}
    .textbild.erstbild .text,.textbild.ersttext .text {padding:30px 70px 30px 30px;}
    .textbild.ersttext .wrp .text .arrow,.textbild.erstbild .wrp .text .arrow {left:inherit;right:30px;}
    .teasercards .cards.custom .teasercard-item:nth-child(even) .teasercard-content .arrow {left:inherit;right:40px;}
}

.haustyp-wrp.teasercards.single .wrp .zufalls-haustypen{display: grid; grid-template-columns:repeat(3, 1fr);grid-column-gap: 40px; grid-row-gap: 40px; margin: 0;}
.haustyp-wrp.teasercards.single .wrp .zufalls-haustypen .teasercard-item {position:relative;}
.haustyp-wrp.teasercards.single .wrp .zufalls-haustypen .teasercard-item .teasercard-content {margin:15px 0 0 5px}
.haustyp-wrp.teasercards.single .wrp .zufalls-haustypen .teasercard-item .teasercard-content h3 {font-size: 22px;line-height: 32px;margin: 0;}
.haustyp-wrp.teasercards.single .wrp .zufalls-haustypen .teasercard-item .teasercard-content .wohn {font-size: 16px;line-height:18px;background-size: 50px;padding-left: 60px;}
.haustyp-wrp.teasercards.single .wrp .zufalls-haustypen .teasercard-item .teasercard-content .zimmer {font-size: 16px;line-height:18px;background-size: 50px;padding-left: 65px; background: url(assets/icon-zimmer.svg) left bottom no-repeat;}
.haustyp-wrp.teasercards.single .wrp .zufalls-haustypen .teasercard-item .teasercard-content .arrow { position: absolute;right: 20px;bottom: 10px;width: 35px;height: 35px;}
.haustyp-wrp.teasercards.single .wrp .zufalls-haustypen .teasercard-item .teasercard-content .headline {font-size: 16px;font-weight: 600;line-height:18px;}
.haustyp-wrp.teasercards.single .wrp .zufalls-haustypen .teasercard-item .bild img{width:100%;height:100%;object-fit: cover;aspect-ratio: 2 / 1.3;border-bottom-right-radius: 50px;}
.teasercards.blogg .cards.no-carousel {display: grid; grid-template-columns:repeat(2, 1fr);grid-column-gap: 20px; grid-row-gap: 20px; margin: 0;}
.teasercards .cards.no-carousel li {list-style-type: none; margin: 0;}
.teasercards .splide ul.cards {display: flex; grid-column-gap: unset;}
.shortcode .teasercards .cards h2 {font-size:26px;line-height:38px;margin:15px 5px}
.teasercards .cards h3 {font-size:22px;line-height:32px;margin:10px 5px}
.teasercard-item .img-wrp {width: 100%; aspect-ratio: 2/1.5; display: block;}
.teasercard-item .img-wrp img {width: 100%; height: 100%; object-fit: cover;border-bottom-right-radius: 50px}

.teasercards .cards .teasercard-item {position:relative}
.teasercards .cards .arrow {position: absolute;right: 20px;bottom: 10px;width: 35px;height: 35px;}

.teasercard-item .teasercard-content {display: block;}
.teasercard-item .teasercard-content .btn {display: inline-block;}

.teasercards.blogg .teasercard-content p {margin:0 5px;}
/* Ab-Preis Badge auf Teasercards */
.teasercard-item .img-wrp { position:relative; }
.ab-preis-badge { position:absolute; bottom:12px; left:12px; background:var(--primary-color); color:#fff; font-size:13px; font-weight:700; line-height:1; padding:6px 12px; border-radius:4px; pointer-events:none; z-index:2; }

.splide__arrow--next {right:50px!important}
.splide__arrow--prev {left:50px!important}
.splide__pagination {bottom: -35px!important}
.splide__pagination__page {background:#C7C7C7!important;border-radius:0!important;width:13px!important;height:13px!important;margin:5px!important}
.splide__pagination__page.is-active {transform:scale(1)!important;opacity:1!important;background:var(--primary-color)!important;}
/* Teasercard-Item im Splide-Slider */
.splide__list .teasercard-item { display:block; position:relative; background:none; }
.splide__list .teasercard-item .img-wrp { width:100%; aspect-ratio:2/1.5; display:block; position:relative; overflow:hidden; border-bottom-right-radius:50px; background:none; }
.splide__list .teasercard-item .img-wrp img { width:100%; height:100%; object-fit:cover; display:block; border-bottom-right-radius:50px; }
.splide__list .teasercard-item .teasercard-content { display:block; position:static; background:none !important; padding:0; margin:10px 5px 0; }
.splide__list .teasercard-item .teasercard-content h3 { font-size:22px; line-height:32px; margin:0 0 5px; color:var(--text-color); }
.splide__list .teasercard-item .teasercard-content .btn { display:none; }

.hausboxen .wrp .grid .box {position:relative;background-size:cover!important;}
.hausboxen .wrp .grid .box .link{position:absolute;width:100%;height:100%;z-index:10}
.hausboxen .wrp .grid .box .bild {width:100%;display:block;object-fit:cover;aspect-ratio:2/1.5;overflow:hidden;border-bottom-right-radius:50px;}
.hausboxen .wrp .grid .box .bild img {width:100%;height:100%;object-fit:cover;display:block;border-bottom-right-radius:50px;}
.hausboxen .wrp .grid .box .boxcontent {width:100%;position:static;background:none;padding:10px 5px 0;max-height:none;box-sizing:border-box;}
.hausboxen .wrp .grid .box .boxcontent .headline {font-weight:700;color:var(--text-color);transition:color var(--transition);}
.hausboxen .wrp .grid .box .boxcontent .subheadline {font-size:16px;font-weight:400;color:var(--text-color);transition:color var(--transition);}
.hausboxen .wrp .grid .box .boxcontent .arrow{position:absolute;right:20px;bottom:10px;width:35px;height:35px;}
.hausboxen .wrp .grid .box:hover .boxcontent .headline,.hausboxen .wrp .grid .box:hover .boxcontent .subheadline{color:var(--secondary-color);}
/* Hausboxen im Splide-Slider: Layout wie Teasercards */
.hausboxen.splide .box { display:block; }
.hausboxen.splide .box .bild { width:100%; aspect-ratio:2/1.5; object-fit:cover; display:block; overflow:hidden; border-bottom-right-radius:50px; height:auto; }
.hausboxen.splide .box .bild img { width:100%; height:100%; object-fit:cover; display:block; border-bottom-right-radius:50px; }
.hausboxen.splide .box .boxcontent { position:static; background:none !important; padding:10px 5px 0; max-height:none; width:100%; box-sizing:border-box; }
.hausboxen.splide .box .boxcontent .headline { color:var(--text-color); font-size:22px; line-height:32px; font-weight:700; text-transform:uppercase; transition:color var(--transition); }
.hausboxen.splide .box .boxcontent .subheadline { color:var(--text-color); font-size:16px; line-height:22px; font-weight:400; transition:color var(--transition); }
.hausboxen.splide .box:hover .boxcontent .headline,.hausboxen.splide .box:hover .boxcontent .subheadline { color:var(--secondary-color); }
/* Custom Nav über dem Slider */
.hausboxen-wrapper.mb {margin-bottom:50px;}
.hausboxen-nav-wrp { position:relative; height:0; overflow:visible; z-index:10; }
.hausboxen-nav { position:absolute; bottom:16px; right:0; display:flex; gap:8px; }
.hausboxen.splide .splide__pagination { display:none; }
.haus-arrow { display:flex; align-items:center; justify-content:center; width:44px; height:44px; background:transparent; border:none; cursor:pointer; transition:opacity var(--transition); }
.haus-arrow svg { fill:var(--secondary-color); transition:opacity var(--transition); }
.haus-arrow--prev svg { transform:scaleX(-1); }
.haus-arrow:hover { opacity:.6; }

@media (max-width: 1024px) {
    .teasercards .cards.no-carousel {grid-template-columns: repeat(2, 1fr)!important;}
}

@media (max-width: 500px) {
    .teasercards .cards.no-carousel {grid-template-columns: 100% !important;}
}

.ui-menu {background:#fff;padding:10px;box-sizing: border-box;border:1px solid #eee;max-width:400px;box-shadow: 0 0 5px rgba(0,0,0, 0.5)}
.ui-menu li{display:block;font-size:16px;cursor:pointer;margin:0 0 2px 0;list-style-type: none;background:#eee;box-sizing:border-box;transition: var(--transition);}
.ui-menu li div{display:block;padding:5px 10px;box-sizing:border-box;}
.ui-menu li:hover{background:#ccc;transition: var(--transition);}

/* Image */

.image img {display:block; width:100%; height:auto;}

.bildtrenner {width:100%;display:block;padding:50px 0;position: relative;background:var(--primary-color);background-image:url("data:image/svg+xml,%3Csvg width='40' height='40' viewBox='0 0 40 40' xmlns='http://www.w3.org/2000/svg'%3E%3Cpath d='M0 40L40 0M-5 5L5-5M35 45L45 35' stroke='rgba(255,255,255,0.035)' stroke-width='1.5' fill='none'/%3E%3C/svg%3E");}
.bildtrenner img {width:100%; height: 100%; object-fit: cover; object-position: center;}
.bildtrenner .wrp {font-size:24px;line-height:35px;font-weight:700;text-transform:uppercase;text-align: center;color:#fff;}

.plz-suche {display:block;margin-bottom:15px;}
.plz-suche .search {width:250px;display:inline-block;}
.plz-suche .go {width:50px;display:inline-block;border:1px solid #ccc;box-sizing: border-box;padding:5px;text-align:center;cursor:pointer}
.plz-suche .search input[type="search" i] {width:250px;box-sizing: border-box;padding:10px;}

.basispreis {display:none;position: fixed;
    width: 85%;
    max-width:1240px;
    height: auto;
    background: #fff;
    top: 50%;
    left: 50%;
    transform: translate(-50%, -50%);
    z-index: 100;
    padding: 40px;
    box-sizing: border-box;
    box-shadow: 0 0 10px rgba(0, 0, 0, 0.5);}
.basispreis.active {display:block}
.basispreis .close {cursor:pointer;font-size:20px;font-weight:700;position:absolute;right:10px;top:10px;padding:5px}
.basispreis .adresse {font-weight:700;}
.infobox {display:none;position:fixed; width: 90%;max-width:1240px;
    height: auto;
    background: #fff;
    top: 50%;
    left: 50%;
    transform: translate(-50%, -50%);
    z-index: 100;
    padding: 40px;
    box-sizing: border-box;
    box-shadow: 0 0 10px rgba(0, 0, 0, 0.5);}
.infobox.active {display:block}
.infobox .close {cursor:pointer;font-size:20px;font-weight:700;position:absolute;right:10px;top:10px;padding:5px}

.info {display:inline-block;vertical-align: middle;cursor:pointer}

/* Basis-Tabelle */
table.baukosten {
    width: 100%;
    border-collapse: collapse;
    border-spacing: 0;
    font-family: "Arial", sans-serif;
    color:var(--text-color);
    margin: 2rem 0;
}

/* Jede „Zeile“ */
.tabelle,
.tabelle-kfw {
    display: grid;
    grid-template-columns: 1fr 1fr 1fr 1fr;
    border-bottom: 1px solid #ddd;
}

/* Kopfzeile leicht hervorheben */
.tabelle:first-of-type {
    background: #f5f5f5;
    font-weight: 600;
    border-top: 2px solid #333;
}

/* Zellen */
.tabelle-wrp-1,
.tabelle-wrp-2,
.tabelle-wrp-3 {
    padding: 0.8rem;
    display: flex;
    align-items: center;
    justify-content: flex-start;
    border-right: 1px solid #e0e0e0;
}

.tabelle-wrp-3:last-child,
.tabelle-wrp-2:last-child,
.tabelle-wrp-1:last-child {
    border-right: none;
}

/* Zellinhalte */
[class^="zelle-"] {
    display: block;
    width: 100%;
}

/* Orange Spalte hervorheben */
.orange,
.zelle-bax {
    background: var(--secondary-color);
    color: #fff;
    font-weight: 600;
}
.tabelle-wrp-3 .zelle-bax {
    font-weight: 700;
    color:var(--text-color);
    background:none;
}

/* Geldwerte schön rechtsbündig */
.zelle-bku,
.zelle-bku_e40,
.zelle-bko,
.zelle-bko_e40,
.zelle-bax {
    text-align: right;
    font-variant-numeric: tabular-nums;
}

/* Untere Tabellenabschnitte (KFW) */
.tabelle-kfw {
    background: #fafafa;
}

/* Kleine Schrift für Fußnoten */
sup {
    font-size: 0.75em;
    vertical-align: super;
}

/* Responsive Verhalten */
@media (max-width: 820px) {
    .tabelle,
    .tabelle-kfw {
        grid-template-columns: 1fr;
        border: none;
    }

    .tabelle-wrp-1,
    .tabelle-wrp-2,
    .tabelle-wrp-3 {
        border-right: none;
        border-bottom: 1px solid #eee;
    }

    .tabelle-wrp-3:last-child {
        border-bottom: none;
    }

    .zelle-bax,
    .zelle-bku_e40,
    .zelle-bko_e40 {
        text-align: left;
    }
    .tabelle-wrp-3 .zelle-bax {color:var(--secondary-color)}
    .zelle-bax {position:relative;}
    .zelle-bax:before {
        content: "2";
        display: inline-block;
        top:-5px;
        position: absolute;
        left:210px;
        font-size: 12px;
    }
    .zelle-bax:after {content:"- Direkt-Festpreis";display:inline-block;margin-left:5px;}
    .zelle-bku_e40:after {content:"- Baukostenuntergrenze (BKU)";display:inline-block;margin-left:5px;}
    .zelle-bko_e40:after {content:"- Baukostenobergrenze (BKO)";display:inline-block;margin-left:5px;}
    .tabelle .tabelle-wrp-2{display:none;}
    .tabelle .tabelle-wrp-2:first-of-type {display:block;}
    .tabelle-wrp-3 .zelle-bauweise {font-weight:600}
}


/* Galerie */


.fr-thumbnail-wrapper { background: #fff; }
.gallery .fresco-gallery:not(.masonry) {display: grid; gap: 50px; margin-bottom: 0;}
.gallery .fresco-gallery li {list-style-type: none; margin: 0 0 25px 0; border-radius: 5px;overflow: hidden;}
.gallery .fresco-gallery:not(.masonry) li {margin: 0;}
.gallery .fresco-gallery li a {position: relative; display: block; overflow: hidden; background: #fff; aspect-ratio: 1;}
.gallery .fresco-gallery li a .overlay {width: 100%; position: absolute; height: 100%; top: 0; left: 0; right: 0; bottom: 0; background: rgba(242, 124, 0, 0); opacity: 0; transition: var(--transition);}
.gallery .fresco-gallery li a:hover .overlay {opacity: 1; background: rgba(242, 124, 0, 0.6);transition: var(--transition);}
.gallery .fresco-gallery li a .overlay .icon-wrp {position: absolute; top: 50%; left: 50%; width: 45px; height: 45px; transform: translate(-50%, -50%);}
.gallery .fresco-gallery li a .overlay .icon-wrp svg {width: 100%; height: 100%; transform: scale(0); transition: var(--transition);}
.gallery .fresco-gallery li a .overlay .icon-wrp svg path {fill: #fff;}
.gallery .fresco-gallery li a:hover .overlay .icon-wrp svg { transform: scale(1); transition: var(--transition);}
.gallery .fresco-gallery li img { width: 100%; height: 100%; object-fit: cover; display: block; }
.gallery .fresco-gallery li img[src$=".svg"],
.gallery .fresco-gallery li img[src$=".SVG"] { object-fit: contain; }
.gallery .fresco-gallery.masonry {gap: 25px; columns: 4; margin: 0 auto;}

.gallery .video-gallery-grid {display: grid; grid-column-gap: 50px; grid-row-gap: 50px;}
.gallery .video-gallery-grid .video-gallery-item {height: 220px; width: 100%; display: block; position: relative; overflow: hidden;}
.gallery .video-gallery-grid .video-gallery-item .overlay {width: 100%; position: absolute; height: 100%; top: 0; left: 0; right: 0; bottom: 0; background: var(--secondary-color); opacity: 0; transition: var(--transition); z-index: 4;}
.gallery .video-gallery-grid .video-gallery-item:hover .overlay {opacity: 0.6; transition: var(--transition);}
.gallery .video-gallery-grid .video-gallery-item .overlay .icon-wrp {position: absolute; top: 50%; left: 50%; width: 45px; height: 45px; transform: translate(-50%, -50%);}
.gallery .video-gallery-grid .video-gallery-item .overlay .icon-wrp svg {width: 100%; height: 100%; transform: scale(0); transition: var(--transition);}
.gallery .video-gallery-grid .video-gallery-item .overlay .icon-wrp svg path {fill: #fff!important;}
.gallery .video-gallery-grid .video-gallery-item:hover .overlay .icon-wrp svg { transform: scale(1); transition: var(--transition);}
.gallery .video-gallery-grid .video-gallery-item img {height: 100%; width: 100%; object-fit: cover; object-position: center; transform: scale(1.2);}

@media (max-width: 480px) {
  .gallery .fresco-gallery {grid-template-columns: repeat(34, 1fr)!important;}
  .gallery .video-gallery-grid {grid-template-columns: repeat(2, 1fr)!important;}
  .gallery .filterrow {display: grid; grid-template-columns: 100%; gap: 25px;}
  .gallery .filterrow #filter {flex-wrap: wrap;}
}

@media (max-width: 450px) {
  .gallery .video-gallery-grid {grid-template-columns: 100%!important;}
  .gallery .fresco-gallery {grid-template-columns: repeat(2, 1fr)!important;}
}

.gallery.privat .wrp {display:grid;grid-template-columns: 1fr 1fr 1fr;gap:20px;}
.gallery.privat .wrp ul li a{width: 100%;height: 100%;object-fit: cover;}
.gallery.privat .wrp ul li a img{width: 100%;height: 100%;object-fit: cover;}
.gallery.privat .wrp ul li a .boxtext {font-size:16px;display:block;position:absolute;top:130px;width:100%;z-index:10;text-transform:uppercase;color:#fff;text-align:center;}
.gallery.privat .wrp ul li a .boxtext span{font-size:18px;display:block;font-weight:700;}
.gallery.privat .fresco-gallery li a .overlay .icon-wrp {top: 55%;}


/* oEmbed */

.embed .respo-video{position: relative;height: 0;overflow: hidden;}
.embed .respo-video iframe {position: absolute; top: 0; left: 0; width: 100%;	height: 100%;}
.embed .respo-video ._brlbs-cb-youtube {margin-bottom: -56.25%;}

/* Bax */

.bax .wrp {display:grid;grid-template-columns: 1fr 1fr;gap:20px;}
.bax .wrp .baxcon, .bax .wrp .beispiel{padding: 30px;box-sizing: border-box;border: 1px solid #ccc;border-bottom-right-radius: 50px;}
.bax .wrp h3 {margin: 0;font-size: 20px;line-height: 30px;font-weight: 400;text-transform: uppercase;}
.bax .wrp ul {margin:10px 0;list-style-type: none}
.bax .wrp ul li {margin:0 0 5px 0;font-weight:700;font-size:20px}
.bax .wrp .baxwert {font-size:30px;font-weight:700;margin:20px 0}
.bax .wrp em {font-size:16px;line-height:18px;}

.logos .wrp {display:grid;grid-template-columns: 1fr 1fr 1fr 1fr;gap:20px;align-items: center;justify-items: center}
.logos .wrp .logo {border:1px solid #ccc;padding:20px;box-sizing: border-box}
.logos .wrp .logo img {width:100%;height:auto;}

    /* Accordion */

.accordion-phase-header {margin:35px 0 15px;text-transform:uppercase;font-size:13px;font-weight:700;letter-spacing:.08em;color:var(--secondary-color);scroll-margin-top:150px;}
.accordion-phase-header:first-child {margin-top:0;}

.accordion .item-accordion-head {cursor: pointer; position: relative;margin-bottom:10px; padding:15px 25px 15px 20px; border: 1px solid #ccc;font-size:20px;font-weight:600;text-transform: uppercase;color:var(--primary-color)}
.accordion .item-accordion-head .item-accordion-title {display:inline;font-size:inherit;font-weight:inherit;color:inherit;text-transform:inherit;margin:0;padding:0;}
.accordion .active .item-accordion-head {background:var(--primary-color);color:#fff;}
.accordion .item-accordion-btn {width: 26px; height: 26px;float: right; margin: 0; cursor: pointer; position: absolute; right: 5px; top: 50%; transform: translateY(-50%);}
.accordion .item-accordion-btn:before {content: '-';position: absolute; width: 26px; height: 26px; text-align: center; line-height: 22px; font-size: 30px;font-weight:700;color:var(--primary-color)}
.accordion .item-accordion {margin-bottom: 5px; }
.accordion .item-accordion ul {list-style-type: none;}
.accordion .item-accordion ul li {margin:0;background:url(assets/icon-list.png) left 8px no-repeat;background-size:17px;padding-left:25px;}
.accordion .item-accordion.hidden .item-accordion-btn:before {content: '+'; line-height: 26px;}
.accordion .item-accordion.active .item-accordion-btn:before {content: '-'; line-height: 22px;color:#fff;}
.accordion .item-accordion.hidden.active .item-accordion-btn:before {content: '-'; line-height: 22px;}
.accordion .item-accordion-content {
    display: grid;
    grid-template-rows: 0fr;
    transition: grid-template-rows 0.4s ease-in-out, padding 0.4s ease-in-out, margin 0.4s ease-in-out;
    padding: 0 20px;
    margin-bottom: 0;
}
.accordion .item-accordion-inner {
    overflow: hidden;
}
.accordion .item-accordion.active .item-accordion-content {
    grid-template-rows: 1fr;
    padding: 20px;
    margin-bottom: 20px;
}

/* ########## Blog + Sidebar ########## */

main.withsidebar .content .blog-grid .post {width: 100%;}
main.withsidebar .content .blog-grid .post img {width: 100%; height: auto; object-fit: cover;}

article.singlepost .post-image {}
article.singlepost .post-image img {width: 100%; height: auto; object-fit: cover;}

/* Single Blog Post */
.single-post { padding: 40px 0 60px; }
.single-post__thumbnail { margin-bottom: 30px; border-bottom-right-radius: 50px; overflow: hidden; }
.single-post__thumbnail img { width: 100%; height: auto; display: block; }
.single-post__meta { display: flex; align-items: center; gap: 14px; margin-bottom:0; font-size: 13px; color: #999; }
.single-post__cat { color: var(--secondary-color); font-weight: 700; font-size: 13px; text-transform: uppercase; letter-spacing: .5px; }
.single-post__title { font-size: clamp(24px, 3vw, 38px); line-height: 1.25; font-weight: 900; color: var(--primary-color); margin-bottom: 28px; }
.single-post__content { font-size: 17px; line-height: 1.8; color: var(--text-color); margin-bottom: 30px; }
.single-post__content img { max-width: 100%; height: auto; border-bottom-right-radius: 50px; margin: 20px 0; }
.single-post__content h2, .single-post__content h3 { color: var(--primary-color); margin: 32px 0 12px; }
.single-post__content a { color: var(--secondary-color); text-decoration: underline; }
.single-post__image { margin-bottom: 30px; }
.single-post__image img { width: 100%; height: auto; display: block; border-bottom-right-radius: 50px; }
.single-post__gallery { display: grid; gap: 12px; margin-bottom: 30px; }
.single-post__gallery a { display: block; overflow: hidden; border-bottom-right-radius: 20px; }
.single-post__gallery img { width: 100%; height: 100%; object-fit: cover; display: block; transition: transform var(--transition); }
.single-post__gallery a:hover img { transform: scale(1.04); }

/* Sidebar */

main.withsidebar .sidebar {width: 100%; position: -webkit-sticky; position: sticky; top: 150px; background: #f5f5f5; padding: 25px; box-sizing: border-box;}

/* --- Massivbau Störer --- */
/* --- Massivbau Störer --- */
.massivbau-stoerer { width: 100%; display: block; padding: 50px 0; position: relative; background: var(--primary-color); background-image: url("data:image/svg+xml,%3Csvg width='40' height='40' viewBox='0 0 40 40' xmlns='http://www.w3.org/2000/svg'%3E%3Cpath d='M0 40L40 0M-5 5L5-5M35 45L45 35' stroke='rgba(255,255,255,0.035)' stroke-width='1.5' fill='none'/%3E%3C/svg%3E"); }
.massivbau-stoerer .wrp { font-size: 24px; line-height: 35px; font-weight: 700; text-transform: uppercase; text-align: center; color: #fff; }
@media (max-width: 1100px) { .massivbau-stoerer .wrp { font-size: 20px; line-height: 31px; } }
@media (max-width: 480px) { .massivbau-stoerer .wrp { font-size: 18px; line-height: 1.4; } }

.drei-phasen .wrp .phase-1 {display:grid;grid-template-columns: 20% auto;gap:150px;margin-bottom:100px;align-items: center}
.drei-phasen .wrp .phase-2 {display:grid;grid-template-columns: auto 20%;gap:150px;margin-bottom:100px;align-items: center}
.drei-phasen .wrp .phase-3 {display:grid;grid-template-columns: 20% auto;gap:150px;margin-bottom:100px;align-items: center}
.drei-phasen .wrp .phase-1 svg,.drei-phasen .wrp .phase-12 svg,.drei-phasen .wrp .phase-3 svg {width:90%;height:90%;}
.phase-mehr-link {display:inline-flex;align-items:center;gap:6px;margin-top:18px;font-size:14px;font-weight:600;text-transform:uppercase;letter-spacing:.06em;color:var(--secondary-color);text-decoration:none;transition:opacity .2s;}
.phase-mehr-link .phase-link-arrow {display:inline-flex;flex-shrink:0;}
.phase-mehr-link .phase-link-arrow svg {width:35px!important;height:35px!important;}
.phase-mehr-link:hover {opacity:.7;}
.drei-phasen .wrp h3 {font-size:24px;line-height:34px;margin:0;}
.drei-phasen .wrp h3:after {content:"";display:block;border-top:1px solid var(--secondary-color);margin:20px 0;max-width:50px}
.drei-phasen .wrp h3 strong {color:var(--text-color)}
/* Phasen SVG Zahlen: Startfarbe grau, bei In-View → blau */
.drei-phasen .bild svg g path:first-child { fill: rgba(51,51,51,0.27); transition: fill 0.7s ease; }
.drei-phasen [class^="phase-"].in-view .bild svg g path:first-child { fill: #0359ac; }

@media (max-width: 1024px) {
    main.withsidebar .page-build .sidebar {display: none;}
    #mainnav,.infonav {display:none;}
    .scrolled .mainnav-toggle.off {top: 40px;}
}

@media (max-width: 768px) {
    main.withsidebar .content .blog-grid {grid-template-columns: repeat(2, 1fr);}
}

/* ########## Trust Bar ########## */
.trust-bar { background: rgba(0,90,172,0.06); border-top: 1px solid rgba(0,90,172,0.12); border-bottom: 1px solid rgba(0,90,172,0.12);margin-bottom:50px; }
.trust-bar__list { display: flex; list-style: none; margin: 0; padding: 0; }
.trust-bar__item { flex: 1; border-right: 1px solid rgba(0,90,172,0.12); min-width: 0;margin-left:0;}
.trust-bar__item:last-child { border-right: none; }
.trust-bar__inner { display: flex; align-items: center; gap: 12px; padding: 16px 20px; text-decoration: none; }
a.trust-bar__inner:hover { opacity: 0.75; }
.trust-bar__icon { flex-shrink: 0; width: 38px; height: 38px; background: rgba(242,124,0,.12); border-radius: 50%; display: flex; align-items: center; justify-content: center; color: var(--secondary-color); }
.trust-bar__icon svg { width: 18px; height: 18px; stroke: currentColor; display: block; }
.trust-bar__text { display: flex; flex-direction: column; line-height: 1.25; min-width: 0; }
.trust-bar__label { font-size: 13px; font-weight: 700; color: var(--primary-color); }
.trust-bar__sub { font-size: 11px; color: var(--secondary-color); }
/* Tablet landscape: kompakter */
@media (max-width: 1100px) {
    .trust-bar__inner { gap: 8px; padding: 13px 10px; }
    .trust-bar__icon { width: 30px; height: 30px; }
    .trust-bar__icon svg { width: 14px; height: 14px; }
    .trust-bar__label { font-size: 11px; }
    .trust-bar__sub { font-size: 10px; }
}
/* Tablet portrait: 2-Spalten */
@media (max-width: 768px) {
    .trust-bar__list { display: grid; grid-template-columns: 1fr 1fr; }
    .trust-bar__item { border-right: none; border-bottom: 1px solid rgba(0,90,172,0.12); }
    .trust-bar__item:nth-child(odd) { border-right: 1px solid rgba(0,90,172,0.12); }
    .trust-bar__item:last-child { border-bottom: none; }
    .trust-bar__inner { padding: 14px 18px; gap: 12px; }
    .trust-bar__icon { width: 36px; height: 36px; }
    .trust-bar__icon svg { width: 16px; height: 16px; }
    .trust-bar__label { font-size: 13px; }
    .trust-bar__sub { font-size: 11px; }
}
/* Mobile */
@media (max-width: 480px) {
    .trust-bar__list { grid-template-columns: 1fr 1fr; }
    .trust-bar__item { border-right: none; border-bottom: 1px solid rgba(0,90,172,0.12); }
    .trust-bar__item:nth-child(odd) { border-right: 1px solid rgba(0,90,172,0.12); }
    .trust-bar__item:last-child { border-bottom: none; }
    .trust-bar__inner { padding: 10px 12px; gap: 8px; }
    .trust-bar__icon { width: 28px; height: 28px; }
    .trust-bar__icon svg { width: 13px; height: 13px; }
    .trust-bar__label { font-size: 11px; }
    .trust-bar__sub { font-size: 10px; }
}

/* ########## Footer ########## */

/* --- Newsletter Streifen --- */
.footer-newsletter { background: var(--primary-color); background-image:url("data:image/svg+xml,%3Csvg width='40' height='40' viewBox='0 0 40 40' xmlns='http://www.w3.org/2000/svg'%3E%3Cpath d='M0 40L40 0M-5 5L5-5M35 45L45 35' stroke='rgba(255,255,255,0.035)' stroke-width='1.5' fill='none'/%3E%3C/svg%3E"); padding: 40px 0; }
.footer-newsletter__inner { display: flex; align-items: center; justify-content: space-between; gap: 40px; flex-wrap: wrap; }
.footer-newsletter__kicker { display: block; font-size: 11px; font-weight: 700; text-transform: uppercase; letter-spacing: 2.5px; color: rgba(255,255,255,.65); }
.footer-newsletter__title { font-size: clamp(20px, 2.2vw, 30px); font-weight: 800; color: #fff; line-height: 1.3; margin: 0; }
.footer-newsletter__desc { color: #fff; font-size: 14px;line-height:22px;margin: 8px 0 0 0;padding-bottom:5px; opacity: .75; }
.footer-newsletter__form { display: flex; flex-shrink: 0; min-width: 280px; max-width: 400px; width: 100%; }
.footer-newsletter__form input[type="email"] { flex: 1; padding: 14px 20px; border: 1px solid rgba(255,255,255,.35); border-right: none; border-radius: 40px 0 0 40px; font-size: 15px; outline: none; background: rgba(255,255,255,.12); color: #fff; }
.footer-newsletter__form input[type="email"]::placeholder { color: rgba(255,255,255,.55); }
.footer-newsletter__form button { padding: 14px 26px; background: var(--secondary-color); color: #fff; border: none; border-radius: 0 40px 40px 0; font-size: 15px; font-weight: 700; cursor: pointer; transition: var(--transition); white-space: nowrap; }
.footer-newsletter__form button:hover { background: #d96e00; }

/* --- Trust Bar --- */
.footer-trust { background: #fff; border-bottom: 1px solid #ece9e4; }
.footer-trust__grid { display: grid; grid-template-columns: repeat(5, 1fr); max-width: 100%; }
.footer-trust__item { display: flex; flex-direction: column; align-items: center; text-align: center; padding: 40px 24px; border-right: 1px solid #ece9e4; }
.footer-trust__item:last-child { border-right: none; }
.footer-trust__icon { width: 58px; height: 58px; background: rgba(242,124,0,.12); border-radius: 50%; display: flex; align-items: center; justify-content: center; margin-bottom: 14px; flex-shrink: 0; }
.footer-trust__icon svg { width: 26px; height: 26px; stroke: var(--secondary-color); fill: none; }
.footer-trust__title { font-size: 18px; font-weight: 800; color: var(--primary-color); display: block; margin-bottom: 4px; }
.footer-trust__sub { font-size: 14px; color: #888; }

/* --- Haupt-Footer --- */
footer.footer-main { background: rgba(0, 90, 172, 0.06);padding: 70px 0 60px; }
.footer-main__grid { display: grid; grid-template-columns: 320px 1fr 1fr 1fr; gap: 30px; align-items: stretch; }
.footer-main__image-mid { overflow: hidden; }
.footer-main__image-mid img { width: 100%; height: 100%; object-fit: cover; display: block; }
.footer-main__image { overflow: hidden; border-bottom-right-radius: 50px;}
.footer-main__image img { width: 100%; height: 100%; object-fit: cover; display: block; }
footer.footer-main a { color: #666; }

/* Kontakt-Karte */
.footer-main__contact-card { background: #fff; padding: 36px; box-sizing: border-box; }
.footer-main__contact-label { font-size: 11px; font-weight: 700; text-transform: uppercase; letter-spacing: 1.5px; color: #aaa; margin: 0 0 12px 0; }
.footer-main__phone { display: block; font-size: clamp(22px, 2vw, 28px); font-weight: 900; color: var(--secondary-color) !important; margin-bottom: 24px; line-height: 1.1; }
.footer-main__phone:hover { color: var(--primary-color) !important; }
.footer-main__address { font-style: normal; font-size: 14px; line-height: 1.9; color: #777; margin-bottom: 12px; }
.footer-main__address strong { color: #333; font-weight: 700; font-size: 16px; display: block; margin-bottom: 6px; line-height: 1.4; }
.footer-main__contact-email { display: block; font-size: 14px; color: #777; margin-bottom: 24px; }
.footer-main__contact-email:hover { color: var(--primary-color); }
.footer-main__social { display: flex; gap: 10px; padding-top: 20px; border-top: 1px solid #f0eee9; }
.footer-main__social a { display: flex; align-items: center; justify-content: center; width: 34px; height: 34px; background: #f7f5f2; border-radius: 50%; color: #888 !important; transition: background var(--transition), color var(--transition); }
.footer-main__social a:hover { background: var(--primary-color); color: #fff !important; }
.footer-main__social a svg { width: 15px; height: 15px; }

/* Navigation */
.footer-main__navs { display: grid; grid-template-columns: 1fr 1fr 1fr; gap: 40px; }
.footer-main__nav-title { font-size: 11px; font-weight: 700; text-transform: uppercase; letter-spacing: 1.5px; color: #aaa; margin: 0 0 14px 0; display: block; }
.footer-main__nav-list { list-style: none; margin: 0; padding: 0; }
.footer-main__nav-list li { margin: 0 0 9px 0; }
.footer-main__nav-list li a { font-size: 15px; color: #555; display: flex; align-items: center; gap: 5px; transition: color var(--transition); }
.footer-main__nav-list li a::before { content: "›"; color: var(--secondary-color); font-size: 20px; font-weight: 700; line-height: 1; flex-shrink: 0; }
.footer-main__nav-list li a:hover { color: var(--primary-color); }

/* --- Footer Bottom --- */
.footer-bottom { background: rgba(0, 90, 172, 0.06); border-top: 1px solid #e0ddd8; padding: 16px 0; }
.footer-bottom__inner { display: flex; align-items: center; justify-content: space-between; flex-wrap: wrap; gap: 8px; }
.footer-bottom__copy { font-size: 13px; color: #999; margin: 0; }
.footer-bottom__nav { list-style: none; margin: 0; padding: 0; display: flex; gap: 18px; flex-wrap: wrap; }
.footer-bottom__nav li { margin: 0; font-size: 13px; }
.footer-bottom__nav li a { color: #999; }
.footer-bottom__nav li a:hover { color: var(--primary-color); }

/* Siegel (bleibt) */
.home.page .siegel-footer {display:none;}
.page .siegel-footer {display:block;position:absolute;right:50px;max-width:180px;margin-top:-95px;}
.page .siegel-footer img {width:100%;height:auto;}
.single-haustyp .siegel-footer {display:block;position:absolute;right:50px;max-width:180px;margin-top:-95px;}
.single-haustyp .siegel-footer img {width:100%;height:auto;}

/* --- Footer Responsive --- */
@media (max-width: 1100px) {
    .footer-main__grid { grid-template-columns: 1fr 1fr; gap: 24px; }
    .footer-main__image-mid,
    .footer-main__image { min-height: 220px; }
}
@media (max-width: 1023px) {
    .footer-trust__grid { grid-template-columns: 1fr 1fr; }
    .footer-trust__item:nth-child(2n) { border-right: none; }
    .footer-trust__item:nth-child(n+3) { border-top: 1px solid #ece9e4; }
}
@media (max-width: 767px) {
    .footer-newsletter__inner { flex-direction: column; align-items: flex-start; }
    .footer-newsletter__form { min-width: 0; max-width: 100%; width: 100%; }
    .footer-newsletter { padding: 45px 0; }
}
@media (max-width: 600px) {
    .footer-main__grid { grid-template-columns: 1fr; gap: 20px; }
    .footer-main__image,
    .footer-main__image-mid { display: none; }
    .footer-bottom__inner { flex-direction: column; align-items: flex-start; gap: 12px; }
}
@media (max-width: 480px) {
    .footer-trust__grid { grid-template-columns: 1fr 1fr; }
}

/* 404 */

.error404 .stage {display: none;}
.pageerror {padding: 250px 0 100px 0; text-align: center;}

@media (max-width: 1600px) {
    .single-haustyp .introblock  .wrp {top:-32vw}
}
@media (max-width: 1500px) {
    .single-haustyp .introblock  .wrp {top:-38vw}
    .stage .wrp h2 {font-size: 36px;line-height: 46px;}
    .stage .wrp .siegel img {max-width: 250px;object-fit: contain;}
    .stage.subpage .introblock h1, .stage.subpage .introblock h2 {font-size: 28px;line-height: 38px;margin: 0 0 15px 0;}
    .single-haustyp .introblock h2 {font-size: 28px;line-height: 38px;margin: 0 0 15px 0;}
    .stage.subpage .wrp {padding:35px}
    .stage.subpage {aspect-ratio: 2 / 1;}
    #mainnav {margin-right: 50px;}
    .infonav {margin-right: 50px;}
}
@media (max-width: 1400px) {
    .basispreis {width:95%;font-size:16px;}
}
@media (max-width: 1370px) {
    .single-haustyp .grundriss-grid .grundrisse {display: grid;grid-template-columns: 1fr 1fr;gap: 20px;}
}
@media (max-width: 1300px) {
    .single-haustyp .hausgrid {grid-template-columns: 60% auto;gap:10px}
    .single-haustyp .introblock  .wrp {top:-45vw}
    .stage .wrp {top:58%}
    .stage.subpage {aspect-ratio: 2 / 1.2;}
    .single-haustyp .grundriss-grid {gap:50px;}
    .single-haustyp .grundriss-grid .grundrisse {display: grid;grid-template-columns: 40% auto;gap: 15px;}
    .haustyp-wrp.teasercards.single .wrp .zufalls-haustypen {grid-template-columns: repeat(2, 1fr);}
    .haustyp-wrp.teasercards.single .wrp .zufalls-haustypen .teasercard-item .bild img {    aspect-ratio: 2 / 1;}
    .haustyp-wrp.teasercards.single .wrp .zufalls-haustypen .teasercard-item .teasercard-content .arrow {position: absolute;right: 0;bottom: 0;}

}
@media (max-width: 1240px) {
    #mainnav ul.mainnav.desktop li {margin-left:20px}
}
@media (max-width: 1140px) {
    header .header-grid {grid-template-columns: 260px auto;}
    .stage .wrp .siegel img {max-width: 210px;object-fit: contain;object-position: top;}
    .stage .wrp h2 {font-size: 32px;line-height: 42px;margin-bottom:0;}
    #mainnav ul.mainnav.desktop li a {padding: 35px 0 5px 0;}
    .plz-suche .search,.plz-suche .search input[type="search" i] {width: 220px;}
    .teasercards .cards.custom .teasercard-item:nth-child(odd) .teasercard-content {padding:40px;}
    .teasercards .cards.custom .teasercard-item:nth-child(even) .teasercard-content {padding:40px;}
    .teasercards .cards.custom .teasercard-item:nth-child(odd) .img-wrp {height:100%;}
    .teasercards .cards.custom .teasercard-item:nth-child(even) .img-wrp {height:100%;}
}
@media (max-width: 1100px) {
    .single-haustyp .grundriss-grid .grundrisse {display: grid;grid-template-columns: 35% auto;gap: 15px;}
    #mainnav,.infonav {display:none;}
    .scrolled .mainnav-toggle.off {top: 40px;transition: var(--transition);}
}
@media (max-width: 1024px) {
    .boxen .wrp {display: grid;grid-template-columns: 1fr 1fr;gap: 20px;}
    .stage {aspect-ratio: 2 / 1.45;}
    footer .wrp {display: grid;grid-template-columns: 100%;}
    .single-post .stage.subpage {max-height: 300px;min-height: inherit;}
    .single-post .trust-bar {margin-bottom:25px;}
}
@media (max-width: 1023px) {
    .single-haustyp .grundriss-grid {grid-template-columns: 1fr;gap: 30px;}
    .single-haustyp .grundriss-grid .grundrisse {gap: 50px;}
    .single-haustyp .hausgrid {grid-template-columns: 100%;gap: 10px;}
    .single-haustyp .hausgrid .side {display:grid;grid-template-columns: 1fr 1fr;gap:0;}
    .single-haustyp .hausgrid .side .subheadline p {display:none;}
    .single-haustyp .hausgrid .side .subheadline .smartlink {display:block;}
    .single-haustyp .hausgrid .side h3 {font-size: 18px;line-height: 28px;}
    .single-haustyp .hausgrid .side .downloadbox {display:none;}
    .single-haustyp .hausgrid .side .katalogbox {display:none;}
    .plz-suche .search, .plz-suche .search input[type="search" i] {width: 100%;}
    .plz-suche .go {display:block;margin-top:10px;}
    .single-haustyp .hausgrid .side {border: 0;padding: 20px 0 50px 0;box-sizing: border-box;}
    .single-haustyp .single-wrp .legende {margin: 0 auto 70px auto;}
    .single-haustyp .single-wrp .legende .wrp {max-width:inherit;}
}
@media (max-width: 940px) {
    .single-haustyp .introblock .wrp {top:-49vw;}
    header {padding:15px 0;}
    .stage.subpage {aspect-ratio: 2 / 1.3;}
    .stage.subpage .wrp {max-width:520px;}
    .stage .wrp .siegel img {max-width: 150px;object-fit: contain;object-position: top;position: absolute;right: 20px;}
    .stage .wrp h2 {font-size: 28px;line-height: 38px;margin-bottom:0;text-shadow: 0 0 10px #fff;}
    .shortcode .teasercards .cards h2 {font-size:20px;line-height:24px;}
    .haustyp-wrp.teasercards.single .wrp .zufalls-haustypen .teasercard-item .teasercard-content h3 {font-size:20px;line-height:24px;}
    .page .teasercard-item .site .headline.site {font-size:16px;line-height:15px;}
    .page .teasercard-item .wohn.site,.page .teasercard-item .zimmer.site {background-size: 55px;padding-left: 65px;}
    .teasercards .cards .arrow {
        right: 0;
        bottom: 0;
        width: 30px;
        height: 30px;
    }
    h1 {
        font-size: 28px;
        line-height: 38px;
    }
    h2 {
        font-size: 28px;
        line-height: 38px;
    }
    .teasercards .cards h3 {
        font-size: 20px;
        line-height: 30px;
        margin: 10px 5px;
    }
    .stage .btn {font-size:16px;padding:11px 22px;margin: 20px 10px 20px 0 }
    .stage.subpage .introblock h1, .stage.subpage .introblock h2 {font-size: 24px;line-height: 34px;margin: 0 0 15px 0;}
    .single-haustyp .introblock h2 {font-size: 24px;line-height: 34px;margin: 0 0 15px 0;}
    .drei-phasen .wrp h3 {
        font-size: 20px;
        line-height: 30px;
    }
    .bildtrenner .wrp {font-size: 20px;line-height: 31px;}
    .drei-phasen .wrp .phase-1,.drei-phasen .wrp .phase-2,.drei-phasen .wrp .phase-3 {gap:80px;}
    .teasercard-item .img-wrp {
        width: 100%;
        aspect-ratio: 2 / 1.4;
        display: block;
    }
    .hausboxen .wrp .grid .box .bild {
        width: 100%;
        height: 100%;
        object-fit: cover;
        aspect-ratio: 2 / 1;
    }
    .accordion .item-accordion-head {font-size:18px;padding: 11px 25px 11px 15px;}
    .basispreis {top:10px;transform: translate(-50%, 0%);overflow-y: scroll;height:100%}
    .infobox {top:10px;transform: translate(-50%, 0%);overflow-y: scroll;height:100%}
}
@media (max-width: 768px) {
    .teasercards .cards.custom .teasercard-item:nth-child(odd) {grid-template-columns: 100%;}
    .teasercards .cards.custom .teasercard-item:nth-child(even) {grid-template-columns: 100%;}
    .teasercards .cards.custom .teasercard-item:nth-child(odd) .img-wrp {display:block;aspect-ratio: 2 / 1;margin-bottom:10px;}
    .teasercards .cards.custom .teasercard-item:nth-child(even) .img-wrp {display:block;aspect-ratio: 2 / 1;margin-bottom:10px;}
    .teasercards .cards.custom .teasercard-item:nth-child(odd) .teasercard-content {padding: 20px 20px 70px 20px;order: 2!important;}
    .teasercards .cards.custom .teasercard-item:nth-child(even) .teasercard-content {padding:  20px 20px 70px 20px;order: 2!important;}
    .teasercards .cards.custom .teasercard-item:nth-child(odd) .img-wrp {order: 1!important;}
    .teasercards .cards.custom .teasercard-item:nth-child(even) .img-wrp {order: 1!important;}
    .single-post .stage.subpage {max-height: 200px;min-height: inherit;}
    .single-post .trust-bar {margin-bottom:20px;}
}
@media (max-width: 767px) {
    .teasercards .cards.no-carousel,.haustyp-wrp.teasercards.single .wrp .zufalls-haustypen {grid-template-columns: 100% !important;}
    .single-haustyp .single-wrp .legende {display:none;}
    .single-haustyp .single-wrp .legende.smart {display:block;width:100%;margin: 20px auto;}
    .mainnav-toggle.off {top:40px;}
    .introblock {top:-71%}
    .stage.subpage .introblock h1 p, .stage.subpage .introblock h2 p {font-size: 20px;line-height: 30px;margin: 0 0 10px 0;}
    .single-haustyp .introblock h2 p {font-size: 20px;line-height: 30px;margin: 0 0 10px 0;}
    .stage.subpage .introblock p {font-size: 16px;line-height:27px;}
    .single-haustyp .introblock p {font-size: 16px;line-height:27px;}
    .stage.subpage {aspect-ratio: 2 / 1.5;}
    header .header-grid {
        grid-template-columns: 200px auto;
    }
    .stage .wrp  {grid-template-columns: 100%;}
    .stage .wrp h2 {
        font-size: 24px;
        line-height: 34px;
        text-shadow: 0 0 8px #fff;
    }
    .stage .btn {
        font-size: 14px;
        padding: 8px 20px;
        margin: 15px 10px 15px 0;
    }
    h1 {
        font-size: 24px;
        line-height: 34px;
    }
    h2 {
        font-size: 24px;
        line-height: 34px;
    }
    .teasercard-item .img-wrp {
        width: 100%;
        aspect-ratio: 3 / 1;
        display: block;
    }
    .haustyp-wrp.teasercards.single .wrp .zufalls-haustypen .teasercard-item .bild img { aspect-ratio: 3 / 1;}
    .single-haustyp .hausgrid .side {grid-template-columns: 1fr;padding:20px 0}
    .single-haustyp .hausgrid .side .subheadline {margin-bottom:20px;}
    .single-haustyp .single-wrp .legende .wrp {width: 100%;}
    .single-haustyp .single-wrp .legende .headline {font-size: 18px;}
    .single-haustyp .single-wrp .legende {font-size:16px;}
}
@media (max-width: 767px) {
    .single-haustyp .introblock .wrp {top: -56vw;}
	    .stage .wrp .siegel {
        display: none;
    }
}
@media (max-width: 670px) {
    .single-haustyp .introblock .wrp {top: -56vw;}
}
@media (max-width: 640px) {
    .single-haustyp .introblock .wrp {top: -68vw;}
    .stage.subpage {aspect-ratio: 2 / 2.1}
    .stage.subpage .introblock h1 p, .stage.subpage .introblock h2 p {font-size: 18px;line-height: 28px;margin: 0 0 10px 0;}
    .stage.subpage .introblock p {font-size: 14px;line-height:25px;}
    .single-haustyp .introblock p {font-size: 14px;line-height:25px;}
    .single-haustyp .introblock h2 p {font-size: 18px;line-height: 28px;margin: 0 0 10px 0;}
    .stage.subpage .introblock .wrp {padding:25px;border-radius:30px;}
    .mb {margin-bottom:60px;}
    .hausboxen.mb {margin-bottom:100px;}
    .teasercards .cards.no-carousel {grid-template-columns: 100% !important;}
    .drei-phasen .wrp .phase-1,.drei-phasen .wrp .phase-2,.drei-phasen .wrp .phase-3 {grid-template-columns:100%;gap:20px;margin-bottom:40px;}
    .drei-phasen .wrp .phase-1 .bild ,.drei-phasen .wrp .phase-2 .bild,.drei-phasen .wrp .phase-3 .bild {display:none;}
    .drei-phasen .wrp h3 strong {color:var(--primary-color);font-size:22px;display:block;}
    .teasercard-item .img-wrp {width: 100%;aspect-ratio: 2 / 1;display: block;}
    .boxen .wrp {display: grid;grid-template-columns: 100%;gap: 20px;}
    .boxshow {bottom: 30px;right: 20px;padding: 15px;}
    .boxshow h3 {font-size: 12px;line-height: 23px;}
    .textbild .bild {aspect-ratio:16/9;height:auto !important;}
    .stage .wrp .siegel {display:none;}
    .home.page .siegel-footer {display: block !important;}
    .page .siegel-footer {max-width: 130px;margin-top: -70px;}
    .textbild.erstbild .text, .textbild.ersttext .text {padding: 25px;}
    .single-haustyp .single-wrp .gallery ul {grid-template-columns: 1fr 1fr;}
    .single-haustyp .single-wrp .legende .wrp {gap: 15px;}
    .single-haustyp .grundriss-grid .grundrisse .liste-grid {gap:10px}
}

@media (max-width: 550px) {
footer.footer-main {padding: 30px 0;}
    .single-haustyp .single-wrp .legende .wrp {grid-template-columns: 1fr 1fr;}
    .single-haustyp .grundriss-grid .grundrisse {grid-template-columns: 1fr;}
    .single-haustyp .introblock .wrp {top: -68vw;}
    .stage.subpage .introblock h1, .stage.subpage .introblock h2 {
        font-size: 22px;
        line-height: 32px;
        margin: 0 0 10px 0;
    }
}
@media (max-width: 480px) {
    .head-svg {max-width:180px!important}
    .basispreis {padding:25px;}
    .single-haustyp .introblock .wrp {top: -68vw;}
    header .header-grid {
        grid-template-columns: 170px auto;
    }
    .scrolled header .header-grid {
        grid-template-columns: 150px auto;
    }
    .stage .wrp h2 {
        font-size: 22px;
        line-height: 32px;
        text-shadow: 0 0 8px #fff;
    }
    .stage .btn {
        font-size: 12px;
        padding: 8px 15px;
        margin: 20px 10px 15px 0;
    }
    h1 {
        font-size: 22px;
        line-height: 32px;
    }
    h2 {
        font-size: 22px;
        line-height: 32px;
    }
    .textbild .text h2{
        font-size: 22px;
        line-height: 32px;
    }
    .teasercards .cards.custom .teasercard-item h2 {
        font-size: 22px;
        line-height: 32px;
    }
    .teasercards .cards h3 {
        font-size: 20px;
        line-height: 28px;
        margin: 10px 5px;
    }
    .drei-phasen .wrp h3 {
        font-size: 18px;
        line-height: 28px;
    }
    .drei-phasen .wrp h3 strong {
        font-size: 20px;
    }
    .bildtrenner .wrp {
        font-size: 18px;
        line-height: 29px;
    }
    .single-post .stage.subpage {max-height: 150px;min-height: inherit;}
    .single-post .trust-bar {margin-bottom:0;}
}
@media (max-width: 430px) {
    .single-haustyp .introblock .wrp {top: -68vw;}
    .single-haustyp .introblock .wrp {padding:25px;border-radius:30px;}
    .stage .wrp h2 {
        font-size: 20px;
        line-height: 30px;
        text-shadow: 0 0 7px #fff;
    }
    .stage .btn {margin: 20px 3px 15px 0;}
    .stage.subpage .introblock h1, .stage.subpage .introblock h2 {
        font-size: 20px;
        line-height: 30px;
        margin: 0;
    }
    .stage.subpage {
        aspect-ratio: 2 / 1.8;
        min-height: inherit;
        overflow: hidden;
    }
}
@media (max-width: 400px) {
    .single-haustyp .introblock .wrp {top: -68vw;}
    .single-haustyp .introblock .wrp {padding:20px;border-radius:30px;}
}

/* Favoriten-Liste im Beratungsformular */
.fav-form-list { background:var(--primary-color); border-radius:8px; padding:14px 18px; margin-bottom:20px; }
.fav-form-list .fav-form-label { font-size:13px; font-weight:700; color:#fff; text-transform:uppercase; letter-spacing:.5px; margin:0 0 8px; }
.fav-form-list ul { margin:0; padding:0; list-style:none; display:flex; flex-wrap:wrap; gap:6px; }
.fav-form-list ul li { display:flex; align-items:center; background:rgba(255,255,255,0.15); margin:0; color:#fff; font-size:13px; font-weight:600; border-radius:20px; padding:0; transition:background var(--transition); }
.fav-form-list ul li a { color:#fff; text-decoration:none; padding:5px 8px 5px 12px; flex:1; }
.fav-form-list ul li:has(a):hover { background:rgba(255,255,255,0.28); }
.fav-form-list .fav-pill-remove { color:rgba(255,255,255,0.5); padding:5px 10px 5px 2px; font-size:16px; }
.fav-form-list .fav-pill-remove:hover { color:#fff; }
/* Favoriten Hint-Toast */
.fav-hint-toast { position:fixed; top:50%; left:50%; transform:translate(-50%,-40%); background:#fff; border-radius:12px; box-shadow:0 12px 50px rgba(0,0,0,.18); padding:30px 34px 34px; max-width:360px; width:90%; z-index:9999; opacity:0; transition:opacity .35s ease, transform .35s ease; pointer-events:none; }
.fav-hint-toast.visible { opacity:1; transform:translate(-50%,-50%); }
.fav-hint-toast > strong { display:block; font-size:18px; font-weight:700; color:var(--primary-color); margin-bottom:8px; }
.fav-hint-toast span { display:block; font-size:18px; color:var(--text-color); line-height:1.6; }
.fav-hint-toast span strong { font-size:inherit; color:inherit; font-weight:700; }

/* ============================================================
   Shortcode Modal (Button-Block)
   ============================================================ */
.shortcode-modal {
    display: none;
    position: fixed;
    inset: 0;
    z-index: 9999;
    background: rgba(0, 0, 0, 0.55);
    align-items: center;
    justify-content: center;
    padding: 20px;
}
.shortcode-modal.active {
    display: flex;
}
.shortcode-modal-inner.faq-modal-inner .item-accordion-title {
    text-transform: none;
}
.shortcode-modal-inner {
    position: relative;
    background: #fff;
    border-radius: 12px;
    padding: 40px 36px 36px;
    max-width: 640px;
    width: 100%;
    max-height: 90vh;
    overflow-y: auto;
    box-shadow: 0 8px 40px rgba(0, 0, 0, 0.2);
}
.shortcode-modal-close {
    position: absolute;
    top: 12px;
    right: 16px;
    background: none;
    border: none;
    font-size: 26px;
    line-height: 1;
    cursor: pointer;
    color: #999;
    padding: 4px 8px;
    transition: color .15s;
}
.shortcode-modal-close:hover {
    color: #333;
}
.btn-modal-trigger {
    display: inline-block;
    background: var(--primary-color, #c00);
    color: #fff;
    border: none;
    border-radius: 30px;
    padding: 12px 28px;
    font-size: 16px;
    font-weight: 600;
    cursor: pointer;
    text-decoration: none;
    transition: opacity .2s;
}
.btn-modal-trigger:hover {
    opacity: .85;
}
@media (max-width: 600px) {
    .shortcode-modal-inner {
        padding: 36px 20px 24px;
    }
}

/* Feldabstände */
div.wpforms-container-full .wpforms-form .wpforms-field {
    padding: 8px 0;
}

/* Labels */
div.wpforms-container-full .wpforms-form .wpforms-field .wpforms-field-label,
div.wpforms-container-full .wpforms-form .wpforms-field-label {
    display: block;
    font-size: 13px;
    font-weight: 700;
    text-transform: uppercase;
    letter-spacing: .5px;
    color: var(--primary-color);
    margin: 0 0 6px 0;
    padding: 0;
    float: none;
    line-height: 1.4;
}

/* Pflichtfeld-Stern */
div.wpforms-container-full .wpforms-form .wpforms-field .wpforms-required-label {
    color: var(--secondary-color);
    font-weight: 400;
}

/* Sub-Labels */
div.wpforms-container-full .wpforms-form .wpforms-field .wpforms-field-sublabel {
    font-size: 12px;
    color: #888;
    font-weight: 400;
    text-transform: none;
    letter-spacing: 0;
    margin: 4px 0 0;
}

/* ---- Eingabefelder ---- */
div.wpforms-container-full .wpforms-form .wpforms-field input[type="text"],
div.wpforms-container-full .wpforms-form .wpforms-field input[type="email"],
div.wpforms-container-full .wpforms-form .wpforms-field input[type="tel"],
div.wpforms-container-full .wpforms-form .wpforms-field input[type="number"],
div.wpforms-container-full .wpforms-form .wpforms-field input[type="url"],
div.wpforms-container-full .wpforms-form .wpforms-field input[type="date"],
div.wpforms-container-full .wpforms-form .wpforms-field input[type="time"],
div.wpforms-container-full .wpforms-form .wpforms-field input[type="password"],
div.wpforms-container-full .wpforms-form .wpforms-field select,
div.wpforms-container-full .wpforms-form .wpforms-field textarea {
    display: block;
    width: 100%;
    max-width: 100%;
    box-sizing: border-box;
    padding: 12px 16px;
    border: 1.5px solid #d0dae6;
    border-radius: 8px;
    background: #f8fafc;
    color: var(--text-color);
    font-family: var(--font-family), sans-serif;
    font-size: 16px;
    line-height: 1.5;
    height: auto;
    transition: border-color var(--transition), box-shadow var(--transition), background var(--transition);
    appearance: none;
    -webkit-appearance: none;
    box-shadow: none;
}

/* Focus */
div.wpforms-container-full .wpforms-form .wpforms-field input[type="text"]:focus,
div.wpforms-container-full .wpforms-form .wpforms-field input[type="email"]:focus,
div.wpforms-container-full .wpforms-form .wpforms-field input[type="tel"]:focus,
div.wpforms-container-full .wpforms-form .wpforms-field input[type="number"]:focus,
div.wpforms-container-full .wpforms-form .wpforms-field input[type="url"]:focus,
div.wpforms-container-full .wpforms-form .wpforms-field input[type="date"]:focus,
div.wpforms-container-full .wpforms-form .wpforms-field input[type="time"]:focus,
div.wpforms-container-full .wpforms-form .wpforms-field input[type="password"]:focus,
div.wpforms-container-full .wpforms-form .wpforms-field select:focus,
div.wpforms-container-full .wpforms-form .wpforms-field textarea:focus {
    outline: none;
    border-color: var(--primary-color);
    background: #fff;
    box-shadow: 0 0 0 3px rgba(0, 90, 172, 0.1);
}

/* Textarea */
div.wpforms-container-full .wpforms-form .wpforms-field textarea {
    min-height: 130px;
    resize: vertical;
    height: auto;
}

/* Select – eigener Pfeil */
div.wpforms-container-full .wpforms-form .wpforms-field-select select {
    background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='12' height='7' viewBox='0 0 12 7'%3E%3Cpolyline points='1,1 6,6 11,1' fill='none' stroke='%23005AAC' stroke-width='1.8' stroke-linecap='round' stroke-linejoin='round'/%3E%3C/svg%3E");
    background-repeat: no-repeat;
    background-position: right 14px center;
    padding-right: 40px;
}

div.wpforms-container-full .wpforms-form .wpforms-field-gdpr-checkbox ul li input,
div.wpforms-container-full .wpforms-form .wpforms-field-checkbox.wpforms-field-required ul li input {
    margin-top: 2px;
}

/* ---- Fehler ---- */
div.wpforms-container-full .wpforms-form .wpforms-field label.wpforms-error {
    display: block;
    font-size: 12px;
    color: #c0392b;
    font-weight: 600;
    text-transform: none;
    letter-spacing: 0;
    margin: 5px 0 0;
    padding: 0;
}

div.wpforms-container-full .wpforms-form .wpforms-field input.wpforms-error,
div.wpforms-container-full .wpforms-form .wpforms-field select.wpforms-error,
div.wpforms-container-full .wpforms-form .wpforms-field textarea.wpforms-error {
    border-color: #c0392b;
    background: #fff8f8;
    box-shadow: 0 0 0 3px rgba(192, 57, 43, 0.1);
}

/* ---- Erfolgsmeldung ---- */
.wpforms-confirmation-container-full,
.wpforms-confirmation-container {
    background: #eaf4ff;
    border: 1.5px solid var(--primary-color);
    border-radius: 10px;
    padding: 24px 28px;
    color: var(--primary-color);
    font-size: 17px;
    font-weight: 600;
    line-height: 1.6;
}

/* ---- Submit-Button ---- */
div.wpforms-container-full .wpforms-form .wpforms-submit-container {
    margin-top: 12px;
    padding: 0;
    background: none;
    border: none;
    text-align: left;
}

div.wpforms-container-full .wpforms-form .wpforms-submit-container button.wpforms-submit {
    display: inline-block;
    background: var(--secondary-color);
    color: #fff;
    border: 0!important;
    border-radius: 30px;
    padding: 14px 40px;
    font-family: var(--font-family), sans-serif;
    font-size: 16px;
    font-weight: 900;
    text-transform: uppercase;
    letter-spacing: .5px;
    cursor: pointer;
    transition: background var(--transition);
    box-shadow: none;
    height: auto;
    width: auto;
    line-height: 1.4;
}

div.wpforms-container-full .wpforms-form .wpforms-submit-container button.wpforms-submit:hover {
    background: var(--primary-color);
    box-shadow: none;
}

div.wpforms-container-full .wpforms-form .wpforms-submit-container button.wpforms-submit:active {
    box-shadow: none;
}

/* ---- Submit-Spinner ausblenden ---- */
div.wpforms-container-full .wpforms-form .wpforms-submit-container .wpforms-submit-spinner {
    display: none !important;
}

/* ---- Choices.js Select (ersetzt natives <select>) ---- */

/* Wrapper – kein Extra-Margin */
div.wpforms-container-full .wpforms-form .wpforms-field .choices {
    margin-bottom: 0;
    position: relative;
}

/* Das sichtbare "Input"-Element */
div.wpforms-container-full .wpforms-form .wpforms-field .choices__inner {
    width: 100%;
    box-sizing: border-box;
    /* padding-top: 0 !important kommt von choices.js – muss mit !important überschrieben werden */
    padding: 12px 40px 12px 16px !important;
    border: 1.5px solid #d0dae6;
    border-radius: 8px;
    background-color: #f8fafc;
    font-family: var(--font-family), sans-serif;
    font-size: 16px;
    line-height: 1.5;
    min-height: auto;
    overflow: visible;
    transition: border-color var(--transition), background var(--transition);
}

/* Focus-State */
div.wpforms-container-full .wpforms-form .wpforms-field .choices.is-focused .choices__inner,
div.wpforms-container-full .wpforms-form .wpforms-field .choices.is-open .choices__inner {
    border-color: var(--primary-color);
    background-color: #fff;
    box-shadow: 0 0 0 3px rgba(0, 90, 172, 0.1);
}

/* Offener Zustand – oben kein abgerundeter Boden */
div.wpforms-container-full .wpforms-form .wpforms-field .choices.is-open .choices__inner {
    border-radius: 8px 8px 0 0;
}
div.wpforms-container-full .wpforms-form .wpforms-field .choices.is-open.is-flipped .choices__inner {
    border-radius: 0 0 8px 8px;
}

/* Ausgewählter Wert (single) */
div.wpforms-container-full .wpforms-form .wpforms-field .choices__list--single {
    padding: 10px 0 0 0;
    font-size: 16px;
    color: var(--text-color);
}
div.wpforms-container-full .wpforms-form .wpforms-field .choices__list--single .choices__item {
    color: var(--text-color);
}
div.wpforms-container-full .wpforms-form .wpforms-field .choices__placeholder {
    color: #aaa;
    opacity: 1;
}

/* Pfeil-Icon – WPForms' border-Dreieck ersetzen */
div.wpforms-container-full .wpforms-form .wpforms-field .choices[data-type*="select-one"]::after {
    border: none;
    background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='12' height='7' viewBox='0 0 12 7'%3E%3Cpolyline points='1,1 6,6 11,1' fill='none' stroke='%23005AAC' stroke-width='1.8' stroke-linecap='round' stroke-linejoin='round'/%3E%3C/svg%3E");
    background-repeat: no-repeat;
    background-position: center;
    background-size: 12px 7px;
    width: 12px;
    height: 7px;
    margin-top: -3.5px;
    inset-inline-end: 16px;
}
div.wpforms-container-full .wpforms-form .wpforms-field .choices[data-type*="select-one"].is-open::after {
    border: none;
    transform: rotate(180deg);
    margin-top: -3.5px;
}

/* Dropdown-Liste */
div.wpforms-container-full .wpforms-form .wpforms-field .choices__list--dropdown {
    border: 1.5px solid var(--primary-color);
    border-top: none;
    border-radius: 0 0 8px 8px;
    background: #fff;
    box-shadow: 0 8px 20px rgba(0, 0, 0, 0.1);
    z-index: 200;
}
div.wpforms-container-full .wpforms-form .wpforms-field .choices.is-flipped .choices__list--dropdown {
    border-top: 1.5px solid var(--primary-color);
    border-bottom: none;
    border-radius: 8px 8px 0 0;
}

/* Dropdown-Einträge */
div.wpforms-container-full .wpforms-form .wpforms-field .choices__list--dropdown .choices__item {
    font-size: 15px;
    padding: 10px 16px;
    color: var(--text-color);
}
div.wpforms-container-full .wpforms-form .wpforms-field .choices__list--dropdown .choices__item--selectable.is-highlighted {
    background-color: #eaf4ff;
    color: var(--primary-color);
}

/* ---- Trennlinie / Abschnitt-Divider ---- */
div.wpforms-container-full .wpforms-form .wpforms-field-divider {
    border: none;
    border-top: 1px solid #dde5ef;
    margin: 20px 0 8px;
    height: auto;
    background: none;
}

/* ---- Responsive ---- */
@media (max-width: 600px) {
    div.wpforms-container-full .wpforms-form .wpforms-submit-container button.wpforms-submit {
        width: 100%;
        text-align: center;
    }
}
