/* 4immobilien: Stil der Unterseiten.
   Baut auf css/basis.css auf (das ist der Stil der Startseite, wird von build.py aus index.html übernommen).
   Marke wie das Original: Open Sans, Farben aus dem Elementor-Kit, eckige Formen, keine Verläufe, keine weichen Schatten. */

/* ---------- Farbrollen je Abschnitt (damit jede Farbfassung mit denselben Bausteinen funktioniert) ---------- */
/* Grundwerte, damit die Bausteine auch auf der Startseite funktionieren. --firm und --acc stehen bewusst nicht hier: die braunen Fassungen der Startseite setzen sie selbst. */
:root{--bg:#FFFFFF;--card:#F6F6F6;--hd:#272727;--tx:#4F4F4F;--mut:#7A7A7A;--ln:rgba(200,178,158,.45);--ac:#8F6D4C;--fld:#FFFFFF}
.sub{--firm:#8F6D4C;--acc:#693C10}
.sub .sec,.sub .phero{--bg:var(--white);--card:var(--light);--hd:var(--ink);--tx:var(--text-dark);--mut:var(--text);--ln:var(--line);--ac:var(--brown);--fld:var(--white)}
.sub .sec.alt{--bg:var(--light);--card:var(--white)}
html[data-theme=braun] .sub{--firm:#5F3515;--acc:#8F6D4C}
html[data-theme=hellbraun] .sub{--firm:#8F6D4C;--acc:#5F3515}
html[data-theme] .sub .sec.alt{--bg:var(--firm);--card:var(--white);--hd:var(--white);--tx:var(--white);--mut:rgba(255,255,255,.92);--ln:rgba(255,255,255,.35);--ac:var(--white)}
/* weiße Flächen innerhalb eines Abschnitts setzen die Rollen wieder auf dunkle Schrift */
.sub .kachel,.sub .tafel,.sub .person,.sub .post,.sub .card,.sub .calc,.sub .such,.sub .hinweis,.sub .cform,.sub .ort-karte{--hd:var(--ink);--tx:var(--text-dark);--mut:var(--text);--ln:var(--line);--ac:var(--brown)}

.sub main{display:block;padding-top:124px}
.sub .sec{background:var(--bg);color:var(--tx)}
.sub .sec .over{color:var(--ac)}
.sub .sec h2,.sub .sec h3,.sub .sec h4{color:var(--hd)}
.sub .sec .lead{color:var(--mut)}
.sub .head.solo{grid-template-columns:1fr;max-width:820px}
.sub .head.mitte{grid-template-columns:1fr;max-width:820px;margin-left:auto;margin-right:auto;text-align:center}
.sub .head.mitte .lead{margin:1rem auto 0}
.sub .head .lead+.lead{margin-top:.8rem}
.sub .sec .btn-dark{background:var(--brown)}
html[data-theme] .sub .sec.alt>.wrap>.acts .btn-dark,html[data-theme] .sub .sec.alt .sell-l .btn-dark,html[data-theme] .sub .sec.alt .duo .btn-dark,html[data-theme] .sub .sec.alt .more .btn-dark{background:var(--white);color:var(--firm)}
html[data-theme] .sub .sec.alt>.wrap>.acts .btn-dark:hover,html[data-theme] .sub .sec.alt .sell-l .btn-dark:hover,html[data-theme] .sub .sec.alt .duo .btn-dark:hover,html[data-theme] .sub .sec.alt .more .btn-dark:hover{background:var(--beige);color:var(--white)}
html[data-theme] .sub .sec.alt .btn-line{color:var(--white);box-shadow:inset 0 0 0 1px var(--white)}
html[data-theme] .sub .sec.alt .kachel .btn-line,html[data-theme] .sub .sec.alt .tafel .btn-line{color:var(--brown);box-shadow:inset 0 0 0 1px var(--beige)}
html[data-theme] .sub .sec.alt :focus-visible{outline-color:var(--white)}
.acts{display:flex;flex-wrap:wrap;gap:.8rem;margin-top:1.8rem}
.acts.mitte{justify-content:center}

/* ---------- Kopfbild der Unterseiten: Foto mit weißer Textbox wie auf der Startseite ---------- */
.phero{position:relative;background:var(--white)}
.phero-img{position:relative;height:min(56vh,540px);min-height:280px;overflow:hidden;background:var(--light)}
.phero-img img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover}
.phero-box{position:relative;background:var(--white);margin-top:-120px;padding:2.2rem 2.6rem 2.6rem;width:min(820px,100%);border-top:3px solid var(--beige)}
.phero h1{font-size:clamp(1.65rem,3.1vw,2.55rem);font-weight:600;color:var(--ink);line-height:1.22;letter-spacing:-.01em;margin-bottom:1rem}
.phero .lead{max-width:66ch}
.phero .lead+.lead{margin-top:.8rem}
.phero.plain{background:var(--light);padding:3.4rem 0 3rem}
.phero.plain .phero-box{background:none;margin:0;padding:0;border:0;width:min(900px,100%)}
html[data-theme] .phero.plain{background:var(--firm)}
html[data-theme] .phero.plain h1,html[data-theme] .phero.plain .lead,html[data-theme] .phero.plain .crumb,html[data-theme] .phero.plain .crumb a,html[data-theme] .phero.plain .note{color:var(--white)}
html[data-theme] .phero.plain .crumb i{color:var(--white);opacity:.6}
html[data-theme] .phero.plain .btn-dark{background:var(--white);color:var(--firm)}
html[data-theme] .phero.plain .btn-line{color:var(--white);box-shadow:inset 0 0 0 1px var(--white)}
.crumb{display:flex;flex-wrap:wrap;gap:.35rem .6rem;font-size:.78rem;font-weight:600;letter-spacing:.12em;text-transform:uppercase;color:var(--brown);margin-bottom:1rem}
.crumb a{color:var(--text);transition:color .25s}
.crumb a:hover{color:var(--brown)}
.crumb i{font-style:normal;color:var(--beige)}

/* ---------- Fließtext ---------- */
.prose{max-width:78ch;color:var(--tx)}
.prose.breit{max-width:none}
.prose>*:last-child{margin-bottom:0}
.prose p{margin-bottom:1.05rem}
.prose h3{font-size:1.22rem;margin:2rem 0 .6rem}
.prose h4{font-size:1.02rem;margin:1.5rem 0 .45rem}
.prose>h3:first-child,.prose>h4:first-child{margin-top:0}
.prose ul,.prose ol{list-style:none;margin:0 0 1.2rem}
.prose li{position:relative;padding-left:1.35rem;margin-bottom:.45rem}
.prose ul li::before{content:"";position:absolute;left:0;top:.66em;width:7px;height:7px;background:var(--beige)}
.prose ol{counter-reset:n}
.prose ol li{padding-left:2rem;counter-increment:n}
.prose ol li::before{content:counter(n);position:absolute;left:0;top:.05em;font-weight:600;color:var(--ac)}
.prose a:not(.btn),.kachel p a,.qa .a a,.step p a,.note a{color:var(--ac);text-decoration:underline;text-underline-offset:3px;transition:opacity .25s}
.prose a:not(.btn):hover,.kachel p a:hover,.qa .a a:hover,.step p a:hover,.note a:hover{opacity:.7}
.prose .acts{margin-top:1.4rem}
.prose strong,.step strong,.kachel strong{color:var(--hd);font-weight:600}
.note{font-size:.86rem;color:var(--mut);margin-top:1.2rem}
.cols2{columns:2;column-gap:2.6rem}
.cols2 li{break-inside:avoid}

/* Text und Bild nebeneinander */
.duo{display:grid;grid-template-columns:1fr 1fr;gap:clamp(2rem,5vw,4.5rem);align-items:center}
.duo.rev .duo-b{order:-1}
.duo-b{position:relative;aspect-ratio:4/3;overflow:hidden;background:var(--light)}
.duo-b img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover}
.duo-t h2{margin-bottom:1.1rem}
.duo-t .over{margin-bottom:.9rem}
.bildbreit{margin-top:2.4rem;background:var(--white);padding:1.4rem}
.bildbreit img{width:100%;height:auto}

/* ---------- Kacheln ---------- */
.kacheln{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:1.6rem}
.kacheln.k2{grid-template-columns:repeat(2,minmax(0,1fr))}
.kacheln.k4{grid-template-columns:repeat(4,minmax(0,1fr))}
.kachel{position:relative;background:var(--card);color:var(--tx);padding:2rem 1.8rem;display:flex;flex-direction:column}
.kachel .n{font-size:.85rem;font-weight:600;color:var(--brown);margin-bottom:.5rem}
.kachel h3{font-size:1.15rem;margin-bottom:.55rem;color:var(--ink)}
.sub .sec .kachel h3{color:var(--ink)}
.kachel p{font-size:.95rem;color:var(--text);margin-bottom:.7rem}
.kachel p:last-child{margin-bottom:0}
.kachel ul{list-style:none;font-size:.93rem;color:var(--text)}
.kachel li{position:relative;padding-left:1.2rem;margin-bottom:.35rem}
.kachel li::before{content:"";position:absolute;left:0;top:.62em;width:6px;height:6px;background:var(--beige)}
.kachel .go{margin-top:auto;padding-top:.9rem;font-size:.9rem;font-weight:600;color:var(--brown)}
.kachel::after{content:"";position:absolute;left:0;bottom:0;height:3px;width:100%;background:var(--beige);transform:scaleX(0);transform-origin:left;transition:transform .5s var(--ease)}
.kachel:hover::after{transform:scaleX(1)}
.sub .svc a{background:var(--card)}
.sub .svc a::before{background:var(--brown)}
html[data-theme] .sub .sec.alt .svc a::before{background:var(--acc)}
.sub .sec .svc h3{color:var(--ink)}
.sub .sec .svc a:hover h3{color:var(--white)}
.sub .why div{background:var(--card)}
.sub .sec .why h3{color:var(--ink)}
.sub .why{border-color:var(--ln)}
.sub .why div{border-color:var(--line)}

/* Häkchenliste */
.checks{list-style:none;display:grid;grid-template-columns:repeat(2,1fr);gap:.7rem 2.4rem;max-width:960px}
.checks.c1{grid-template-columns:1fr}
.checks.c3{grid-template-columns:repeat(3,1fr);max-width:none}
.checks li{position:relative;padding-left:2rem;color:var(--tx)}
.checks li::before{content:"";position:absolute;left:2px;top:.42em;width:13px;height:7px;border-left:2px solid var(--ac);border-bottom:2px solid var(--ac);transform:rotate(-45deg)}

/* Spalten mit Listen (z. B. Jobs) */
.spalten{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:1.6rem}
.spalten.s2{grid-template-columns:repeat(2,minmax(0,1fr))}
.kachel .cols2{columns:1}
.spalten .kachel h3{padding-bottom:.8rem;margin-bottom:1rem;border-bottom:1px solid var(--line)}
.spalten .kachel li{margin-bottom:.5rem}

/* Schritte auf Unterseiten */
.sub .steps .rail{background:var(--ln)}
.sub .steps .rail i{background:var(--ac)}
.sub .step p{color:var(--mut)}
.sub .step .no{background:var(--bg);border-color:var(--beige);color:var(--ac)}
.sub .step.lit .no{background:var(--brown);border-color:var(--brown);color:var(--white)}
html[data-theme] .sub .sec.alt .step .no{border-color:rgba(255,255,255,.6)}
html[data-theme] .sub .sec.alt .step.lit .no{background:var(--white);border-color:var(--white);color:var(--firm)}
.step ul{list-style:none;margin:.8rem 0 0;font-size:.94rem;color:var(--mut)}
.step ul.cols2{column-gap:2rem}
.step li{position:relative;padding-left:1.2rem;margin-bottom:.32rem}
.step li::before{content:"";position:absolute;left:0;top:.62em;width:6px;height:6px;background:var(--beige)}
.step p+p{margin-top:.7rem}
.step h4{font-size:.95rem;margin:1.1rem 0 .2rem}
details.auf{margin-top:.9rem}
details.auf summary{display:inline-block;list-style:none;cursor:pointer;font-size:.88rem;font-weight:600;color:var(--ac);padding:.45rem .9rem;border:1px solid var(--beige);transition:background .25s,color .25s}
details.auf summary::-webkit-details-marker{display:none}
details.auf summary:hover{background:var(--beige);color:var(--white)}
details.auf[open] summary{background:var(--beige);color:var(--white)}
details.auf .zu{display:none}
details.auf[open] .zu{display:inline}
details.auf[open] .offen{display:none}

/* Fragen */
.sub .qa{border-bottom-color:var(--ln)}
.sub .qa button{color:var(--hd)}
.sub .qa button:hover{color:var(--ac)}
html[data-theme] .sub .sec.alt .qa button:hover{opacity:.8}
.sub .qa button::after{color:var(--ac)}
.sub .qa .a>div{color:var(--mut)}
.qa .a ul{list-style:none;padding:0 2.5rem 1.1rem 0}
.qa .a li{position:relative;padding-left:1.2rem;margin-bottom:.3rem}
.qa .a li::before{content:"";position:absolute;left:0;top:.66em;width:6px;height:6px;background:var(--beige)}

/* Aufruf-Band */
.cta{background:var(--brown);color:var(--white);padding:clamp(3rem,6vw,4.6rem) 0}
html[data-theme] .cta{background:var(--acc)}
.cta .wrap{display:grid;grid-template-columns:1.5fr auto;gap:2rem 3rem;align-items:center}
.cta h2{color:var(--white);font-size:clamp(1.5rem,2.6vw,2.1rem);margin-bottom:.6rem}
.cta p{opacity:.92;max-width:62ch}
.cta .acts{margin-top:0;justify-content:flex-end}
.cta .btn{background:var(--white);color:var(--brown)}
.cta .btn:hover{background:var(--beige);color:var(--white)}
.cta .btn-line{background:transparent;color:var(--white);box-shadow:inset 0 0 0 1px var(--white)}
.cta .btn-line:hover{background:var(--white);color:var(--brown)}

/* Kennzahlen, Bewertungsblock und Rechner auf Unterseiten */
.sub .stats{background:var(--brown)}
html[data-theme] .sub .stats{background:var(--acc)}
.sub .value{background:var(--brown-dark)}
html[data-theme] .sub .value{background:#5F3515}
.sub .value h2{color:var(--white)}
.sub .value .lead{color:var(--white)}
.sub .value .over{color:var(--beige)}
.sub .calc{background:var(--card)}
html[data-theme] .sub .sec:not(.alt) .calc{background:var(--light)}
html[data-theme] .sub .calc .out{background:var(--acc)}
.sub .calc-note{color:var(--text)}
.sub .map .st{fill:var(--card)}
.sub .map .st.act{fill:var(--beige)}
.sub .map .st.act.hot{fill:var(--brown-mid)}
html[data-theme] .sub .sec.alt .map .pt text{fill:var(--white)}
html[data-theme] .sub .sec.alt .map svg{fill:var(--white)}
html[data-theme] .sub .sec.alt .map .pt rect:not(.ring){fill:var(--white)}
html[data-theme] .sub .sec.alt .map .pt .ring{stroke:var(--white)}
html[data-theme] .sub .sec.alt .map-note,html[data-theme] .sub .sec.alt .towns{color:var(--white)}
.sub .locs{border-top-color:var(--ln)}
.sub .locs a{border-bottom-color:var(--ln)}
.sub .locs b{color:var(--hd)}
.sub .locs small,.sub .locs .arr2{color:var(--ac)}
.sub .locs span{color:var(--mut)}
.sub .locs a:hover,.sub .locs a.on{background:var(--card)}
html[data-theme] .sub .sec.alt .locs a:hover b,html[data-theme] .sub .sec.alt .locs a.on b{color:var(--ink)}
html[data-theme] .sub .sec.alt .locs a:hover span,html[data-theme] .sub .sec.alt .locs a.on span{color:var(--text)}
html[data-theme] .sub .sec.alt .locs a:hover small,html[data-theme] .sub .sec.alt .locs a.on small,html[data-theme] .sub .sec.alt .locs a:hover .arr2,html[data-theme] .sub .sec.alt .locs a.on .arr2{color:var(--brown)}

/* Kontakt am Seitenende: braun wie auf der Startseite, in den Farbfassungen weiß mit grauer Formularfläche */
.sub .sec.contact{background:var(--brown);color:var(--white)}
html[data-theme] .sub .contact{background:var(--white);color:var(--text-dark)}
html[data-theme] .sub .contact .over{color:var(--brown)}
html[data-theme] .sub .contact h2{color:var(--ink)}
html[data-theme] .sub .contact p{color:var(--text);opacity:1}
html[data-theme] .sub .contact .lines a{color:var(--ink)}
html[data-theme] .sub .contact .lines svg{fill:var(--brown)}
html[data-theme] .sub .contact .cform{background:var(--light)}
html[data-theme] .sub .contact .cform .fld{background:var(--white)}
html[data-theme] .sub .totop{background:var(--acc)}
.sub .contact h2{color:var(--white)}
.sub .contact .over{color:var(--beige)}
.cform select.fld{appearance:none;-webkit-appearance:none;background-color:var(--white);background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%238F6D4C' stroke-width='2'%3E%3Cpath d='M6 9l6 6 6-6'/%3E%3C/svg%3E");background-repeat:no-repeat;background-position:right .8rem center;background-size:16px;color:var(--ink)}
.formbox{background:var(--card);padding:2rem;max-width:760px}
.formbox .cform{padding:0;background:none}
.formbox .cform .fld{background:var(--fld)}
.sub .sec.alt .formbox .cform .fld{background:var(--white)}
.sub .sec:not(.alt) .formbox .cform .fld{background:var(--white)}

/* ---------- Team ---------- */
.team{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:1.6rem}
.team.t3{grid-template-columns:repeat(3,minmax(0,1fr))}
.person{background:var(--card);display:flex;flex-direction:column;color:var(--text-dark)}
.person .ph{position:relative;aspect-ratio:21/16;overflow:hidden;background:var(--beige)}
.person .ph img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;object-position:50% 20%;transition:transform 1.1s var(--ease)}
.person:hover .ph img{transform:scale(1.05)}
.person .bd{padding:1.3rem 1.4rem 1.5rem;display:flex;flex-direction:column;flex:1}
.sub .sec .person h3{font-size:1.1rem;line-height:1.35;color:var(--ink)}
.person .rolle{font-size:.88rem;color:var(--text);margin:.35rem 0 1rem;line-height:1.5}
.person .ko{margin-top:auto;padding-top:.9rem;border-top:1px solid var(--line);display:flex;flex-direction:column;gap:.3rem;font-size:.92rem}
.person .ko a{display:flex;align-items:center;gap:.55rem;color:var(--text-dark);transition:color .25s;word-break:break-word}
.person .ko a:hover{color:var(--brown)}
.person .ko svg{width:15px;height:15px;fill:var(--brown);flex-shrink:0}
.person .obj{margin-top:.7rem;font-size:.86rem;font-weight:600;color:var(--brown)}
.chefin{display:grid;grid-template-columns:.9fr 1.1fr;gap:clamp(2rem,5vw,4.5rem);align-items:center}
.chefin .bild{position:relative;aspect-ratio:1024/734;overflow:hidden;background:var(--light)}
.chefin .bild img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover}
.chefin h2{margin-bottom:.4rem}
.chefin .rolle{color:var(--ac);font-weight:600;margin-bottom:1.1rem}

/* ---------- Blog ---------- */
.posts{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:1.8rem}
.post{background:var(--card);display:flex;flex-direction:column;color:var(--text-dark)}
.post .ph{position:relative;aspect-ratio:3/2;overflow:hidden;background:var(--light)}
.post .ph img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;transition:transform 1.1s var(--ease)}
.post:hover .ph img{transform:scale(1.05)}
.post .bd{padding:1.4rem 1.5rem 1.6rem;display:flex;flex-direction:column;flex:1}
.post .kat{font-size:.76rem;font-weight:600;letter-spacing:.12em;text-transform:uppercase;color:var(--brown);margin-bottom:.5rem}
.sub .sec .post h3,.post h3{font-size:1.12rem;line-height:1.4;color:var(--ink);margin-bottom:.6rem}
.post p{font-size:.93rem;color:var(--text)}
.post .go{margin-top:auto;padding-top:1rem;font-size:.9rem;font-weight:600;color:var(--brown)}
.artikel{max-width:800px;margin:0 auto}
.artikel .bild{position:relative;aspect-ratio:16/9;overflow:hidden;background:var(--light);margin-bottom:2.4rem}
.artikel .bild img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover}
.artikel .prose{max-width:none;font-size:1.03rem}
.artikel .prose h2{font-size:clamp(1.35rem,2.2vw,1.7rem);margin:2.6rem 0 .9rem}
.artikel .prose>h2:first-child{margin-top:0}
.tabelle{width:100%;border-collapse:collapse;margin:0 0 1.4rem;font-size:.95rem}
.tabelle th,.tabelle td{text-align:left;padding:.65rem .8rem;border-bottom:1px solid var(--line);vertical-align:top}
.tabelle th{color:var(--ink);font-weight:600;background:var(--light)}
.tabwrap{overflow-x:auto}

/* ---------- Immobiliensuche ---------- */
.such{background:var(--card);padding:1.6rem;color:var(--text-dark)}
.such-zeile{display:grid;grid-template-columns:auto 1.5fr 1fr 1fr;gap:.8rem;align-items:end}
.such-zeile+.such-zeile{margin-top:.8rem;grid-template-columns:repeat(4,1fr) auto}
.feldg{display:flex;flex-direction:column;gap:.3rem;min-width:0}
.feldg label,.feldg .lbl{font-size:.76rem;font-weight:600;letter-spacing:.1em;text-transform:uppercase;color:var(--text)}
.such input,.such select{width:100%;border:1px solid var(--beige);background:var(--white);padding:.72rem .9rem;color:var(--ink);border-radius:0;appearance:none;-webkit-appearance:none;height:48px}
.such select{padding-right:2.3rem;background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%238F6D4C' stroke-width='2'%3E%3Cpath d='M6 9l6 6 6-6'/%3E%3C/svg%3E");background-repeat:no-repeat;background-position:right .7rem center;background-size:16px}
.such input:focus,.such select:focus{outline:none;border-color:var(--brown)}
.such .filter{height:48px}
.such .filter button{padding:0 1.1rem;white-space:nowrap}
.such .zurueck{height:48px;padding:0 1rem;font-size:.9rem;font-weight:600;color:var(--brown);border:1px solid var(--beige);background:var(--white);transition:background .25s,color .25s;white-space:nowrap}
.such .zurueck:hover{background:var(--beige);color:var(--white)}
.erg-kopf{display:flex;justify-content:space-between;align-items:center;gap:1rem;flex-wrap:wrap;margin:1.6rem 0 1.4rem}
.erg-kopf .count{margin:0;color:var(--mut);font-size:.95rem}
.erg-kopf .count b{color:var(--hd);font-weight:600}
.erg-kopf .rechts{display:flex;gap:.8rem;align-items:center;flex-wrap:wrap}
.erg-kopf select{border:1px solid var(--beige);background:var(--white) url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%238F6D4C' stroke-width='2'%3E%3Cpath d='M6 9l6 6 6-6'/%3E%3C/svg%3E") no-repeat right .7rem center/16px;padding:.6rem 2.3rem .6rem .9rem;color:var(--ink);border-radius:0;appearance:none;-webkit-appearance:none;height:44px}
.erg-kopf .filter{height:44px}
.erg-kopf .filter button{padding:0 1rem}
.stand{font-size:.82rem;color:var(--mut);margin-top:1.8rem}
a.card{color:inherit}
.card .neu{position:absolute;right:0;top:1rem;background:var(--white);color:var(--brown);font-size:.74rem;font-weight:600;letter-spacing:.1em;text-transform:uppercase;padding:.3rem .7rem}
.card .anz{position:absolute;left:0;bottom:0;background:var(--ink);color:var(--white);font-size:.76rem;font-weight:600;padding:.25rem .6rem;opacity:.86}
.card h3{display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden}
.sub .sec .card h3{color:var(--ink)}
.sub .card{background:var(--card)}
.card.hl{outline:2px solid var(--brown);outline-offset:0}
.ladebox{background:var(--card);color:var(--text);padding:2.6rem;text-align:center}
.sub .empty{background:var(--card);color:var(--text)}
/* Karte in der Suche */
.okarte{position:relative;background:var(--card);margin-bottom:1.6rem;display:none}
.okarte.on{display:block}
.okarte>svg{display:block;width:100%;height:min(62vh,560px)}
.okarte .st{fill:var(--bg,#fff);stroke:var(--beige);stroke-width:1;vector-effect:non-scaling-stroke;cursor:pointer;transition:fill .3s}
.sub .sec:not(.alt) .okarte .st{fill:var(--white)}
.sub .sec.alt .okarte .st{fill:var(--light)}
.sub .sec .okarte .st:hover{fill:var(--light)}
.sub .sec.alt .okarte .st:hover{fill:var(--white)}
.sub .sec .okarte .st.sel{fill:var(--beige)}
.okarte .pk,.okarte .pku{fill:none;stroke-linecap:round;stroke-linejoin:round;vector-effect:non-scaling-stroke}
.okarte .pku{stroke:var(--white);stroke-width:15px;pointer-events:none}
.okarte .pk{stroke:var(--brown-dark);stroke-width:11px;cursor:pointer;transition:stroke .2s,stroke-width .2s}
.okarte .pk:hover,.okarte .pk.hl{stroke:var(--ink);stroke-width:15px}
.okarte>svg{touch-action:pan-y;cursor:grab}
.okarte .zoom button{display:grid;place-items:center}
.okarte .lbl{font-family:var(--font);font-weight:600;letter-spacing:.1em;fill:var(--brown);text-transform:uppercase;pointer-events:none}
.okarte .tipp{position:absolute;z-index:3;width:250px;background:var(--white);border-top:3px solid var(--beige);pointer-events:none;opacity:0;transition:opacity .2s;color:var(--text-dark);outline:1px solid var(--line)}
.okarte .tipp.on{opacity:1}
.okarte .tipp img{width:100%;aspect-ratio:3/2;object-fit:cover}
.okarte .tipp div{padding:.7rem .8rem .8rem;font-size:.86rem;line-height:1.45}
.okarte .tipp b{display:block;color:var(--ink);font-weight:600}
.okarte .tipp span{color:var(--brown);font-weight:600}
.okarte .leg{position:absolute;left:1rem;bottom:.8rem;font-size:.8rem;color:var(--text);background:var(--white);padding:.3rem .6rem}
.okarte .zoom{position:absolute;right:1rem;top:1rem;display:flex;flex-direction:column;gap:2px}
.okarte .zoom button{width:38px;height:38px;background:var(--white);color:var(--brown);font-size:1.2rem;font-weight:600;border:1px solid var(--beige);transition:background .25s,color .25s}
.okarte .zoom button:hover{background:var(--beige);color:var(--white)}

/* ---------- Objekt-Detailseite ---------- */
.obj-kopf{padding:2.4rem 0 1.6rem;background:var(--white)}
.obj-kopf h1{font-size:clamp(1.5rem,2.8vw,2.3rem);font-weight:600;color:var(--ink);line-height:1.25;letter-spacing:-.01em;max-width:28ch}
.obj-kopf .zeile{display:flex;justify-content:space-between;align-items:flex-end;gap:1.5rem;flex-wrap:wrap}
.obj-kopf .ort{color:var(--text);margin-top:.5rem;font-size:1.02rem}
.obj-kopf .pr{text-align:right}
.obj-kopf .pr small{display:block;font-size:.78rem;font-weight:600;letter-spacing:.12em;text-transform:uppercase;color:var(--text)}
.obj-kopf .pr b{font-size:clamp(1.5rem,2.6vw,2.1rem);font-weight:600;color:var(--brown);line-height:1.2}
.galerie{position:relative;background:var(--light)}
.galerie .gross{position:relative;aspect-ratio:16/9;max-height:74vh;width:100%;overflow:hidden;background:var(--light);cursor:zoom-in}
.galerie .gross img{position:absolute;inset:0;width:100%;height:100%;object-fit:contain;transition:opacity .35s}
.galerie .gross img.weg{opacity:0}
.galerie .pf{position:absolute;top:50%;width:48px;height:48px;margin-top:-24px;background:var(--white);display:grid;place-items:center;z-index:2;transition:background .25s}
.galerie .pf:hover{background:var(--beige)}
.galerie .pf svg{width:18px;height:18px;stroke:var(--brown);fill:none;stroke-width:2}
.galerie .pf:hover svg{stroke:var(--white)}
.galerie .pf.l{left:0}.galerie .pf.r{right:0}
.galerie .zahl{position:absolute;left:0;bottom:0;background:var(--white);color:var(--brown);font-size:.82rem;font-weight:600;padding:.35rem .8rem;z-index:2}
.galerie .voll{position:absolute;right:0;top:0;background:var(--white);color:var(--brown);font-size:.82rem;font-weight:600;padding:.35rem .8rem;z-index:2;transition:background .25s,color .25s}
.galerie .voll:hover{background:var(--beige);color:var(--white)}
.daumen{display:flex;gap:6px;overflow-x:auto;padding:6px 0 0;scrollbar-width:thin}
.daumen button{flex:0 0 auto;width:104px;height:70px;overflow:hidden;opacity:.55;transition:opacity .25s;outline-offset:-2px;background:var(--light)}
.daumen button.on,.daumen button:hover{opacity:1}
.daumen button.on{outline:2px solid var(--brown)}
.daumen img{width:100%;height:100%;object-fit:cover}
.fakten{display:grid;grid-template-columns:repeat(var(--n,5),1fr);background:var(--brown);color:var(--white);margin-top:1.6rem}
html[data-theme] .fakten{background:var(--firm)}
.fakten div{padding:1.2rem 1.4rem;border-left:1px solid rgba(255,255,255,.3)}
.fakten div:first-child{border-left:0}
.fakten small{display:block;font-size:.74rem;font-weight:600;letter-spacing:.12em;text-transform:uppercase;opacity:.85}
.fakten b{display:block;font-size:1.25rem;font-weight:600;margin-top:.15rem;line-height:1.3}
.obj-grid{display:grid;grid-template-columns:1.55fr 1fr;gap:clamp(2rem,4vw,3.6rem);align-items:start}
.obj-seite{position:sticky;top:104px;display:flex;flex-direction:column;gap:1.4rem}
.obj-haupt>section{margin-bottom:2.8rem}
.obj-haupt>section:last-child{margin-bottom:0}
.obj-haupt h2{font-size:1.45rem;margin-bottom:1.1rem;padding-bottom:.7rem;border-bottom:1px solid var(--line)}
.tafel{background:var(--light);padding:1.6rem 1.6rem 1.7rem;color:var(--text-dark)}
.tafel h3{font-size:1.05rem;margin-bottom:.9rem;color:var(--ink)}
.dl{list-style:none;border-top:1px solid var(--line)}
.dl li{display:flex;justify-content:space-between;gap:1rem;padding:.55rem 0;border-bottom:1px solid var(--line);font-size:.93rem}
.dl li span:first-child{color:var(--text)}
.dl li span:last-child{color:var(--ink);font-weight:600;text-align:right}
.dl li.sum span{color:var(--brown)}
.makler{display:grid;grid-template-columns:96px 1fr;gap:1.1rem;align-items:center;margin-bottom:1.1rem}
.makler .ph{width:96px;height:96px;overflow:hidden;background:var(--beige)}
.makler .ph img{width:100%;height:100%;object-fit:cover;object-position:50% 18%}
.makler b{display:block;color:var(--ink);font-weight:600;font-size:1.05rem;line-height:1.35}
.makler span{display:block;font-size:.86rem;color:var(--text);line-height:1.45;margin-top:.2rem}
.tafel .btn{width:100%;margin-top:.6rem}
.tafel .klein{font-size:.82rem;color:var(--text);margin-top:.9rem}
.energie{display:flex;flex-wrap:wrap;gap:1.2rem 2.6rem}
.energie div small{display:block;font-size:.76rem;font-weight:600;letter-spacing:.1em;text-transform:uppercase;color:var(--text)}
.energie div b{font-size:1.1rem;color:var(--ink);font-weight:600}
.umg{display:grid;grid-template-columns:repeat(3,1fr);gap:1.4rem}
.umg h3{font-size:1rem;margin-bottom:.5rem}
.einh{width:100%;border-collapse:collapse;font-size:.93rem}
.einh th,.einh td{text-align:left;padding:.6rem .7rem;border-bottom:1px solid var(--line)}
.einh th{font-size:.76rem;letter-spacing:.1em;text-transform:uppercase;color:var(--text);font-weight:600}
.einh a{color:var(--brown);font-weight:600}
.obj-video video{width:100%;height:auto;display:block;background:var(--ink)}
.obj-video video+video{margin-top:1rem}
.linkliste{list-style:none;display:flex;flex-direction:column;gap:.5rem}
.linkliste a{display:inline-flex;align-items:center;gap:.6rem;color:var(--brown);font-weight:600}
.linkliste a::before{content:"";width:8px;height:8px;border-top:2px solid var(--brown);border-right:2px solid var(--brown);transform:rotate(45deg)}
.lage{position:relative}
.lage svg{display:block;width:100%;height:auto;fill:var(--ink)}
.lage .st{fill:var(--white);stroke:var(--beige);stroke-width:1;vector-effect:non-scaling-stroke}
.lage .st.act{fill:var(--beige)}
.lage .pk{fill:var(--brown-dark)}
.lage text{font-family:var(--font);font-size:26px;font-weight:600;fill:var(--ink)}
.lage .ring{fill:none;stroke:var(--brown-dark);stroke-width:1.5;vector-effect:non-scaling-stroke;animation:ping 2.6s ease-out infinite;transform-box:fill-box;transform-origin:center}
/* Großansicht */
.lb{position:fixed;inset:0;z-index:150;background:var(--ink);display:none;flex-direction:column}
.lb.on{display:flex}
.lb .oben{display:flex;justify-content:space-between;align-items:center;color:var(--white);padding:.6rem 1rem;font-size:.9rem;font-weight:600}
.lb .zu{width:44px;height:44px;background:var(--brown);display:grid;place-items:center}
.lb .zu svg{width:18px;height:18px;stroke:var(--white);fill:none;stroke-width:2}
.lb .mitte{position:relative;flex:1;min-height:0}
.lb .mitte img{position:absolute;inset:0;width:100%;height:100%;object-fit:contain}
.lb .pf{position:absolute;top:50%;width:52px;height:52px;margin-top:-26px;background:var(--white);display:grid;place-items:center;z-index:2}
.lb .pf svg{width:18px;height:18px;stroke:var(--brown);fill:none;stroke-width:2}
.lb .pf.l{left:0}.lb .pf.r{right:0}

/* Hinweis- und Statusflächen */
.hinweis{background:var(--card);padding:2.4rem;text-align:center;color:var(--text)}
.hinweis h2{margin-bottom:.8rem;color:var(--ink)}
.hinweis .acts{justify-content:center}
.ort-karte{background:var(--card);padding:1.8rem;color:var(--text-dark)}
.ort-karte small{display:block;font-size:.76rem;font-weight:600;letter-spacing:.12em;text-transform:uppercase;color:var(--brown)}
.ort-karte b{display:block;font-size:1.15rem;color:var(--ink);font-weight:600;margin:.2rem 0 .5rem}
.ort-karte p{font-size:.95rem;color:var(--text)}
.ort-karte a{color:var(--brown);font-weight:600}
.orte{display:grid;grid-template-columns:repeat(3,1fr);gap:1.6rem}
.sitemap{display:grid;grid-template-columns:repeat(4,1fr);gap:2rem}
.sitemap h3{font-size:1rem;margin-bottom:.8rem}
.sitemap ul{list-style:none;display:flex;flex-direction:column;gap:.4rem;font-size:.95rem}
.sitemap a{color:var(--mut);transition:color .25s}
.sitemap a:hover{color:var(--ac)}

/* Fassungswahl in der Fußzeile (nur Testversion) */
.fassung{display:flex;flex-wrap:wrap;gap:.5rem .9rem;align-items:center;margin-top:1.2rem;font-size:.8rem;color:var(--text)}
.fassung button,.fassung a{padding:.25rem .7rem;border:1px solid var(--beige);color:var(--brown);font-weight:600;font-size:.8rem;background:var(--white);transition:background .25s,color .25s}
.fassung button:hover,.fassung a:hover,.fassung .on{background:var(--beige);color:var(--white)}

@media screen and (max-width:1050px){
  .duo,.chefin,.obj-grid,.cta .wrap{grid-template-columns:1fr}
  .duo.rev .duo-b{order:0}
  .kacheln,.kacheln.k4,.spalten,.posts,.orte,.team.t3{grid-template-columns:1fr 1fr}
  .team{grid-template-columns:repeat(3,1fr)}
  .checks.c3{grid-template-columns:1fr 1fr}
  .cta .acts{justify-content:flex-start}
  .such-zeile,.such-zeile+.such-zeile{grid-template-columns:1fr 1fr}
  .such-zeile .feldg.breit{grid-column:1/-1}
  .obj-seite{position:static}
  .fakten{grid-template-columns:repeat(3,1fr)}
  .fakten div:nth-child(4){border-left:0}
  .fakten div:nth-child(n+4){border-top:1px solid rgba(255,255,255,.3)}
  .sitemap{grid-template-columns:1fr 1fr}
  .umg{grid-template-columns:1fr 1fr}
}
@media screen and (max-width:640px){
  .okarte>svg{height:46vh;max-height:430px}
  .phero-img{height:38vh;min-height:220px;max-height:340px}
  .phero-box{margin-top:-60px;padding:1.5rem 1.3rem 1.8rem}
  .phero.plain{padding:2.4rem 0 2.2rem}
  .kacheln,.kacheln.k2,.kacheln.k4,.spalten,.spalten.s2,.posts,.orte,.team,.team.t3,.checks,.checks.c3,.umg{grid-template-columns:1fr}
  .cols2{columns:1}
  .such{padding:1.1rem}
  .such-zeile,.such-zeile+.such-zeile{grid-template-columns:1fr}
  .such .filter{width:100%}
  .fakten{grid-template-columns:1fr 1fr}
  .fakten div{border-left:0;border-top:1px solid rgba(255,255,255,.3)}
  .fakten div:nth-child(-n+2){border-top:0}
  .fakten div:nth-child(even){border-left:1px solid rgba(255,255,255,.3)}
  .daumen button{width:78px;height:54px}
  .galerie .gross{aspect-ratio:4/3}
  .obj-kopf .pr{text-align:left}
  .sitemap{grid-template-columns:1fr}
  .einh th:nth-child(2),.einh td:nth-child(2),.einh th:nth-child(3),.einh td:nth-child(3){display:none}
  .formbox{padding:1.3rem}
  .makler{grid-template-columns:72px 1fr}
  .makler .ph{width:72px;height:72px}
}
/* Anfrage-Leiste auf der Objektseite, nur auf schmalen Bildschirmen */
.obj-leiste{display:none}
@media screen and (max-width:1050px){
  .obj-leiste{position:fixed;left:0;right:0;bottom:0;z-index:45;display:grid;grid-template-columns:1fr 1fr;background:var(--white);border-top:1px solid var(--line);transform:translateY(101%);transition:transform .35s var(--ease)}
  .obj-leiste.on{transform:none}
  .obj-leiste a{padding:.95rem .5rem;text-align:center;font-weight:600;font-size:.95rem;color:var(--brown)}
  .obj-leiste a:first-child{background:var(--brown);color:var(--white)}
  .hat-leiste .totop{bottom:4.6rem}
  .hat-leiste footer{padding-bottom:5.5rem}
}
@media screen and (max-width:640px){
  .okarte .pk{stroke-width:9px}
  .okarte .pku{stroke-width:12px}
  .erg-kopf .filter button{white-space:nowrap}
}
@media print{
  .header,.mnav,.totop,.contact,footer,.galerie .pf,.daumen,.loader,.obj-seite .btn,.cta,.obj-leiste{display:none!important}
  .sub main{padding-top:0}
  .obj-grid{grid-template-columns:1fr}
  .rv,.split span i{opacity:1!important;transform:none!important}
}
