@font-face{font-family:"Bricolage Grotesque";src:url(/fonts/bricolage.woff2?v=5f6ef6d2) format("woff2");font-weight:200 800;font-display:swap}
@font-face{font-family:"JetBrains Mono";src:url(/fonts/jbmono.woff2?v=8ca56786) format("woff2");font-weight:400 500;font-display:swap}
:root{--ink:#0A1630;--ink2:#13244A;--line:#2F4272;--cream:#F1EDE4;--y:#F2D400;--g:#2F6BFF;--pad:clamp(20px,3.4vw,52px);--dock:0px}
*{box-sizing:border-box;margin:0;padding:0}
html{background:var(--ink);color:var(--cream);scroll-behavior:auto;-webkit-text-size-adjust:100%}
html.lenis,html.lenis body{height:auto}
.lenis.lenis-smooth{scroll-behavior:auto!important}
body{font-family:"Bricolage Grotesque",system-ui,sans-serif;font-size:18px;line-height:1.55;-webkit-font-smoothing:antialiased;overflow-x:hidden}
a{color:inherit}
img{display:block;max-width:100%}
.mono{font-family:"JetBrains Mono",ui-monospace,monospace;font-weight:400}
.skip{position:fixed;left:8px;top:-60px;z-index:100;background:var(--y);color:var(--ink);padding:10px 14px;font-weight:700}
.skip:focus{top:8px}
:focus-visible{outline:3px solid var(--y);outline-offset:3px}
.cream :focus-visible,.gew :focus-visible{outline-color:var(--ink)}
.wrap{padding:0 var(--pad);max-width:1680px;margin:0 auto}

/* Kopf */
.top{position:fixed;top:0;left:0;right:0;z-index:50;display:flex;justify-content:space-between;align-items:center;padding:16px var(--pad);pointer-events:none;transition:background-color .25s,box-shadow .25s}
.top.scrolled{background:rgba(10,22,48,.86);-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);box-shadow:0 1px 0 rgba(47,66,114,.5)}
.top>*{pointer-events:auto}
.mark{display:inline-flex;align-items:center;text-decoration:none;padding:6px 12px 6px 0}
.logo{height:42px;width:auto;display:block}
.menu-btn{font:600 16px/1 "Bricolage Grotesque",sans-serif;color:var(--cream);background:rgba(10,22,48,.78);border:1px solid var(--line);padding:11px 18px;min-height:44px;cursor:pointer;backdrop-filter:blur(6px)}
.menu-btn:hover{background:var(--ink2)}
.menu{position:fixed;inset:0;z-index:60;background:var(--ink);display:flex;flex-direction:column;justify-content:space-between;padding:90px var(--pad) 40px}
.menu[hidden]{display:none}
.menu nav{display:flex;flex-direction:column}
.menu nav a{font-weight:800;font-size:clamp(44px,9vw,120px);line-height:1.02;letter-spacing:-.04em;text-decoration:none;padding:4px 0}
.menu nav a:hover{color:var(--y)}
.menu-foot{font-size:14px;line-height:1.9}
.menu-open .menu-btn{position:relative;z-index:70}

/* Dock */
.dock{position:fixed;left:50%;bottom:22px;transform:translateX(-50%);z-index:40;display:flex;background:var(--ink);border:1px solid var(--line);padding:6px;gap:4px;box-shadow:0 10px 40px rgba(0,0,0,.45)}
.dock a{display:flex;align-items:center;padding:0 20px;min-height:52px;text-decoration:none;font-weight:600;font-size:17px;white-space:nowrap}
.dock a:hover{background:var(--ink2)}
.dock a.call{background:var(--y);color:var(--ink);font-weight:700;gap:12px}
.dock a.call small{font-size:13px}
.dock a.call:hover{background:var(--cream)}

/* Hero */
.hero{position:relative;min-height:100svh;display:flex;align-items:flex-end;overflow:hidden}
.hero picture img,.hero>img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;object-position:35% 50%}
.hero::after{content:"";position:absolute;inset:0;background:linear-gradient(180deg,rgba(10,22,48,.55) 0%,rgba(10,22,48,.15) 35%,rgba(10,22,48,.9) 100%)}
.hero .in{position:relative;z-index:2;padding:0 var(--pad) 128px;width:100%}
.loc{font-size:14px;margin-bottom:18px}
h1,h2,h3{font-weight:800;letter-spacing:-.045em;line-height:.96}
.hero h1{font-size:clamp(48px,9.4vw,168px);line-height:.92;letter-spacing:-.05em;max-width:9.6em;padding-bottom:.06em}
.sub{margin-top:26px;font-size:20px;max-width:30em}
.hero-tel{display:none}
.credit{position:absolute;right:14px;bottom:14px;z-index:3;color:#F1EDE4;font-family:"JetBrains Mono",monospace;font-size:11px;background:rgba(0,0,0,.6);padding:2px 6px}
.credit-pin{top:auto;bottom:14px;right:14px;color:#F1EDE4}

/* Pin-Szene */
.pin{position:relative;height:300vh;background:var(--cream);color:var(--ink)}
.pin-in{position:sticky;top:0;height:100svh;display:grid;grid-template-columns:1fr 1fr}
.pin-t{padding:var(--pad);display:flex;flex-direction:column;justify-content:center;position:relative}
.st{position:absolute;left:var(--pad);right:var(--pad);top:50%;transform:translateY(-50%);opacity:0}
.st:first-child{opacity:1}
.st .k{font-size:14px;margin-bottom:20px}
.st h2{font-size:clamp(40px,5.6vw,92px);margin-bottom:22px;padding-bottom:.05em}
.st p:not(.k){font-size:20px;max-width:26em}
.more{display:inline-block;margin-top:22px;font-weight:700;border-bottom:3px solid var(--y);text-decoration:none;padding-bottom:2px}
.more:hover{background:var(--y)}
.pin-i{position:relative;overflow:hidden;background:var(--ink)}
.pin-i img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;opacity:0}
.pin-i img:first-of-type{opacity:1}

/* Fünf Leistungen: harter Wechsel auf Gelb, Listen-Fokus */
.gew{background:var(--y);color:var(--ink);padding:clamp(70px,10vw,160px) 0 clamp(60px,8vw,120px)}
.gew-h{font-size:clamp(44px,8.2vw,150px);letter-spacing:-.055em;line-height:.93;margin-bottom:clamp(40px,6vw,90px);padding-bottom:.06em}
.rows{list-style:none;border-top:3px solid var(--ink)}
.row{border-bottom:3px solid var(--ink);transition:opacity .35s}
.row a{display:grid;grid-template-columns:64px 1.5fr 1fr;gap:24px;align-items:baseline;padding:clamp(18px,2.6vw,34px) 0;text-decoration:none}
.rn{font-size:14px}
.rt{font-weight:800;font-size:clamp(26px,3.9vw,66px);letter-spacing:-.04em;line-height:1}
.rd{font-size:17px;max-width:26em}
.rows.focus .row{opacity:.28}
.rows.focus .row.on{opacity:1}
.row:hover .rt{text-decoration:underline;text-decoration-thickness:4px;text-underline-offset:.12em}

/* Zielgruppen */
.wer{padding:clamp(70px,10vw,160px) 0}
.sec-h{font-size:clamp(40px,6vw,104px);letter-spacing:-.05em;line-height:.95;margin-bottom:clamp(30px,5vw,70px);padding-bottom:.05em}
.wer-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:0;border-top:1px solid var(--line)}
.wer-grid>div{padding:28px 32px 10px 0;border-right:1px solid var(--line);margin-right:32px}
.wer-grid>div:last-child{border-right:0;margin-right:0}
.wer h3{font-size:clamp(26px,2.6vw,40px);letter-spacing:-.035em;margin-bottom:14px;line-height:1.02}
.wer p{max-width:28em}

/* Gebiet */
.gebiet{background:var(--cream);color:var(--ink);padding-top:clamp(60px,9vw,140px)}
.gebiet .wrap{padding-bottom:clamp(50px,7vw,100px)}
.orte{display:flex;flex-direction:column;font-weight:800;font-size:clamp(58px,15.5vw,300px);letter-spacing:-.065em;line-height:.88;margin:18px 0 28px}
.orte span{padding-bottom:.04em}
.gebiet-t{font-size:20px;max-width:30em}

/* Kontakt */
.kontakt{padding:clamp(70px,9vw,140px) 0}
.kontakt-grid{display:grid;grid-template-columns:1fr 1.1fr;gap:clamp(36px,6vw,110px);align-items:start}
.lead{font-size:clamp(19px,1.7vw,24px);line-height:1.4;max-width:30em;margin-bottom:22px}
.kdirekt{line-height:2}
.big-tel{font-weight:800;font-size:clamp(34px,4.6vw,76px);letter-spacing:-.05em;line-height:1;margin-bottom:22px}
.big-tel a{text-decoration:none}
.big-tel a:hover{color:var(--y)}
.addr{margin-top:28px;font-size:14px;line-height:1.8}
.form{display:flex;flex-direction:column;gap:18px}
.form label{display:flex;flex-direction:column;gap:7px;font-weight:600;font-size:16px}
.opt{font-weight:400;opacity:.7}
.row2{display:grid;grid-template-columns:1fr 1fr;gap:18px}
.form input:not([type=checkbox]),.form select,.form textarea{font:400 18px/1.4 "Bricolage Grotesque",sans-serif;color:var(--cream);background:var(--ink2);border:1px solid var(--line);border-radius:0;padding:14px;width:100%;min-height:52px}
.form select{appearance:none;background-image:linear-gradient(45deg,transparent 50%,var(--cream) 50%),linear-gradient(135deg,var(--cream) 50%,transparent 50%);background-position:calc(100% - 22px) 50%,calc(100% - 16px) 50%;background-size:6px 6px;background-repeat:no-repeat}
.form input:focus,.form select:focus,.form textarea:focus{border-color:var(--y);outline:2px solid var(--y);outline-offset:0}
.form .check{flex-direction:row;gap:12px;align-items:flex-start;font-weight:400;font-size:15px;line-height:1.45}
.form .check input{width:22px;height:22px;margin-top:2px;flex:none;accent-color:var(--y)}
.hp{position:absolute;left:-9999px;width:1px;height:1px;overflow:hidden}
.form-act{display:flex;flex-wrap:wrap;align-items:center;gap:18px}
.form-note{font-size:15px;opacity:.8}
.form-msg{min-height:1.5em;font-weight:600}
.form-msg.ok{color:var(--y)}.form-msg.err{color:#ff9a8a}
.btn{display:inline-flex;align-items:center;justify-content:center;min-height:56px;padding:0 28px;background:var(--y);color:var(--ink);font:700 18px/1 "Bricolage Grotesque",sans-serif;text-decoration:none;border:0;cursor:pointer}
.btn:hover{background:var(--cream)}
.btn-ink{background:var(--ink);color:var(--cream)}.btn-ink:hover{background:var(--cream);color:var(--ink)}
.btn-line{background:transparent;color:var(--ink);border:3px solid var(--ink)}.btn-line:hover{background:var(--ink);color:var(--y)}

/* Footer */
.foot{background:var(--ink)}
.foot-in{padding:clamp(36px,4vw,56px) var(--pad) calc(40px + var(--dock));max-width:1680px;margin:0 auto}
.foot-k{font-size:14px;margin-bottom:18px}
.foot-tel{display:block;font-weight:800;font-size:clamp(40px,10.4vw,190px);letter-spacing:-.06em;line-height:.95;text-decoration:none;padding-bottom:.04em}
.foot-tel:hover{color:var(--y)}
.foot-mail{font-size:clamp(20px,2.4vw,34px);font-weight:600;margin:14px 0 8px}
.foot-note{opacity:.8;margin-bottom:56px}
.foot-cols{display:grid;grid-template-columns:2fr 1fr 1fr;gap:30px;border-top:1px solid var(--line);padding-top:28px;font-size:16px}
.foot-cols ul{list-style:none;line-height:2}
.foot-cols a{text-decoration:none}.foot-cols a:hover{color:var(--y)}

/* Unterseiten */
.phead{padding:clamp(130px,16vw,230px) 0 0;background:var(--ink)}
.phead .wrap{padding-bottom:clamp(40px,6vw,90px)}
.phead h1{font-size:clamp(44px,8vw,150px);letter-spacing:-.055em;line-height:.94;max-width:11em;padding-bottom:.06em}
.phead-s h1{font-size:clamp(40px,6vw,96px)}
.k{font-size:14px;margin-bottom:20px}
.idx{list-style:none;margin-top:40px;display:flex;flex-wrap:wrap;gap:10px 28px;font-weight:600}
.idx a{text-decoration:none;border-bottom:2px solid var(--y)}
.idx a:hover{background:var(--y);color:var(--ink)}
.svc{display:grid;grid-template-columns:1fr 1fr;min-height:100svh;background:var(--cream);color:var(--ink)}
.svc:nth-of-type(even){background:var(--ink);color:var(--cream)}
.svc-t{padding:clamp(50px,7vw,110px) var(--pad);align-self:center}
.svc h2{font-size:clamp(38px,5vw,84px);margin-bottom:24px;padding-bottom:.05em}
.pts{list-style:none;margin:8px 0 34px;border-top:1px solid currentColor}
.pts li{padding:12px 0;border-bottom:1px solid currentColor;font-weight:600}
.svc:nth-of-type(even) .btn:hover{background:var(--cream)}
.svc-i{position:relative;overflow:hidden;min-height:60vh}
.svc-i img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover}
.svc-i figcaption{position:absolute;right:12px;bottom:12px;font-size:11px;background:rgba(0,0,0,.6);color:var(--cream);padding:2px 6px}
.svc-alt .svc-t{order:2}.svc-alt .svc-i{order:1}
.cta-band{background:var(--y);color:var(--ink);padding:clamp(60px,8vw,120px) 0}
.cta-band h2{font-size:clamp(36px,5.4vw,90px);margin-bottom:34px;padding-bottom:.05em}
.cta-band .btn{margin:0 12px 12px 0}
.about{display:grid;grid-template-columns:1.1fr 1fr;background:var(--cream);color:var(--ink)}
.about-i{position:relative;overflow:hidden;min-height:70vh}
.about-i img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover}
.about-van{background:linear-gradient(180deg,#b5bbc7 0%,#9ba3ad 55%,#6a6c71 100%)}
.about-van img{object-fit:contain;object-position:50% 50%}
.about-i figcaption{position:absolute;right:12px;bottom:12px;font-size:11px;background:rgba(0,0,0,.6);color:var(--cream);padding:2px 6px}
.about-t{padding:clamp(50px,7vw,110px) var(--pad)}
.about-t p{margin-bottom:20px;max-width:34em}
.facts{margin:34px 0;border-top:1px solid var(--ink)}
.facts>div{display:grid;grid-template-columns:140px 1fr;gap:18px;padding:14px 0;border-bottom:1px solid var(--ink)}
.facts dt{font-size:13px;padding-top:4px}
.legal{padding:clamp(40px,6vw,90px) 0 20px;background:var(--cream);color:var(--ink)}
.prose{max-width:820px;margin:0 0 0 0}
.prose h2{font-size:26px;letter-spacing:-.02em;margin:34px 0 10px;line-height:1.1}
.prose p,.prose li{margin-bottom:12px}
.prose ul{padding-left:20px}
.prose .note{background:var(--y);padding:10px 14px;font-size:13px}
.prose a{text-decoration-thickness:2px;text-underline-offset:3px}
.kontakt-page{background:var(--ink)}

@media (max-width:1100px){.row a{grid-template-columns:48px 1fr}.rd{grid-column:2}}
@media (max-width:820px){
  :root{--dock:62px}
  body{font-size:17px}
  .top{padding:12px var(--pad)}
  .logo{height:36px}
  .hero .in{padding-bottom:110px}
  .hero picture img,.hero>img{object-position:30% 50%}
  .hero h1{font-size:clamp(46px,14.6vw,80px)}
  .sub{font-size:18px;margin-top:18px}
  .hero-tel{display:inline-block;margin-top:18px;font-size:18px;font-weight:500;background:var(--y);color:var(--ink);padding:10px 14px;text-decoration:none}
  .credit{top:auto;bottom:80px;right:10px}
  .dock{left:0;right:0;bottom:0;transform:none;border:0;border-top:1px solid var(--line);padding:0;gap:0;box-shadow:none}
  .dock a{flex:1;justify-content:center;padding:0 8px;min-height:62px;font-size:16px}
  .dock a.call{flex:2.2}.dock a.call small{display:none}.dock a.hide-m{display:none}
  .pin-in{grid-template-columns:1fr;grid-template-rows:46% 54%}
  .pin-i{order:-1}
  .pin-t{justify-content:flex-start;padding-top:26px}
  .st{top:0;transform:none;padding-top:4px}
  .st h2{font-size:clamp(34px,10vw,56px);margin-bottom:12px}
  .st p:not(.k){font-size:17px}
  .st .k{margin-bottom:10px}
  .credit-pin{display:none}
  .wer-grid{grid-template-columns:1fr}
  .wer-grid>div{border-right:0;margin-right:0;border-bottom:1px solid var(--line);padding:26px 0}
  .kontakt-grid{grid-template-columns:1fr}
  .row2{grid-template-columns:1fr}
  .foot-cols{grid-template-columns:1fr 1fr}.foot-cols p{grid-column:1/-1}
  .svc,.about{grid-template-columns:1fr;min-height:0}
  .svc-alt .svc-t,.svc-alt .svc-i{order:0}
  .svc-i{order:-1!important;min-height:0;aspect-ratio:4/3}
  .about-i{min-height:0;aspect-ratio:4/3}
  .about-van{aspect-ratio:3/4;max-height:80svh}
  .facts>div{grid-template-columns:1fr;gap:2px}
  .phead{padding-top:110px}
  .menu{padding-top:80px}
}
@media (pointer:coarse),(max-width:820px){
  .more{padding:12px 0 6px;margin-top:10px}
  .foot-cols a,.foot-mail,.menu-foot a,.legal a,.form-note a,.form .check a{display:inline-block;padding:11px 0}
  .foot-cols li{line-height:1.2}
  .form .check{align-items:center}
  .form .check input{width:28px;height:28px}
  .foot-mail a,.lead a,.kdirekt a,.idx a{display:inline-block;padding:11px 0}
  .kdirekt{line-height:1.3}
}
@media (prefers-reduced-motion:reduce){*{transition:none!important}}
html:not(.js) .pin{height:auto}
html:not(.js) .pin-in{position:static;height:auto;display:block}
html:not(.js) .st{position:static;opacity:1;transform:none;margin-bottom:40px}
html:not(.js) .pin-i{height:60vh}

/* Creative-Gate Fixes */
.hero h1{font-size:clamp(48px,11vw,200px)}
.pin-i{background:var(--cream)}
.more{padding:6px 0 8px}
.foot-mail a,.foot-tel+p a,.kdirekt a,.foot-note a{display:inline-block;padding:10px 0}
.hk{display:inline-block;vertical-align:-3px;margin-left:6px;fill:none;stroke:var(--ink);stroke-width:3;stroke-linecap:square}
.hk path{stroke-dasharray:1;stroke-dashoffset:0}
.js .row .hk path{stroke-dashoffset:1}
.js .row.ticked .hk path{stroke-dashoffset:0;transition:stroke-dashoffset .35s cubic-bezier(.2,.8,.2,1)}
@media (min-width:821px){
  .svc-t{padding-left:var(--pad)}
}
@media (max-width:820px){
  .hero h1{font-size:clamp(46px,15.6vw,120px)}
  .credit-pin{display:block;top:auto;bottom:8px;right:8px}
}
@media (prefers-reduced-motion:reduce){.js .row .hk path{stroke-dashoffset:0;transition:none}}
.foot-cols a,.foot-cols p a{display:inline-block;padding:11px 0}
.foot-cols li{line-height:1.2}
.svc-i::before{content:attr(data-nr);position:absolute;inset:0;display:flex;align-items:center;justify-content:center;font-weight:800;font-size:clamp(160px,24vw,380px);letter-spacing:-.06em;color:var(--y);opacity:.9}
.svc-i img{z-index:1}.svc-i figcaption{z-index:2}
@media (max-width:820px){.svc-i::before{display:none}}
/* KNX-Bild: oben verankern, Logo (oben rechts) komplett sichtbar */
.svc-knx img{object-position:50% 0%}
@media (max-width:820px){.svc-i.svc-knx{aspect-ratio:4/5}}

/* r0012 */
.form label>span:first-child{display:block}
.row2{align-items:start}
.webcredit{margin-top:22px;font-size:14px;opacity:.85}
.webcredit a{display:inline-block;padding:8px 0;text-underline-offset:3px}
.webcredit a:hover{color:var(--y)}
@media (max-width:820px){
  .pin{height:310svh}
  .pin-in{grid-template-rows:1fr auto}
  .pin-t{display:grid;align-content:start;justify-content:stretch;padding:22px var(--pad) calc(var(--dock) + 8px)}
  .st{position:static;grid-area:1/1;transform:none;padding-top:0}
  .gew{padding-top:56px}
}
