@font-face{font-family:'Inter';font-style:normal;font-weight:100 900;font-display:swap;src:url('assets/fonts/inter-latin-ext-wght-normal.woff2') format('woff2');unicode-range:U+0100-02BA,U+02BD-02C5,U+02C7-02CC,U+02CE-02D7,U+02DD-02FF,U+0304,U+0308,U+0329,U+1D00-1DBF,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C0,U+2113,U+2C60-2C7F,U+A720-A7FF}
@font-face{font-family:'Inter';font-style:normal;font-weight:100 900;font-display:swap;src:url('assets/fonts/inter-latin-wght-normal.woff2') format('woff2');unicode-range:U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+0304,U+0308,U+0329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}
:root{--ink:#111615;--ink2:#18201e;--paper:#f4f1e9;--white:#fff;--line:rgba(17,22,21,.15);--muted:#626763;--teal:#29aeb1;--teal-dark:#0e6468;--serif:Georgia,'Times New Roman',serif;--sans:Inter,'Helvetica Neue',Arial,sans-serif;--max:1380px}
*{box-sizing:border-box}
html{scroll-behavior:smooth;scroll-padding-top:78px;max-width:100%;overflow-x:clip}
body{margin:0;max-width:100%;overflow-x:clip;background:var(--paper);color:var(--ink);font-family:var(--sans);-webkit-font-smoothing:antialiased}
img{display:block;max-width:100%}
h1,h2,h3,h4,p,li,b,strong,span,blockquote,figcaption{overflow-wrap:break-word}
h2,h3,h4{hyphens:auto}
a{color:inherit}
.shell{width:min(calc(100% - 8rem),var(--max));margin:auto}
.skip{position:fixed;top:-5rem;left:1rem;z-index:100;background:#fff;padding:.8rem}
.skip:focus{top:1rem}
.header{height:78px;display:flex;align-items:center;justify-content:space-between;padding:0 clamp(1.4rem,5vw,5rem);position:sticky;top:0;z-index:50;background:rgba(244,241,233,.95);border-bottom:1px solid var(--line);backdrop-filter:blur(15px)}
.brand{display:flex;align-items:center;gap:.8rem;text-decoration:none}
.brand-mark{width:51px;height:35px;display:block;overflow:visible}
.brand-mark img{width:100%;height:100%;padding:2px;object-fit:contain}
.brand>span:last-child{display:flex;flex-direction:column}
.brand strong{font-size:.88rem;letter-spacing:.24em}
.brand small{font-size:.46rem;letter-spacing:.16em;text-transform:uppercase;color:#737771;margin-top:.35rem}
.header nav{display:flex;align-items:center;gap:clamp(1.2rem,2.5vw,2.7rem)}
.header nav a{font-size:.63rem;font-weight:800;text-transform:uppercase;letter-spacing:.14em;text-decoration:none;color:#4e534f}
.header .nav-cta{padding:.8rem 1.2rem;background:var(--ink);color:#fff}
.menu{display:none;border:0;background:none}
.menu i{position:absolute;clip:rect(0,0,0,0)}

.hero{width:100%;min-width:0;min-height:calc(100vh - 78px);display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1fr);overflow:hidden;background:var(--ink);color:#fff}
.hero-copy{padding:clamp(4rem,7vw,8rem) clamp(2rem,6vw,7rem);display:flex;justify-content:center;flex-direction:column;background:var(--ink)}
.kicker{margin:0;display:flex;align-items:center;gap:.8rem;color:#c7d0cc;font-size:.61rem;font-weight:800;letter-spacing:.18em;text-transform:uppercase}
.kicker:before{content:'';width:2.2rem;height:1px;background:currentColor}
.kicker.dark{color:#69716d}
.hero .kicker{color:#8bd5d5}
h1,h2,h3,h4{font-family:var(--serif);font-weight:400}
.hero h1{margin:1.8rem 0 1.5rem;max-width:850px;font-size:clamp(3.3rem,5vw,6rem);line-height:.99;letter-spacing:-.052em}
.hero h1 em{font-style:normal;color:#8bd5d5}
.lead{max-width:680px;color:#b4bcb8;font-size:clamp(1rem,1.15vw,1.15rem);line-height:1.75}
.actions{display:flex;align-items:center;gap:2rem;margin-top:2.2rem}
.button{display:inline-block;padding:1rem 1.4rem;text-decoration:none;text-transform:uppercase;font-size:.65rem;font-weight:800;letter-spacing:.12em}
.hero .primary{background:#fff;color:var(--ink)}
.button-link{font-size:.65rem;font-weight:800;letter-spacing:.12em;text-transform:uppercase;text-decoration:none}
.button-link span{color:#8bd5d5;margin-left:.5rem}
.proof{display:flex;flex-wrap:wrap;gap:4rem;margin-top:clamp(3rem,5vw,5rem);padding-top:1.4rem;border-top:1px solid rgba(255,255,255,.15)}
.proof div{display:grid;gap:.35rem}
.proof strong{font:400 2.25rem/1 var(--serif);color:#8bd5d5}
.proof span{font-size:.55rem;font-weight:700;text-transform:uppercase;letter-spacing:.12em;color:#929b97}

.hero-copy,.hero-visual{min-width:0}
.hero-visual{position:relative;width:100%;min-height:700px;padding:clamp(1.5rem,3vw,2.6rem) clamp(1rem,2.4vw,2rem) 0;gap:clamp(.4rem,1.4vw,1.4rem);background:radial-gradient(130% 95% at 50% 100%,#263632 0%,#1c2926 52%,#161f1d 100%);overflow:hidden;display:grid;grid-template-columns:repeat(2,minmax(0,1fr));align-items:stretch}
.hero-visual:before{content:'';position:absolute;left:8%;right:8%;bottom:clamp(4.2rem,7vw,5.6rem);height:1px;background:linear-gradient(90deg,transparent,rgba(139,213,213,.22),transparent)}
.hero-visual figure{position:relative;z-index:1;margin:0;min-width:0;display:flex;flex-direction:column;justify-content:flex-end;align-items:center;gap:clamp(1rem,2vw,1.5rem);padding-bottom:clamp(1.4rem,2.6vw,2rem)}
.hero-visual figure img{width:auto;height:auto;object-fit:contain;filter:drop-shadow(0 26px 42px rgba(0,0,0,.5))}
.thomas-photo img{max-width:100%;max-height:min(60vh,550px)}
.ingrid-photo img{max-width:87.6%;max-height:min(54.9vh,503px)}
.hero-visual figcaption{display:grid;text-align:center;color:#fff}
.hero-visual figcaption strong{font:400 1.1rem var(--serif)}
.hero-visual figcaption span{margin-top:.35rem;color:#95dcdd;font-size:.52rem;letter-spacing:.12em;text-transform:uppercase}
.visual-note{position:absolute;z-index:6;right:1.5rem;top:1.5rem;margin:0;color:rgba(255,255,255,.82);font:italic 1.25rem/1.3 var(--serif);text-align:right}

.clients{padding:3rem 0;background:var(--ink2);color:#fff}
.clients .shell>p{text-align:center;margin:0 0 2rem;color:#aab2af;font-size:.58rem;font-weight:750;letter-spacing:.16em;text-transform:uppercase}
.client-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(150px,1fr));gap:.25rem 1rem;align-items:center;justify-items:center}
.client-grid>span{min-height:54px;display:flex;align-items:center;justify-content:center;text-align:center;padding:.5rem;color:#fff;opacity:.8;font-size:.78rem;font-weight:650;letter-spacing:.06em;line-height:1.35}
.tuev{font-size:.95rem;line-height:.9}
.tuev b{display:block}
.lapp{font-weight:900;letter-spacing:.08em}
.loqo{font:600 1.1rem var(--serif)}
.alexion{font-size:.72rem;letter-spacing:.12em}

.challenge{padding:clamp(6rem,10vw,11rem) 0}
.challenge-grid{display:grid;grid-template-columns:.85fr 1.15fr;gap:clamp(5rem,10vw,12rem)}
h2{margin:1.6rem 0 0;font-size:clamp(3rem,4.7vw,5.4rem);line-height:1.01;letter-spacing:-.04em}
.sticky-title{align-self:start;position:sticky;top:125px}
.challenge-copy{padding-top:4rem}
.challenge-copy>p{max-width:700px;color:var(--muted);font-size:1rem;line-height:1.8}
.challenge-copy .large-copy{font:400 clamp(1.6rem,2.5vw,2.6rem)/1.34 var(--serif);color:var(--ink);letter-spacing:-.02em}
.challenge-copy>p+p{margin-top:2rem}
.method{margin-top:4rem}
.method article{display:grid;grid-template-columns:48px 1fr 1fr;gap:1.4rem;padding:2rem 0;border-top:1px solid var(--line);align-items:start}
.method article:last-child{border-bottom:1px solid var(--line)}
.method span{color:var(--teal-dark);font-size:.6rem;font-weight:800}
.method h3{font-size:1.9rem;margin:0}
.method p{margin:0;color:var(--muted);font-size:.87rem;line-height:1.65}

.expertise{padding:clamp(6rem,9vw,10rem) 0;background:var(--ink);color:#fff}
.section-head{display:grid;grid-template-columns:1.2fr .6fr;gap:6rem;align-items:end}
.section-head>p{margin:0;color:#a8afac;line-height:1.75;font-size:.95rem}
.expertise-list{margin-top:5rem;border-top:1px solid rgba(255,255,255,.18)}
.expertise-list article{display:grid;grid-template-columns:70px minmax(0,1fr) minmax(0,.55fr);gap:2rem;align-items:start;padding:2.2rem 0;border-bottom:1px solid rgba(255,255,255,.18)}
.expertise-list article>div{min-width:0}
.expertise-list article>span{color:#6f817c;font-size:.6rem}
.expertise-list h3{margin:0 0 .7rem;font-size:clamp(1.8rem,2.6vw,3rem)}
.expertise-list p{margin:0;max-width:620px;color:#929a96;font-size:.88rem;line-height:1.7}
.expertise-list b{color:#8bd5d5;font-size:.63rem;letter-spacing:.11em;text-transform:uppercase;line-height:1.5}

.team{padding:clamp(6rem,9vw,10rem) 0}
.team-head>p{color:var(--muted)}
.team-grid{margin-top:5rem;display:grid;grid-template-columns:1fr 1fr;gap:1px;background:var(--line)}
.team-grid article{padding:clamp(2.5rem,5vw,5rem);background:#fff;display:flex;flex-direction:column}
.person-tag{margin:0;color:var(--teal-dark);font-size:.6rem;font-weight:800;letter-spacing:.14em;text-transform:uppercase}
.team-grid h3{margin:1.1rem 0 .5rem;font-size:clamp(2rem,2.8vw,3.25rem);letter-spacing:-.035em;white-space:nowrap}
.role{margin:0;color:#7b5b54;font-size:.58rem;font-weight:800;letter-spacing:.1em;text-transform:uppercase;line-height:1.5}
.team-grid h4{margin:2.6rem 0 1rem;font-size:1.55rem;line-height:1.25}
.team-grid article>p:not(.person-tag):not(.role){margin:0;color:var(--muted);font-size:.91rem;line-height:1.75}
.team-grid a{display:inline-block;margin-top:auto;padding-top:2rem;text-decoration:none;text-transform:uppercase;font-size:.62rem;font-weight:800;letter-spacing:.12em}
.team-grid a span{color:var(--teal-dark)}

.references{padding:clamp(6rem,9vw,10rem) 0;background:#dfe9e5}
.references h2{max-width:920px}
.quotes{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));margin-top:5rem;gap:1.2rem}
.quotes figure{margin:0;padding:clamp(2.2rem,5vw,5rem);background:var(--paper)}
.quotes figure:nth-child(even){background:#fff}
.quotes blockquote{margin:0;font:400 clamp(1.2rem,1.55vw,1.75rem)/1.4 var(--serif)}
.quotes figcaption{margin-top:3rem;padding-top:1.3rem;border-top:1px solid var(--line);display:grid;gap:.35rem}
.quotes figcaption strong{font-size:.62rem;letter-spacing:.1em;text-transform:uppercase}
.quotes figcaption span{color:var(--teal-dark);font-size:.65rem}

.contact{padding:clamp(6rem,9vw,10rem) 0;background:var(--ink2);color:#fff}
.contact-grid{display:grid;grid-template-columns:1fr .7fr;gap:8rem}
.contact-grid>div:last-child>p{margin:0;color:#abb2af;line-height:1.8}
.teal{margin-top:2rem;background:var(--teal);color:var(--ink)}
.phone{display:grid;gap:.25rem;margin-top:2rem;text-decoration:none;font:400 1.6rem var(--serif)}
.phone small{color:#8b9490;font:700 .54rem var(--sans);letter-spacing:.14em;text-transform:uppercase}
footer{padding:2rem clamp(1.4rem,5vw,5rem);background:#0a0e0d;color:#7d8581;display:flex;justify-content:space-between;align-items:center;gap:2rem;font-size:.56rem}
.footer-brand{display:flex;align-items:center;gap:.8rem}
.footer-brand .brand-mark{opacity:.85}
.footer-brand .footer-name{display:flex;flex-direction:column}
.footer-brand strong{color:#fff;letter-spacing:.22em}
.footer-brand small{margin-top:.32rem;font-size:.46rem;letter-spacing:.16em;text-transform:uppercase;color:#7d8581}
.footer-brand+div{display:flex;gap:1.4rem;flex-wrap:wrap}
footer a{text-decoration:none}
footer a:hover,footer a:focus-visible{color:#fff}

@media(min-width:1101px) and (max-width:1400px){.hero{grid-template-columns:52% 48%;height:calc(100vh - 78px);min-height:642px;max-height:760px}
.hero-copy{padding:3rem 4.8rem}
.hero h1{font-size:clamp(3rem,4.3vw,4.2rem);margin:1.35rem 0 1.1rem}
.lead{font-size:.95rem}
.actions{margin-top:1.5rem}
.proof{margin-top:1.8rem}
.hero-visual{min-height:0}
}

@media(max-width:1100px){.shell{width:min(calc(100% - 4rem),var(--max))}
.hero{grid-template-columns:1fr}
.hero-copy{min-height:690px}
.hero-visual{min-height:700px}
.client-grid{grid-template-columns:repeat(4,1fr)}
.challenge-grid{gap:5rem}
.section-head{gap:4rem}
}
@media(min-width:761px) and (max-width:1100px){.hero{height:calc(100vh - 78px);min-height:720px;max-height:920px;grid-template-columns:minmax(0,1fr) minmax(0,1fr)}.hero-copy{min-height:0;padding:3rem clamp(2.5rem,4vw,3.5rem)}.hero h1{font-size:clamp(3rem,5.7vw,4.15rem);margin:1.2rem 0 1rem}.lead{font-size:.9rem;line-height:1.65}.actions{gap:1.3rem;margin-top:1.3rem}.proof{gap:2.5rem;margin-top:1.5rem}.hero-visual{min-height:0}}
@media(max-width:760px){html{scroll-padding-top:68px}
.shell{width:min(calc(100% - 2.5rem),var(--max))}
.header{height:68px}
.brand-mark{width:43px;height:30px}
.menu{display:block;width:42px;height:42px;padding:10px}
.menu span{display:block;height:1px;background:var(--ink);margin:6px 0}
.header nav{display:none;position:absolute;top:68px;left:0;right:0;padding:1rem 1.25rem 1.4rem;background:var(--paper);flex-direction:column;align-items:stretch;gap:0}
.header nav.open{display:flex}
.header nav a{padding:1rem 0;border-bottom:1px solid var(--line)}
.header .nav-cta{text-align:center;margin-top:.7rem}
.hero-copy{min-height:720px;padding:4.5rem 1.25rem 3rem}
.hero h1{font-size:clamp(2.75rem,12vw,4rem)}
.actions{align-items:flex-start;flex-direction:column;gap:1.4rem}
.proof{gap:1.4rem 1.9rem}
.proof div{min-width:0}
.team-grid h3{white-space:normal;font-size:clamp(1.6rem,7vw,2.3rem)}
.team-grid h4{font-size:1.3rem}
.hero-visual{min-height:0;padding:1.6rem 1.1rem 0;gap:.9rem}
.thomas-photo img{max-height:min(40vh,350px)}
.ingrid-photo img{max-height:min(36.6vh,320px)}
.hero-visual figcaption strong{font-size:.92rem}
.hero-visual figcaption span{font-size:.42rem;letter-spacing:.09em}
.visual-note{position:static;text-align:center;font-size:1rem;grid-column:1/-1;margin-bottom:.4rem}
.client-grid{grid-template-columns:repeat(2,minmax(0,1fr))}
.client-grid>span{min-height:48px}
.challenge-grid,.section-head,.contact-grid{grid-template-columns:1fr;gap:2.8rem}
.sticky-title{position:static}
.challenge-copy{padding-top:0}
.method article{grid-template-columns:32px minmax(0,1fr)}
.method article p{grid-column:2}
.expertise-list article{grid-template-columns:32px minmax(0,1fr);gap:.9rem}
.expertise-list h3{font-size:clamp(1.3rem,6.2vw,1.9rem);line-height:1.12}
.expertise-list p{font-size:.85rem}
.expertise-list article b{grid-column:2}
.team-grid,.quotes{grid-template-columns:1fr}
.team-grid,.quotes{margin-top:3.5rem}
.contact-grid{gap:2rem}
footer{align-items:flex-start;flex-direction:column}
.footer-brand+div{flex-direction:column;gap:.7rem}
}
.topics{list-style:none;margin:1.25rem 0 0;padding:0;display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:.6rem 1.2rem}
.topics li{position:relative;padding-left:.85rem;color:#bbc2bf;font-size:.72rem;line-height:1.45}
.topics li:before{content:'·';position:absolute;left:0;color:#8bd5d5}
.competencies{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:.75rem 1.3rem;margin-top:2rem;padding-top:1.25rem;border-top:1px solid #d9dfdc}
.competencies span{position:relative;padding-left:.9rem;color:#3f4a46;font-size:.68rem;font-weight:700;line-height:1.4}
.competencies span:before{content:'·';position:absolute;left:0;color:var(--teal-dark)}
@media(min-width:1101px){.hero{height:calc(100vh - 78px);min-height:720px;max-height:920px}.hero-copy{padding-top:3rem;padding-bottom:3rem}.hero h1{font-size:clamp(3.25rem,4.7vw,4.75rem);margin:1.35rem 0 1rem}.actions{margin-top:1.5rem}.proof{margin-top:2rem}}
@media(max-width:760px){.topics,.competencies{grid-template-columns:1fr}}
@media(max-width:365px){.shell{width:min(calc(100% - 1.7rem),var(--max))}
.expertise-list article{grid-template-columns:24px minmax(0,1fr);gap:.7rem}
.expertise-list h3{font-size:1.18rem}
.hero-copy{padding-left:.9rem;padding-right:.9rem}
.proof{gap:1.1rem 1.4rem}}
@media(prefers-reduced-motion:reduce){html{scroll-behavior:auto}
}

/* --- Rechtsseiten --- */
.legal{background:var(--paper);padding:clamp(3.5rem,7vw,6rem) 0 clamp(3rem,6vw,5rem)}
.legal .shell{width:min(calc(100% - 3rem),780px)}
.legal h1{margin:1.4rem 0 2.6rem;font-size:clamp(2.6rem,5vw,3.8rem);line-height:1.02;letter-spacing:-.04em}
.legal h2{margin:2.6rem 0 .7rem;font-size:1.18rem;letter-spacing:-.01em}
.legal p,.legal li{color:#3d423f;font-size:.94rem;line-height:1.8;margin:0 0 .9rem}
.legal .legal-lead{font-size:1.05rem;color:var(--ink);border-left:2px solid var(--teal);padding-left:1.2rem}
.legal ul{margin:0 0 1.1rem;padding-left:1.2rem}
.legal li{margin-bottom:.3rem}
.legal a{color:var(--teal-dark);text-underline-offset:3px}
.legal .legal-back{margin-top:3.2rem;padding-top:1.6rem;border-top:1px solid var(--line);font-weight:700}
.legal .legal-back a{text-decoration:none;text-transform:uppercase;font-size:.65rem;letter-spacing:.12em;color:var(--ink)}
