/* Stadtquartier Beta · Bereichsseiten (site2.js) – Cinematic Editorial + Motion Grid
   Ergänzt sq.css/sq2.css. Nur Bausteine, die dort fehlen. */

/* ---------- Editorial-Hero (ruhig, hell) ---------- */
.ed-hero{display:grid;grid-template-columns:minmax(0,1.05fr) minmax(0,.95fr);gap:clamp(28px,5vw,72px);align-items:center;padding:clamp(36px,6vw,72px) 0 clamp(24px,4vw,48px)}
.ed-hero .logo-tag{display:inline-flex;align-items:center;gap:12px;font-size:12px;letter-spacing:.18em;text-transform:uppercase;color:var(--charcoal);font-weight:600}
.ed-hero .logo-tag img{height:34px;width:auto}
.ed-hero .logo-tag i{display:inline-block;width:32px;height:1px;background:var(--orange)}
.ed-hero h1{margin:18px 0 0}
.ed-hero .lead{margin-top:18px}
.ed-collage{position:relative;aspect-ratio:1/1;max-width:560px;margin-left:auto;width:100%}
.ed-collage img{position:absolute;object-fit:cover;border-radius:14px;box-shadow:var(--shadow-l);transition:transform .7s var(--ease)}
.ed-collage img:nth-child(1){left:0;top:6%;width:58%;aspect-ratio:4/5;z-index:1}
.ed-collage img:nth-child(2){right:0;top:0;width:46%;aspect-ratio:4/5;transform:rotate(2.5deg)}
.ed-collage img:nth-child(3){right:8%;bottom:0;width:52%;aspect-ratio:5/4;z-index:2;transform:rotate(-1.5deg)}
.ed-collage:hover img:nth-child(1){transform:translateY(-6px)}
.ed-collage .mark{position:absolute;left:-14px;bottom:10%;z-index:3;background:var(--card);border:1px solid var(--line-2);border-radius:12px;padding:10px 14px;box-shadow:var(--shadow);font-size:12.5px;display:grid;gap:2px}
.ed-collage .mark b{font-family:var(--serif);font-weight:500;font-size:20px;color:var(--ink)}
.ed-hero.one .ed-collage{aspect-ratio:4/5;max-width:520px}
.ed-hero.one .ed-collage img:nth-child(1){inset:0;width:100%;aspect-ratio:auto;height:100%;transform:none}
@media(max-width:900px){.ed-hero{grid-template-columns:1fr;padding-top:28px}.ed-collage{max-width:420px;margin:8px auto 0}.ed-collage .mark{left:0}}

/* ---------- Cine-Hero Erweiterungen ---------- */
.cine .division{display:inline-flex;align-items:center;gap:10px;background:rgba(255,255,255,.1);border:1px solid rgba(255,255,255,.25);backdrop-filter:blur(8px);border-radius:99px;padding:6px 14px 6px 8px;color:#fff;font-size:12px;letter-spacing:.16em;text-transform:uppercase;width:max-content;max-width:100%}
.cine .division img{height:26px;width:auto;filter:brightness(0) invert(1)}
.cine.short{min-height:min(70vh,640px)}
.cine.text h1{font-size:clamp(34px,5.4vw,82px);line-height:1;max-width:18ch}
.cine .division .lg{display:inline-block;width:30px;height:26px;background:center/contain no-repeat;filter:brightness(0) invert(1)}
.cine .inner .row{animation:fadeup 1s .7s var(--ease) both}
.cine.has-bar{padding-bottom:70px}
.cine .cap.ann{right:auto;left:24px;bottom:24px;max-width:min(60ch,calc(100% - 48px));opacity:.85}
.cine .sub.quote{font-family:var(--serif);font-style:italic;font-size:clamp(19px,2vw,26px);line-height:1.3}

/* ---------- Überschriften-Block ---------- */
.sec-head{display:grid;gap:10px;max-width:70ch}
.sec-head .eyebrow{display:flex;align-items:center;gap:12px}
.sec-head .eyebrow::before{content:"";width:28px;height:1px;background:var(--orange);display:inline-block}
.sec-head.center{margin:0 auto;text-align:center}
.sec-head.center .eyebrow{justify-content:center}
.sec-head.center .eyebrow::before{display:none}
.prose{max-width:66ch;font-size:16.5px;line-height:1.7;color:var(--ink-2)}
.prose p+p{margin-top:14px}
.src{font-size:12px;color:var(--muted);margin-top:10px}

/* ---------- Zahlen-Band mit 3/5 Spalten ---------- */
.stats.s3{grid-template-columns:repeat(3,minmax(0,1fr))}
.stats.s2{grid-template-columns:repeat(2,minmax(0,1fr))}
.collage{width:100%}
.stats .v .count{font-variant-numeric:tabular-nums}
.stats.s5{grid-template-columns:repeat(5,minmax(0,1fr))}
.stats.s5 .v{font-size:clamp(36px,4.2vw,62px)}
.stats.dark{border-color:rgba(255,255,255,.18)}
.stats.dark>div{border-color:rgba(255,255,255,.18)}
.stats.dark .v{color:#fff}
.stats.dark .l{color:rgba(255,255,255,.72)}
.stats .v .u{font-size:.42em;color:var(--orange);margin-left:4px;font-family:var(--sans);font-weight:600;vertical-align:baseline}
@media(max-width:800px){.stats.s5{grid-template-columns:repeat(2,minmax(0,1fr))}.stats.s5>div:nth-child(2n){border-right:0}.stats.s5>div:last-child{grid-column:span 2;border-top:1px solid var(--line)}.stats.dark.s5>div:last-child{border-top-color:rgba(255,255,255,.18)}.stats.s3{grid-template-columns:1fr}.stats.s3>div{border-right:0;border-bottom:1px solid var(--line)}.stats.s3>div:last-child{border-bottom:0}.stats.s2{grid-template-columns:1fr}.stats.s2>div{border-right:0;border-bottom:1px solid var(--line)}.stats.s2>div:last-child{border-bottom:0}}

/* ---------- Zeitleiste (Erfolgsgeschichte) ---------- */
.tl{position:relative;margin-top:40px}
.tl .axis{position:absolute;left:0;right:0;top:46px;height:1px;background:var(--line)}
.tl .axis i{position:absolute;left:0;top:0;height:1px;width:0;background:var(--orange);transition:width 2.4s var(--ease)}
.tl.in .axis i{width:100%}
.tl ol{list-style:none;margin:0;padding:0;display:grid;grid-template-columns:repeat(6,minmax(0,1fr));gap:14px}
.tl li{position:relative;padding-top:72px}
.tl li .yr{font-family:var(--serif);font-size:clamp(24px,2.4vw,34px);color:var(--ink);line-height:1;position:absolute;top:0;left:0}
.tl li .dot{position:absolute;left:0;top:40px;width:13px;height:13px;border-radius:50%;background:var(--card);border:2px solid var(--ink);transition:background .4s,border-color .4s,transform .4s}
.tl li:last-child .dot{background:var(--orange);border-color:var(--orange)}
.tl li .dot::after{content:"";position:absolute;inset:-7px;border-radius:50%;border:1px solid var(--orange);opacity:0;transform:scale(.5)}
.tl li:last-child .dot::after{animation:tlhalo 2.4s ease-out infinite}
@keyframes tlhalo{0%{opacity:.8;transform:scale(.6)}100%{opacity:0;transform:scale(1.6)}}
.tl li h4{font-family:var(--sans);font-size:11px;letter-spacing:.1em;text-transform:uppercase;color:var(--charcoal);margin:0 0 8px;font-weight:600;overflow-wrap:anywhere;padding-right:10px}
.tl li p{font-size:14px;line-height:1.6;color:var(--ink-2);margin:0;padding-right:10px}
.tl li:hover .dot{transform:scale(1.25)}
@media(max-width:1000px){.tl ol{grid-template-columns:repeat(3,minmax(0,1fr));row-gap:34px}.tl .axis{display:none}.tl li{padding-left:22px;padding-top:0;border-left:1px solid var(--line)}.tl li .yr{position:static;display:block;margin-bottom:8px}.tl li .dot{left:-7px;top:6px}}
@media(max-width:560px){.tl ol{grid-template-columns:1fr}}

/* ---------- Struktur: Dachmarke + 4 Divisionen ---------- */
.org{display:grid;gap:18px;justify-items:center}
.org .root{background:var(--ink);color:#fff;border-radius:14px;padding:18px 28px;display:grid;gap:4px;justify-items:center;text-align:center;position:relative}
.org .root img{height:34px;width:auto}
.org .root::after{content:"";width:1px;height:26px;background:var(--line);position:absolute;left:50%;bottom:-26px}
.org .branch{position:relative;width:100%;height:18px;margin-top:8px}
.org .branch::before{content:"";position:absolute;left:12.5%;right:12.5%;top:0;height:1px;background:var(--line)}
.org .branch i{position:absolute;top:0;width:1px;height:18px;background:var(--line)}
.org .branch i:nth-child(1){left:12.5%}.org .branch i:nth-child(2){left:37.5%}.org .branch i:nth-child(3){left:62.5%}.org .branch i:nth-child(4){left:87.5%}
.org .biz2{width:100%}
@media(max-width:900px){.org .branch{display:none}.org .root::after{display:none}}

/* ---------- Wertschöpfungsprozess: Rail mit Bildkarten ---------- */
.proc{position:relative;flex:0 0 min(400px,82vw)!important;min-height:420px;border-radius:18px;overflow:hidden;background:var(--ink);color:#fff;display:flex;align-items:flex-end;isolation:isolate}
.proc img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;opacity:.55;transform:scale(1.02);transition:transform 1.2s var(--ease),opacity .6s}
.proc:hover img{transform:scale(1.08);opacity:.7}
.proc .sh{position:absolute;inset:0;background:linear-gradient(0deg,rgba(0,22,34,.92) 0%,rgba(0,22,34,.35) 55%,rgba(0,22,34,.15) 100%)}
.proc .n{position:absolute;top:18px;left:20px;font-family:var(--serif);font-size:54px;line-height:1;color:rgba(255,255,255,.35)}
.proc .n b{font-weight:400;color:var(--orange);font-size:.5em;vertical-align:top;margin-left:2px}
.proc .tx{position:relative;padding:24px 22px 26px;display:grid;gap:10px}
.proc .tx h3{font-family:var(--sans);font-weight:600;font-size:12.5px;letter-spacing:.16em;text-transform:uppercase;color:#fff;margin:0}
.proc .tx p{margin:0;font-size:15px;line-height:1.6;color:rgba(255,255,255,.88)}
.proc-prog{height:2px;background:var(--line);border-radius:2px;overflow:hidden;margin-top:6px}
.proc-prog i{display:block;height:100%;width:14%;background:var(--orange);transition:transform .4s var(--ease)}

/* ---------- Auszeichnungen ---------- */
.awards{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:16px}
.award{background:var(--card);border:1px solid var(--line-2);border-radius:16px;overflow:hidden;display:grid;grid-template-rows:auto 1fr;transition:transform .4s var(--ease),box-shadow .4s}
.award:hover{transform:translateY(-5px);box-shadow:var(--shadow-l)}
.award .im{aspect-ratio:4/3;background:var(--paper-2);display:grid;place-items:center;overflow:hidden}
.award .im img{width:100%;height:100%;object-fit:cover;transition:transform .8s var(--ease)}
.award .im.pad img{object-fit:contain;padding:18px}
.award:hover .im img{transform:scale(1.04)}
.award .tx{padding:14px 16px 16px}
.award .tx b{font-family:var(--serif);font-size:26px;font-weight:400;color:var(--ink);display:block;line-height:1}
.award .tx span{display:block;font-size:12px;letter-spacing:.12em;text-transform:uppercase;color:var(--charcoal);margin-top:8px;font-weight:600}
.award .tx small{display:block;color:var(--muted);margin-top:6px;font-size:13px;line-height:1.5;letter-spacing:0;text-transform:none;font-weight:400}
.award.dark{background:var(--ink);border-color:var(--ink)}
.award.dark .im{background:var(--ink)}
.award.dark .tx b,.award.dark .tx span{color:#fff}
.award.dark .tx small{color:rgba(255,255,255,.7)}
@media(max-width:900px){.awards{grid-template-columns:repeat(2,minmax(0,1fr))}}

/* ---------- Service-Tabs ---------- */
.svc{display:grid;grid-template-columns:260px minmax(0,1fr);gap:28px;align-items:start}
.svc .list{display:grid;gap:4px}
.svc .list button{text-align:left;border:0;background:transparent;padding:12px 14px;border-radius:10px;font-family:var(--serif);font-size:20px;color:var(--muted);cursor:pointer;display:flex;justify-content:space-between;align-items:center;transition:background .3s,color .3s}
.svc .list button:hover{background:var(--card)}
.svc .list button[aria-selected=true]{background:var(--ink);color:#fff}
.svc .list button svg{opacity:0;transition:opacity .3s,transform .3s}
.svc .list button[aria-selected=true] svg{opacity:1}
.svc .pane{background:var(--card);border:1px solid var(--line-2);border-radius:18px;padding:clamp(20px,3vw,36px);min-height:260px;position:relative;overflow:hidden}
.svc .pane::before{content:"";position:absolute;right:-60px;top:-60px;width:220px;height:220px;border-radius:50%;background:radial-gradient(circle,rgba(255,81,0,.14),transparent 65%)}
.svc .pane>*{position:relative}
.svc .pane .k{font-family:var(--serif);font-size:clamp(28px,3vw,40px);color:var(--ink);line-height:1.05}
.svc .pane p{font-size:16.5px;line-height:1.7;color:var(--ink-2);max-width:62ch}
.svc .pane.sw{animation:fadeup .5s var(--ease) both}
@media(max-width:800px){.svc{grid-template-columns:1fr}.svc .list{display:flex;overflow-x:auto;gap:6px;padding-bottom:4px;scrollbar-width:none}.svc .list button{font-size:16px;white-space:nowrap;padding:10px 14px;border:1px solid var(--line);background:var(--card)}.svc .list button svg{display:none}}

/* ---------- Große Serif-Claim-Sektion ---------- */
.claim{background:var(--ink);color:#fff;border-radius:28px;padding:clamp(48px,8vw,110px) clamp(20px,5vw,72px);position:relative;overflow:hidden;isolation:isolate}
.claim::before{content:"";position:absolute;inset:0;background-image:linear-gradient(rgba(255,255,255,.05) 1px,transparent 1px),linear-gradient(90deg,rgba(255,255,255,.05) 1px,transparent 1px);background-size:120px 120px;mask-image:radial-gradient(circle at 70% 40%,#000,transparent 70%);z-index:-1}
.claim::after{content:"";position:absolute;right:-120px;bottom:-160px;width:420px;height:420px;border-radius:50%;background:radial-gradient(circle,rgba(255,81,0,.35),transparent 65%);z-index:-1}
.claim .ln{display:block;overflow:hidden}
.claim .ln span{display:block;font-family:var(--serif);font-weight:400;font-size:clamp(34px,6.4vw,92px);line-height:1;letter-spacing:-.02em;transform:translateY(110%);transition:transform 1s var(--ease) var(--d,0ms)}
.claim.in .ln span{transform:none}
.claim .ln.acc span{color:var(--orange);font-style:italic}
.claim .sub{color:rgba(255,255,255,.75);max-width:52ch;margin-top:22px}
.claim.light{background:var(--card);color:var(--ink);border:1px solid var(--line-2)}
.claim.light::before{background-image:linear-gradient(rgba(0,38,58,.06) 1px,transparent 1px),linear-gradient(90deg,rgba(0,38,58,.06) 1px,transparent 1px)}
.claim.light .sub{color:var(--muted)}
.claim .two{display:grid;grid-template-columns:1fr 1fr;gap:32px}
@media(max-width:800px){.claim .two{grid-template-columns:1fr}}

/* ---------- Karten-Grid für Service-Punkte ---------- */
.pts{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:16px}
.pt{background:var(--card);border:1px solid var(--line-2);border-radius:16px;padding:24px 22px;display:grid;gap:12px;align-content:start;position:relative;overflow:hidden;transition:transform .4s var(--ease),box-shadow .4s}
.pt:hover{transform:translateY(-5px);box-shadow:var(--shadow-l)}
.pt .n{font-family:var(--serif);font-size:13px;letter-spacing:.14em;color:var(--orange-text);font-weight:600}
.pt h3{font-family:var(--serif);font-weight:500;font-size:21px;line-height:1.2;margin:0;color:var(--ink)}
.pt p{margin:0;font-size:15px;line-height:1.65;color:var(--ink-2)}
.pt.wide{grid-column:span 2}
.pt.ink{background:var(--ink);color:#fff;border-color:var(--ink)}
.pt.ink h3{color:#fff}.pt.ink p{color:rgba(255,255,255,.82)}.pt.ink .n{color:var(--orange)}
@media(max-width:900px){.pts{grid-template-columns:repeat(2,minmax(0,1fr))}}
@media(max-width:560px){.pts{grid-template-columns:1fr}.pt.wide{grid-column:auto}}

/* ---------- Galerie mit Hover-Titeln ---------- */
.gtiles{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:14px}
.gtile{position:relative;border-radius:16px;overflow:hidden;aspect-ratio:4/3;background:var(--ink);display:block;color:#fff;text-decoration:none}
.gtile img{width:100%;height:100%;object-fit:cover;transition:transform 1.2s var(--ease),filter .6s}
.gtile:hover img{transform:scale(1.07)}
.gtile .sh{position:absolute;inset:0;background:linear-gradient(0deg,rgba(0,22,34,.85),rgba(0,22,34,.05) 60%);opacity:.9;transition:opacity .4s}
.gtile .tx{position:absolute;left:0;right:0;bottom:0;padding:18px;display:grid;gap:4px;transform:translateY(6px);transition:transform .5s var(--ease)}
.gtile:hover .tx{transform:none}
.gtile .tx b{font-family:var(--serif);font-weight:400;font-size:21px;line-height:1.15}
.gtile .tx span{font-size:11.5px;letter-spacing:.14em;text-transform:uppercase;color:rgba(255,255,255,.85);font-weight:600}
.gtile.tall{grid-row:span 2;aspect-ratio:auto;min-height:420px}
@media(max-width:800px){.gtiles{grid-template-columns:repeat(2,minmax(0,1fr))}.gtile.tall{grid-row:auto;aspect-ratio:4/3;min-height:0}}
@media(max-width:480px){.gtiles{grid-template-columns:1fr}}

/* ---------- Standorte Österreich ---------- */
.at-map{display:grid;grid-template-columns:minmax(0,1.1fr) minmax(0,.9fr);gap:32px;align-items:center}
.at-map .svgbox{background:var(--card);border:1px solid var(--line-2);border-radius:16px;padding:22px}
.at-map .svgbox img{width:100%;height:auto;display:block;opacity:.85}
.at-list{list-style:none;margin:0;padding:0;display:grid;gap:0}
.at-list li{display:grid;grid-template-columns:62px 1fr auto;gap:12px;align-items:center;padding:12px 0;border-bottom:1px solid var(--line-2)}
.at-list li b{font-family:var(--serif);font-weight:400;font-size:22px;color:var(--ink)}
.at-list li span{font-size:14.5px;color:var(--ink-2)}
.at-list li .badge{justify-self:end}
@media(max-width:900px){.at-map{grid-template-columns:1fr}}

/* ---------- Ankauf-Stepper ---------- */
.stepper{display:grid;grid-template-columns:minmax(0,.9fr) minmax(0,1.1fr);gap:40px;align-items:start}
.stepper .ringbox{position:sticky;top:110px;background:var(--card);border:1px solid var(--line-2);border-radius:18px;padding:24px;display:grid;gap:14px}
.stepper .ringbox .diag{border:0;padding:0;max-width:260px;margin:0 auto}
.stepper .ringbox .diag svg{max-width:260px;margin:0 auto}
.stepper .ringbox .cur{font-family:var(--serif);font-size:clamp(24px,2.4vw,32px);line-height:1.1;color:var(--ink)}
.stepper .ringbox p{color:var(--ink-2);line-height:1.65;font-size:15.5px;margin:0}
.stepper .steps{display:grid;gap:8px}
.step{display:grid;grid-template-columns:52px minmax(0,1fr);gap:14px;padding:16px 18px;border-radius:14px;border:1px solid var(--line-2);background:var(--card);text-align:left;cursor:pointer;transition:border-color .3s,background .3s,transform .3s var(--ease);width:100%;font:inherit;color:inherit}
.step:hover{border-color:var(--ink)}
.step[aria-current=true]{border-color:var(--orange);background:var(--card);box-shadow:var(--shadow)}
.step .n{width:40px;height:40px;border-radius:50%;border:1px solid var(--line);display:grid;place-items:center;font-family:var(--serif);font-size:18px;color:var(--ink);transition:background .3s,color .3s,border-color .3s}
.step[aria-current=true] .n{background:var(--orange);border-color:var(--orange);color:#fff}
.step.done .n{background:var(--ink);border-color:var(--ink);color:#fff}
.step .t{display:block;font-family:var(--sans);font-size:12.5px;letter-spacing:.14em;text-transform:uppercase;margin:0 0 6px;color:var(--charcoal);font-weight:600}
.step .p{display:block;margin:0;font-size:14.5px;line-height:1.6;color:var(--ink-2);max-height:0;overflow:hidden;opacity:0;transition:max-height .6s var(--ease),opacity .4s}
.step[aria-current=true] .p{max-height:300px;opacity:1}
@media(max-width:900px){.stepper{grid-template-columns:1fr}.stepper .ringbox{position:static}.step .p{max-height:none;opacity:1}}

/* ---------- Profilkarte (Ansprechpartner) ---------- */
.profile{display:grid;grid-template-columns:minmax(0,.8fr) minmax(0,1.2fr);gap:36px;align-items:center;background:var(--ink);color:#fff;border-radius:24px;padding:clamp(22px,3vw,40px);overflow:hidden;position:relative}
.profile::after{content:"";position:absolute;right:-140px;top:-140px;width:420px;height:420px;border-radius:50%;background:radial-gradient(circle,rgba(255,81,0,.3),transparent 65%);pointer-events:none}
.profile .pic{aspect-ratio:4/5;border-radius:16px;overflow:hidden;background:#0b3448;max-width:380px}
.profile .pic img{width:100%;height:100%;object-fit:cover;object-position:top;filter:grayscale(1)}
.profile .h2{color:#fff}
.profile p{color:rgba(255,255,255,.84);line-height:1.7}
.profile .facts{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:10px 18px;margin-top:18px;list-style:none;padding:0}
.profile .facts li{font-size:13.5px;color:rgba(255,255,255,.85);padding:10px 0;border-top:1px solid rgba(255,255,255,.18)}
.profile .facts li b{display:block;font-size:11px;letter-spacing:.14em;text-transform:uppercase;color:var(--orange);margin-bottom:4px;font-weight:600}
.profile .ct{display:flex;gap:16px;flex-wrap:wrap;margin-top:18px;font-size:14.5px}
.profile .ct span{display:inline-flex;align-items:center;gap:6px}
@media(max-width:900px){.profile{grid-template-columns:1fr}.profile .pic{max-width:300px}.profile .facts{grid-template-columns:1fr}}

/* ---------- Teamkarten (neu: Klick öffnet Profil) ---------- */
.tcard.btn-like .pic,.tcard.btn-like .tx{display:block}
.tcard.btn-like{cursor:pointer;text-align:left;border:1px solid var(--line-2);padding:0;background:var(--card);font:inherit;color:inherit;width:100%;display:block}
.tcard .tx .ct{display:grid;gap:2px;margin-top:8px;font-size:12.5px;color:var(--muted);word-break:break-word}
.tcard .tx .role{font-size:11.5px;letter-spacing:.12em;text-transform:uppercase;color:var(--charcoal);font-weight:600;margin-top:4px}
.tcard .pic .ini{font-size:46px}
.tcard .pic .bz{position:absolute;left:10px;top:10px}
.member{display:grid;grid-template-columns:200px minmax(0,1fr);gap:24px;align-items:start}
.member .pic{aspect-ratio:4/5;border-radius:14px;overflow:hidden;background:linear-gradient(180deg,#ECE5DA,#E3DACC);position:relative}
.member .pic img{width:100%;height:100%;object-fit:cover;object-position:top;filter:grayscale(1)}
.member .pic .ini{position:absolute;inset:0;display:grid;place-items:center;font-family:var(--serif);font-size:48px;color:var(--ink);opacity:.5}
.member .facts{list-style:none;padding:0;margin:14px 0 0;display:grid;gap:6px}
.member .facts li{font-size:14px;color:var(--ink-2);padding-left:18px;position:relative}
.member .facts li::before{content:"";position:absolute;left:0;top:9px;width:8px;height:1px;background:var(--orange)}
.member .ct{display:grid;gap:4px;margin-top:14px;font-size:14px}
.member .ct a{color:var(--ink)}
@media(max-width:560px){.member{grid-template-columns:1fr}.member .pic{max-width:200px}}

/* ---------- Einheiten-Tabelle MARIA 200 ---------- */
.units th button{border:0;background:transparent;font:inherit;color:inherit;letter-spacing:inherit;text-transform:inherit;cursor:pointer;display:inline-flex;align-items:center;gap:4px;padding:0}
.units th button[aria-sort=ascending]::after{content:"↑";color:var(--orange)}
.units th button[aria-sort=descending]::after{content:"↓";color:var(--orange)}
.units td.num{text-align:right;font-variant-numeric:tabular-nums;white-space:nowrap}
.units th.num{text-align:right}
.units tr.sold td{color:var(--muted)}
.units .badge.sold{background:var(--paper-3);color:var(--charcoal)}
.facts-row{display:grid;grid-template-columns:repeat(5,minmax(0,1fr));gap:12px}
.facts-row>div{background:var(--card);border:1px solid var(--line-2);border-radius:14px;padding:16px}
.facts-row b{display:block;font-family:var(--serif);font-weight:400;font-size:26px;color:var(--ink);line-height:1}
.facts-row span{display:block;font-size:12.5px;color:var(--muted);margin-top:6px}
@media(max-width:900px){.facts-row{grid-template-columns:repeat(2,minmax(0,1fr))}}

/* ---------- Investoren-Login & Portal ---------- */
.login-wrap{min-height:72vh;display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1fr);align-items:stretch;border-radius:24px;overflow:hidden;border:1px solid var(--line-2);background:var(--card)}
.login-wrap .side{background:var(--ink);color:#fff;padding:clamp(28px,4vw,56px);display:grid;align-content:space-between;gap:28px;position:relative;overflow:hidden}
.login-wrap .side::after{content:"";position:absolute;right:-160px;bottom:-160px;width:460px;height:460px;border-radius:50%;background:radial-gradient(circle,rgba(255,81,0,.35),transparent 65%)}
.login-wrap .side>*{position:relative;z-index:1}
.login-wrap .side img{height:40px;width:auto}
.login-wrap .side .h1{color:#fff}
.login-wrap .form{padding:clamp(28px,4vw,56px);display:grid;align-content:center;gap:0}
.login-wrap .form form{max-width:420px}
@media(max-width:900px){.login-wrap{grid-template-columns:1fr}.login-wrap .side{min-height:0}}
.portal-head{display:flex;justify-content:space-between;align-items:flex-end;gap:16px;flex-wrap:wrap;padding-bottom:20px;border-bottom:1px solid var(--line)}
.portal-grid{display:grid;grid-template-columns:minmax(0,2fr) minmax(0,1fr);gap:24px;align-items:start}
@media(max-width:900px){.portal-grid{grid-template-columns:1fr}}
.offer{display:grid;grid-template-columns:120px minmax(0,1fr) auto;gap:14px;align-items:center;padding:12px;border:1px solid var(--line-2);border-radius:14px;background:var(--card);text-decoration:none;color:inherit;transition:transform .3s var(--ease),box-shadow .3s}
.offer:hover{transform:translateY(-2px);box-shadow:var(--shadow)}
.offer .ph{display:block;aspect-ratio:4/3;border-radius:8px;overflow:hidden}
.offer .ph img,.offer .ph svg{width:100%;height:100%;object-fit:cover;display:block}
.offer .t{font-family:var(--serif);font-size:18px;color:var(--ink);line-height:1.2}
.offer .p{font-weight:600;white-space:nowrap;color:var(--ink)}
@media(max-width:560px){.offer{grid-template-columns:90px minmax(0,1fr)}.offer .p{grid-column:2}}
.doc{display:flex;gap:12px;align-items:center;padding:10px 0;border-bottom:1px solid var(--line-2);font-size:14px}
.doc:last-child{border-bottom:0}
.doc .ico{width:34px;height:34px;border-radius:8px;background:var(--paper-2);display:grid;place-items:center;color:var(--ink);flex:none}
.doc .muted{margin-left:auto;white-space:nowrap}

/* ---------- Tippgeber-Formular ---------- */
.tipp-grid{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1.1fr);gap:32px;align-items:start}
.tipp-grid fieldset{border:1px solid var(--line-2);border-radius:14px;padding:14px 16px 18px;margin:0}
.tipp-grid legend{font-size:11.5px;letter-spacing:.14em;text-transform:uppercase;font-weight:600;color:var(--charcoal);padding:0 6px}
.rules{list-style:none;padding:0;margin:14px 0 0;display:grid;gap:10px}
.rules li{display:grid;grid-template-columns:28px 1fr;gap:10px;font-size:15px;line-height:1.55;color:var(--ink-2)}
.rules li i{width:24px;height:24px;border-radius:50%;background:var(--orange-soft);color:var(--orange-text);display:grid;place-items:center;font-size:12px;font-weight:700;font-style:normal}
@media(max-width:900px){.tipp-grid{grid-template-columns:1fr}}

/* ---------- Suchleiste im Hero (Makler) ---------- */
.hero-search{position:relative;z-index:4;margin-top:-54px}
.hero-search .searchbar{box-shadow:var(--shadow-l)}
@media(max-width:900px){.hero-search{margin-top:-30px}}

/* ---------- Referenz-Kacheln: Bild-Raster mit Labels ---------- */
.refs{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:14px}
.refs .story{min-height:320px}
.refs .story .tx .h3{font-size:24px}
.refs .story.big{grid-column:span 2;min-height:460px}
@media(max-width:900px){.refs{grid-template-columns:repeat(2,minmax(0,1fr))}.refs .story.big{grid-column:span 2}}
@media(max-width:560px){.refs{grid-template-columns:1fr}.refs .story.big{grid-column:auto;min-height:320px}}

/* ---------- Video-Hinweis ---------- */
.vidnote{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:20px;align-items:center;background:var(--card);border:1px solid var(--line-2);border-radius:18px;padding:22px 24px}
.vidnote .play{width:56px;height:56px;border-radius:50%;background:var(--ink);color:#fff;display:grid;place-items:center;flex:none}
@media(max-width:640px){.vidnote{grid-template-columns:1fr}}

/* ---------- Diverses ---------- */
.ann{border-left:3px solid #D99A00;background:var(--card);padding:12px 14px;border-radius:0 8px 8px 0;font-size:14px;color:var(--ink-2)}
.ann b{color:var(--ink)}
.chips-nav{display:flex;gap:6px;flex-wrap:wrap}
.chips-nav .chip{cursor:pointer;text-decoration:none}
.check span{line-height:1.5}
.jobs{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1fr);gap:32px;align-items:start}
@media(max-width:900px){.jobs{grid-template-columns:1fr}}
.beta-tag{display:inline-flex;align-items:center;gap:6px;font-size:11.5px;letter-spacing:.08em;text-transform:uppercase;font-weight:600;color:var(--charcoal);background:var(--paper-2);border-radius:99px;padding:4px 10px}
.beta-tag i{width:7px;height:7px;border-radius:50%;background:var(--orange);display:inline-block}
.xlinks{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:14px}
.xlinks a{display:grid;gap:6px;padding:20px;border-radius:14px;border:1px solid var(--line-2);background:var(--card);text-decoration:none;color:inherit;transition:transform .3s var(--ease),box-shadow .3s}
.xlinks a:hover{transform:translateY(-3px);box-shadow:var(--shadow)}
.xlinks a b{font-family:var(--serif);font-weight:500;font-size:19px;color:var(--ink)}
.xlinks a span{font-size:13.5px;color:var(--muted)}
@media(max-width:800px){.xlinks{grid-template-columns:1fr}}
.wrap>.section:first-child{padding-top:0}
html,body{overflow-x:clip}

/* ---------- eigene SVG-Abbildungen (site2.js) ---------- */
.sqd2{width:100%;height:auto;display:block}
.sqd2 .draw{stroke-dasharray:1;stroke-dashoffset:1;animation:sqd2draw 1.4s cubic-bezier(.2,.7,.2,1) both;animation-delay:var(--d,0s)}
@keyframes sqd2draw{to{stroke-dashoffset:0}}
.sqd2 .pop{opacity:0;transform:translateY(6px);animation:sqd2pop .7s cubic-bezier(.2,.7,.2,1) both;animation-delay:var(--d,0s)}
@keyframes sqd2pop{to{opacity:1;transform:none}}
@media(prefers-reduced-motion:reduce){.sqd2 .draw,.sqd2 .pop{animation:none;opacity:1;transform:none;stroke-dashoffset:0}}

/* ---------- Mobile-Feinschliff ---------- */
@media(max-width:800px){.stats{grid-template-columns:repeat(2,minmax(0,1fr))}.stats>div{min-width:0}}
@media(max-width:600px){
  .stats .v{font-size:clamp(32px,9.5vw,46px);overflow-wrap:anywhere}
  .stats.s5 .v{font-size:clamp(30px,9vw,42px)}
  .stats>div{padding:22px 14px}
  .collage{max-width:calc(100% - 16px);margin:0 auto}
  .claim .ln span{font-size:clamp(30px,9vw,48px)}
  .tl li .yr{font-size:28px}
  .ed-hero h1.display{font-size:clamp(36px,10.5vw,52px)}
  .cine.text h1{font-size:clamp(32px,9vw,44px)}
  .proc{min-height:380px}
  .facts-row{grid-template-columns:1fr 1fr}
  .portal-head{align-items:flex-start}
}
@media(max-width:600px){.team-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:10px}.tcard .tx{padding:10px 12px 12px}.tcard .tx .h4{font-size:15px}.tcard .tx .ct{font-size:11.5px}.stats .l{overflow-wrap:anywhere;font-size:14px}}

/* ---- Cockpit-Login (auth.js) ---- */
.auth-wrap{min-height:100vh;display:grid;place-items:center;padding:24px;background:radial-gradient(1200px 600px at 80% -10%,rgba(255,81,0,.12),transparent 60%),var(--paper)}
.auth-card{width:min(1040px,100%);display:grid;grid-template-columns:minmax(0,1.05fr) minmax(0,1fr);border-radius:24px;overflow:hidden;border:1px solid var(--line-2);background:var(--card);box-shadow:0 40px 80px -40px rgba(0,38,58,.35)}
.auth-card .side{background:var(--ink);color:#fff;padding:clamp(28px,4vw,56px);display:grid;align-content:space-between;gap:28px;position:relative;overflow:hidden}
.auth-card .side::after{content:"";position:absolute;right:-160px;bottom:-160px;width:460px;height:460px;border-radius:50%;background:radial-gradient(circle,rgba(255,81,0,.35),transparent 65%)}
.auth-card .side>*{position:relative;z-index:1}
.auth-card .form{padding:clamp(28px,4vw,56px);display:grid;align-content:center}
.auth-card .err-msg{color:var(--err);font-size:13px;min-height:18px}
@media(max-width:760px){.auth-card{grid-template-columns:1fr}.auth-card .side{min-height:0}}

/* ---- Rechtsseiten (site3.js) ---- */
.legal .legal-head{max-width:760px;margin-bottom:40px}
.legal-grid{display:grid;grid-template-columns:220px minmax(0,1fr);gap:48px;align-items:start}
.legal-nav{position:sticky;top:96px;display:grid;gap:4px}
.legal-nav a{padding:10px 14px;border-radius:10px;color:var(--ink);text-decoration:none;font-weight:500;border:1px solid transparent}
.legal-nav a:hover{background:var(--card)}
.legal-nav a[aria-current=page]{background:var(--ink);color:#fff}
.legal-body{max-width:76ch;font-size:16px;line-height:1.65}
.legal-body p{margin:12px 0 0}
.legal-body ul{margin:12px 0 0;padding-left:22px}
.legal-body li{margin:6px 0}
.legal-body h2{scroll-margin-top:100px}
.legal-toc{display:flex;flex-wrap:wrap;gap:8px}
.legal-toc a{font-size:13px;padding:6px 12px;border:1px solid var(--line);border-radius:999px;color:var(--ink);text-decoration:none;background:var(--card)}
.legal-toc a:hover{border-color:var(--ink)}
.legal-firms{align-items:start}
.legal-firm{height:100%}
.legal .kv{display:grid;grid-template-columns:150px minmax(0,1fr);gap:8px 14px;margin:0;font-size:14px}
.legal .kv dt{color:var(--muted);font-size:12px;letter-spacing:.06em;text-transform:uppercase;padding-top:2px}
.legal .kv dd{margin:0;word-break:break-word}
.consent-row{display:flex;align-items:center;justify-content:space-between;gap:20px;padding:16px 0;border-bottom:1px solid var(--line);cursor:pointer}
.consent-row:first-child{padding-top:0}
.consent-row>span:first-child{display:grid;gap:4px}
.consent-row input{width:22px;height:22px;accent-color:var(--orange);flex:0 0 auto}
.legal .tbl{width:100%;border-collapse:collapse;font-size:14px}
.legal .tbl th,.legal .tbl td{text-align:left;padding:10px 12px;border-bottom:1px solid var(--line);vertical-align:top}
.legal .tbl th{font-size:12px;letter-spacing:.06em;text-transform:uppercase;color:var(--muted)}
@media(max-width:860px){.legal-grid{grid-template-columns:1fr;gap:24px}.legal-nav{position:static;display:flex;flex-wrap:wrap}.legal-nav p{flex-basis:100%}.legal .kv{grid-template-columns:1fr;gap:2px 0}.legal .kv dd{margin-bottom:8px}.legal-firms{grid-template-columns:1fr}}
