/* =====================================================================
   IBS Webseite 2027 – zentrale Gestaltung
   Farben: Logo-Blau #336699, Akzent #0b6fc2. Alle Größen in rem, damit
   die Schriftgröße über A− / A+ für die ganze Seite skaliert (Anf. 09).
   ===================================================================== */
:root{
  --brand:#336699; --accent:#0b6fc2; --accent-ink:#fff;
  --ink:#16202a; --muted:#5b6875; --paper:#ffffff; --soft:#f1f4f7; --soft2:#e7ecf1; --line:#dbe2e8;
  --logo-text:#808080; --logo-mark:#336699;
  --header-bg:rgba(255,255,255,.96); --footer-bg:#0f2235; --footer-ink:#d7e2ec;
  --shadow:0 18px 40px -18px rgba(16,40,64,.35);
  --shadow-sides:-10px 10px 22px -12px rgba(16,40,64,.35),10px 10px 22px -12px rgba(16,40,64,.35),0 18px 22px -14px rgba(16,40,64,.4);
  --max:78rem; --radius:4px;
  --font:"Segoe UI",system-ui,-apple-system,Roboto,"Helvetica Neue",Arial,sans-serif;
  color-scheme:light;
}
:root[data-theme="dark"]{
  --brand:#7fb0e0; --accent:#5aa8f0; --accent-ink:#06121e;
  --ink:#e6edf3; --muted:#a6b4c1; --paper:#0d1620; --soft:#14202c; --soft2:#1b2a38; --line:#263646;
  --logo-text:#c9d3dc; --logo-mark:#5b93cc;
  --header-bg:rgba(13,22,32,.95); --footer-bg:#070e15; --footer-ink:#c3d0dc;
  --shadow:0 18px 40px -18px rgba(0,0,0,.7); --shadow-sides:none;
  color-scheme:dark;
}
*,*::before,*::after{box-sizing:border-box}
html{scroll-behavior:smooth;-webkit-text-size-adjust:100%}
body{margin:0;font-family:var(--font);font-size:1rem;line-height:1.6;color:var(--ink);background:var(--paper);transition:background .3s,color .3s;overflow-x:hidden}
img{max-width:100%;display:block}
a{color:var(--accent);text-decoration:none}
a:hover{text-decoration:underline}
a,button,[role=button],label,.pcard,.ncard,.dcard{cursor:pointer}   /* Anf. 11: Hand-Symbol */
.pcard.empty{cursor:default}
h1,h2,h3{line-height:1.15;margin:0 0 .6em;hyphens:auto;overflow-wrap:break-word}
.split>*,.proj-grid>*,.legal>*,.map-layout>*{min-width:0}
p{margin:0 0 1em}
.caps{text-transform:uppercase;letter-spacing:.04em}                  /* Anf. 09: immer Großbuchstaben */
.container{width:min(var(--max),100% - 2.5rem);margin-inline:auto}
.skip{position:absolute;left:-999px;top:0;background:var(--accent);color:#fff;padding:.5rem 1rem;z-index:300}
.skip:focus{left:1rem}
:focus-visible{outline:3px solid var(--accent);outline-offset:2px}
svg{fill:currentColor}

/* ---------- Buttons ---------- */
.btn{display:inline-flex;align-items:center;gap:.5rem;background:var(--accent);color:var(--accent-ink);border:2px solid var(--accent);padding:.7rem 1.1rem;font:inherit;font-size:.85rem;font-weight:700;text-transform:uppercase;letter-spacing:.05em;border-radius:var(--radius);text-decoration:none;transition:.2s}
.btn:hover{filter:brightness(1.1);text-decoration:none}
.btn.ghost{background:transparent;color:var(--accent)}
.btn.sm{padding:.4rem .7rem;font-size:.72rem}
.btn svg{width:1.1em;height:1.1em}

/* ---------- Ladeanimation (Anf. 12) ---------- */
.loader{position:fixed;inset:0;z-index:500;display:grid;place-items:center;background:var(--paper);transition:opacity .5s}
.loader.hide{opacity:0;pointer-events:none}
.loader-mark{position:relative;width:5rem;height:5rem}
.loader-mark svg{position:absolute;inset:0;width:100%;height:100%}
.lm-bg{fill:var(--soft2)}
.lm-fill{fill:var(--logo-mark);animation:build 2.5s ease-in-out infinite}
@keyframes build{0%{clip-path:inset(100% 0 0 0)}80%,100%{clip-path:inset(0 0 0 0)}}

/* ---------- Kopf (Anf. 01/02) ---------- */
.site-header{position:sticky;top:0;z-index:100;background:var(--header-bg);backdrop-filter:blur(12px);border-bottom:1px solid var(--line);transition:box-shadow .3s}
.site-header.compact{box-shadow:0 6px 20px -12px rgba(0,0,0,.35)}
.h-top{background:var(--soft);border-bottom:1px solid var(--line);font-size:.75rem;color:var(--muted);overflow:hidden;max-height:2.6rem;transition:max-height .3s,opacity .3s}
.compact .h-top{max-height:0;opacity:0;border:0}
.h-top-in{display:flex;justify-content:space-between;align-items:center;height:2.4rem;gap:1rem}
.claim{font-weight:600;letter-spacing:.12em}
.tools{display:flex;align-items:center;gap:1rem}
.fontsize{display:flex;border:1px solid var(--line);border-radius:var(--radius);overflow:hidden}
.fontsize button{background:var(--paper);color:var(--ink);border:0;border-right:1px solid var(--line);font:inherit;font-weight:700;padding:.15rem .5rem;min-width:2rem}
.fontsize button:last-child{border-right:0}
.fontsize button:hover{background:var(--soft2)}
.theme-switch{display:flex;align-items:center;gap:.45rem;background:none;border:0;color:var(--muted);font:inherit;font-weight:700;padding:0}
.ts-track{width:2.6rem;height:1.35rem;border-radius:1rem;background:var(--accent);position:relative}
.ts-knob{position:absolute;top:.15rem;left:.15rem;width:1.05rem;height:1.05rem;border-radius:50%;background:#fff;color:#f2a900;display:grid;place-items:center;transition:transform .25s}
.ts-knob svg{width:.75rem;height:.75rem;position:absolute}
.ts-knob svg:last-child{opacity:0;color:#24486e}
[data-theme=dark] .ts-knob{transform:translateX(1.25rem)}
[data-theme=dark] .ts-knob svg:first-child{opacity:0}
[data-theme=dark] .ts-knob svg:last-child{opacity:1}
.h-main-in{position:relative;display:flex;align-items:center;gap:1.5rem;height:5.5rem;transition:height .3s}
.compact .h-main-in{height:2.9rem}                                  /* ca. 50 % schmaler */
.mainnav{display:flex;gap:1.6rem;font-size:.85rem;font-weight:700;height:100%}
.mainnav a{display:flex;align-items:center;gap:.35rem;color:var(--ink);border-bottom:3px solid transparent;padding-top:3px;text-decoration:none;transition:color .2s,border-color .2s}
.mainnav a svg{width:1.15rem;height:1.15rem}
.mainnav a:hover{color:var(--accent)}
.mainnav a.active{color:var(--accent);border-bottom-color:var(--accent)}
.logo{display:block;line-height:0;flex:none}
.logo-svg{height:3.4rem;width:auto;transition:height .3s}
.compact .logo-svg{height:1.9rem}
.logo-svg .m{fill:var(--logo-mark)} .logo-svg .t{fill:var(--logo-text)}
.quick{margin:0 auto;transform:scale(.6);display:flex;gap:.6rem;opacity:0;visibility:hidden;transition:.3s}
.compact .quick{opacity:1;visibility:visible;transform:scale(1)}
.quick a,.quick-mobile a{width:2.2rem;height:2.2rem;border-radius:50%;display:grid;place-items:center;background:var(--accent);color:#fff;text-decoration:none;transition:transform .2s}
.quick a:hover{transform:scale(1.1)}
.quick a svg,.quick-mobile a svg{width:1.2rem;height:1.2rem}
.quick .q-wa,.quick-mobile .q-wa{background:#1fa855}
.quick-mobile{display:none}
.burger{display:none;background:none;border:0;color:var(--ink);padding:.3rem}
.burger svg{width:1.8rem;height:1.8rem}

/* ---------- Seitenkopf mit Unternavigation (Anf. 08) ---------- */
.page-head{background:var(--soft);border-bottom:1px solid var(--line);padding:2.6rem 0 0;text-align:center}
.page-head h1,.page-head .ph1{font-size:clamp(1.6rem,3.4vw,2.4rem);margin-bottom:.35rem;color:var(--ink)}
.page-head .ph1{font-weight:700;line-height:1.15;margin-top:0}
.page-sub{font-size:.85rem;font-weight:600;color:var(--muted);margin:0}
.page-slogan{text-align:right;color:var(--accent);font-size:.75rem;font-weight:700;margin:1.2rem 0 0}
.subnav{display:flex;flex-wrap:wrap;justify-content:center;gap:.2rem 0;font-size:.78rem;padding:.9rem 0 0}
.subnav a{color:var(--muted);padding:.35rem .9rem .6rem;border-bottom:3px solid transparent;position:relative;text-decoration:none}
.subnav a+a::before{content:"";position:absolute;left:0;top:.45rem;height:.9rem;border-left:1px solid var(--line)}
.subnav a:hover{color:var(--accent)}
.subnav a.active{color:var(--ink);font-weight:800;border-bottom-color:var(--accent)}   /* Anf. 10e: fett */

/* ---------- Abschnitte ---------- */
main{display:block}
.section{padding:4.5rem 0}
.section.soft{background:var(--soft)}
.section.tight{padding:3rem 0}
.sec-head{display:flex;justify-content:space-between;align-items:end;gap:1rem;margin-bottom:2rem;flex-wrap:wrap}
.sec-head h2,.h2{font-size:clamp(1.5rem,2.8vw,2.1rem);margin:0}
.eyebrow{display:block;color:var(--accent);font-size:.75rem;font-weight:800;letter-spacing:.16em;text-transform:uppercase;margin-bottom:.4rem}
.lead{font-size:1.15rem;color:var(--muted);max-width:48rem}
.center{text-align:center}
.prose{max-width:46rem}
.prose h2{font-size:1.35rem;margin-top:2rem}
.prose h3{font-size:1.1rem;margin-top:1.6rem}
.prose ul{padding-left:1.2rem}
.muted{color:var(--muted)}
.note{border-left:4px solid var(--accent);background:var(--soft);padding:1rem 1.2rem;margin:1.5rem 0;font-size:.92rem}
.tag{display:inline-block;font-size:.68rem;font-weight:800;color:var(--accent);letter-spacing:.08em;margin-bottom:.35rem}
.more{display:inline-flex;align-items:center;gap:.35rem;font-size:.75rem;font-weight:800;color:var(--accent)}
.more svg{width:1rem;height:1rem}

/* ---------- Startseite: Bild 1 mit Glasstreifen (Anf. 19) ---------- */
.hero{position:relative;height:min(78vh,44rem);min-height:30rem;overflow:hidden;background:var(--soft2)}
.slide{position:absolute;inset:0;background-size:cover;background-position:center;opacity:0;transition:opacity 1s ease;display:flex;align-items:center;padding:0 10%}
.slide.active{opacity:1;z-index:1}
.glass{max-width:34rem;padding:2rem 2.2rem;background:rgba(255,255,255,.55);backdrop-filter:blur(14px) saturate(1.2);-webkit-backdrop-filter:blur(14px) saturate(1.2);border:1px solid rgba(255,255,255,.6);border-radius:6px;color:#0f1d2a;box-shadow:0 20px 50px -20px rgba(0,0,0,.45)}
[data-theme=dark] .glass{background:rgba(10,20,30,.6);border-color:rgba(255,255,255,.12);color:#eef4f8}
.glass h2{font-size:clamp(1.6rem,3.6vw,2.6rem)}
.glass .tag{color:inherit;opacity:.75}
.dots{position:absolute;z-index:3;left:50%;bottom:1.2rem;transform:translateX(-50%);display:flex;gap:.5rem}
.dots button{width:2.2rem;height:.3rem;border:0;border-radius:2px;background:rgba(255,255,255,.6);padding:0}
.dots button.active{background:var(--accent)}
.pause{position:absolute;z-index:3;right:1rem;bottom:.8rem;background:rgba(0,0,0,.35);color:#fff;border:0;border-radius:var(--radius);font-size:.7rem;padding:.3rem .5rem}

/* Leistungsband */
.features{display:grid;grid-template-columns:repeat(4,1fr);border-bottom:1px solid var(--line)}
.feature{padding:2rem 1.6rem;border-right:1px solid var(--line);color:var(--ink);text-decoration:none;transition:background .2s}
.feature:last-child{border-right:0}
.feature:hover{background:var(--soft);text-decoration:none}
.feature svg{width:2.4rem;height:2.4rem;color:var(--accent);margin-bottom:.8rem}
.feature h3{font-size:1rem;margin-bottom:.3rem}
.feature p{font-size:.9rem;color:var(--muted);margin:0}

/* Kennzahlen */
.stats{display:grid;grid-template-columns:repeat(3,1fr);gap:0;background:var(--footer-bg);color:#fff}
.stat{padding:2.4rem 1rem;text-align:center;border-right:1px solid rgba(255,255,255,.12)}
.stat:last-child{border-right:0}
.stat strong{display:block;font-size:2.8rem;line-height:1;color:#7fc1ff;margin-bottom:.5rem}
.stat span{font-size:.78rem;font-weight:600;opacity:.9}

/* Zweispaltig */
.split{display:grid;grid-template-columns:1.1fr 1fr;gap:3rem;align-items:center}
.split.rev{grid-template-columns:1fr 1.1fr}
.split-media{position:relative;min-height:22rem;border-radius:var(--radius);overflow:hidden;background:var(--soft2)}
.split-media img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover}
.quote{font-size:1.4rem;font-weight:300;line-height:1.35;color:var(--brand);border-left:4px solid var(--accent);padding-left:1.2rem;margin:1.5rem 0}

/* Ablauf (Wie wir Projekte realisieren) */
.steps{display:grid;grid-template-columns:repeat(4,1fr);gap:1.2rem;counter-reset:s}
.step{background:var(--paper);border:1px solid var(--line);padding:1.5rem;border-radius:var(--radius);position:relative}
.step::before{counter-increment:s;content:"0" counter(s);font-size:2rem;font-weight:800;color:var(--accent);opacity:.35;display:block;line-height:1;margin-bottom:.6rem}
.step h3{font-size:1rem}
.step p{font-size:.9rem;color:var(--muted);margin:0}

/* CTA */
.cta{background:linear-gradient(90deg,var(--soft) 55%,transparent),url("../img/fotos/cta-planung-hell.jpg") right center/cover no-repeat;padding:3.5rem 0;border-top:1px solid var(--line)}
[data-theme=dark] .cta{background:linear-gradient(90deg,var(--soft) 55%,rgba(13,22,32,.55)),url("../img/fotos/cta-planung-hell.jpg") right center/cover no-repeat}
.cta h2{font-size:clamp(1.4rem,2.6vw,2rem)}
.cta-actions{display:flex;flex-wrap:wrap;gap:.7rem;margin-top:1.2rem}

/* ---------- Karten: Projekte (Anf. 24) ---------- */
.pcard{display:flex;flex-direction:column;background:var(--paper);border:1px solid var(--line);color:var(--ink);text-decoration:none;transition:box-shadow .25s,transform .25s;min-width:0}
.pcard:hover{text-decoration:none;box-shadow:var(--shadow-sides)}
[data-theme=light] .pcard:not(.empty):hover{transform:translateY(-3px)}
.pcard-media{position:relative;aspect-ratio:4/3;overflow:hidden;background:var(--soft2)}
.pcard-media img{width:100%;height:100%;object-fit:cover;transition:transform .5s}
.pcard:hover .pcard-media img{transform:scale(1.04)}
.pcard-body{padding:1rem 1.1rem 1.2rem}
.pcard h3{font-size:.95rem;font-weight:600;color:var(--ink);margin-bottom:.3rem;transition:color .2s}
.pcard:not(.empty):hover h3{font-weight:800;color:var(--accent)}
.pcard p{font-size:.85rem;color:var(--muted);margin:0}
.symbol{position:absolute;right:.5rem;bottom:.5rem;background:rgba(0,0,0,.55);color:#fff;font-size:.62rem;padding:.1rem .4rem;border-radius:2px;letter-spacing:.05em}
.ph-media{position:absolute;inset:0;display:grid;place-content:center;justify-items:center;gap:.4rem;color:var(--muted);font-size:.75rem;font-weight:700;letter-spacing:.1em;text-transform:uppercase;background:repeating-linear-gradient(135deg,var(--soft) 0 14px,var(--soft2) 14px 28px)}
.ph-mark{width:3rem;height:3rem;fill:var(--logo-mark);opacity:.45}

.pgrid{display:grid;grid-template-columns:repeat(3,1fr);gap:1.4rem}

/* Karussell mit Pfeilen (Anf. 10c) */
.carousel{position:relative;display:flex;align-items:center;gap:.6rem}
.c-track{display:grid;grid-auto-flow:column;grid-auto-columns:calc((100% - 3 * 1.2rem) / 4);gap:1.2rem;overflow-x:auto;scroll-snap-type:x mandatory;scrollbar-width:none;flex:1;padding:.4rem .2rem 1.4rem}
.c-track::-webkit-scrollbar{display:none}
.c-track>*{scroll-snap-align:start}
.c-btn{flex:none;width:2.4rem;height:2.4rem;border-radius:50%;border:1px solid var(--line);background:var(--paper);color:var(--ink);display:grid;place-items:center;transition:.2s}
.c-btn svg{width:1.2rem;height:1.2rem}
.c-btn:hover:not(:disabled){background:var(--accent);color:#fff;border-color:var(--accent)}
.c-btn:disabled{opacity:.25;cursor:default}
.group{margin-bottom:2.6rem}
.group-head{display:flex;justify-content:space-between;align-items:baseline;border-bottom:1px solid var(--line);margin-bottom:1rem;padding-bottom:.4rem;gap:1rem}
.group-head h2{font-size:1.05rem;margin:0;letter-spacing:.12em}
.group-head a{font-size:.72rem;font-weight:800;display:inline-flex;gap:.3rem;align-items:center}
.group-head a svg{width:1rem;height:1rem}

.kats{display:grid;grid-template-columns:repeat(auto-fill,minmax(10rem,1fr));gap:.8rem}
.kat{border:1px solid var(--line);padding:1rem;color:var(--ink);background:var(--paper);text-decoration:none;transition:.2s}
.kat span{display:block;font-weight:800;font-size:.85rem}
.kat small{color:var(--muted)}
.kat:hover{border-color:var(--accent);text-decoration:none}
.kat:hover span{color:var(--accent)}

/* News */
.ngrid{display:grid;grid-template-columns:repeat(3,1fr);gap:1.4rem}
.ngrid.four{grid-template-columns:repeat(4,1fr)}
.ncard{display:flex;flex-direction:column;border:1px solid var(--line);background:var(--paper);color:var(--ink);text-decoration:none;transition:box-shadow .25s}
.ncard:hover{box-shadow:var(--shadow-sides);text-decoration:none}
.ncard:hover h3{color:var(--accent)}
.ncard-media{position:relative;aspect-ratio:16/9;overflow:hidden;background:var(--soft2)}
.ncard-media img{width:100%;height:100%;object-fit:cover}
.ncard-body{padding:1.1rem 1.2rem 1.3rem;display:flex;flex-direction:column;flex:1}
.ncard h3{font-size:1rem;transition:color .2s}
.ncard p{font-size:.9rem;color:var(--muted);flex:1}

/* Leistungen */
.svc{display:grid;grid-template-columns:16rem 1fr 1fr;gap:2rem;border:2px solid var(--brand);padding:1.8rem 2rem;margin-bottom:1.4rem;align-items:start;scroll-margin-top:7rem;border-radius:var(--radius)}
.svc h2{font-size:1.4rem;color:var(--brand);margin:0}
.svc h3{font-size:.95rem;margin-bottom:.4rem}
.svc ul{margin:0;padding-left:1.1rem}
.svc p,.svc li{font-size:.92rem}
.def{display:grid;grid-template-columns:repeat(3,1fr);gap:1.4rem}
.def-box{border:1px solid var(--line);padding:1.4rem;background:var(--paper);border-radius:var(--radius)}
.def-box h3{font-size:.95rem;color:var(--accent);margin-bottom:.6rem}
.def-box ul{margin:0;padding-left:1.1rem;font-size:.88rem}
.def-box li{margin-bottom:.2rem}
.big-claim{font-size:clamp(1.3rem,2.6vw,1.9rem);font-weight:800;color:var(--brand);text-align:center;margin:0 auto 2.5rem;max-width:44rem}

/* Projektseite */
.crumbs{font-size:.72rem;font-weight:700;color:var(--muted);margin-bottom:1rem}
.proj-hero{position:relative;aspect-ratio:21/9;max-height:32rem;width:100%;overflow:hidden;background:var(--soft2)}
.proj-hero img{width:100%;height:100%;object-fit:cover}
.proj-title{position:absolute;left:0;bottom:0;background:var(--paper);padding:1.2rem 1.6rem;max-width:min(42rem,90%)}
.proj-title h1,.proj-title h2{font-size:clamp(1.1rem,2.4vw,1.6rem);margin:0 0 .3rem}
.proj-title p{margin:0;color:var(--muted)}
.proj-grid{display:grid;grid-template-columns:1fr 22rem;gap:3rem;margin-top:2.5rem;align-items:start}
.facts{background:var(--soft);border:1px solid var(--line);padding:1.5rem}
.facts h3{font-size:.85rem;color:var(--accent)}
.facts dl{display:grid;grid-template-columns:auto 1fr;gap:.45rem 1rem;margin:0;font-size:.88rem}
.facts dt{color:var(--muted)}
.facts dd{margin:0;font-weight:600}
.gal-h{margin-top:3rem;font-size:.9rem;text-align:center}
.gal{margin:0;position:relative;aspect-ratio:4/3;overflow:hidden;background:var(--soft2)}
.gal img{width:100%;height:100%;object-fit:cover}

/* Referenzkarte */
.map-layout{display:grid;grid-template-columns:1.5fr 1fr;gap:2rem;align-items:start}
.map-wrap{border:1px solid var(--line);background:var(--soft);border-radius:var(--radius)}
.map-svg{width:100%;height:auto;display:block}
.map-svg .rhein{fill:none;stroke:#8fbbe3;stroke-width:10;opacity:.5}
.map-svg .city circle{fill:var(--muted)}
.map-svg text{font:600 13px var(--font);fill:var(--muted)}
.map-svg .office rect{fill:var(--logo-mark)}
.map-svg .office text{fill:var(--brand);font-weight:800}
.map-svg .pin circle{fill:var(--accent);stroke:#fff;stroke-width:2}
.map-svg .pin text{fill:#fff;font-size:12px;font-weight:800}
.map-svg .pin:hover circle{fill:#e8590c}
.map-list{margin:0;padding-left:1.4rem}
.map-list li{margin-bottom:.8rem}
.map-list a{color:var(--ink);display:block}
.map-list strong{display:block}
.map-list span{font-size:.85rem;color:var(--muted)}

/* Personen / Partner */
.people{display:grid;grid-template-columns:repeat(2,1fr);gap:2rem}
.person{border:1px solid var(--line);background:var(--paper);display:grid;grid-template-columns:10rem 1fr;gap:1.4rem;padding:1.4rem;border-radius:var(--radius)}
.person .avatar{aspect-ratio:1;background:var(--soft2);display:grid;place-items:center;border-radius:var(--radius);overflow:hidden}
.person .avatar img{width:100%;height:100%;object-fit:cover;display:block}
.person .avatar svg{width:45%;fill:var(--logo-mark);opacity:.4}
.person h3{font-size:1rem;margin-bottom:.2rem}
.person .role{font-size:.75rem;font-weight:800;color:var(--accent);letter-spacing:.06em;display:block;margin-bottom:.6rem}
.person p{font-size:.9rem}

/* Downloads */
.dcard{display:flex;flex-direction:column;align-items:flex-start;border:1px solid var(--line);background:var(--paper);padding:1.2rem;color:var(--ink);text-decoration:none;transition:box-shadow .25s;height:100%}
.dcard:hover{box-shadow:var(--shadow-sides);text-decoration:none}
.dcard-doc{width:100%;aspect-ratio:3/2.4;display:grid;place-items:center;background:linear-gradient(135deg,var(--paper),var(--soft2));border:1px solid var(--line);margin-bottom:1rem;color:var(--accent)}
.dcard-doc svg{width:3.5rem;height:3.5rem}
.dcard h3{font-size:.95rem;margin-bottom:.3rem}
.dcard p{font-size:.85rem;color:var(--muted);flex:1}
.dgrid{display:grid;grid-template-columns:repeat(4,1fr);gap:1.2rem}

/* Externe Inhalte (2-Klick) */
.embed{position:relative;aspect-ratio:16/9;background:var(--soft2);border:1px solid var(--line);border-radius:var(--radius);overflow:hidden}
.embed.map{aspect-ratio:4/3}
.embed iframe{position:absolute;inset:0;width:100%;height:100%;border:0}
.embed-ph{position:absolute;inset:0;display:grid;place-items:center;text-align:center;padding:1.5rem;font-size:.88rem;color:var(--muted)}
.embed-ph svg{width:2.6rem;height:2.6rem;color:var(--accent);margin:0 auto .6rem}
.embed-ph .btn{margin:.2rem}

/* Rechtliches */
.legal{display:grid;grid-template-columns:1fr 20rem;gap:3rem;align-items:start}
.legal aside{background:var(--soft);border:1px solid var(--line);padding:1.5rem;font-size:.9rem}
.legal aside h2{font-size:.85rem;color:var(--accent)}
.legal aside p{margin-bottom:.8rem}
.consent-opts{display:grid;gap:.7rem;margin:1rem 0}
.opt{display:flex;gap:.7rem;align-items:flex-start;font-size:.88rem;border:1px solid var(--line);padding:.8rem;border-radius:var(--radius);background:var(--paper)}
.opt input{width:1.15rem;height:1.15rem;margin-top:.15rem;accent-color:var(--accent);flex:none}
.cs-msg{font-weight:700;color:var(--accent);margin-top:1rem}
.sitemap ul{columns:2;padding-left:1.2rem}
.sitemap li{margin-bottom:.3rem;break-inside:avoid}

/* UPSss */
.ups{text-align:center;padding:5rem 0}
.ups svg{width:6rem;height:6rem;fill:var(--logo-mark);margin:0 auto 1.5rem;animation:build 2.5s ease-in-out infinite}
.ups h1{font-size:clamp(2.5rem,7vw,4.5rem);color:var(--brand)}

/* ---------- Cookie-Abfrage (Anf. 04) ---------- */
.cookie{position:fixed;inset:0;z-index:400;background:rgba(5,15,25,.55);display:grid;place-items:center;padding:1rem}
.cookie-box{background:var(--paper);color:var(--ink);width:min(40rem,100%);max-height:92vh;overflow:auto;padding:2rem;border-radius:6px;box-shadow:0 30px 70px -20px rgba(0,0,0,.6)}
.cookie-mark{width:2.4rem;height:2.4rem;fill:var(--logo-mark);margin-bottom:.8rem}
.cookie-box h2{font-size:1.3rem}
.cookie-box p{font-size:.92rem;color:var(--muted)}
.cookie-actions{display:flex;flex-wrap:wrap;gap:.6rem;margin-top:1rem}

/* ---------- Fuß (Anf. 15) ---------- */
.site-footer{background:var(--footer-bg);color:var(--footer-ink);margin-top:0}
.f-grid{display:grid;grid-template-columns:1.4fr 1.2fr 1fr 1fr;gap:2.5rem;padding:3.2rem 0 2.5rem}
.f-logo{display:inline-block}
.site-footer .logo-svg{height:3rem}
.site-footer .logo-svg .t{fill:#d7e2ec}
.site-footer .logo-svg .m{fill:#5b93cc}
.f-brand p{font-size:.72rem;letter-spacing:.14em;margin-top:1rem;opacity:.8}
.f-h{font-size:.78rem;color:#fff;letter-spacing:.12em;margin-bottom:1rem}
.f-list{list-style:none;margin:0;padding:0;font-size:.9rem}
.f-list li{margin-bottom:.6rem}
.f-list a{color:var(--footer-ink);display:flex;gap:.6rem;align-items:flex-start}
.f-list a svg{width:1.1rem;height:1.1rem;flex:none;margin-top:.2rem;color:#7fc1ff}
.f-list a:hover{color:#fff}
.social{display:flex;flex-wrap:wrap;gap:.5rem}
.social a{width:2.3rem;height:2.3rem;border:1px solid rgba(255,255,255,.25);border-radius:50%;display:grid;place-items:center;color:var(--footer-ink);font-size:.72rem;font-weight:800;text-decoration:none;transition:.2s}
.social a:hover{background:#fff;color:var(--footer-bg)}
.f-bottom{border-top:1px solid rgba(255,255,255,.1);font-size:.75rem;opacity:.85}
.f-bottom-in{display:flex;justify-content:space-between;gap:1rem;padding:1rem 0;flex-wrap:wrap}
.to-top{position:fixed;right:1.2rem;bottom:1.2rem;z-index:90;width:2.6rem;height:2.6rem;border-radius:50%;background:var(--accent);color:#fff;display:grid;place-items:center;opacity:0;pointer-events:none;transition:.3s;box-shadow:var(--shadow)}
.to-top.show{opacity:1;pointer-events:auto}
.to-top svg{width:1.3rem;height:1.3rem}

/* ---------- Responsiv (Anf. 23) ---------- */
@media (max-width:1100px){
  .mainnav{gap:1rem;font-size:.78rem}
  .c-track{grid-auto-columns:calc((100% - 2 * 1.2rem) / 3)}
  .svc{grid-template-columns:1fr 1fr}.svc h2{grid-column:1/-1}
  .dgrid{grid-template-columns:repeat(3,1fr)}
  .ngrid.four{grid-template-columns:repeat(2,1fr)}
}
@media (max-width:900px){
  .burger{display:block}
  .mainnav{display:none;position:absolute;top:100%;left:0;right:0;flex-direction:column;gap:0;height:auto;background:var(--paper);border-bottom:1px solid var(--line);box-shadow:var(--shadow);padding:.5rem 1.25rem 1rem}
  .open .mainnav{display:flex}
  .mainnav a{padding:.8rem 0;border-bottom:1px solid var(--line)}
  .mainnav a.active{border-bottom-color:var(--accent)}
  .h-main-in{height:4.2rem}
  .logo-svg{height:2.6rem}
  .quick{display:none}.logo{margin-left:auto}
  .quick-mobile{display:flex;position:fixed;left:50%;bottom:1rem;transform:translateX(-50%);z-index:95;gap:.7rem;background:var(--header-bg);padding:.45rem .7rem;border-radius:2rem;box-shadow:var(--shadow);border:1px solid var(--line)}
  .to-top{bottom:5rem}
  .claim{display:none}.h-top-in{justify-content:flex-end}
  .features{grid-template-columns:1fr 1fr}.feature:nth-child(2){border-right:0}.feature{border-bottom:1px solid var(--line)}
  .split,.split.rev,.proj-grid,.legal,.map-layout{grid-template-columns:1fr}
  .steps{grid-template-columns:1fr 1fr}
  .pgrid,.ngrid,.def{grid-template-columns:1fr 1fr}
  .people{grid-template-columns:1fr}
  .f-grid{grid-template-columns:1fr 1fr}
  .slide{padding:0 5%}
  .site-footer{padding-bottom:4.5rem}
}
@media (max-width:620px){
  .container{width:calc(100% - 2rem)}
  .section{padding:3rem 0}
  .c-track{grid-auto-columns:82%}
  .c-btn{display:none}
  .pgrid,.ngrid,.ngrid.four,.def,.dgrid,.steps,.stats,.f-grid,.svc{grid-template-columns:1fr}
  .stat{border-right:0;border-bottom:1px solid rgba(255,255,255,.12)}
  .features{grid-template-columns:1fr}.feature{border-right:0}
  .hero{height:auto;min-height:34rem}
  .slide{align-items:flex-end;padding:0 1rem 3.5rem}
  .glass{padding:1.3rem 1.4rem}
  .person{grid-template-columns:1fr}.person .avatar{max-width:8rem}
  .proj-hero{aspect-ratio:4/3}
  .proj-title{position:static;max-width:none;padding:1rem 0}
  .page-slogan{text-align:center}
  .subnav a{padding:.35rem .6rem .55rem}
  .sitemap ul{columns:1}
  .fontsize button{min-width:1.8rem}
}
@media (prefers-reduced-motion:reduce){*{transition:none!important;animation:none!important;scroll-behavior:auto!important}}
@media print{.site-header,.site-footer,.quick-mobile,.to-top,.cookie,.loader{display:none!important}}
.sr-only{position:absolute!important;width:1px;height:1px;overflow:hidden;clip:rect(0 0 0 0);white-space:nowrap}
.proj-head{border-left:4px solid var(--accent);padding:.2rem 0 .2rem 1.2rem}
.proj-head h1,.proj-head h2{font-size:clamp(1.3rem,2.8vw,2rem);margin:0 0 .3rem}.proj-head p{margin:0;color:var(--muted)}
.facts-img{position:relative;margin:-1.5rem -1.5rem 1.2rem;aspect-ratio:4/3;overflow:hidden;background:var(--soft2)}.facts-img img{width:100%;height:100%;object-fit:cover}

/* ---------- Ergänzungen 06.10.2026 ---------- */
/* Slide im Stil der Vorlage: Text direkt auf hellem Bildbereich */
.slide.hell::before{content:"";position:absolute;inset:0;background:linear-gradient(90deg,rgba(255,255,255,.92) 0%,rgba(255,255,255,.75) 28%,rgba(255,255,255,0) 52%)}
.slide.hell .glass{position:relative;background:none;border:0;box-shadow:none;backdrop-filter:none;-webkit-backdrop-filter:none;padding:0;max-width:31rem;color:#0f1d2a}
.slide.hell h2{font-size:clamp(2rem,4.6vw,3.6rem);line-height:1.04;letter-spacing:-.02em;color:#101c2b;margin-bottom:1.1rem}
.slide.hell p{font-size:1.08rem;color:#24313f}
.slide.hell .btn{background:#1a5fd0;border-color:#1a5fd0;color:#fff;text-transform:none;letter-spacing:0;font-size:.95rem;font-weight:600}
.slide-claim{position:absolute;right:4%;top:12%;z-index:2;color:#1d3550;font-size:clamp(.8rem,1.2vw,1.05rem);letter-spacing:.3em;line-height:1.75}
.slide-claim::after{content:"";display:block;width:2.4rem;height:3px;background:#1a5fd0;margin-top:.8rem}
.slide-symbol{z-index:2;bottom:.9rem;right:4.2rem}
@media (max-width:900px){.slide-claim{display:none}}
@media (max-width:620px){
  .slide.hell::before{background:linear-gradient(0deg,rgba(255,255,255,.95) 0%,rgba(255,255,255,.85) 45%,rgba(255,255,255,0) 75%)}
  .slide.hell h2{font-size:1.9rem}
}
/* Werte-Leiste */
.values{border-bottom:1px solid var(--line)}
.values-in{display:grid;grid-template-columns:repeat(4,1fr)}
.value{text-align:center;padding:2.2rem 1.2rem;border-right:1px solid var(--line)}
.value:last-child{border-right:0}
.value svg{width:2.6rem;height:2.6rem;color:var(--brand);margin:0 auto .8rem}
.value h3{font-size:1rem;margin-bottom:.3rem}
.value p{font-size:.9rem;color:var(--muted);margin:0}
@media (max-width:900px){.values-in{grid-template-columns:1fr 1fr}.value:nth-child(2){border-right:0}.value{border-bottom:1px solid var(--line)}}
@media (max-width:620px){.values-in{grid-template-columns:1fr}.value{border-right:0}}
.cta-points{list-style:none;padding:0;margin:1rem 0 0;display:flex;flex-wrap:wrap;gap:.4rem 1.6rem;font-size:.9rem;color:var(--muted)}
.cta-points li::before{content:"✓";color:var(--accent);font-weight:800;margin-right:.4rem}
/* Platzhalter mit Kategorie-Symbol */
.ph-ico{width:2.6rem;height:2.6rem;fill:none;stroke:var(--brand);stroke-width:1.5;stroke-linejoin:round;stroke-linecap:round;opacity:.65}
.lph-list{list-style:none;padding:0;margin:0 0 1rem;display:grid;gap:.35rem}
.lph-list li{background:var(--soft);border-left:3px solid var(--accent);padding:.4rem .8rem;font-size:.92rem}
.lph-list strong{display:inline-block;min-width:3.6rem;color:var(--accent)}
/* Referenzkarte */
.map-layout{grid-template-columns:1.25fr 1fr}
.map-tabs{display:flex;gap:.4rem;margin-bottom:.7rem}
.map-tabs button,.map-filter button{font:inherit;font-size:.75rem;font-weight:700;border:1px solid var(--line);background:var(--paper);color:var(--ink);padding:.4rem .75rem;border-radius:2rem}
.map-tabs button.active,.map-filter button.active{background:var(--accent);border-color:var(--accent);color:#fff}
.map-filter{display:flex;flex-wrap:wrap;gap:.35rem;margin-bottom:1rem}
.map-svg .sea{fill:var(--soft2)}
.map-svg .land{fill:var(--paper);stroke:var(--brand);stroke-width:1.2;stroke-linejoin:round}
.map-svg .rhein{fill:none;stroke:#8fbbe3;stroke-width:2.5;opacity:.8}
.map-svg .zoombox rect{fill:rgba(11,111,194,.06);stroke:var(--accent);stroke-width:1.2;stroke-dasharray:5 4}
.map-svg .zoombox:hover rect{fill:rgba(11,111,194,.14)}
.map-svg .office rect{fill:#e8590c}
.map-svg .pin circle{fill:var(--accent);fill-opacity:.85;stroke:#fff;stroke-width:1.5}
.map-svg .pin:hover circle,.map-svg .pin.active circle{fill:#e8590c;fill-opacity:1}
.map-svg .pin text.n{fill:#fff;font:800 11px var(--font)}
.map-svg .pin text.lbl{fill:var(--ink);font:600 12px var(--font);paint-order:stroke;stroke:var(--paper);stroke-width:3px}
.map-legend{font-size:.8rem;color:var(--muted);margin-top:.5rem}
.lg-pin,.lg-office{display:inline-block;width:.8rem;height:.8rem;border-radius:50%;background:var(--accent);vertical-align:-1px}
.lg-office{border-radius:2px;transform:rotate(45deg);background:#e8590c;margin-left:.8rem}
.ml-head{font-size:.9rem;margin-bottom:.6rem}
.ml-reset{font:inherit;font-size:.8rem;border:0;background:none;color:var(--accent);text-decoration:underline;padding:0;margin-left:.4rem}
.map-side .map-list{list-style:none;padding:0;margin:0;max-height:38rem;overflow:auto;border-top:1px solid var(--line)}
.map-side .map-list li{margin:0;border-bottom:1px solid var(--line)}
.map-side .map-list a{display:block;padding:.6rem .2rem;text-decoration:none}
.map-side .map-list a:hover strong{color:var(--accent)}
.map-side .map-list strong{font-size:.92rem;font-weight:600}
@media (max-width:900px){.map-layout{grid-template-columns:1fr}.map-side .map-list{max-height:none}}
@media (max-width:620px){.slide-symbol{top:.7rem;bottom:auto;right:.7rem}}
@media (max-width:620px){.br-d{display:none}}
.ou-list{list-style:none;padding:0;margin:.4rem 0 0}.ou-list li{border-left:3px solid var(--accent);padding:.35rem .8rem;margin-bottom:.4rem;background:var(--soft);font-size:.9rem}
.svc h2{overflow-wrap:normal;word-break:normal;hyphens:manual;font-size:1.3rem}

/* Auftraggeber: Logo + Name */
.clients{list-style:none;margin:0;padding:0;display:grid;grid-template-columns:repeat(auto-fill,minmax(13rem,1fr));gap:1.4rem}
.client{border:1px solid var(--line);background:var(--paper);border-radius:var(--radius);padding:1.4rem 1.2rem;text-align:center;display:flex;flex-direction:column;align-items:center;gap:1rem}
.client-logo{width:100%;height:7rem;display:grid;place-items:center;align-content:center;gap:.3rem;background:#fff;border:1px solid var(--line);border-radius:var(--radius);padding:.8rem}
.client-logo{overflow:hidden}
.client-logo img{display:block;max-width:100%;max-height:5.2rem;width:auto;height:auto;object-fit:contain}
.client-logo span{font-weight:800;font-size:1.6rem;letter-spacing:.06em;color:var(--logo-mark);opacity:.55}
.client-logo small{font-size:.65rem;font-weight:700;letter-spacing:.1em;text-transform:uppercase;color:var(--muted)}
.client h3{font-size:.95rem;margin:0;line-height:1.35}
.clients-head{font-size:1rem;letter-spacing:.08em;color:var(--accent);margin:0 0 1rem}
.clients + .clients-head{margin-top:2.6rem}
/* Partner: Logo-Karte + Text kürzen, bei Maus/Fokus/Klick ausklappen */
.person.has-logo{grid-template-columns:1fr}
.person .logo-box{background:#fff;border:1px solid var(--line);border-radius:var(--radius);height:6rem;display:grid;place-items:center;padding:1rem 1.4rem}
.person .logo-box img{max-width:100%;max-height:3.2rem;width:auto;height:auto;display:block}
.person.has-logo .pbody{display:grid;grid-template-columns:10rem 1fr;gap:1.4rem;align-items:start}
@media (max-width:620px){.person.has-logo .pbody{grid-template-columns:1fr}}
.ptext{position:relative;font-size:.9rem;overflow:hidden;transition:max-height .5s ease}
.ptext.clamp{max-height:9.6em}
.ptext.clamp::after{content:"";position:absolute;left:0;right:0;bottom:0;height:3.2em;background:linear-gradient(rgba(255,255,255,0),var(--paper));pointer-events:none;transition:opacity .3s}
.person:hover .ptext.clamp,.person:focus-within .ptext.clamp,.person.open .ptext.clamp{max-height:80em}
.person:hover .ptext.clamp::after,.person:focus-within .ptext.clamp::after,.person.open .ptext.clamp::after{opacity:0}
.more-btn{background:none;border:0;padding:.2rem 0;margin:.2rem 0 .4rem;font:800 .72rem/1.2 inherit;letter-spacing:.08em;text-transform:uppercase;color:var(--accent);cursor:pointer}
.person:hover .more-btn,.person.open .more-btn{visibility:hidden}
.lead-in{margin-bottom:.4rem}
@media (hover:none){.person:hover .ptext.clamp{max-height:9.6em}.person:hover .ptext.clamp::after{opacity:1}.person.open .ptext.clamp{max-height:80em}.person.open .ptext.clamp::after{opacity:0}.person:hover .more-btn{visibility:visible}.person.open .more-btn{visibility:hidden}}

/* Auftraggeber nur mit Namen (Logos ausgeblendet, bis Nutzungserlaubnis vorliegt) */
.nur-namen .clients{grid-template-columns:repeat(auto-fill,minmax(17rem,1fr));gap:1rem}
.nur-namen .client{flex-direction:row;text-align:left;align-items:center;padding:1rem 1.2rem;gap:1rem}
.nur-namen .client-logo{display:none}
.nur-namen .client::before{content:"";flex:none;width:2.4rem;height:2.4rem;background:var(--accent);-webkit-mask:var(--ico) center/contain no-repeat;mask:var(--ico) center/contain no-repeat}
.nur-namen .g-amt{--ico:url("data:image/svg+xml,%3Csvg%20xmlns%3D%22http%3A//www.w3.org/2000/svg%22%20viewBox%3D%220%200%2024%2024%22%20fill%3D%22none%22%20stroke%3D%22%23000%22%20stroke-width%3D%221.6%22%20stroke-linejoin%3D%22round%22%3E%3Cpath%20d%3D%22M3%2021h18M5%2021V10M19%2021V10M9%2021V10M15%2021V10M2%2010l10-6%2010%206Z%22/%3E%3C/svg%3E")}
.nur-namen .g-schule{--ico:url("data:image/svg+xml,%3Csvg%20xmlns%3D%22http%3A//www.w3.org/2000/svg%22%20viewBox%3D%220%200%2024%2024%22%20fill%3D%22none%22%20stroke%3D%22%23000%22%20stroke-width%3D%221.6%22%20stroke-linejoin%3D%22round%22%3E%3Cpath%20d%3D%22M2%209l10-5%2010%205-10%205Z%20M6%2011v5c3%203%209%203%2012%200v-5%22/%3E%3C/svg%3E")}
.nur-namen .g-feuer{--ico:url("data:image/svg+xml,%3Csvg%20xmlns%3D%22http%3A//www.w3.org/2000/svg%22%20viewBox%3D%220%200%2024%2024%22%20fill%3D%22none%22%20stroke%3D%22%23000%22%20stroke-width%3D%221.6%22%20stroke-linejoin%3D%22round%22%3E%3Cpath%20d%3D%22M12%203c1%204%205%205%205%2010a5%205%200%200%201-10%200c0-3%202-4%202-6%202%201%203%203%203%203s1-3%200-7Z%22/%3E%3C/svg%3E")}
.nur-namen .g-museum{--ico:url("data:image/svg+xml,%3Csvg%20xmlns%3D%22http%3A//www.w3.org/2000/svg%22%20viewBox%3D%220%200%2024%2024%22%20fill%3D%22none%22%20stroke%3D%22%23000%22%20stroke-width%3D%221.6%22%20stroke-linejoin%3D%22round%22%3E%3Cpath%20d%3D%22M3%2021h18M4%209h16M12%203%203%208h18ZM6%209v10M10%209v10M14%209v10M18%209v10%22/%3E%3C/svg%3E")}
.nur-namen .client.g-justiz{--ico:url("data:image/svg+xml,%3Csvg%20xmlns%3D%22http%3A//www.w3.org/2000/svg%22%20viewBox%3D%220%200%2024%2024%22%20fill%3D%22none%22%20stroke%3D%22%23000%22%20stroke-width%3D%221.6%22%20stroke-linejoin%3D%22round%22%3E%3Cpath%20d%3D%22M12%203v18M7%2021h10M4%207h16M6%207l-3%207a3%203%200%200%200%206%200Zm12%200-3%207a3%203%200%200%200%206%200Z%22/%3E%3C/svg%3E")}

/* Eigenes Video */
.vid video{display:block;width:100%;aspect-ratio:16/9;background:#000;border-radius:var(--radius)}
.vid-modal{position:fixed;inset:0;z-index:9999;background:rgba(5,12,20,.88);display:grid;place-items:center;padding:1rem}
.vid-box{position:relative;width:min(1100px,100%)}
.vid-box video{display:block;width:100%;aspect-ratio:16/9;background:#000;border-radius:var(--radius)}
.vid-close{position:absolute;top:-2.6rem;right:0;background:none;border:0;color:#fff;font-size:1.6rem;cursor:pointer;line-height:1}
.glass .btn svg{width:1.1em;height:1.1em;vertical-align:-.15em}

/* Häufige Fragen (FAQ) */
.faq{max-width:52rem}
.faq details{border-top:1px solid var(--line);padding:.9rem 0}
.faq details:last-child{border-bottom:1px solid var(--line)}
.faq summary{font-weight:700;cursor:pointer;list-style:none;display:flex;justify-content:space-between;gap:1rem}
.faq summary::-webkit-details-marker{display:none}
.faq summary::after{content:"+";color:var(--accent);font-weight:800;font-size:1.2rem;line-height:1}
.faq details[open] summary::after{content:"–"}
.faq details p{margin:.6rem 0 0;color:var(--muted)}
