:root{--ink:#1a1c1a;--ink2:#2a2d2b;--body:#54585a;--muted:#6b6f6d;--faint:#8a8d88;--line:#eceae5;--line2:#e6e4de;--field:#dcdad4;--blue:#4a5f96;--blue-d:#33436d;--cream:#faf9f6}
*{box-sizing:border-box}
html,body{margin:0;padding:0;background:#fff}
html{scroll-behavior:smooth}
body{color:var(--ink);background:#fff;font-family:Aptos,Bierstadt,"Helvetica Neue",Helvetica,Arial,sans-serif;font-size:17px;line-height:1.65;letter-spacing:.002em;-webkit-font-smoothing:antialiased;text-rendering:optimizeLegibility}
img{max-width:100%}
a{color:var(--blue);text-decoration:none}
a:hover{color:var(--blue-d)}
::selection{background:#dde3f1}
h1,h2,h3{font-family:inherit;margin:0}
p{margin:0}
.wrap{max-width:1180px;margin:0 auto;padding:0 40px}
.narrow{max-width:800px;margin:0 auto;padding:80px 40px 100px;display:flex;flex-direction:column;gap:44px}
.eyebrow{font-size:13px;letter-spacing:.18em;text-transform:uppercase;color:var(--faint)}
.eyebrow.blue{color:var(--blue)}
.label{font-size:13px;letter-spacing:.12em;text-transform:uppercase;color:var(--faint)}
.stack{display:flex;flex-direction:column}

/* header */
.site-head .wrap{height:196px;display:flex;align-items:center;justify-content:space-between;gap:32px}
.logo{display:flex;align-items:center;color:var(--ink)}
.logo img{height:158px;width:auto;display:block}
.nav{display:flex;align-items:center;gap:34px;font-size:16px}
.nav a{color:#545854}
.nav a:hover{color:var(--ink)}
.nav .pill{display:inline-flex;align-items:center;height:40px;padding:0 22px;border:1px solid var(--blue);border-radius:999px;color:var(--blue)}
.nav .pill:hover{background:var(--blue);color:#fff}
.back{font-size:16px;color:#545854}
.back:hover{color:var(--ink)}

/* hero */
.hero{max-width:1180px;margin:0 auto;padding:104px 40px 96px;display:grid;grid-template-columns:.82fr 1.18fr;gap:56px;align-items:end}
.hero-copy{display:flex;flex-direction:column;gap:32px}
.hero h1{font-weight:600;font-size:38px;line-height:1.18;letter-spacing:-.008em;text-wrap:balance}
.lede{max-width:52ch;font-size:19px;line-height:1.7;color:var(--body);text-wrap:pretty}
.btns{display:flex;flex-wrap:wrap;gap:14px;padding-top:8px}
.btn{display:inline-flex;align-items:center;height:52px;padding:0 28px;border-radius:999px;font-size:16px}
.btn-solid{background:var(--blue);color:#fff}
.btn-solid:hover{background:var(--blue-d);color:#fff}
.btn-ghost{border:1px solid var(--field);color:var(--ink)}
.btn-ghost:hover{border-color:var(--ink);color:var(--ink)}
.ph{background-image:repeating-linear-gradient(135deg,#f4f3ef 0,#f4f3ef 7px,#fff 7px,#fff 14px);border:1px solid var(--line);display:flex;align-items:flex-end;padding:20px}
.ph.on-cream{background-image:repeating-linear-gradient(135deg,#f1efeb 0,#f1efeb 7px,#faf9f6 7px,#faf9f6 14px);border-color:var(--line2);padding:18px}
.ph-tag{font-size:13px;letter-spacing:.08em;text-transform:uppercase;color:var(--faint);background:#fff;padding:6px 10px}
.hero-fig{width:100%;aspect-ratio:645/350;object-fit:cover;display:block}
.vita-fig{width:100%;max-width:300px;aspect-ratio:3/4;object-fit:cover;display:block}

/* sections */
section{border-top:1px solid var(--line)}
#top{border-top:0}
.cream{background:var(--cream)}
.sec{max-width:1180px;margin:0 auto;padding:96px 40px}
.sec-split{display:grid;grid-template-columns:.8fr 1.2fr;gap:72px}
.sec h2{font-weight:600;font-size:38px;line-height:1.18;letter-spacing:-.008em}
.head-group{display:flex;flex-direction:column;gap:10px}
.kanzlei-body{display:flex;flex-direction:column;gap:26px;max-width:64ch}
.kanzlei-body .big{font-size:19px;line-height:1.7;color:var(--ink2);text-wrap:pretty}
.kanzlei-body .sub{color:var(--body);text-wrap:pretty}
.duo{display:grid;grid-template-columns:1fr 1fr;gap:28px;padding-top:12px;border-top:1px solid var(--line2)}
.duo>div{display:flex;flex-direction:column;gap:14px}
.duo img{width:100%;aspect-ratio:3/2;object-fit:cover;display:block}
.duo h3{font-weight:600;font-size:24px;line-height:1.25}
.duo p{font-size:16px;line-height:1.6;color:var(--muted);text-wrap:pretty}

/* leistungen */
.grid2{margin-top:56px;display:grid;grid-template-columns:repeat(2,1fr);gap:1px;background:var(--line);border:1px solid var(--line)}
.card{background:#fff;padding:38px 36px 40px;display:flex;flex-direction:column;gap:20px}
.card:hover{background:var(--cream)}
.card-head{display:flex;align-items:baseline;gap:14px}
.card-num{font-weight:600;font-size:24px;line-height:1.25;color:var(--blue)}
.card h3{font-weight:600;font-size:24px;line-height:1.25}
.card ul{margin:0;padding:0;list-style:none;display:flex;flex-direction:column;gap:11px}
.card li{display:grid;grid-template-columns:14px 1fr;gap:12px;font-size:16px;line-height:1.6;color:var(--body)}
.dash{color:#c3c8c4;line-height:1.6}
.card li span:last-child{text-wrap:pretty}

/* vita */
.vita-grid{margin-top:56px;display:grid;grid-template-columns:1fr 1fr;gap:56px}
.vita-grid article{display:flex;flex-direction:column;gap:26px;height:100%}
.vita-txt{flex:1;display:flex;flex-direction:column;gap:16px}
.vita-txt p.small{margin-top:auto;padding-top:20px;border-top:1px solid var(--line2)}
.vita-txt h3{font-weight:600;font-size:24px;line-height:1.25}
.vita-txt p.role{font-size:16px;color:var(--blue)}
.vita-txt p{color:var(--body);text-wrap:pretty}
.vita-txt p.small{font-size:16px;color:var(--muted)}
.mail-link{font-size:16px;border-bottom:1px solid #cdd5e8;align-self:flex-start;padding-bottom:2px}

/* kontakt */
.kontakt{max-width:1180px;margin:0 auto;padding:96px 40px 104px;display:grid;grid-template-columns:minmax(0,.95fr) minmax(0,1.05fr);gap:64px;align-items:start}
.kontakt-left{min-width:0;display:flex;flex-direction:column;gap:26px}
.kontakt-left h2{font-weight:600;font-size:38px;line-height:1.18;letter-spacing:-.008em;text-wrap:balance}
.kontakt-left .lede-s{max-width:44ch;color:var(--body);text-wrap:pretty}
.facts{display:grid;grid-template-columns:repeat(auto-fit,minmax(190px,1fr));gap:28px 36px;padding-top:26px;margin-top:6px;border-top:1px solid var(--line)}
.contact-rows{display:grid;grid-template-columns:auto auto;justify-content:start;gap:6px 14px;line-height:1.7;white-space:nowrap}
.contact-rows a.ink{color:var(--ink)}
.contact-rows a.ink:hover{color:var(--blue)}
.facts p{line-height:1.7}
.facts .dim{color:var(--muted)}
.formbox{min-width:0;border:1px solid var(--line);padding:36px 34px 34px;display:flex;flex-direction:column;gap:22px}
.formbox h3{font-weight:600;font-size:24px;line-height:1.25}
.formbox .hint{font-size:16px;color:var(--muted);text-wrap:pretty}
form{display:flex;flex-direction:column;gap:16px}
form label{display:flex;flex-direction:column;gap:7px;min-width:0}
input[type=text],input[type=email],input[type=tel],textarea{font:inherit;font-size:16px;color:var(--ink);background:#fff;border:1px solid var(--field);padding:12px 14px;outline:none;min-width:0;border-radius:0}
textarea{line-height:1.6;resize:vertical}
input:focus,textarea:focus{border-color:var(--blue)}
.row2{display:grid;grid-template-columns:repeat(auto-fit,minmax(160px,1fr));gap:16px}
.consent{display:grid!important;grid-template-columns:18px 1fr;gap:12px;align-items:start;font-size:15px;line-height:1.55;color:var(--body)}
.consent input{width:16px;height:16px;margin-top:3px;accent-color:var(--blue)}
.consent span{text-wrap:pretty}
button[type=submit]{align-self:flex-start;margin-top:4px;font:inherit;font-size:16px;height:52px;padding:0 30px;background:var(--blue);color:#fff;border:none;border-radius:999px;cursor:pointer}
button[type=submit]:hover{background:var(--blue-d)}
button[disabled]{opacity:.6;cursor:default}
.fine{font-size:14px;line-height:1.55;color:var(--faint);text-wrap:pretty}
.err{font-size:15px;line-height:1.55;color:#8c3a2e}
.thanks{background:#f4f6fb;border:1px solid #d9e0ef;padding:22px 24px;display:flex;flex-direction:column;gap:6px}
.thanks strong{font-size:17px;color:var(--blue-d)}
.thanks span{font-size:16px;color:var(--body)}
.gotcha{position:absolute;width:1px;height:1px;padding:0;border:0;overflow:hidden;clip-path:inset(50%);white-space:nowrap}
[hidden]{display:none!important}

/* legal + aktuelles */
.legal{font-size:16px;line-height:1.7}
.legal h1{font-weight:600;font-size:clamp(34px,4.4vw,46px);line-height:1.12;letter-spacing:-.01em}
.legal .intro{margin-top:6px;color:var(--muted);font-size:16px;text-wrap:pretty}
.legal section{display:grid;grid-template-columns:200px 1fr;gap:32px;padding-top:26px;border-top:1px solid var(--line)}
.legal section h2{font-weight:600;font-size:20px;line-height:1.3}
.legal .body{display:flex;flex-direction:column;gap:14px;color:#3d4240}
.legal .body p{text-wrap:pretty;white-space:pre-line}
.legal ul{margin:0;padding:0;list-style:none;display:flex;flex-direction:column;gap:9px}
.legal li{display:grid;grid-template-columns:14px 1fr;gap:12px;font-size:16px;color:var(--body)}
.post{display:flex;flex-direction:column;gap:20px;padding-top:34px;border-top:1px solid var(--line)}
.post h2{font-weight:600;font-size:32px;line-height:1.2;letter-spacing:-.008em;text-wrap:balance}
.post .meta{font-size:13px;letter-spacing:.18em;text-transform:uppercase;color:var(--faint)}
.post .body{display:flex;flex-direction:column;gap:16px;color:#3d4240}
.post .body p{text-wrap:pretty}

/* footer */
.site-foot{border-top:1px solid var(--line);background:var(--cream)}
.site-foot .wrap{padding:44px 40px;display:flex;flex-wrap:wrap;gap:24px;align-items:center;justify-content:space-between;font-size:15px;color:var(--faint)}
.foot-nav{display:flex;flex-wrap:wrap;gap:26px}
.foot-nav a{color:var(--body)}
.foot-nav a:hover,.foot-nav a[aria-current]{color:var(--ink)}

@media (max-width:900px){
  .wrap,.sec,.hero,.kontakt{padding-left:24px;padding-right:24px}
  .narrow{padding-left:24px;padding-right:24px}
  .site-head .wrap{height:auto;padding-top:20px;padding-bottom:20px;flex-wrap:wrap;gap:16px}
  .logo img{height:96px}
  .nav{gap:20px;font-size:15px;flex-wrap:wrap}
  .hero{grid-template-columns:1fr;gap:44px;padding-top:56px;padding-bottom:56px}
  .sec{padding-top:64px;padding-bottom:64px}
  .sec-split,.grid2,.vita-grid,.duo,.kontakt{grid-template-columns:1fr;gap:40px}
  .grid2{gap:1px}
  .kontakt{padding-top:64px;padding-bottom:72px}
  .legal section{grid-template-columns:1fr;gap:12px}
  .formbox{padding:28px 22px}
}