:root{
  --ink:#0B0B0D; --ink-2:#121216; --panel:#16161B; --line:rgba(255,255,255,.10);
  --text:#ECEBE5; --muted:#93938B; --paper:#F3EFE6;
  --volt:#FFC21A; --volt-2:#FF8A00; --volt-deep:#3a2a00;
  --f-disp:"Clash Display",sans-serif; --f-body:"General Sans",sans-serif; --f-mono:"IBM Plex Mono",monospace;
  --edge:clamp(1.1rem,4vw,4.5rem);
  --nav-bg:rgba(11,11,13,.82);
}
:root[data-theme="light"]{
  --ink:#F4F1EA; --ink-2:#E9E4D9; --panel:#FCFAF4; --line:rgba(0,0,0,.13);
  --text:#1A1813; --muted:#66645b; --paper:#E9E4D9; --nav-bg:rgba(244,241,234,.86);
}
*{margin:0;padding:0;box-sizing:border-box}
html{scroll-behavior:smooth}
body{font-family:var(--f-body);background:var(--ink);color:var(--text);line-height:1.5;-webkit-font-smoothing:antialiased;overflow-x:hidden}
body::after{content:"";position:fixed;inset:0;pointer-events:none;z-index:9999;opacity:.045;mix-blend-mode:overlay;
  background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='140' height='140'%3E%3Cfilter id='n'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='.9' numOctaves='3'/%3E%3C/filter%3E%3Crect width='100%25' height='100%25' filter='url(%23n)'/%3E%3C/svg%3E")}
a{color:inherit;text-decoration:none}
img{display:block;max-width:100%}
::selection{background:var(--volt);color:#000}
.mono{font-family:var(--f-mono);text-transform:uppercase;letter-spacing:.18em;font-size:.7rem;color:var(--muted)}
.wrap{padding-inline:var(--edge)}

/* NAV */
header{position:fixed;top:0;left:0;right:0;z-index:100;transition:.4s}
.nav{display:flex;align-items:center;justify-content:space-between;padding:1rem var(--edge);border-bottom:1px solid transparent;transition:.4s}
header.scrolled .nav{background:var(--nav-bg);backdrop-filter:blur(14px);border-bottom-color:var(--line)}
.theme-toggle{background:none;border:1px solid var(--line);color:var(--text);width:40px;height:40px;border-radius:10px;cursor:pointer;font-size:1rem;display:grid;place-items:center;transition:.25s}
.theme-toggle:hover{border-color:var(--volt);color:var(--volt)}
/* Startseite (Dark): Header über dem dunklen Hero bleibt hell, bis gescrollt wird */
:root[data-theme="dark"] body.home header:not(.scrolled) .brand{color:#ECEBE5}
:root[data-theme="dark"] body.home header:not(.scrolled) .brand small{color:rgba(236,235,229,.6)}
:root[data-theme="dark"] body.home header:not(.scrolled) nav a{color:rgba(236,235,229,.78)}
:root[data-theme="dark"] body.home header:not(.scrolled) nav a.active{color:#fff}
:root[data-theme="dark"] body.home header:not(.scrolled) .theme-toggle{color:#ECEBE5;border-color:rgba(255,255,255,.28)}
.brand{display:flex;align-items:center;gap:.7rem;font-family:var(--f-disp);font-weight:700;font-size:1.05rem;letter-spacing:.01em}
.brand .mark{width:40px;height:40px;display:grid;place-items:center;flex:0 0 auto}
.brand .mark svg{width:100%;height:100%;display:block}
.brand small{display:block;font-family:var(--f-mono);font-size:.56rem;letter-spacing:.2em;color:var(--muted);font-weight:400;margin-top:2px}
nav ul{display:flex;gap:2rem;list-style:none;font-size:.92rem;font-weight:500}
nav a{position:relative;padding:.2rem 0;color:var(--muted);transition:.25s}
nav a.active{color:var(--text)}
nav a::after{content:"";position:absolute;left:0;bottom:-3px;width:0;height:2px;background:var(--volt);transition:.3s}
nav a:hover{color:var(--text)}nav a:hover::after,nav a.active::after{width:100%}
.cta-call{display:inline-flex;align-items:center;gap:.6rem;background:var(--volt);color:#000;font-weight:600;padding:.65rem 1.1rem;border-radius:100px;font-size:.9rem;transition:.25s;white-space:nowrap}
.cta-call:hover{background:#fff;transform:translateY(-2px)}
.cta-call .dot{width:8px;height:8px;border-radius:50%;background:#0B0B0D;position:relative}
.cta-call .dot::after{content:"";position:absolute;inset:-4px;border-radius:50%;border:1px solid #000;animation:ping 1.6s infinite}
@keyframes ping{0%{transform:scale(.6);opacity:1}100%{transform:scale(1.8);opacity:0}}
.navtoggle{display:none;background:none;border:1px solid var(--line);color:var(--text);width:44px;height:44px;border-radius:10px;font-size:1.2rem;cursor:pointer}

/* HERO (home) */
.hero{position:relative;min-height:100svh;display:flex;flex-direction:column;justify-content:flex-end;padding-top:8.5rem;padding-bottom:clamp(2rem,6vh,5rem);overflow:hidden;isolation:isolate}
.hero-bg{position:absolute;inset:0;z-index:-2}
.hero-bg img{width:100%;height:100%;object-fit:cover;filter:grayscale(.3) contrast(1.05) brightness(.5)}
.hero-bg::after{content:"";position:absolute;inset:0;background:linear-gradient(180deg,rgba(11,11,13,.75) 0%,rgba(11,11,13,.35) 35%,rgba(11,11,13,.9) 100%),radial-gradient(120% 90% at 15% 110%,rgba(255,138,0,.28),transparent 55%)}
.hero-grid{position:absolute;inset:0;z-index:-1;opacity:.4;background-image:linear-gradient(var(--line) 1px,transparent 1px),linear-gradient(90deg,var(--line) 1px,transparent 1px);background-size:70px 70px;mask-image:linear-gradient(180deg,transparent,#000 55%,transparent);overflow:hidden}
.hero-grid::after{content:"";position:absolute;top:0;left:0;width:48%;height:62%;border-radius:50%;background:radial-gradient(circle,rgba(255,194,26,.55),rgba(255,138,0,.18) 45%,transparent 70%);filter:blur(6px);animation:heroLight 15s ease-in-out infinite;will-change:transform}
@keyframes heroLight{0%{transform:translate(-12%,55%)}50%{transform:translate(115%,-8%)}100%{transform:translate(-12%,55%)}}
:root[data-theme="light"] .hero-grid{opacity:.6}
:root[data-theme="light"] .hero-grid::after{width:58%;height:72%;background:radial-gradient(circle,rgba(255,150,0,.62),rgba(255,110,0,.28) 45%,transparent 70%);filter:blur(4px)}
.hero-top{position:absolute;top:0;left:0;right:0;padding:7rem var(--edge) 0;display:flex;justify-content:space-between;gap:1rem;flex-wrap:wrap}
.hero-content{max-width:1100px}
.hero .mono{color:rgba(240,239,233,.72)}
.hero-content h1{color:#F6F5F0;word-spacing:.16em;text-shadow:0 0 26px rgba(0,0,0,.32),0 3px 12px rgba(0,0,0,.32)}
.hero .hero-actions .btn{box-shadow:0 10px 26px rgba(0,0,0,.20)}
/* Light-Mode Hero: Bild heller, heller Verlauf unten, dunkler Text */
:root[data-theme="light"] .hero-bg img{filter:grayscale(.1) contrast(1.02) brightness(.98)}
:root[data-theme="light"] .hero-bg::after{background:linear-gradient(180deg,rgba(244,241,234,.12) 0%,rgba(244,241,234,.04) 22%,rgba(244,241,234,.55) 58%,rgba(244,241,234,.9) 82%,rgba(244,241,234,.99) 100%),radial-gradient(120% 90% at 15% 110%,rgba(255,138,0,.12),transparent 55%)}
:root[data-theme="light"] .hero-content h1{color:var(--text)}
:root[data-theme="light"] .hero .mono{color:var(--muted)}
:root[data-theme="light"] .hero-sub p{color:#4a473f}
/* Hero-Ghost-Button im Dark klar sichtbar (heller Rahmen/Text) */
:root[data-theme="dark"] .hero .btn-ghost{border-color:rgba(255,255,255,.32);color:#fff}
.eyebrow{display:inline-flex;align-items:center;gap:.8rem;margin-bottom:1.5rem;opacity:0;animation:rise .8s .1s forwards}
.eyebrow .ln{width:46px;height:1px;background:var(--volt)}
h1{font-family:var(--f-disp);font-weight:700;line-height:.94;letter-spacing:-.02em;font-size:clamp(2.9rem,9vw,8.2rem);text-transform:uppercase}
h1 span{display:block}
h1 span i{display:block;font-style:normal;opacity:0;transform:translateY(26px);animation:slideup .9s cubic-bezier(.16,1,.3,1) forwards}
h1 span:nth-child(2) i{animation-delay:.12s}
h1 span:nth-child(3) i{animation-delay:.24s}
h1 .amber{color:var(--volt)}
.hero-sub{display:flex;gap:2.5rem;align-items:flex-end;flex-wrap:wrap;margin-top:2rem;opacity:0;animation:rise .8s .5s forwards}
.hero-sub p{max-width:46ch;font-size:clamp(1rem,1.5vw,1.18rem);color:#cfcfc7}
.hero-actions{display:flex;gap:1rem;flex-wrap:wrap}
.btn{display:inline-flex;align-items:center;gap:.7rem;padding:.95rem 1.6rem;border-radius:100px;font-weight:600;font-size:.98rem;transition:.28s}
.btn-primary{background:var(--volt);color:#000}
.btn-primary:hover{background:#fff;transform:translateY(-3px)}
.btn-ghost{border:1px solid var(--line);color:var(--text)}
.btn-ghost:hover{border-color:var(--volt);color:var(--volt)}
@keyframes slideup{to{transform:translateY(0);opacity:1}}
@keyframes rise{to{opacity:1;transform:none}0%{transform:translateY(18px)}}

/* PAGE HERO (subpages) */
.subhero{position:relative;padding:6.5rem var(--edge) 2rem;border-bottom:1px solid var(--line);overflow:hidden}
.subhero::before{content:"";position:absolute;inset:0;z-index:-1;opacity:.3;background-image:linear-gradient(var(--line) 1px,transparent 1px),linear-gradient(90deg,var(--line) 1px,transparent 1px);background-size:70px 70px;mask-image:radial-gradient(120% 120% at 80% 0,#000,transparent 70%)}
.subhero::after{content:"";position:absolute;right:-5%;top:-40%;width:45%;height:180%;z-index:-1;background:radial-gradient(circle,rgba(255,138,0,.16),transparent 60%)}
.crumb{display:flex;gap:.6rem;align-items:center;margin-bottom:1.4rem;font-family:var(--f-mono);text-transform:uppercase;letter-spacing:.14em;font-size:.72rem;color:var(--muted)}
.crumb a:hover{color:var(--volt)}.crumb .sep{color:var(--volt)}
.subhero h1{font-size:clamp(2.4rem,6vw,5rem);text-transform:none;line-height:1}
.subhero .lead{margin-top:1.3rem;max-width:56ch;font-size:clamp(1.05rem,1.7vw,1.35rem);color:var(--text);opacity:.72}

/* TICKER */
.ticker{background:var(--volt);color:#000;padding:.85rem 0;overflow:hidden;white-space:nowrap;border-block:1px solid #000}
.ticker-track{display:inline-flex;gap:2.5rem;animation:scroll 32s linear infinite;font-family:var(--f-disp);font-weight:600;font-size:1.05rem;text-transform:uppercase;letter-spacing:.02em}
@keyframes scroll{to{transform:translateX(-50%)}}

section{position:relative}
.pad{padding-block:clamp(4.5rem,10vh,8rem)}
.sec-head{display:flex;align-items:flex-end;justify-content:space-between;gap:2rem;flex-wrap:wrap;margin-bottom:1.8rem}
.sec-head h2{font-family:var(--f-disp);font-weight:600;font-size:clamp(2rem,4.5vw,3.6rem);line-height:1;letter-spacing:-.02em}
.sec-head h2 em{font-style:normal;color:var(--volt)}
.idx{font-family:var(--f-mono);font-size:.72rem;letter-spacing:.16em;text-transform:uppercase;color:var(--muted)}
.sec-head .idx{margin-left:auto;text-align:right}

/* PHILOSOPHY */
.philo{background:var(--ink-2)}
.philo-grid{display:grid;grid-template-columns:1.2fr .8fr;gap:clamp(2rem,5vw,5rem);align-items:center}
.philo-lead{font-family:var(--f-disp);font-weight:500;font-size:clamp(1.5rem,3vw,2.4rem);line-height:1.18;letter-spacing:-.01em}
.philo-lead b{color:var(--volt);font-weight:600}
.philo-list{list-style:none;display:flex;flex-direction:column;gap:.2rem}
.philo-list li{display:flex;gap:1rem;align-items:baseline;padding:.9rem 0;border-top:1px solid var(--line);font-size:1.05rem}
.philo-list li:last-child{border-bottom:1px solid var(--line)}
.philo-list li i{font-style:normal;color:var(--volt);font-size:1.1rem}

/* SERVICES GRID */
.svc-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:1px;background:var(--line);border:1px solid var(--line)}
.svc{position:relative;background:var(--ink);padding:2rem 1.8rem;min-height:300px;display:flex;flex-direction:column;justify-content:flex-end;overflow:hidden;transition:.4s}
.svc>.svc-img{position:absolute;inset:0;z-index:0}
.svc-img img{width:100%;height:100%;object-fit:cover;filter:grayscale(.25) brightness(.68);transition:.6s;transform:scale(1.02)}
.svc-img::after{content:"";position:absolute;inset:0;background:linear-gradient(180deg,rgba(11,11,13,.15) 0%,rgba(11,11,13,.58) 45%,rgba(11,11,13,.92) 100%)}
.svc>*{position:relative;z-index:1}
.svc h3{font-family:var(--f-disp);font-weight:600;font-size:1.5rem;margin:0 0 .35rem;transition:.3s;color:#F3F2EC}
.svc p{color:#dcdbd4;font-size:.95rem;margin-top:0}
.svc .arrow{position:absolute;top:1.8rem;right:1.8rem;color:var(--volt);opacity:0;transform:translate(-6px,6px);transition:.35s;font-size:1.3rem;z-index:1}
.svc:hover{background:var(--ink-2)}
.svc:hover .svc-img img{filter:grayscale(0) brightness(.82);transform:scale(1.08)}
.svc:hover h3{color:var(--volt)}
.svc:hover .arrow{opacity:1;transform:none}

/* STATS */
.stats{display:grid;grid-template-columns:repeat(3,1fr);gap:1px;background:var(--line);border-block:1px solid var(--line)}
.stat{background:var(--ink);padding:clamp(2rem,4vw,3.5rem) var(--edge);text-align:center}
.stat .big{font-family:var(--f-disp);font-weight:700;font-size:clamp(2.6rem,6vw,5rem);line-height:1;color:var(--volt)}
.stat .lbl{margin-top:.6rem;color:var(--muted);font-size:.92rem}

/* EMERGENCY */
.emg{background:linear-gradient(100deg,var(--volt),var(--volt-2));color:#000;overflow:hidden;position:relative}
.emg::before{content:"⚡";position:absolute;right:-2%;top:50%;transform:translateY(-50%);font-size:22rem;opacity:.12}
.emg-in{display:flex;align-items:center;justify-content:space-between;gap:2rem;flex-wrap:wrap;padding-block:clamp(2.5rem,5vw,4rem)}
.emg .k{font-family:var(--f-mono);text-transform:uppercase;letter-spacing:.2em;font-size:.75rem;font-weight:500}
.emg h2{font-family:var(--f-disp);font-weight:700;font-size:clamp(2rem,5vw,3.4rem);line-height:1;margin:.5rem 0 .3rem;text-transform:uppercase}
.emg-phone{display:inline-flex;align-items:center;gap:.9rem;background:#0B0B0D;color:var(--volt);font-family:var(--f-disp);font-weight:600;font-size:clamp(1.3rem,2.5vw,1.9rem);padding:1rem 1.8rem;border-radius:100px;transition:.28s}
.emg-phone:hover{transform:translateY(-3px) scale(1.02)}

/* TEAM + QUOTE */
.duo{display:grid;grid-template-columns:1fr 1fr;gap:clamp(1.5rem,4vw,3rem)}
.team-card{border:1px solid var(--line);border-radius:16px;overflow:hidden;background:var(--panel)}
.team-photos{display:grid;grid-template-columns:1fr 1fr}
.team-photos figure{position:relative;aspect-ratio:3/4;overflow:hidden}
.team-photos img{width:100%;height:100%;object-fit:cover;filter:grayscale(.35);transition:.5s}
.team-card:hover .team-photos img{filter:grayscale(0)}
.team-photos figcaption{position:absolute;left:0;bottom:0;right:0;padding:1rem;background:linear-gradient(transparent,rgba(0,0,0,.85))}
.team-photos figcaption b{font-family:var(--f-disp);font-weight:600;display:block}
.team-photos figcaption span{font-size:.8rem;color:var(--volt)}
.team-body{padding:1.8rem}
.team-body h3{font-family:var(--f-disp);font-weight:600;font-size:1.6rem;margin-bottom:.6rem}
.team-body p{color:var(--muted)}
.quote{border:1px solid var(--line);border-radius:16px;padding:2.5rem;background:var(--ink-2);display:flex;flex-direction:column;justify-content:center}
.quote .qm{font-family:var(--f-disp);color:var(--volt);font-size:4rem;line-height:.6;margin-bottom:1rem}
.quote blockquote{font-family:var(--f-disp);font-weight:500;font-size:clamp(1.3rem,2.4vw,1.9rem);line-height:1.25;letter-spacing:-.01em}
.quote cite{display:block;margin-top:1.5rem;font-style:normal;color:var(--muted);font-size:.95rem}
.quote cite b{color:var(--text);font-style:normal}

/* ARTICLE (service detail / legal) */
.layout{display:grid;grid-template-columns:1fr 320px;gap:clamp(2rem,5vw,4.5rem);align-items:start}
.article{max-width:70ch;font-size:1.06rem}
.article>img{width:100%;border-radius:14px;margin-bottom:2.2rem;filter:saturate(1.02)}
.article h2{font-family:var(--f-disp);font-weight:600;font-size:clamp(1.4rem,2.6vw,2rem);margin:2.4rem 0 .8rem;line-height:1.1}
.article p{margin-bottom:1.1rem;color:var(--text);opacity:.86}
.article p.lede{font-size:1.25rem;color:var(--text);opacity:1;font-weight:500;line-height:1.4}
.article ul{margin:0 0 1.3rem 1.1rem;color:var(--text);opacity:.86}
.article li{margin-bottom:.4rem}
.aside{position:sticky;top:6rem;display:flex;flex-direction:column;gap:1rem}
.aside .card{border:1px solid var(--line);border-radius:14px;padding:1.5rem;background:var(--panel)}
.aside .card h4{font-family:var(--f-disp);font-weight:600;font-size:1.15rem;margin-bottom:.6rem}
.aside .card p{color:var(--muted);font-size:.92rem;margin-bottom:1rem}
.aside .card.amber{background:linear-gradient(135deg,var(--volt),var(--volt-2));color:#000}
.aside .card.amber h4,.aside .card.amber a{color:#000}
.aside .other{list-style:none;display:flex;flex-direction:column}
.aside .other a{display:flex;justify-content:space-between;padding:.7rem 0;border-top:1px solid var(--line);color:var(--muted);transition:.2s;font-size:.95rem}
.aside .other a:hover{color:var(--volt);padding-left:.3rem}
.btn-block{display:block;text-align:center;background:#0B0B0D;color:var(--volt);font-weight:600;padding:.85rem;border-radius:100px;transition:.25s}
.btn-block:hover{background:#000;color:#fff}
.aside .card.amber .btn-block{background:#0B0B0D;color:#fff}
:root[data-theme="light"] .aside .card.amber .btn-block{color:var(--volt)}

/* CARD GRID (leistungen overview / news / team full) */
.cards{display:grid;grid-template-columns:repeat(3,1fr);gap:1.5rem}
.cards.two{grid-template-columns:repeat(2,1fr)}
.card-l{border:1px solid var(--line);border-radius:16px;overflow:hidden;background:var(--panel);display:flex;flex-direction:column;transition:.35s}
.card-l:hover{transform:translateY(-5px);border-color:rgba(255,194,26,.4)}
.card-l .thumb{aspect-ratio:16/10;overflow:hidden}
.card-l .thumb img{width:100%;height:100%;object-fit:cover;filter:grayscale(.2) brightness(.85);transition:.5s}
.card-l:hover .thumb img{filter:grayscale(0) brightness(1);transform:scale(1.05)}
.card-l .body{padding:1.6rem;display:flex;flex-direction:column;gap:.5rem;flex:1}
.card-l h3{font-family:var(--f-disp);font-weight:600;font-size:1.35rem}
.card-l p{color:var(--muted);font-size:.95rem;flex:1}
.card-l .go{color:var(--volt);font-family:var(--f-mono);font-size:.75rem;text-transform:uppercase;letter-spacing:.12em;margin-top:.5rem}

/* TEAM full grid */
.people{display:grid;grid-template-columns:repeat(2,1fr);gap:1.5rem}
.person{border:1px solid var(--line);border-radius:16px;overflow:hidden;background:var(--panel)}
.person .ph{aspect-ratio:4/5;overflow:hidden;background:var(--ink-2)}
.person .ph img{width:100%;height:100%;object-fit:cover;filter:grayscale(.3);transition:.4s}
.person:hover .ph img{filter:grayscale(0)}
.person .noimg{width:100%;height:100%;display:grid;place-items:center;font-family:var(--f-disp);font-size:3rem;color:var(--line)}
.person .info{padding:1.4rem}
.person .info h3{font-family:var(--f-disp);font-weight:600;font-size:1.3rem}
.person .info .role{color:var(--volt);font-size:.85rem;font-family:var(--f-mono);text-transform:uppercase;letter-spacing:.1em;margin:.2rem 0 .7rem}
.person .info p{color:var(--muted);font-size:.9rem;margin-bottom:.7rem}
.person .info a{font-size:.9rem;color:var(--text)}
.person .info a:hover{color:var(--volt)}
.person.textcard .info{padding:1.8rem}
.badge{width:56px;height:56px;border-radius:14px;background:linear-gradient(135deg,var(--volt),var(--volt-2));color:#000;display:grid;place-items:center;font-family:var(--f-disp);font-weight:700;font-size:1.35rem;margin-bottom:1.1rem;box-shadow:0 0 22px rgba(255,194,26,.22)}
.team-names{display:flex;flex-wrap:wrap;gap:.5rem}
.team-names span{border:1px solid var(--line);border-radius:100px;padding:.4rem .95rem;font-size:.85rem;color:var(--text)}

/* CONTACT */
.contact{background:var(--ink-2);color:var(--text)}
.contact .mono,.contact .idx,.con-info dt,label span,.note{color:var(--muted)}
.contact .sec-head h2 em{color:var(--volt-2)}
.con-grid{display:grid;grid-template-columns:.9fr 1.1fr;gap:clamp(2rem,5vw,4rem)}
.con-info dl{display:grid;grid-template-columns:auto 1fr;gap:.4rem 1.5rem;margin-top:1rem}
.con-info dt{font-family:var(--f-mono);text-transform:uppercase;font-size:.7rem;letter-spacing:.15em;padding-top:.5rem}
.con-info dd{font-size:1.15rem;font-weight:500;padding-bottom:.9rem;border-bottom:1px solid var(--line)}
.con-info dd a:hover{color:var(--volt-2)}
form{display:grid;gap:1rem}
.frow{display:grid;grid-template-columns:1fr 1fr;gap:1rem}
label span{font-family:var(--f-mono);text-transform:uppercase;font-size:.68rem;letter-spacing:.14em;display:block;margin-bottom:.4rem}
input,textarea{width:100%;padding:.85rem 1rem;border:1px solid var(--line);border-radius:10px;background:var(--panel);font-family:var(--f-body);font-size:1rem;color:var(--text)}
input:focus,textarea:focus{outline:none;border-color:var(--volt-2);box-shadow:0 0 0 3px rgba(255,138,0,.15)}
.submit{background:var(--text);color:var(--ink);border:none;padding:1rem;border-radius:100px;font-weight:600;font-size:1rem;cursor:pointer;transition:.25s}
.submit:hover{background:var(--volt-2);color:#000}
.note{font-size:.8rem}
/* Honeypot – für Menschen unsichtbar, aber nicht display:none (Bots meiden das) */
.hp{position:absolute;left:-9999px;width:1px;height:1px;overflow:hidden}
/* DSGVO-Consent */
.consent{display:flex;gap:.7rem;align-items:flex-start;font-size:.86rem;color:var(--muted);line-height:1.5}
.consent input{width:auto;flex:0 0 auto;margin-top:.15rem;accent-color:var(--volt-2)}
.consent a{text-decoration:underline}
/* Fehler-Banner nach Redirect */
.form-msg{background:rgba(220,60,60,.12);border:1px solid rgba(220,60,60,.5);color:#e06666;padding:.9rem 1.1rem;border-radius:10px;font-size:.92rem;margin-bottom:.4rem}
/* Danke-Seite */
.danke-box{max-width:56ch}
.danke-ic{width:64px;height:64px;border-radius:50%;display:grid;place-items:center;background:var(--volt);color:#000;font-size:2rem;font-weight:700;margin-bottom:1.5rem}
.danke-box h2{font-family:var(--f-disp);font-weight:600;font-size:clamp(1.6rem,3vw,2.2rem);margin-bottom:.8rem}
.danke-box p{color:var(--muted);font-size:1.1rem;max-width:52ch}
.legal-dl{display:grid;grid-template-columns:auto 1fr;gap:.2rem 1.6rem;margin:.5rem 0 1.5rem}
.legal-dl dt{font-family:var(--f-mono);text-transform:uppercase;font-size:.68rem;letter-spacing:.12em;color:var(--muted);padding:.7rem 0;border-top:1px solid var(--line)}
.legal-dl dd{padding:.7rem 0;border-top:1px solid var(--line);color:var(--text)}
.flag{color:var(--volt-2);font-weight:600}

/* FOOTER */
footer{background:var(--ink);padding-block:3rem;border-top:1px solid var(--line)}
.foot{display:flex;justify-content:space-between;gap:2rem;flex-wrap:wrap;align-items:center}
.foot-links{display:flex;gap:1.5rem;flex-wrap:wrap;font-size:.9rem;color:var(--muted)}
.foot-links a:hover{color:var(--volt)}
.foot .copy{font-family:var(--f-mono);font-size:.72rem;color:var(--muted);letter-spacing:.1em}
.foot-brand{display:flex;flex-direction:column;gap:.55rem}
.mob-br{display:none}
.totop{position:fixed;right:clamp(1rem,3vw,2rem);bottom:clamp(1rem,3vw,2rem);z-index:90;width:48px;height:48px;border-radius:50%;border:none;background:var(--volt);color:#000;font-size:1.4rem;cursor:pointer;display:grid;place-items:center;box-shadow:0 8px 24px rgba(0,0,0,.28);opacity:0;transform:translateY(16px) scale(.9);pointer-events:none;transition:.3s}
.totop.show{opacity:1;transform:none;pointer-events:auto}
.totop:hover{background:#fff}
.foot-contact{font-size:.95rem;line-height:1.75;color:var(--muted)}
.foot-contact a{color:var(--text)}
.foot-contact a:hover{color:var(--volt)}
.foot-main{align-items:flex-start}
.foot .copy a{color:var(--muted)}
:root[data-theme="light"] .foot .copy a{color:var(--text)}
.foot .copy a:hover{text-decoration:underline}
.backlink{display:inline-flex;align-items:center;gap:.5rem;color:var(--volt);font-family:var(--f-disp);font-weight:600;font-size:1.05rem;transition:gap .2s}
.backlink:hover{gap:.85rem}
.cta-call svg{display:block;width:17px;height:17px;overflow:visible}
/* Telefon-Klingeln: kurzer Vibrations-Burst + austretende Kreissektor-Wellen */
.phone-body{transform-box:fill-box;transform-origin:center;animation:phoneshake 3.2s ease-in-out infinite}
.wave{opacity:0}
.w1{animation:ringwave 3.2s ease-out infinite}
.w2{animation:ringwave 3.2s ease-out .13s infinite}
@keyframes phoneshake{0%,24%,100%{transform:rotate(0)}4%{transform:rotate(-16deg)}9%{transform:rotate(14deg)}14%{transform:rotate(-9deg)}19%{transform:rotate(5deg)}}
@keyframes ringwave{0%,5%{opacity:0}12%{opacity:.95}34%{opacity:0}100%{opacity:0}}

.reveal{opacity:0;transform:translateY(30px);transition:.8s cubic-bezier(.16,1,.3,1)}
.reveal.in{opacity:1;transform:none}

@media(max-width:960px){
  .philo-grid,.con-grid,.duo,.layout{grid-template-columns:1fr}
  .svc-grid,.cards,.people{grid-template-columns:1fr 1fr}
  .svc .arrow{opacity:1;transform:none}
  .aside{position:static}
}
/* Nav-Links früh ins Burger-Menü, bevor sie umbrechen; Toggle + Telefon bleiben */
@media(max-width:930px){
  nav ul{display:none}
  .navtoggle{display:block}
  nav.open ul{display:flex;position:absolute;top:100%;left:0;right:0;flex-direction:column;background:var(--ink-2);padding:1.5rem var(--edge);gap:1.2rem;border-bottom:1px solid var(--line);z-index:20}
}
@media(max-width:680px){
  .nav .cta-call{display:none}
  .svc-grid,.stats,.cards,.cards.two,.people{grid-template-columns:1fr}
  .frow{grid-template-columns:1fr}
  .hero-top{display:none}
  .hero{justify-content:center;padding-top:6rem}
  .mob-br{display:inline}
}
@media(prefers-reduced-motion:reduce){*{animation:none!important;transition:none!important}.reveal{opacity:1;transform:none}h1 span i{transform:none}.eyebrow,.hero-sub{opacity:1}}
