@import url('https://fonts.googleapis.com/css2?family=Merriweather:wght@300;400&family=DM+Sans:wght@400;500;600;700&display=swap');
:root{--orange:#E8650A;--navy:#2F3B4F;--navy2:#1D2A3A;--ink:#2A2C2E;--slate:#52647A;--grey:#5A6873;--mist:#A8B3C2;--bg:#EEF3F7;--paper:#F8FAFB;--line:#C9D6E3}
*{box-sizing:border-box;margin:0;padding:0}
html{scroll-behavior:smooth}
body{font-family:'DM Sans',sans-serif;color:var(--ink);background:var(--paper);line-height:1.6;-webkit-font-smoothing:antialiased}
a{color:inherit;text-decoration:none}
h1,h2,h3{font-family:'Merriweather',Georgia,serif;font-weight:400;color:var(--navy);line-height:1.2}
.wrap{max-width:1240px;margin:0 auto;padding:0 40px}
.kicker{font-weight:600;font-size:11px;letter-spacing:.24em;text-transform:uppercase;color:var(--orange)}
.acc{color:var(--orange)}
.reveal{opacity:0;transform:translateY(24px);transition:opacity 1s ease,transform 1s ease}.reveal.in{opacity:1;transform:none}
section{padding:140px 0}
.alt{background:var(--bg)}
h2.big{font-size:clamp(38px,5vw,70px);line-height:1.15;max-width:1000px}
p.lead{font-size:18px;color:var(--slate);max-width:760px;margin-top:22px}
.btn{display:inline-flex;align-items:center;gap:10px;background:var(--orange);color:#fff;font-weight:600;font-size:12px;letter-spacing:.16em;text-transform:uppercase;padding:16px 24px;border-radius:4px;transition:.25s;border:0;cursor:pointer;font-family:'DM Sans'}
.btn:hover{transform:translateY(-2px);box-shadow:0 14px 30px rgba(232,101,10,.32)}
.btn.ghost{background:transparent;border:1px solid var(--line);color:var(--navy)}.btn.light{background:#fff;color:var(--navy)}
ul.l{list-style:none}ul.l li{position:relative;padding-left:20px;margin-bottom:10px;font-size:15px}ul.l li::before{content:'';position:absolute;left:0;top:12px;width:9px;height:2px;background:var(--orange)}

/* ---- Preloader ---- */
#pre{position:fixed;inset:0;background:rgba(47,59,79,.9);z-index:100;display:flex;align-items:center;justify-content:center;transition:opacity 2.4s cubic-bezier(.4,0,.6,1),visibility 2.4s}
#pre.done{opacity:0;visibility:hidden}
#pre .stack{display:flex;flex-direction:column;align-items:center;width:min(42vw,420px)}
#pre svg{width:100%;opacity:0;transform:translateY(38vh);animation:up 2.6s .3s cubic-bezier(.4,.1,.2,1) forwards}
#pre .sub{margin-top:20px;width:62%;text-align:center;font-family:'DM Sans',sans-serif;font-weight:600;font-size:clamp(11px,1.15vw,17px);letter-spacing:.46em;text-indent:.46em;text-transform:uppercase;color:#fff;opacity:0;transform:translateX(60vw);animation:inright 2.6s .3s cubic-bezier(.4,.1,.2,1) forwards}
@keyframes inright{to{opacity:1;transform:none}}
#pre .pct{position:absolute;right:40px;bottom:32px;font-size:11px;letter-spacing:.24em;text-transform:uppercase;color:var(--mist)}
#pre .bar{position:absolute;left:0;bottom:0;height:3px;background:var(--orange);width:0;animation:bar 2.8s ease forwards}
@keyframes up{to{opacity:1;transform:none}}@keyframes bar{to{width:100%}}

/* ---- Nav ---- */
.nav{position:fixed;top:0;left:0;right:0;z-index:50;padding:22px 40px;display:flex;align-items:center;justify-content:space-between;transition:.35s}
.nav.solid{background:rgba(248,250,251,.94);backdrop-filter:blur(10px);padding:12px 40px;box-shadow:0 1px 0 var(--line)}
.nav .logo svg{height:32px;width:auto;display:block}.nav .logo .w{fill:#fff}.nav .logo .n{fill:var(--navy);display:none}.nav.solid .logo .w{display:none}.nav.solid .logo .n{display:inline}
.nav .logo small{display:block;font-size:9px;letter-spacing:.3em;text-transform:uppercase;color:#fff;margin-top:4px;font-weight:600}.nav.solid .logo small{color:var(--orange)}
.nav ul{display:flex;gap:2px;list-style:none;background:#fff;border-radius:4px;padding:6px 8px;box-shadow:0 10px 30px rgba(29,42,58,.18)}
.nav ul a{display:block;padding:9px 15px;font-size:11px;letter-spacing:.16em;text-transform:uppercase;color:var(--navy);font-weight:500;border-radius:3px;transition:.2s}
.nav ul a:hover,.nav ul a.on{background:var(--bg);color:var(--orange)}.nav ul a.login{color:var(--orange);font-weight:600}
.nav .menu{width:44px;height:44px;background:var(--orange);border:0;border-radius:4px;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:5px;cursor:pointer}.nav .menu i{display:block;width:18px;height:2px;background:#fff}
@media(max-width:1100px){.nav ul{display:none}}

/* ---- Hero: Video (Home) ---- */
.hero-video{position:relative;min-height:100svh;background:var(--navy2);overflow:hidden;display:flex;flex-direction:column;justify-content:center;align-items:center;text-align:center;color:#fff;padding:120px 40px 100px}
.hero-video video{position:absolute;inset:-12% 0 0 0;width:100%;height:112%;object-fit:cover;opacity:0;transition:opacity 2.6s ease}
.hero-video video.ready{opacity:1}
.hero-video .poster{position:absolute;inset:-12% 0 0 0;background:center/cover no-repeat}
.hero-video .shade{position:absolute;inset:0;background:linear-gradient(180deg,rgba(29,42,58,.55) 0%,rgba(29,42,58,.35) 45%,rgba(29,42,58,.85) 100%)}
.hero-video .shade::after{content:'';position:absolute;inset:0;background:var(--navy);mix-blend-mode:color;opacity:.45}
.hero-video .c{position:relative;z-index:2;max-width:1100px}
.hero-video .kicker{opacity:0;transition:opacity 1.6s ease 2s}.go .kicker{opacity:1}
.hero-video h1{color:#fff;font-size:clamp(40px,6.6vw,96px);line-height:1.15;margin:22px 0 26px;text-shadow:0 6px 40px rgba(0,0,0,.35)}
.hero-video h1 .w{display:inline-block;opacity:0;transform:translateX(26vw);transition:opacity 3.5s cubic-bezier(.2,.6,.2,1),transform 5s cubic-bezier(.2,.6,.2,1)}
.hero-video h1 .w:nth-child(2){transition-delay:.7s}
.go h1 .w{opacity:1;transform:none}
.hero-video .sub{font-family:'Merriweather',serif;font-size:clamp(17px,1.8vw,24px);color:#E6ECF2;opacity:0;transition:opacity 2s ease 2.8s}.go .sub{opacity:1}
.hero-video .tags{margin-top:30px;display:flex;gap:26px;flex-wrap:wrap;justify-content:center;font-size:11px;letter-spacing:.24em;text-transform:uppercase;color:var(--mist);opacity:0;transition:opacity 1.8s ease 3.4s}.go .tags{opacity:1}
.scrollhint{position:absolute;bottom:34px;left:50%;transform:translateX(-50%);font-size:10px;letter-spacing:.3em;text-transform:uppercase;color:var(--mist);z-index:2}
.scrollhint::after{content:'';display:block;width:1px;height:38px;background:var(--orange);margin:10px auto 0;animation:sc 2.2s ease-in-out infinite}
@keyframes sc{0%{transform:scaleY(0);transform-origin:top}50%{transform:scaleY(1);transform-origin:top}51%{transform-origin:bottom}100%{transform:scaleY(0);transform-origin:bottom}}

/* ---- Hero: einfarbig (Unterseiten, roeh.com/about) ---- */
.hero-solid{min-height:100svh;background:var(--navy);color:#fff;display:flex;flex-direction:column;align-items:center;justify-content:center;text-align:center;padding:120px 40px 80px;position:relative}
.hero-solid .kicker{opacity:0;transition:opacity 1.6s ease 1.8s}.go .kicker{opacity:1}
.hero-solid h1{color:#fff;font-size:clamp(30px,4.6vw,66px);line-height:1.3;margin:26px 0 30px;max-width:1100px}
.hero-solid h1 .w{display:inline-block;opacity:0;transform:translateX(22vw);transition:opacity 3s cubic-bezier(.2,.6,.2,1),transform 4.2s cubic-bezier(.2,.6,.2,1)}
.hero-solid h1 .w:nth-child(2){transition-delay:.4s}.hero-solid h1 .w:nth-child(3){transition-delay:.8s}.hero-solid h1 .w:nth-child(4){transition-delay:1.2s}.hero-solid h1 .w:nth-child(5){transition-delay:1.6s}.hero-solid h1 .w:nth-child(6){transition-delay:2s}.hero-solid h1 .w:nth-child(7){transition-delay:2.4s}
.go h1 .w{opacity:1;transform:none}
.hero-solid .tags{display:flex;gap:26px;flex-wrap:wrap;justify-content:center;font-family:'DM Sans',sans-serif;font-weight:300;font-size:clamp(15px,1.3vw,19px);color:#E6ECF3;opacity:0;transition:opacity 2s ease 2.5s}.go .tags{opacity:1}
.hero-solid .tags span::after{content:'·';margin-left:26px;color:var(--orange)}.hero-solid .tags span:last-child::after{content:''}

/* ---- Intro + KPI (roeh „Credibility“) ---- */
.intro p{font-family:'Merriweather',serif;font-size:clamp(20px,2vw,28px);line-height:1.6;color:var(--navy);max-width:1000px}
.kpis{display:grid;grid-template-columns:repeat(3,1fr);gap:40px;margin-top:90px}
.kpi small{display:block;font-size:10px;letter-spacing:.3em;text-transform:uppercase;color:var(--orange);font-weight:600;margin-bottom:14px}
.kpi b{display:block;font-family:'Merriweather',serif;font-weight:300;font-size:clamp(56px,6.5vw,96px);line-height:1;color:var(--navy)}
.kpi span{display:block;margin-top:12px;color:var(--slate);font-size:15px;max-width:280px}
@media(max-width:1000px){.kpis{grid-template-columns:1fr}}

/* ---- Bild-Header mit Balken-Reveal (roeh „Work philosophy“) ---- */
.imghead{position:relative;overflow:hidden;aspect-ratio:16/7;min-height:420px;display:flex;align-items:flex-end;padding:40px;background:var(--navy2)}
.imghead img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;transform:scale(1.15);transition:transform .2s linear;will-change:transform}
.imghead .bars{position:absolute;inset:0;z-index:2;display:flex}.imghead .bars i{flex:1;background:var(--navy2);transform:translateY(0);transition:transform 1.4s cubic-bezier(.76,0,.24,1)}
.imghead.in .bars i{transform:translateY(-101%)}
.imghead .bars i:nth-child(2){transition-delay:.12s}.imghead .bars i:nth-child(3){transition-delay:.24s}.imghead .bars i:nth-child(4){transition-delay:.36s}.imghead .bars i:nth-child(5){transition-delay:.48s}
.imghead::after{content:'';position:absolute;inset:0;background:linear-gradient(180deg,rgba(29,42,58,0) 40%,rgba(29,42,58,.6));z-index:1}
.imghead h2{position:relative;z-index:3;color:#fff;font-size:clamp(40px,7vw,110px);line-height:1;text-transform:uppercase;letter-spacing:.02em}
.imghead h2 .line{display:block;overflow:hidden}.imghead h2 .line span{display:block;transform:translateY(110%);transition:transform 1.3s cubic-bezier(.16,1,.3,1) .5s}.imghead.in h2 .line span{transform:none}
.imghead h2 .line:nth-child(2) span{transition-delay:.65s}
.imghead .kicker{position:absolute;top:34px;left:40px;z-index:3;color:#fff}

/* ---- Kreis-Stepper (pinned, roeh „Work philosophy“ Slides) ---- */
.stepper{position:relative;height:calc(var(--steps, 5) * 90vh + 100vh)}
.stepper .pin{position:sticky;top:0;height:100vh;display:flex;flex-direction:column;align-items:center;justify-content:center}
.stepper .vline{width:1px;height:clamp(60px,12vh,150px);background:var(--orange)}
.stepper .ring{position:relative;width:min(700px,84vw,84vh);aspect-ratio:1;display:flex;align-items:center;justify-content:center}
.stepper .ring svg{position:absolute;inset:-2px;width:calc(100% + 4px);height:calc(100% + 4px)}
.stepper .ring circle.bg{stroke:var(--line);stroke-width:.35;fill:none}
.stepper .ring circle.fg{stroke:var(--orange);stroke-width:.6;fill:none;stroke-linecap:round;stroke-dasharray:312.588;stroke-dashoffset:312.588;transition:stroke-dashoffset 1s ease}
.stepper .slide{position:absolute;inset:0;display:flex;flex-direction:column;align-items:center;justify-content:center;text-align:center;padding:0 60px;opacity:0;visibility:hidden;transition:opacity .6s ease,visibility .6s}
.stepper .slide.on{opacity:1;visibility:visible}
.stepper .slide .num{font-family:'Merriweather',serif;font-weight:300;font-size:clamp(90px,15vw,170px);line-height:1;color:var(--navy);overflow:hidden}
.stepper .slide .num span,.stepper .slide h3 span,.stepper .slide p span{display:block;transform:translateY(100%);opacity:0;transition:transform .9s cubic-bezier(.16,1,.3,1),opacity .9s}
.stepper .slide.on .num span,.stepper .slide.on h3 span,.stepper .slide.on p span{transform:none;opacity:1}
.stepper .slide h3{font-size:clamp(22px,2.6vw,34px);margin:14px 0 16px;overflow:hidden}.stepper .slide h3 span{transition-delay:.1s}
.stepper .slide p{max-width:360px;font-size:15px;color:var(--slate);overflow:hidden}.stepper .slide p span{transition-delay:.2s}
.stepper .dots{position:absolute;right:40px;top:50%;transform:translateY(-50%);display:flex;flex-direction:column;gap:12px}
.stepper .dots i{width:6px;height:6px;border-radius:50%;background:var(--line);transition:.3s}.stepper .dots i.on{background:var(--orange);transform:scale(1.5)}

/* ---- „You have our word“: Bildspalte + Liste (pinned) ---- */
.word{position:relative;height:calc(var(--items, 4) * 55vh + 100vh)}
.word .pin{position:sticky;top:0;height:100vh;display:grid;grid-template-columns:1fr 34%;background:var(--bg)}
.word .txt{padding:90px 60px 40px 40px;display:flex;flex-direction:column;justify-content:center;max-width:820px;margin-left:auto;width:100%}
.word .txt h2{font-size:clamp(30px,3.6vw,50px);margin-bottom:18px}
.word .item{display:grid;grid-template-columns:52px 1fr;gap:14px;padding:11px 0;border-top:1px solid var(--line);opacity:.35;transition:opacity .5s}
.word .item.on{opacity:1}.word .item .n{font-family:'Merriweather',serif;color:var(--orange);font-size:20px}
.word .item h3{font-size:18px;margin-bottom:4px}.word .item p{font-size:14px;line-height:1.5;color:var(--slate);max-height:0;overflow:hidden;transition:max-height .7s ease}.word .item.on p{max-height:120px}
.word .media{position:relative;background:var(--navy);overflow:hidden}
.word .media figure{position:absolute;inset:0;clip-path:polygon(0 100%,20% 100%,20% 100%,40% 100%,40% 100%,60% 100%,60% 100%,80% 100%,80% 100%,100% 100%,100% 100%,0 100%);transition:clip-path 1.2s cubic-bezier(.76,0,.24,1)}
.word .media figure.on{clip-path:polygon(0 0,20% 0,20% 0,40% 0,40% 0,60% 0,60% 0,80% 0,80% 0,100% 0,100% 100%,0 100%)}
.word .media img{width:100%;height:100%;object-fit:cover;display:block}
@media(max-width:1000px){.word .pin{grid-template-columns:1fr}.word .media{display:none}}

/* ---- Services Reihen ---- */
.svc{border-top:1px solid var(--line);margin-top:70px}
.svc .row{display:grid;grid-template-columns:200px 1fr 1fr;gap:50px;padding:64px 0;border-bottom:1px solid var(--line);align-items:start}
.svc .num{font-family:'Merriweather',serif;font-weight:300;font-size:clamp(80px,10vw,150px);line-height:.9;color:var(--orange)}
.svc h3{font-size:34px;margin-bottom:10px}.svc .claim{font-family:'Merriweather',serif;font-size:19px;color:var(--slate);margin-bottom:14px}
.svc .for{font-size:11px;letter-spacing:.14em;text-transform:uppercase;color:var(--grey);margin-top:16px}
@media(max-width:1000px){.svc .row{grid-template-columns:1fr}}
/* Services Teaser-Kacheln mit Bild */
.tiles{display:grid;grid-template-columns:repeat(3,1fr);gap:24px;margin-top:60px}
.tile{position:relative;aspect-ratio:4/5;border-radius:8px;overflow:hidden;background:var(--navy);color:#fff;display:flex;flex-direction:column;justify-content:flex-end;padding:28px}
.tile img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;transition:transform 1.2s ease;filter:saturate(.7)}.tile:hover img{transform:scale(1.06)}
.tile::after{content:'';position:absolute;inset:0;background:linear-gradient(180deg,rgba(29,42,58,.15),rgba(29,42,58,.9))}
.tile>*{position:relative;z-index:2}.tile .n{font-family:'Merriweather',serif;color:var(--orange);font-size:16px}.tile h3{color:#fff;font-size:26px;margin:8px 0 6px}.tile p{font-size:14px;color:#D6DEE8}
@media(max-width:900px){.tiles{grid-template-columns:1fr}}

/* ---- Tabs Zielgruppen ---- */
.tabs{display:flex;flex-wrap:wrap;gap:8px;margin-top:44px}
.tabs button{border:1px solid var(--line);background:#fff;padding:12px 18px;border-radius:4px;font:600 11px 'DM Sans';letter-spacing:.14em;text-transform:uppercase;color:var(--navy);cursor:pointer;transition:.2s}
.tabs button.on,.tabs button:hover{background:var(--navy);border-color:var(--navy);color:#fff}
.panel{display:none;margin-top:40px;background:#fff;border:1px solid var(--line);border-radius:8px;overflow:hidden}.panel.on{display:grid;grid-template-columns:1fr 1.3fr 1fr}
.panel>div{padding:36px 34px;border-right:1px solid var(--line)}.panel>div:last-child{border-right:0;background:var(--navy);color:#fff}
.panel h3{font-size:24px;margin-bottom:18px}.panel .kicker{margin-bottom:16px}.panel>div:last-child h3{color:#fff}.panel p{font-size:15px;color:var(--slate)}.panel>div:last-child li{color:#fff}
@media(max-width:1000px){.panel.on{grid-template-columns:1fr}.panel>div{border-right:0;border-bottom:1px solid var(--line)}}

/* ---- DREAM ---- */
.dream{background:var(--navy);color:#fff}.dream h2,.dream h3{color:#fff}.dream p.lead{color:#D6DEE8}
.dream .stats{display:grid;grid-template-columns:repeat(3,1fr);gap:30px;margin:64px 0}
.dream .stats div{border-top:2px solid var(--orange);padding-top:18px}.dream .stats b{display:block;font-family:'Merriweather',serif;font-weight:300;font-size:40px;line-height:1.1}.dream .stats span{color:#D6DEE8;font-size:14px}
.dream .bau{display:grid;grid-template-columns:repeat(4,1fr);gap:1px;background:rgba(255,255,255,.14);border:1px solid rgba(255,255,255,.14);border-radius:8px;overflow:hidden}
.dream .bau div{background:var(--navy);padding:28px 26px}.dream .bau .n{font-family:'Merriweather',serif;color:var(--orange);font-size:22px}.dream .bau h3{font-size:20px;margin:10px 0 8px}.dream .bau p{font-size:14px;color:#D6DEE8}
@media(max-width:1000px){.dream .bau,.dream .stats{grid-template-columns:1fr}}
.cmp{width:100%;border-collapse:collapse;margin-top:50px;background:#fff;border:1px solid var(--line);border-radius:8px;overflow:hidden}
.cmp th,.cmp td{text-align:left;vertical-align:top;padding:22px 24px;border-bottom:1px solid var(--line);font-size:15px}
.cmp th{font-family:'Merriweather',serif;font-weight:400;font-size:20px;color:var(--navy)}.cmp td.l{font-size:11px;letter-spacing:.16em;text-transform:uppercase;color:var(--grey);font-weight:600;width:150px;padding-top:26px}
.cmp .hi{background:var(--navy);color:#fff}.cmp th.hi{color:#fff}
.grid6{display:grid;grid-template-columns:repeat(3,1fr);gap:24px;margin-top:60px}
.card{background:#fff;border:1px solid var(--line);border-radius:8px;padding:30px}.card .n{font-family:'Merriweather',serif;color:var(--orange);font-size:20px}.card h3{font-size:21px;margin:10px 0 8px}.card p{font-size:14.5px;color:var(--slate)}
@media(max-width:900px){.grid6{grid-template-columns:1fr}}
.gallery{display:grid;grid-template-columns:repeat(4,1fr);gap:14px;margin-top:40px}.gallery img{width:100%;aspect-ratio:3/4;object-fit:cover;border-radius:6px;display:block}
@media(max-width:900px){.gallery{grid-template-columns:repeat(2,1fr)}}

/* ---- Modelle / Referenzen ---- */
.list>div{display:grid;grid-template-columns:70px 1fr;gap:20px;padding:30px 0;border-bottom:1px solid var(--line)}
.list .n{font-family:'Merriweather',serif;color:var(--orange);font-size:22px}.list h3{font-size:22px;margin-bottom:6px}.list em{display:block;font-family:'Merriweather',serif;font-style:normal;color:var(--slate);font-size:16px;margin-bottom:8px}.list p{font-size:14.5px;color:var(--grey)}
.two{display:grid;grid-template-columns:1fr 1.4fr;gap:70px;align-items:start}@media(max-width:1000px){.two{grid-template-columns:1fr}}
.pills{display:flex;flex-wrap:wrap;gap:10px;margin-top:40px}.pills span{border:1px solid var(--line);padding:10px 16px;border-radius:3px;font-size:12px;letter-spacing:.1em;text-transform:uppercase;color:var(--slate);background:#fff}
.refs{display:grid;grid-template-columns:1fr 1fr;gap:30px;margin-top:60px}
.ref{background:#fff;border:1px solid var(--line);border-radius:8px;overflow:hidden}.ref img{width:100%;aspect-ratio:16/9;object-fit:cover;display:block}.ref .b{padding:30px}
.ref .n{font-family:'Merriweather',serif;color:var(--orange);font-size:14px;letter-spacing:.1em}.ref h3{font-size:24px;margin:8px 0 8px}.ref em{display:block;font-family:'Merriweather',serif;font-style:normal;color:var(--slate);margin-bottom:14px}
.ref .num{font-family:'Merriweather',serif;font-weight:300;font-size:44px;color:var(--navy);margin:14px 0 2px}.ref small{color:var(--grey)}
@media(max-width:900px){.refs{grid-template-columns:1fr}}

/* ---- Gruppe ---- */
.group{display:grid;grid-template-columns:repeat(5,1fr);gap:1px;background:var(--line);border:1px solid var(--line);border-radius:8px;overflow:hidden;margin-top:60px}
.group a{background:#fff;padding:30px 24px;min-height:220px;display:flex;flex-direction:column;transition:.3s}.group a:hover{background:var(--navy);color:#fff}.group a:hover h3,.group a:hover .go{color:#fff}
.group .n{font-family:'Merriweather',serif;color:var(--orange);font-size:14px;letter-spacing:.1em}.group h3{font-size:22px;margin:12px 0 8px}.group h3 small{display:block;font-family:'DM Sans';font-size:10px;letter-spacing:.24em;text-transform:uppercase;color:var(--grey);margin-bottom:6px}
.group p{font-size:13.5px;color:var(--slate)}.group a:hover p{color:#E6ECF2}.group .go{margin-top:auto;padding-top:16px;font-size:10.5px;letter-spacing:.14em;white-space:nowrap;text-transform:uppercase;color:var(--orange);font-weight:600}
.group a.cur{background:var(--navy);color:#fff}.group a.cur h3,.group a.cur .go{color:#fff}.group a.cur p{color:#E6ECF2}
@media(max-width:1100px){.group{grid-template-columns:repeat(2,1fr)}}@media(max-width:640px){.group{grid-template-columns:1fr}}

/* ---- Team ---- */
.team{display:grid;grid-template-columns:repeat(3,1fr);gap:30px;margin-top:60px}
.person{background:#fff;border:1px solid var(--line);border-radius:8px;overflow:hidden}
.person .ph{aspect-ratio:4/4.6;background:var(--navy);position:relative;overflow:hidden}.person .ph img{width:100%;height:100%;object-fit:cover;filter:grayscale(1) contrast(1.05);opacity:.85}
.person .ph .ini{position:absolute;inset:0;display:flex;align-items:center;justify-content:center;font-family:'Merriweather',serif;font-size:56px;color:rgba(255,255,255,.9);text-shadow:0 4px 30px rgba(0,0,0,.5)}
.person .b{padding:26px}.person h3{font-size:22px}.person .role{font-size:10.5px;letter-spacing:.16em;text-transform:uppercase;color:var(--orange);font-weight:600;margin:6px 0 14px}.person p{font-size:14px;color:var(--slate);margin-bottom:10px}.person em{font-family:'Merriweather',serif;font-style:normal;color:var(--navy)}
.org{display:grid;grid-template-columns:repeat(3,1fr);gap:24px;margin-top:60px}.org .card h3{font-size:20px}.org .card .who{margin-top:14px;font-size:14px;color:var(--navy);font-weight:600}.org .card .who span{display:block;color:var(--grey);font-weight:400;font-size:13px}
@media(max-width:900px){.team,.org{grid-template-columns:1fr}}

/* ---- Contact multi-step (roeh „Get in touch“) ---- */
.contact{background:var(--navy);color:#fff}.contact h2{color:#fff}.contact p.lead{color:#D6DEE8}
.steps{margin-top:50px;background:rgba(255,255,255,.05);border:1px solid rgba(255,255,255,.14);border-radius:8px;padding:40px}
.steps .head{display:flex;justify-content:space-between;align-items:center;margin-bottom:26px}.steps .cnt{font-family:'Merriweather',serif;font-size:26px}.steps .cnt small{font-size:14px;color:var(--mist)}
.steps .st{display:none}.steps .st.on{display:block}
.chips{display:flex;flex-wrap:wrap;gap:8px;margin:10px 0 10px}.chips label{border:1px solid rgba(255,255,255,.3);padding:10px 14px;border-radius:3px;font-size:11px;letter-spacing:.14em;text-transform:uppercase;cursor:pointer;user-select:none;transition:.2s}
.chips input{display:none}.chips label:has(input:checked){background:var(--orange);border-color:var(--orange)}
.form{display:grid;grid-template-columns:1fr 1fr;gap:16px}.form input,.form textarea{width:100%;background:transparent;border:0;border-bottom:1px solid rgba(255,255,255,.35);color:#fff;padding:14px 0;font:15px 'DM Sans';outline:none}.form textarea{grid-column:1/-1;min-height:110px;resize:vertical}
.form input::placeholder,.form textarea::placeholder{color:var(--mist)}
.steps .nav2{display:flex;justify-content:space-between;margin-top:30px}
.addr{display:grid;grid-template-columns:repeat(3,1fr);gap:20px;margin-top:60px;font-size:13.5px;color:#D6DEE8;line-height:1.6}.addr b{display:block;font-size:10.5px;letter-spacing:.2em;text-transform:uppercase;color:var(--orange);margin-bottom:8px}
@media(max-width:1000px){.form,.addr{grid-template-columns:1fr}}

/* ---- Login ---- */
.login .box{max-width:520px;margin:50px auto 0;background:#fff;border:1px solid var(--line);border-radius:8px;padding:40px}
.login input{width:100%;border:1px solid var(--line);border-radius:4px;padding:14px 16px;font:15px 'DM Sans';margin-bottom:14px}.login .box .btn{width:100%;justify-content:center}

/* ---- CTA-Band ---- */
.cta{background:var(--navy);color:#fff;padding:120px 0}.cta h2{color:#fff;font-size:clamp(34px,4.6vw,64px)}.cta p{color:#D6DEE8;margin:18px 0 34px;max-width:720px;font-size:17px}

/* ---- Footer ---- */
footer{background:var(--navy2);color:var(--mist);padding:70px 0 34px;font-size:13px}
footer .top{display:grid;grid-template-columns:1.4fr 1fr 1fr 1fr;gap:40px;padding-bottom:44px;border-bottom:1px solid rgba(255,255,255,.12)}
footer b{display:block;color:#fff;font-size:10.5px;letter-spacing:.2em;text-transform:uppercase;margin-bottom:14px}footer .top a{display:block;color:#D6DEE8;margin-bottom:8px}footer .top a:hover{color:var(--orange)}
footer .logo svg{height:34px;margin-bottom:16px}footer .rt{font-size:12px;line-height:1.6;max-width:520px}
footer .legal{display:flex;flex-wrap:wrap;gap:24px;justify-content:space-between;padding-top:26px;font-size:12px}footer .legal nav a{margin-left:22px;color:#D6DEE8;letter-spacing:.08em;text-transform:uppercase;font-size:11px}
@media(max-width:900px){footer .top{grid-template-columns:1fr 1fr}}

.hero-solid,.hero-video{overflow:hidden}

/* ===== Services-Seite (nach roeh.com/en/our-services) ===== */
.hero-svc{padding:140px 40px 90px}
.hero-svc h1{font-size:clamp(34px,4.9vw,70px);line-height:1.28;max-width:1066px;margin:0 0 34px}
.hero-svc h1 .line{display:block;overflow:hidden}
.hero-svc h1 .line>span{display:inline-block;transform:translateY(110%);transition:transform 1.6s cubic-bezier(.16,1,.3,1)}
.go.hero-svc h1 .line>span{transform:none}.hero-svc h1 .line:nth-child(2)>span{transition-delay:.25s}.hero-svc h1 .line:nth-child(3)>span{transition-delay:.5s}
.hero-svc h1 .img{display:inline-flex;vertical-align:middle;width:164px;height:91px;overflow:hidden;margin:0 22px 14px 8px;border-radius:2px}
.hero-svc h1 .img img{width:100%;height:100%;object-fit:cover;transform:scale(1.25);transition:transform 3s ease .6s}.go.hero-svc h1 .img img{transform:none}
.hero-svc .rule{display:flex;align-items:center;gap:0;width:100%;max-width:1066px;margin:0 0 30px;opacity:0;transition:opacity 1.2s ease .8s}.go.hero-svc .rule{opacity:1}
.hero-svc .rule i{flex:1;height:1px;background:currentColor;transform:scaleX(0);transition:transform 1.8s cubic-bezier(.16,1,.3,1) .8s}.go.hero-svc .rule i{transform:none}
.hero-svc .rule svg{width:26px;height:26px;flex:none}
.hero-svc p{max-width:560px;font-size:clamp(17px,1.7vw,24px);font-weight:300;line-height:1.5;color:#E6ECF3;opacity:0;transform:translateY(20px);transition:opacity 1.4s ease 1.2s,transform 1.4s ease 1.2s}.go.hero-svc p{opacity:1;transform:none}
.hero-svc .arrow{position:absolute;right:94px;bottom:48px;left:auto;transform:none;width:58px;height:73px;color:#fff}
.hero-svc .arrow svg{width:100%;height:100%}
.hero-svc .arrow .a{animation:arr 2.4s ease-in-out infinite}
@keyframes arr{0%,100%{transform:translateY(0)}50%{transform:translateY(8px)}}

.svclist{display:flex;justify-content:center;padding:0 24px}
.svclist .inner{position:relative;display:flex;gap:6.75rem;max-width:1064px;width:100%;align-items:flex-start}
.svclist .key{width:calc(50% - 3.4rem);position:sticky;top:110px;background:var(--bg);padding:64px 48px 56px}
.svclist .key h2{font-size:clamp(30px,2.8vw,40px);line-height:1.25}
.svclist .key figure{width:96px;margin:52px auto;color:var(--orange)}
.svclist .key figure svg{width:100%;height:auto;display:block}
.svclist .key figure .c{opacity:0;transform:translateY(24px);transition:opacity 1.4s ease,transform 1.6s cubic-bezier(.16,1,.3,1)}
.svclist .key.in figure .c{opacity:1;transform:none}.svclist .key figure .c2{transition-delay:.35s}
.svclist .key h3{font-family:'DM Sans',sans-serif;font-weight:300;font-size:clamp(18px,1.6vw,24px);line-height:1.5;color:var(--orange);margin:0 0 40px}
.svclist .more{display:inline-block;font-size:10px;font-weight:700;letter-spacing:.2em;text-transform:uppercase;color:var(--ink);padding:10px 0;position:relative}
.svclist .more::after,.svclist .art .more::after{content:'';position:absolute;left:0;bottom:6px;width:100%;height:1px;background:currentColor;transform:scaleX(.35);transform-origin:left;transition:transform .5s}
.svclist .more:hover::after{transform:scaleX(1)}
.svclist .list{width:calc(50% - 3.4rem);padding-top:80px}
.svclist .art{position:relative;padding:24px 20px 56px;border-bottom:2px solid var(--bg);transition:background .5s;opacity:0;transform:translateY(24px)}
.svclist .art.in{opacity:1;transform:none;transition:opacity 1s ease,transform 1s cubic-bezier(.16,1,.3,1),background .5s}
.svclist .art:last-child{border-bottom:0}
.svclist .art:hover{background:var(--bg)}
.svclist .art h2{font-size:24px;line-height:1.3;margin:0 0 22px;transition:color .4s}.svclist .art:hover h2{color:var(--orange)}
.svclist .art p{font-size:16px;font-weight:300;line-height:1.5;color:#6b7684;margin:0}
.svclist .art .more{position:absolute;left:20px;bottom:20px}
.svclist .art>a.cover{position:absolute;inset:0;z-index:2}
@media(max-width:1000px){.svclist .inner{flex-direction:column;gap:0}.svclist .key,.svclist .list{width:100%;position:static}}

.values{padding:0 80px}
.values .big{max-width:800px;margin:0 auto;text-align:center;color:var(--orange);font-size:clamp(38px,4.9vw,70px);line-height:1.28;padding:150px 0 120px}
.values .big .line{display:block;overflow:hidden}.values .big .line>span{display:block;transform:translateY(110%);transition:transform 1.4s cubic-bezier(.16,1,.3,1)}
.values .big.in .line>span{transform:none}
.values .big .line:nth-child(2)>span{transition-delay:.12s}.values .big .line:nth-child(3)>span{transition-delay:.24s}.values .big .line:nth-child(4)>span{transition-delay:.36s}
.vrow{display:flex;gap:10rem;align-items:flex-end;margin-bottom:150px}
.vrow.rev{flex-direction:row}
.vrow>div{width:50%}
.vrow figure{position:relative;aspect-ratio:11/13;overflow:hidden;background:var(--navy2);margin:0}
.vrow figure img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;transform:scale(1.5);transition:transform .15s linear}
.vrow figure .bars{position:absolute;inset:0;z-index:2;display:flex}.vrow figure .bars i{flex:1;background:var(--orange);transition:transform 1.3s cubic-bezier(.76,0,.24,1)}
.vrow figure.in .bars i{transform:translateY(-101%)}
.vrow figure .bars i:nth-child(2){transition-delay:.1s}.vrow figure .bars i:nth-child(3){transition-delay:.2s}.vrow figure .bars i:nth-child(4){transition-delay:.3s}.vrow figure .bars i:nth-child(5){transition-delay:.4s}
.vrow .txt{padding-bottom:0}
.vrow .txt .lbl{font-size:10px;font-weight:700;letter-spacing:.2em;text-transform:uppercase;color:var(--orange);margin-bottom:32px}
.vrow .txt p{font-size:clamp(26px,3.1vw,45px);font-weight:300;line-height:1.3;color:var(--ink);margin:0}
.vrow .txt p span{color:var(--mist);transition:color .5s ease}.vrow .txt p span.on{color:var(--ink)}
.values .biglink{display:block;max-width:800px;margin:0 auto;text-align:center;color:var(--orange);font-family:'Merriweather',serif;font-size:clamp(38px,4.9vw,70px);line-height:1.28;padding:40px 0 170px;text-transform:uppercase}
.values .biglink .img{display:inline-flex;vertical-align:middle;width:164px;height:91px;overflow:hidden;margin:0 22px 14px 8px;border-radius:2px}
.values .biglink .img img{width:100%;height:100%;object-fit:cover;transition:transform 1.2s}.values .biglink:hover .img img{transform:scale(1.15)}
.values .biglink .line{display:block;overflow:hidden}.values .biglink .line>span{display:block;transform:translateY(110%);transition:transform 1.4s cubic-bezier(.16,1,.3,1)}
.values .biglink.in .line>span{transform:none}.values .biglink .line:nth-child(2)>span{transition-delay:.15s}
@media(max-width:1000px){.values{padding:0 24px}.vrow,.vrow.rev{flex-direction:column;gap:40px;margin-bottom:90px}.vrow>div{width:100%}}

.vrow figure .cap{position:absolute;inset:0;z-index:3;display:flex;align-items:center;justify-content:center;padding:16px;color:#fff;font-family:'Merriweather',serif;font-weight:400;font-size:clamp(36px,4.9vw,70px);line-height:1.28;text-align:center;text-shadow:0 2px 24px rgba(0,0,0,.25)}
.vrow figure .cap .line{display:block;overflow:hidden}.vrow figure .cap .line>span{display:block;transform:translateY(110%);transition:transform 1.4s cubic-bezier(.16,1,.3,1) .5s}
.vrow figure.in .cap .line>span{transform:none}

/* ===== Our Team (nach roeh.com/en/our-team) ===== */
.teamintro{max-width:1064px;margin:0 auto;padding:150px 40px 110px}
.teamintro p{font-size:clamp(26px,3.1vw,45px);font-weight:300;line-height:1.3;color:var(--ink);margin:0}
.teamintro p span{color:var(--mist);transition:color .5s}.teamintro p span.on{color:var(--ink)}
.tgroup{max-width:1440px;margin:0 auto;padding:0 80px 110px}
.tgroup h2{font-size:clamp(30px,2.6vw,36px);color:var(--orange);text-align:center;margin:0 0 56px}
.tslider{overflow:hidden;width:100%}
.tslider .track{display:flex;transition:transform .8s cubic-bezier(.16,1,.3,1);margin:0 -.6rem}
.tcard{position:relative;display:flex;flex-direction:column;width:320px;flex:none;padding:0 .6rem;opacity:0;transform:translateY(30px);transition:opacity 1s ease,transform 1s cubic-bezier(.16,1,.3,1)}
.tcard.in{opacity:1;transform:none}
.tcard figure{position:relative;width:100%;aspect-ratio:305/378;overflow:hidden;margin:0 0 1rem;background:var(--bg)}
.tcard figure img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;transition:transform .6s ease}
.tcard:hover figure img{transform:scale(1.08)}
.tcard figure .arr{position:absolute;top:.7rem;right:.7rem;z-index:2;width:10px;height:10px;color:#fff;transition:transform .5s}
.tcard:hover figure .arr{transform:translate(25%,-25%) scale(1.1)}
.tcard figure .ini{position:absolute;inset:0;display:flex;align-items:center;justify-content:center;font-family:'Merriweather',serif;font-size:64px;color:var(--mist);background:var(--navy)}
.tcard .name{display:block;font-family:'Merriweather',serif;font-size:24px;line-height:1.3;color:var(--ink);margin-bottom:.3rem}
.tcard .role{display:block;font-size:10px;font-weight:700;letter-spacing:.14em;text-transform:uppercase;color:var(--orange)}
.tcard p{max-width:250px;margin:1.6rem 0 0;font-size:14px;font-weight:300;line-height:1.5;color:var(--ink)}
.tcard p em{display:block;margin-top:10px;font-style:normal;color:var(--slate)}
.tcard a.cover{position:absolute;inset:0;z-index:3}
.tnav{display:flex;justify-content:flex-end;align-items:center;gap:4rem;margin-top:2.5rem}
.tnav .cnt{font-size:10px;font-weight:700;letter-spacing:.1em}.tnav .cnt span{opacity:.4}
.tnav .btns{display:flex;gap:8px}
.tnav button{width:40px;height:40px;border:0;background:var(--bg);color:var(--navy);cursor:pointer;position:relative;overflow:hidden;display:flex;align-items:center;justify-content:center;font-family:'DM Sans'}
.tnav button::before{content:'';position:absolute;inset:0;background:var(--navy);transform:translateY(-100%);transition:transform .5s}
.tnav button:hover::before{transform:none}.tnav button:hover{color:#fff}
.tnav button svg{position:relative;width:6px;height:12px}
.tnav button[disabled]{opacity:.35;cursor:default}.tnav button[disabled]::before{display:none}.tnav button[disabled]:hover{color:var(--navy)}
@media(max-width:1000px){.tgroup{padding:0 24px 80px}.teamintro{padding:110px 24px 70px}}

/* ===== Contact (nach roeh.com/en/contact) ===== */
.hero-contact{padding:0;justify-content:flex-start;background:var(--navy)}
.hero-contact .earth{position:absolute;inset:0;opacity:0;transition:opacity 5s cubic-bezier(.4,0,.6,1) 1s}.go.hero-contact .earth{opacity:1}
.hero-contact .earth img{width:100%;height:100%;object-fit:cover;object-position:center 60%;display:block;transform:scale(1.1) translateY(4%);transition:transform 7s ease-out 1s}.go.hero-contact .earth img{transform:none}
.hero-contact .ctext{position:relative;z-index:2;padding:24vh 40px 0}
.hero-contact .sub{max-width:560px;margin:0 auto 26px;font-size:clamp(16px,1.5vw,21px);font-weight:300;line-height:1.55;color:#E6ECF3;opacity:0;transform:translateY(16px);transition:opacity 1.6s ease 1.6s,transform 1.6s ease 1.6s}.go.hero-contact .sub{opacity:1;transform:none}
.hero-contact h1{margin-bottom:22px}
.hero-contact .sub2{color:var(--orange);font-weight:400;margin-top:-6px;transition-delay:2.4s,2.4s}
.hero-contact .globe{width:min(46vh,420px);aspect-ratio:1;border-radius:50%;margin:0 auto 46px;position:relative;overflow:hidden;opacity:0;transform:scale(.9);transition:opacity 2.4s ease .3s,transform 3s cubic-bezier(.16,1,.3,1) .3s}
.go.hero-contact .globe{opacity:1;transform:none}
.hero-contact .globe img{width:100%;height:100%;object-fit:cover;display:block}
.hero-contact .globe.ph{background:radial-gradient(circle at 35% 30%,#4a5a72,#1D2A3A 70%);box-shadow:inset -30px -30px 80px rgba(0,0,0,.5),0 0 80px rgba(232,101,10,.15)}
.hero-contact .globe.ph::before{content:'';position:absolute;inset:0;background:repeating-linear-gradient(0deg,transparent 0 38px,rgba(255,255,255,.07) 38px 39px),repeating-linear-gradient(90deg,transparent 0 38px,rgba(255,255,255,.07) 38px 39px);border-radius:50%}
.hero-contact h1{font-size:clamp(30px,4.2vw,60px)}
.locs{max-width:1064px;margin:0 auto;padding:130px 20px 70px;display:flex;gap:1.625rem;align-items:flex-start}
.locs h2{width:50%;font-size:clamp(24px,2.3vw,30px);line-height:1.3;margin:0}
.locs p{width:50%;font-size:18px;font-weight:300;line-height:1.55;color:#6b7684;margin:0}
.widget{position:relative;height:100svh;min-height:640px;background:var(--navy)}
.widget figure{position:absolute;inset:0;margin:0;opacity:0;transition:opacity 3s ease}
.widget figure img{transform:scale(1);transition:transform 14s linear}.widget figure.on img{transform:scale(1.06)}
.widget figure.on{opacity:1}
.widget figure img{width:100%;height:100%;object-fit:cover;display:block;filter:saturate(.85)}
.widget figure::after{content:'';position:absolute;inset:0;background:linear-gradient(90deg,rgba(29,42,58,.25),rgba(29,42,58,.05))}
.wpanel{position:absolute;top:40px;bottom:40px;right:80px;width:522px;max-width:calc(100% - 48px);background:var(--paper);padding:20px 20px 20px;display:flex;flex-direction:column;z-index:3;opacity:0;transform:translateX(40px);transition:opacity 1.2s ease .3s,transform 1.4s cubic-bezier(.16,1,.3,1) .3s}
.widget.in .wpanel{opacity:1;transform:none}
.wpanel .tabs2{display:flex;background:var(--bg);margin-bottom:14px}
.wpanel .tabs2 button{flex:1;padding:16px 8px;border:0;background:transparent;font:700 10px 'DM Sans';letter-spacing:.14em;text-transform:uppercase;color:#6b7684;cursor:pointer;transition:.3s}
.wpanel .tabs2 button.on{background:var(--orange);color:#fff}
.wpanel .list2{display:none;flex-direction:column;list-style:none;margin:0;padding:0}.wpanel .list2.on{display:flex}
.wpanel .item{padding:16px 24px;border-bottom:1px solid var(--bg);cursor:pointer;transition:background .4s}
.wpanel .item.open{background:var(--bg)}
.wpanel .item header{display:flex;justify-content:space-between;align-items:center;gap:16px}
.wpanel .item h3{font:700 10px 'DM Sans';letter-spacing:.14em;text-transform:uppercase;margin:0;color:var(--ink)}
.wpanel .item h4{font-family:'Merriweather',serif;font-weight:400;font-size:16px;color:var(--orange);margin:0;text-align:right}
.wpanel .item .body{max-height:0;overflow:hidden;transition:max-height .6s cubic-bezier(.16,1,.3,1)}
.wpanel .item.open .body{max-height:260px}
.wpanel .item .inner{display:flex;justify-content:space-between;align-items:flex-end;gap:20px;padding-top:32px}
.wpanel .item .inner p{font-size:13px;line-height:1.5;margin:0 0 4px;color:var(--ink);font-weight:300}
.wpanel .item .inner ul{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:22px;text-align:right;flex:none}
.wpanel .item .inner a{font:700 10px 'DM Sans';letter-spacing:.14em;text-transform:uppercase;color:var(--ink);white-space:nowrap;position:relative}
.wpanel .item .inner a::after{content:'';position:absolute;left:0;bottom:-4px;width:100%;height:1px;background:var(--orange);transform:scaleX(0);transform-origin:left;transition:transform .4s}
.wpanel .item .inner a:hover::after{transform:none}
@media(max-width:1000px){.locs{flex-direction:column;padding-top:90px}.locs h2,.locs p{width:100%}.widget{height:auto;min-height:0;padding:24px}.wpanel{position:relative;inset:auto;width:100%;transform:none;opacity:1}.widget figure{position:absolute}}

/* ===== Leistungs-Unterseite (nach roeh.com/en/our-services/<leistung>) ===== */
.hero-leist{padding:0;justify-content:flex-end;align-items:flex-start;text-align:left}
.hero-leist .bgimg{position:absolute;inset:0}.hero-leist .bgimg img{width:100%;height:100%;object-fit:cover;display:block;transform:scale(1.08);transition:transform 9s ease-out}.go.hero-leist .bgimg img{transform:none}
.hero-leist .bgimg::after{content:'';position:absolute;inset:0;background:linear-gradient(180deg,rgba(29,42,58,.35),rgba(29,42,58,.75) 75%)}
.hero-leist .ltext{position:relative;z-index:2;max-width:1064px;width:100%;margin:0 auto;padding:0 20px 120px}
.hero-leist .crumb{font-size:10px;font-weight:700;letter-spacing:.2em;text-transform:uppercase;color:#fff;opacity:0;transition:opacity 1.2s ease .8s;margin-bottom:22px}.go.hero-leist .crumb{opacity:1}
.hero-leist .crumb a{color:var(--orange)}.hero-leist .crumb span{margin:0 10px;opacity:.6}
.hero-leist h1{font-size:clamp(32px,4.4vw,62px);line-height:1.18;max-width:1000px;margin:0 0 28px;text-align:left}
.hero-leist h1 .line{display:block;overflow:hidden;white-space:nowrap;padding-bottom:.08em;margin-bottom:-.08em}.hero-leist h1 .line>span{display:inline-block;transform:translateY(110%);transition:transform 1.6s cubic-bezier(.16,1,.3,1)}.go.hero-leist h1 .line>span{transform:none}.hero-leist h1 .line:nth-child(2)>span{transition-delay:.25s}
.hero-leist .lead{max-width:640px;font-size:clamp(16px,1.5vw,21px);font-weight:300;line-height:1.55;padding-bottom:6px;color:#E6ECF3;opacity:0;transform:translateY(16px);transition:opacity 1.4s ease 1s,transform 1.4s ease 1s}.go.hero-leist .lead{opacity:1;transform:none}
.lhead{max-width:1064px;margin:0 auto;padding:150px 20px 90px}
.lhead h2{color:var(--orange);font-size:clamp(38px,4.9vw,70px);line-height:1.2;margin:0 0 40px}
.lhead h2 .line{display:block;overflow:hidden}.lhead h2 .line>span{display:block;transform:translateY(110%);transition:transform 1.4s cubic-bezier(.16,1,.3,1)}.lhead h2.in .line>span{transform:none}
.lhead p{font-size:clamp(26px,3.1vw,45px);font-weight:300;line-height:1.3;margin:0;color:var(--ink)}
.lhead p span{color:var(--mist);transition:color .5s}.lhead p span.on{color:var(--ink)}
.lcols{max-width:1064px;margin:0 auto;padding:0 20px 150px;display:flex;gap:20px}
.lcol{flex:1;min-width:0;background:var(--bg);padding:40px 30px;opacity:0;transform:translateY(30px);transition:opacity 1s ease,transform 1s cubic-bezier(.16,1,.3,1)}
.lcol.in{opacity:1;transform:none}
.lcol svg{width:67px;height:67px;color:var(--orange);margin-bottom:54px;display:block}
.lcol h3{font-family:'Merriweather',serif;font-weight:300;font-size:22px;line-height:1.3;color:var(--navy);margin:0 0 auto;padding-bottom:60px}
.lcol{display:flex;flex-direction:column}.lcol .h{min-height:calc(2 * 1.3 * 22px);display:flex;align-items:flex-start;margin-bottom:60px}.lcol .h h3{padding:0;margin:0}
.lcol p{font-size:15px;font-weight:300;line-height:1.5;color:#6b7684;margin:0}
.lsol{padding:0 0 150px}
.lsol>h2{color:var(--orange);font-size:clamp(38px,4.9vw,70px);line-height:1.2;text-align:center;margin:0 0 88px}
.lsol>h2 .line{display:block;overflow:hidden}.lsol>h2 .line>span{display:block;transform:translateY(110%);transition:transform 1.4s cubic-bezier(.16,1,.3,1)}.lsol>h2.in .line>span{transform:none}
.lsol .rows{background:var(--bg)}
.lsol .row2{padding:120px 20px;transition:background .6s ease}
.lsol .row2:hover{background:var(--orange)}
.lsol .row2 .in2{max-width:1064px;margin:0 auto;display:flex;gap:32px}
.lsol .row2 h2{flex:1;font-size:clamp(28px,2.8vw,40px);line-height:1.25;margin:0;padding-right:32px;transition:color .5s}
.lsol .row2 .r{flex:1;display:flex;flex-direction:column;align-items:flex-start;gap:36px}
.lsol .row2 p{font-size:clamp(17px,1.7vw,24px);font-weight:300;line-height:1.45;color:#6b7684;margin:0;transition:color .5s}
.lsol .row2:hover h2,.lsol .row2:hover p{color:#fff}
.lsol .row2 .btn2{position:relative;display:inline-block;overflow:hidden;background:var(--navy2);color:#fff;font:700 10px 'DM Sans';letter-spacing:.2em;text-transform:uppercase;padding:24px 26px;transition:color .5s}
.lsol .row2 .btn2::before{content:'';position:absolute;inset:0;background:#fff;transform:translateY(-100%);transition:transform .5s}
.lsol .row2 .btn2:hover::before{transform:none}.lsol .row2 .btn2:hover{color:var(--navy2)}
.lsol .row2 .btn2 span{position:relative}
@media(max-width:1100px){.lcols{flex-wrap:wrap}.lcol{flex:1 1 calc(50% - 10px)}}
@media(max-width:1000px){.lcols{flex-direction:column}.lsol .row2 .in2{flex-direction:column}.lsol .row2{padding:70px 20px}.lhead{padding:100px 20px 60px}}

@media(max-width:900px){.hero-leist h1 .line{white-space:normal}}

/* Standard: dunkler Hintergrund → Schrift → Bild blendet langsam ein */
.hero-fade{background:var(--navy)}
.hero-fade .bgimg{opacity:0;transition:opacity 5s cubic-bezier(.4,0,.6,1) 1s}.go.hero-fade .bgimg{opacity:1}
.hero-fade .bgimg img{transform:scale(1.1);transition:transform 7s ease-out 1s}.go.hero-fade .bgimg img{transform:none}
.hero-svc .bgimg{position:absolute;inset:0}.hero-svc .bgimg img{width:100%;height:100%;object-fit:cover;display:block}
.hero-svc .bgimg::after{content:'';position:absolute;inset:0;background:linear-gradient(180deg,rgba(29,42,58,.16),rgba(29,42,58,.42))}
.hero-svc .bgimg img{filter:brightness(1.08)}
.hero-svc h1,.hero-svc p{text-shadow:0 2px 22px rgba(29,42,58,.55)}
.hero-svc h1,.hero-svc .rule,.hero-svc p{position:relative;z-index:2}.hero-svc .arrow{z-index:2}
.hero-leist.hero-fade .bgimg img{transform:scale(1.1)}
/* Leistungs-/DREAM-Seiten: Navy → Titel → Text → Bild (später, ruhig) */
.hero-leist.hero-fade .bgimg{transition:opacity 5s cubic-bezier(.4,0,.6,1) .3s}
.hero-leist.hero-fade .bgimg img{transition:transform 7s ease-out .3s}

.hero-team .bgimg{position:absolute;inset:0}.hero-team .bgimg img{width:100%;height:100%;object-fit:cover;object-position:center 30%;display:block}
.hero-team .bgimg::after{content:'';position:absolute;inset:0;background:linear-gradient(180deg,rgba(29,42,58,.55),rgba(29,42,58,.75))}
.hero-team .kicker,.hero-team h1,.hero-team .tags,.hero-team .scrollhint{position:relative;z-index:2}
.hero-team.hero-fade .bgimg{transition:opacity 5s cubic-bezier(.4,0,.6,1) .3s}.hero-team.hero-fade .bgimg img{transition:transform 7s ease-out .3s}

.hero-about .bgimg img{object-position:center 45%}
.hero-about .bgimg::after{background:linear-gradient(180deg,rgba(29,42,58,.62),rgba(29,42,58,.78))}
.hero-about .sub,.hero-team .sub{position:relative;z-index:2;max-width:620px;margin:-6px auto 26px;font-size:clamp(16px,1.5vw,21px);font-weight:300;line-height:1.55;color:#E6ECF3;opacity:0;transform:translateY(16px);transition:opacity 1.6s ease 1.6s,transform 1.6s ease 1.6s}.go.hero-about .sub,.go.hero-team .sub{opacity:1;transform:none}

.hero-svc{justify-content:center}.hero-svc p{margin-bottom:0}

/* Seiten mit Preloader: Bild nach der Überblendung zügiger */
body:has(#pre) .hero-leist.hero-fade .bgimg{transition:opacity 3s ease 0s}body:has(#pre) .hero-leist.hero-fade .bgimg img{transition:transform 6s ease-out 0s}

/* zweizeilige Hero-Headline (Zeile für Zeile maskiert) */
.hero-solid h1.h2l{line-height:1.2}
.hero-solid h1.h2l .line{display:block;overflow:hidden;white-space:nowrap;padding-bottom:.08em;margin-bottom:-.08em}
.hero-solid h1.h2l .line>span{display:inline-block;transform:translateY(110%);transition:transform 1.6s cubic-bezier(.16,1,.3,1)}
.go.hero-solid h1.h2l .line>span{transform:none}.hero-solid h1.h2l .line:nth-child(2)>span{transition-delay:.3s}
.hero-team .sub{max-width:720px}
@media(max-width:900px){.hero-solid h1.h2l .line{white-space:normal}}

/* Video schemenhaft hinter dem Preloader */
body:has(#pre) .hero-video video.ready,body:has(#pre) .hero-video .poster{opacity:1}
body:has(#pre) .nav{opacity:0;transition:opacity 1.2s ease}body:has(#pre) .nav.show{opacity:1}

/* ===== Leistungs-Unterseite: Zusatzsektionen (nach roeh.com/<service>/<solution>) ===== */
.lwhy{max-width:1064px;margin:0 auto;padding:0 20px 120px}
.lwhy h2{color:var(--orange);font-size:clamp(34px,4.2vw,58px);line-height:1.2;margin:0 0 56px}
.lwhy h2 .line{display:block;overflow:hidden}.lwhy h2 .line>span{display:block;transform:translateY(110%);transition:transform 1.4s cubic-bezier(.16,1,.3,1)}.lwhy h2.in .line>span{transform:none}
.lwhy .row3{display:flex;gap:32px;padding:56px 0;border-bottom:2px solid var(--bg)}.lwhy .row3:first-of-type{border-top:2px solid var(--bg)}
.lwhy .row3 h3{flex:1;font-size:clamp(22px,2.2vw,28px);line-height:1.3;margin:0;padding-right:32px}
.lwhy .row3 p{flex:1;font-size:clamp(17px,1.6vw,22px);font-weight:300;line-height:1.45;color:#6b7684;margin:0}
.lfuer{background:var(--bg);padding:110px 20px}
.lfuer .in{max-width:1064px;margin:0 auto;display:flex;gap:60px}
.lfuer .col{flex:1}
.lfuer h2{font-size:clamp(24px,2.3vw,30px);margin:0 0 26px;color:var(--navy)}
.lfuer .kick{font-size:10px;font-weight:700;letter-spacing:.2em;text-transform:uppercase;color:var(--orange);margin-bottom:14px}
.lfuer .pills{display:flex;flex-wrap:wrap;gap:10px}.lfuer .pills span{border:1px solid var(--line);background:#fff;padding:12px 18px;border-radius:3px;font-size:13px;color:var(--ink)}
.lother{max-width:1064px;margin:0 auto;padding:110px 20px 130px;border-bottom:2px solid var(--bg)}
.lother .in{display:flex;gap:32px}
.lother h2{flex:1;color:var(--orange);font-size:clamp(26px,2.8vw,40px);line-height:1.25;margin:0;padding-right:32px}
.lother ul{flex:1;list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:44px}
.lother li{position:relative;padding-bottom:40px}
.lother li h3{font-size:clamp(24px,2.6vw,36px);line-height:1.25;margin:0;transition:color .4s}
.lother li a{position:absolute;inset:0;display:flex;align-items:flex-end;font:700 10px 'DM Sans';letter-spacing:.2em;text-transform:uppercase;color:var(--ink)}
.lother li:hover h3,.lother li:hover a{color:var(--orange)}
@media(max-width:1000px){.lwhy .row3,.lfuer .in,.lother .in{flex-direction:column;gap:16px}.lother ul{gap:30px}}
/* DREAM header: dunkles Motiv, Overlay zurückgenommen */
.hero-leist.hero-light .bgimg::after{background:linear-gradient(180deg,rgba(29,42,58,.08),rgba(29,42,58,.38) 78%)}
.hero-leist.hero-light .bgimg img{filter:brightness(1.12) contrast(1.02)}
.hero-leist.hero-light h1,.hero-leist.hero-light .lead{text-shadow:0 2px 18px rgba(29,42,58,.45)}
/* Leistung: Phasen-Strip + Gruppen */
.lphases{max-width:1064px;margin:0 auto;padding:0 20px 150px;display:flex;gap:20px}
.lphases .ph{flex:1;min-width:0;position:relative;overflow:hidden;background:var(--navy2);aspect-ratio:3/4;opacity:0;transform:translateY(30px);transition:opacity 1s ease,transform 1s cubic-bezier(.16,1,.3,1)}
.lphases .ph.in{opacity:1;transform:none}
.lphases .ph img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;opacity:.55;transform:scale(1.06);transition:transform 1.4s ease-out,opacity .6s}
.lphases .ph:hover img{transform:none;opacity:.72}
.lphases .ph .t{position:absolute;left:0;right:0;bottom:0;padding:30px 28px;background:linear-gradient(0deg,rgba(29,42,58,.92),rgba(29,42,58,0))}
.lphases .ph .n{font-family:'DM Sans',sans-serif;font-weight:700;font-size:11px;letter-spacing:.24em;color:var(--orange);margin-bottom:12px}
.lphases .ph h3{font-family:'Merriweather',serif;font-weight:300;font-size:clamp(24px,2.4vw,32px);margin:0 0 10px;color:#fff}
.lphases .ph p{font-size:14px;font-weight:300;line-height:1.5;margin:0;color:#E6ECF3}
.lsol .grp{padding:100px 20px 40px;background:var(--paper)}
.lsol .grp .in2{max-width:1064px;margin:0 auto;display:flex;gap:32px;align-items:flex-start}
.lsol .grp .n{font-family:'Merriweather',serif;font-weight:300;font-size:22px;color:var(--orange);padding-top:16px;flex:0 0 56px}
.lsol .grp h3{flex:1;font-family:'Merriweather',serif;font-weight:300;font-size:clamp(30px,3.4vw,48px);line-height:1.15;margin:0;color:var(--navy);padding-right:32px}
.lsol .grp p{flex:1;font-size:clamp(17px,1.7vw,22px);font-weight:300;line-height:1.45;color:#6b7684;margin:0;padding-top:10px}
@media(max-width:1000px){.lphases{flex-direction:column}.lphases .ph{aspect-ratio:16/9}.lsol .grp .in2{flex-wrap:wrap}.lsol .grp h3{flex:1 1 calc(100% - 80px)}.lsol .grp p{flex:1 1 100%}}
.lsol .gimg{background:var(--paper);padding:60px 20px 0}
.lsol .gimg .imghead{max-width:1064px;margin:0 auto;aspect-ratio:16/7;min-height:360px}
.lsol .grp{padding:70px 20px 40px}
.lsol .row2+.gimg{padding-top:120px}
.lsol .grp h3{font-size:clamp(26px,2.8vw,38px)}
/* Services: Gruppierung nach Assetklassen */
.svclist .sgrp{padding:56px 20px 22px;border-bottom:2px solid var(--bg)}
.svclist .sgrp:first-child{padding-top:0}
.svclist .art+.sgrp{margin-top:40px}
.svclist .sgrp .n{font-family:'Merriweather',serif;font-weight:300;font-size:18px;color:var(--orange);margin-bottom:10px}
.svclist .sgrp h3{font-family:'Merriweather',serif;font-weight:300;font-size:clamp(30px,3vw,40px);line-height:1.15;margin:0 0 12px;color:var(--navy)}
.svclist .sgrp p{font-family:'DM Sans',sans-serif;font-weight:300;font-size:16px;line-height:1.5;color:#6b7684;margin:0}
.svclist .art:last-child{border-bottom:2px solid var(--bg)}
.svclist .list>div.sgrp{display:block;grid-template-columns:none;gap:0;padding:56px 20px 22px;border-bottom:2px solid var(--bg)}
.svclist .list>div.sgrp:first-child{padding-top:0}
/* Leistung: Kooperationspartner-Sektion (dezent, gleiche Schriftgrößen wie "Warum AURECA?") */
.lpartner{max-width:1064px;margin:0 auto 120px;padding:0 20px}
.lpartner .in{border-top:2px solid var(--bg);border-bottom:2px solid var(--bg);padding:56px 0}
.lpartner .kick{font-size:10px;font-weight:700;letter-spacing:.2em;text-transform:uppercase;color:var(--orange);margin-bottom:22px}
.lpartner .row{display:flex;gap:32px;align-items:flex-start}
.lpartner h3{flex:1;font-family:'Merriweather',serif;font-weight:300;font-size:clamp(22px,2.2vw,28px);line-height:1.3;margin:0;padding-right:32px;color:var(--navy)}
.lpartner p{flex:1;font-size:clamp(17px,1.6vw,22px);font-weight:300;line-height:1.45;color:#6b7684;margin:0}
.lpartner p a{color:var(--orange);font-weight:600;white-space:nowrap}
@media(max-width:1000px){.lpartner .row{flex-direction:column;gap:14px}}

/* ---- Mobile: Burger-Menü (Overlay) ---- */
body.nav-open{overflow:hidden}
body.nav-open .nav ul{display:flex;flex-direction:column;position:fixed;inset:0;background:var(--navy);padding:130px 32px 40px;gap:4px;border-radius:0;box-shadow:none;z-index:60;overflow:auto}
body.nav-open .nav ul a{font-family:'Merriweather',serif;font-weight:300;font-size:clamp(22px,6vw,32px);letter-spacing:0;text-transform:none;color:#fff;padding:16px 0;border-bottom:1px solid rgba(255,255,255,.12);border-radius:0}
body.nav-open .nav ul a:hover,body.nav-open .nav ul a.on{background:none;color:var(--orange)}
body.nav-open .nav ul a.login{color:var(--orange);border-bottom:0;margin-top:12px}
body.nav-open .nav .menu{z-index:61;background:transparent}
body.nav-open .nav .menu i{transition:transform .3s,opacity .3s}
body.nav-open .nav .menu i:nth-child(1){transform:translateY(7px) rotate(45deg)}
body.nav-open .nav .menu i:nth-child(2){opacity:0}
body.nav-open .nav .menu i:nth-child(3){transform:translateY(-7px) rotate(-45deg)}
body.nav-open .nav .logo,body.nav-open .nav .menu{position:relative;z-index:62}
body.nav-open .nav.solid{background:transparent;box-shadow:none;backdrop-filter:none}
body.nav-open .nav.solid .logo .w{display:inline}body.nav-open .nav.solid .logo .n{display:none}body.nav-open .nav.solid .logo small{color:#fff}

/* ---- Mobile: Bild-Header und Footer ---- */
.imghead{width:100%;max-width:100%}
@media(max-width:900px){.imghead{min-height:0;aspect-ratio:4/3;padding:24px}.imghead h2{font-size:clamp(34px,11vw,60px)}.imghead .kicker{top:22px;left:24px}}
footer .legal nav{display:flex;flex-wrap:wrap;gap:8px 22px}footer .legal nav a{margin-left:0}
@media(max-width:700px){.cmp{display:block;overflow-x:auto;-webkit-overflow-scrolling:touch}.cmp td.l{width:auto;white-space:nowrap}.cmp th,.cmp td{min-width:160px}}
.widget{overflow:hidden}
.hero-leist .bgimg,.hero-svc .bgimg,.hero-team .bgimg,.hero-contact .earth{overflow:hidden}
@media(max-width:640px){footer .top{grid-template-columns:1fr;gap:28px}footer{padding:56px 0 28px}}

/* ---- Kontaktformular: Versand, Einwilligung, Bestätigung ---- */
[hidden]{display:none!important}
.steps .msg{color:#FFB38A;font-size:14px;margin-top:14px;min-height:20px}
.consent{display:flex;gap:12px;align-items:flex-start;margin-top:22px;font-size:13.5px;line-height:1.5;color:#D6DEE8;cursor:pointer}
.consent input{margin-top:4px;flex:none;width:16px;height:16px;accent-color:var(--orange)}
.consent a{color:var(--orange);text-decoration:underline;text-underline-offset:3px}
.hp{position:absolute;left:-9999px;top:auto;width:1px;height:1px;overflow:hidden}
.steps .send:disabled{opacity:.6;cursor:default;transform:none;box-shadow:none}
.sent{margin-top:50px;background:rgba(255,255,255,.06);border:1px solid rgba(255,255,255,.14);border-left:3px solid var(--orange);border-radius:8px;padding:40px}
.sent h3{color:#fff;font-size:clamp(24px,2.6vw,32px);margin:14px 0 12px}.sent p{color:#D6DEE8;font-size:16px;max-width:640px}.sent a{color:var(--orange)}
/* Standort-Widget auf schmalen Bildschirmen: Bild oben, Panel darunter */
@media(max-width:1000px){.widget{display:flex;flex-direction:column;height:auto;min-height:0;padding:0;background:var(--paper)}
.widget figure{position:relative;inset:auto;display:none;height:240px;margin:0;opacity:1}.widget figure.on{display:block}
.widget figure img{height:240px}
.wpanel{position:relative;inset:auto;top:auto;bottom:auto;right:auto;width:100%;max-width:none;padding:12px;opacity:1;transform:none}}
