:root{
  --sand:#F2EBDF;
  --sand-2:#E8DECD;
  --paper:#FBF7F0;
  --ink:#1B2A24;
  --ink-soft:#3F5049;
  --clay:#B4502B;
  --clay-dark:#8E3C1E;
  --moss:#5B6E56;
  --line:rgba(27,42,36,.16);
  --shadow:0 24px 60px -28px rgba(27,42,36,.45);
  --wrap:1180px;
  --display:"Fraunces",Georgia,serif;
  --body:"Karla","Trebuchet MS",sans-serif;
}
*{box-sizing:border-box}
html{scroll-behavior:smooth;-webkit-text-size-adjust:100%}
body{
  margin:0;background:var(--sand);color:var(--ink);
  font-family:var(--body);font-size:17px;line-height:1.65;font-weight:400;
  background-image:radial-gradient(120% 70% at 82% -10%,rgba(180,80,43,.13),transparent 60%),
    radial-gradient(90% 60% at 0% 100%,rgba(91,110,86,.16),transparent 62%);
  background-attachment:fixed;
}
body::before{
  content:"";position:fixed;inset:0;pointer-events:none;z-index:2;opacity:.5;
  background-image:url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' width='140' height='140'><filter id='n'><feTurbulence type='fractalNoise' baseFrequency='.85' numOctaves='3'/></filter><rect width='140' height='140' filter='url(%23n)' opacity='.28'/></svg>");
  mix-blend-mode:multiply;
}
img{max-width:100%;height:auto;display:block}
h1,h2,h3{font-family:var(--display);font-weight:600;line-height:1.03;letter-spacing:-.02em;margin:0}
h1{font-size:clamp(2.7rem,6.6vw,5.1rem);font-variation-settings:"SOFT" 20,"WONK" 1}
h1 em{font-style:italic;color:var(--clay);font-weight:500}
h2{font-size:clamp(1.9rem,3.7vw,3.05rem)}
h3{font-size:1.3rem;letter-spacing:-.01em}
p{margin:0 0 1em}
a{color:inherit}
.skip{position:absolute;left:-9999px;top:0;background:var(--ink);color:var(--paper);padding:12px 18px;z-index:99}
.skip:focus{left:8px;top:8px}
:focus-visible{outline:3px solid var(--clay);outline-offset:3px;border-radius:2px}

/* header */
.top{
  position:sticky;top:0;z-index:20;display:flex;align-items:center;gap:24px;
  padding:14px clamp(18px,4vw,52px);
  background:rgba(242,235,223,.9);backdrop-filter:blur(12px);
  border-bottom:1px solid var(--line);
}
.brand img{width:184px}
.top nav{display:flex;gap:clamp(12px,2vw,28px);margin-left:auto;flex-wrap:wrap}
.top nav a{
  text-decoration:none;font-size:.83rem;letter-spacing:.14em;text-transform:uppercase;
  font-weight:600;padding:12px 2px;position:relative;color:var(--ink-soft);
}
.top nav a::after{content:"";position:absolute;left:0;right:100%;bottom:8px;height:2px;background:var(--clay);transition:right .32s ease}
.top nav a:hover{color:var(--ink)}
.top nav a:hover::after{right:0}
.top-call{
  display:none;text-decoration:none;font-weight:600;font-size:.95rem;
  padding:12px 20px;border:1.5px solid var(--ink);border-radius:999px;transition:.25s;
}
.top-call:hover{background:var(--ink);color:var(--paper)}

/* hero */
.hero{
  max-width:var(--wrap);margin:0 auto;padding:clamp(46px,7vw,84px) clamp(18px,4vw,52px) clamp(60px,8vw,110px);
  display:grid;grid-template-columns:1fr;gap:40px;position:relative;
}
.eyebrow{
  font-size:.78rem;letter-spacing:.22em;text-transform:uppercase;font-weight:600;
  color:var(--clay-dark);margin-bottom:18px;
}
.eyebrow::before{content:"";display:inline-block;width:34px;height:1.5px;background:currentColor;vertical-align:middle;margin-right:12px}
.lead{font-size:1.12rem;max-width:46ch;color:var(--ink-soft)}
.hero-cta{display:flex;flex-wrap:wrap;gap:14px;margin:28px 0 34px}
.btn{
  display:inline-block;text-decoration:none;background:var(--clay);color:#fff;
  font-weight:600;font-size:1rem;padding:16px 30px;border:0;border-radius:999px;cursor:pointer;
  box-shadow:0 14px 30px -14px rgba(142,60,30,.8);transition:transform .25s,background .25s,box-shadow .25s;
  min-height:52px;font-family:var(--body);
}
.btn:hover{background:var(--clay-dark);transform:translateY(-2px);box-shadow:0 20px 34px -14px rgba(142,60,30,.9)}
.btn.ghost{background:transparent;color:var(--ink);border:1.5px solid var(--ink);box-shadow:none}
.btn.ghost:hover{background:var(--ink);color:var(--paper)}
.facts{display:flex;flex-wrap:wrap;gap:14px 36px;margin:0;padding-top:26px;border-top:1px solid var(--line)}
.facts dt{font-size:.72rem;letter-spacing:.18em;text-transform:uppercase;color:var(--moss);font-weight:600}
.facts dd{margin:2px 0 0;font-family:var(--display);font-size:1.08rem}
.hero-img{margin:0;position:relative}
.hero-img img{border-radius:4px 4px 60px 4px;box-shadow:var(--shadow);width:100%}
.hero-img figcaption{
  font-size:.82rem;letter-spacing:.1em;text-transform:uppercase;color:var(--ink-soft);
  margin-top:14px;font-weight:600;
}

/* section heads */
section{padding:clamp(60px,9vw,120px) clamp(18px,4vw,52px)}
.sec-head{max-width:var(--wrap);margin:0 auto clamp(38px,5vw,64px)}
.sec-head p{max-width:52ch;color:var(--ink-soft);margin-top:20px}
.sec-head.light p{color:rgba(251,247,240,.72)}

/* menschen */
.menschen{max-width:none;background:linear-gradient(180deg,transparent,rgba(232,222,205,.7))}
.phasen{max-width:var(--wrap);margin:0 auto;padding:0;list-style:none;display:grid;gap:2px;
  grid-template-columns:1fr;background:var(--line);border:1px solid var(--line)}
.phasen li{background:var(--sand);padding:34px 28px 38px;transition:background .35s,transform .35s}
.phasen li:hover{background:var(--paper);transform:translateY(-4px)}
.phasen .num{font-family:var(--display);font-size:.9rem;color:var(--clay);letter-spacing:.1em;display:block;margin-bottom:26px}
.phasen h3{margin-bottom:12px}
.phasen p{font-size:.97rem;color:var(--ink-soft);margin:0}

/* leistungen */
.leistungen{background:var(--ink);color:var(--paper);position:relative;overflow:hidden}
.leistungen::after{
  content:"";position:absolute;right:-14%;top:-30%;width:60vw;height:60vw;border-radius:50%;
  background:radial-gradient(circle,rgba(180,80,43,.32),transparent 66%);pointer-events:none;
}
.leistungen .eyebrow{color:#DE7A4E}
.lgrid{max-width:var(--wrap);margin:0 auto;display:grid;gap:1px;grid-template-columns:1fr;
  background:rgba(251,247,240,.16);border:1px solid rgba(251,247,240,.16);position:relative}
.lgrid article{background:var(--ink);padding:34px 30px 38px;transition:background .35s}
.lgrid article:hover{background:#22352D}
.lgrid h3{color:var(--paper);margin-bottom:14px}
.lgrid h3::after{content:"";display:block;width:26px;height:2px;background:var(--clay);margin-top:14px}
.lgrid p{color:rgba(251,247,240,.74);font-size:.97rem;margin:0}

/* projekte */
.pro-lead{max-width:var(--wrap);margin:0 auto clamp(40px,6vw,72px);display:grid;gap:34px}
.pro-lead img{border-radius:3px;box-shadow:var(--shadow)}
.pro-lead figure{margin:0}
.claim{font-family:var(--display);font-style:italic;font-size:1.35rem;color:var(--clay-dark);line-height:1.3}
.pro-text h3{font-size:clamp(1.7rem,3vw,2.3rem);margin-bottom:10px}
.pro-text p{color:var(--ink-soft)}
.meta{display:grid;grid-template-columns:1fr 1fr;gap:16px 24px;margin:26px 0;padding-top:22px;border-top:1px solid var(--line)}
.meta dt{font-size:.7rem;letter-spacing:.16em;text-transform:uppercase;color:var(--moss);font-weight:600}
.meta dd{margin:3px 0 0;font-size:.98rem}
.link{
  display:inline-block;font-weight:600;color:var(--clay-dark);text-decoration:none;
  border-bottom:2px solid rgba(180,80,43,.35);padding:6px 0;transition:border-color .25s,color .25s;
}
.link::after{content:" →"}
.link:hover{border-color:var(--clay);color:var(--clay)}
.pro-grid{max-width:var(--wrap);margin:0 auto;display:grid;gap:26px;grid-template-columns:1fr}
.pro-grid figure{margin:0;overflow:hidden}
.pro-grid img{border-radius:3px;transition:transform .6s cubic-bezier(.2,.7,.2,1)}
.pro-grid figure:hover img{transform:scale(1.04)}
.pro-grid figcaption{padding-top:14px;font-size:.9rem;color:var(--ink-soft)}
.pro-grid figcaption strong{display:block;font-family:var(--display);font-size:1.12rem;color:var(--ink);font-weight:600;margin-bottom:2px}

/* ablauf */
.ablauf{background:var(--ink);color:var(--paper)}
.ablauf .eyebrow{color:#DE7A4E}
.steps{max-width:var(--wrap);margin:0 auto;padding:0;list-style:none;display:grid;gap:0;grid-template-columns:1fr}
.steps li{padding:26px 0 26px 62px;position:relative;border-top:1px solid rgba(251,247,240,.18)}
.steps li:last-child{border-bottom:1px solid rgba(251,247,240,.18)}
.steps span{
  position:absolute;left:0;top:28px;font-family:var(--display);font-size:.95rem;
  color:#DE7A4E;letter-spacing:.08em;
}
.steps h3{color:var(--paper);margin-bottom:8px}
.steps p{color:rgba(251,247,240,.72);margin:0;max-width:60ch;font-size:.97rem}

/* modelle */
.cards{max-width:var(--wrap);margin:0 auto;display:grid;gap:22px;grid-template-columns:1fr}
.cards article{
  background:var(--paper);border:1px solid var(--line);border-radius:4px 4px 34px 4px;
  padding:34px 30px 36px;display:flex;flex-direction:column;transition:transform .35s,box-shadow .35s;
}
.cards article:hover{transform:translateY(-5px);box-shadow:var(--shadow)}
.cards .feature{background:var(--ink);color:var(--paper);border-color:var(--ink)}
.cards .feature h3{color:var(--paper)}
.cards .feature p{color:rgba(251,247,240,.76)}
.cards .feature li{border-color:rgba(251,247,240,.18);color:rgba(251,247,240,.86)}
.cards .feature .link{color:#F0A57F;border-color:rgba(240,165,127,.4)}
.cards .feature .link:hover{color:#fff;border-color:#fff}
.tag{
  display:inline-block;font-size:.7rem;letter-spacing:.18em;text-transform:uppercase;font-weight:600;
  background:var(--clay);color:#fff;padding:5px 12px;border-radius:999px;margin-bottom:16px;
}
.cards h3{margin-bottom:12px}
.cards p{font-size:.97rem;color:var(--ink-soft)}
.cards ul{list-style:none;margin:0 0 22px;padding:0}
.cards li{padding:11px 0;border-top:1px solid var(--line);font-size:.94rem}
.cards .link{margin-top:auto;align-self:flex-start}

/* kontakt */
.kontakt{
  max-width:var(--wrap);margin:0 auto;display:grid;gap:44px;grid-template-columns:1fr;
  border-top:1px solid var(--line);
}
.k-left h2{font-size:clamp(1.7rem,3vw,2.5rem);margin-bottom:22px}
.k-data{margin-top:32px;padding-top:26px;border-top:1px solid var(--line);font-size:1rem}
.k-data a{font-weight:600;text-decoration:none;border-bottom:2px solid rgba(180,80,43,.35);display:inline-block;padding:5px 0;min-height:34px}
.k-data a:hover{border-color:var(--clay);color:var(--clay-dark)}
.muted{color:var(--ink-soft);font-size:.92rem}
.k-form{background:var(--paper);border:1px solid var(--line);border-radius:4px 4px 46px 4px;padding:32px 28px 34px;box-shadow:var(--shadow)}
.k-form h3{margin-bottom:20px}
.f-row{display:flex;flex-direction:column;gap:6px;margin-bottom:16px}
.f-row label{font-size:.76rem;letter-spacing:.14em;text-transform:uppercase;font-weight:600;color:var(--moss)}
.f-row input,.f-row textarea{
  font-family:var(--body);font-size:1rem;color:var(--ink);background:var(--sand);
  border:1.5px solid var(--line);border-radius:3px;padding:13px 14px;min-height:48px;width:100%;
}
.f-row textarea{resize:vertical}
.f-row input:focus,.f-row textarea:focus{border-color:var(--clay);background:#fff}
.k-form .btn{width:100%;text-align:center}
.hint{margin:16px 0 0;font-size:.9rem;color:var(--ink-soft)}
.hint a{font-weight:600;color:var(--clay-dark)}

/* footer */
.foot{
  background:var(--ink);color:rgba(251,247,240,.76);
  padding:clamp(48px,6vw,72px) clamp(18px,4vw,52px) 140px;
  display:grid;gap:34px;grid-template-columns:1fr;
}
.foot img{width:190px;filter:invert(1) brightness(2)}
.foot h2{font-size:1rem;letter-spacing:.16em;text-transform:uppercase;color:var(--paper);margin-bottom:12px;font-family:var(--body);font-weight:600}
.foot p{font-size:.94rem;margin:14px 0 0}
.foot a{color:var(--paper);text-decoration:none;border-bottom:1px solid rgba(251,247,240,.3);display:inline-block;padding:4px 0}
.foot a:hover{border-color:var(--clay)}
.copy{font-size:.82rem;color:rgba(251,247,240,.5);border-top:1px solid rgba(251,247,240,.18);padding-top:22px}

/* call bar */
.callbar{
  position:fixed;left:12px;right:12px;bottom:12px;z-index:30;
  display:flex;align-items:center;justify-content:center;gap:10px;
  background:var(--clay);color:#fff;text-decoration:none;font-weight:700;font-size:1.05rem;
  padding:16px 22px;border-radius:999px;min-height:56px;
  box-shadow:0 16px 34px -12px rgba(27,42,36,.6);transition:background .25s,transform .25s;
}
.callbar span{font-weight:500;opacity:.85;font-size:.92rem}
.callbar span::after{content:"·";margin-left:10px}
.callbar:hover{background:var(--clay-dark);transform:translateY(-2px)}

/* motion */
.reveal{opacity:0;transform:translateY(22px);transition:opacity .5s ease,transform .5s cubic-bezier(.2,.7,.2,1)}
.reveal.in{opacity:1;transform:none}
.reveal.d1{transition-delay:.09s}
.reveal.d2{transition-delay:.18s}
.reveal.d3{transition-delay:.27s}
.reveal.d4{transition-delay:.36s}

@media (min-width:700px){
  .phasen{grid-template-columns:1fr 1fr}
  .lgrid{grid-template-columns:1fr 1fr}
  .pro-grid{grid-template-columns:1fr 1fr}
  .cards{grid-template-columns:1fr 1fr}
  .foot{grid-template-columns:1.4fr 1fr 1fr}
  .copy{grid-column:1/-1}
  .callbar{left:auto;right:22px;bottom:22px}
}
@media (min-width:960px){
  .hero{grid-template-columns:1.02fr .98fr;align-items:center;gap:clamp(30px,4vw,60px)}
  .hero-img{margin-right:calc(-1 * clamp(0px,4vw,52px))}
  .hero-copy{position:relative;z-index:1}
  .phasen{grid-template-columns:repeat(4,1fr)}
  .lgrid{grid-template-columns:repeat(4,1fr)}
  .pro-lead{grid-template-columns:1.05fr .95fr;align-items:center}
  .pro-lead figure{margin-left:calc(-1 * clamp(0px,3vw,40px))}
  .cards{grid-template-columns:repeat(3,1fr)}
  .cards .feature{transform:translateY(-16px)}
  .cards .feature:hover{transform:translateY(-22px)}
  .kontakt{grid-template-columns:1.1fr .9fr;gap:clamp(40px,6vw,80px);align-items:start}
  .top-call{display:inline-block}
  .steps li{padding-left:96px}
  .steps span{font-size:1.05rem}
}
@media (prefers-reduced-motion:reduce){
  html{scroll-behavior:auto}
  *,*::before,*::after{animation:none!important;transition:none!important}
  .reveal{opacity:1;transform:none}
}
