@import url('https://fonts.googleapis.com/css2?family=Fraunces:ital,opsz,wght@0,9..144,300;0,9..144,500;0,9..144,600;1,9..144,400&family=Inter:wght@400;500;600&family=IBM+Plex+Mono:wght@400;500&display=swap');

:root{
  --paper:#EDE6D8;
  --paper-light:#F7F4EC;
  --ink:#20302A;
  --ink-soft:#4B5A50;
  --accent:#9C6B2E;
  --line:#C9BFA8;
  --max:1120px;
}

*{margin:0;padding:0;box-sizing:border-box;}

html{scroll-behavior:smooth;}

body{
  background:var(--paper);
  color:var(--ink);
  font-family:'Inter',sans-serif;
  font-size:16px;
  line-height:1.6;
  -webkit-font-smoothing:antialiased;
}

.eyebrow{
  font-family:'IBM Plex Mono',monospace;
  font-size:12px;
  letter-spacing:0.14em;
  text-transform:uppercase;
  color:var(--accent);
  display:block;
  margin-bottom:14px;
}

h1,h2,h3{
  font-family:'Fraunces',serif;
  font-weight:500;
  color:var(--ink);
  line-height:1.12;
}

.container{max-width:var(--max);margin:0 auto;padding:0 32px;}

a{color:inherit;text-decoration:none;}

/* ---------- HEADER ---------- */
header{
  position:sticky;top:0;z-index:50;
  background:rgba(247,244,236,0.92);
  backdrop-filter:blur(6px);
  border-bottom:1px solid var(--line);
}
.header-inner{
  display:flex;align-items:center;justify-content:space-between;
  padding:16px 32px;max-width:var(--max);margin:0 auto;
}
.brand{display:flex;align-items:center;gap:12px;}
.brand svg{width:34px;height:34px;flex-shrink:0;}
.brand-name{
  font-family:'Fraunces',serif;font-weight:600;font-size:19px;
  letter-spacing:0.03em;
}
nav.main-nav{display:flex;align-items:center;gap:28px;}
nav.main-nav a{
  font-size:14px;color:var(--ink-soft);
  border-bottom:1px solid transparent;
  padding-bottom:2px;
  transition:border-color .2s, color .2s;
}
nav.main-nav a:hover{color:var(--ink);border-color:var(--accent);}

.lang-switch{display:flex;border:1px solid var(--line);border-radius:3px;overflow:hidden;}
.lang-switch button{
  font-family:'IBM Plex Mono',monospace;font-size:12px;letter-spacing:.05em;
  background:transparent;border:none;color:var(--ink-soft);
  padding:7px 12px;cursor:pointer;transition:background .2s,color .2s;
  border-left:1px solid var(--line);
}
.lang-switch button:first-child{border-left:none;}
.lang-switch button.active{background:var(--ink);color:var(--paper-light);}
.lang-switch button:not(.active):hover{background:var(--line);}

/* ---------- HERO ---------- */
.hero{
  position:relative;overflow:hidden;
  padding:120px 0 100px;
  border-bottom:1px solid var(--line);
}
.hero-watermark{
  position:absolute;right:-60px;top:50%;transform:translateY(-50%);
  width:520px;height:520px;opacity:0.35;pointer-events:none;
}
.hero-inner{position:relative;z-index:2;max-width:640px;margin:0;}
.hero h1{font-size:clamp(34px,5vw,54px);margin-bottom:22px;}
.hero p.lead{
  font-size:18px;color:var(--ink-soft);max-width:520px;margin-bottom:36px;
}
.btn{
  display:inline-flex;align-items:center;gap:10px;
  font-family:'IBM Plex Mono',monospace;font-size:13px;letter-spacing:.06em;
  text-transform:uppercase;
  background:var(--ink);color:var(--paper-light);
  padding:14px 24px;border-radius:2px;
  border:1px solid var(--ink);
  transition:background .2s,color .2s;
}
.btn:hover{background:transparent;color:var(--ink);}
.btn-outline{
  background:transparent;color:var(--ink);border:1px solid var(--ink);
}
.btn-outline:hover{background:var(--ink);color:var(--paper-light);}

/* ---------- SECTIONS ---------- */
section{padding:88px 0;border-bottom:1px solid var(--line);}
section.alt{background:var(--paper-light);}
.section-grid{
  display:grid;grid-template-columns:280px 1fr;gap:60px;
}
.section-grid > *{min-width:0;}
.section-grid h2{font-size:clamp(26px,3vw,36px);max-width:440px;overflow-wrap:break-word;}
.section-grid .body-col{max-width:600px;}
.section-grid .body-col p{color:var(--ink-soft);font-size:16.5px;}
.fade-up{opacity:0;transform:translateY(18px);transition:opacity .7s ease,transform .7s ease;}
.fade-up.visible{opacity:1;transform:translateY(0);}

/* ---------- TEAM ---------- */
.team-grid{
  display:grid;grid-template-columns:repeat(4,1fr);gap:1px;
  background:var(--line);border:1px solid var(--line);
}
.team-card{
  background:var(--paper-light);padding:32px 26px;
  display:flex;flex-direction:column;align-items:flex-start;
}
.avatar{
  width:52px;height:52px;border-radius:50%;
  border:1px solid var(--ink);
  display:flex;align-items:center;justify-content:center;
  font-family:'Fraunces',serif;font-weight:600;font-size:16px;color:var(--ink);
  margin-bottom:18px;position:relative;
}
.avatar::after{
  content:"";position:absolute;inset:6px;border:1px solid var(--accent);border-radius:50%;
}
.team-card h3{font-size:17px;font-weight:500;margin-bottom:4px;}
.team-card .role{
  font-family:'IBM Plex Mono',monospace;font-size:11px;letter-spacing:.05em;
  text-transform:uppercase;color:var(--accent);margin-bottom:14px;display:block;
}
.team-card p{font-size:14.5px;color:var(--ink-soft);margin-bottom:16px;flex-grow:1;}
.team-card p.muted{color:var(--line);font-style:italic;}
.team-links{display:flex;flex-direction:column;gap:4px;}
.team-link{
  font-family:'IBM Plex Mono',monospace;font-size:12px;color:var(--ink);
  border-bottom:1px solid var(--line);padding-bottom:2px;width:fit-content;
  transition:border-color .2s,color .2s;
}
.team-link:hover{color:var(--accent);border-color:var(--accent);}
.placeholder-card{opacity:0.55;}
.placeholder-card .avatar{border-style:dashed;}

@media (max-width:900px){
  .team-grid{grid-template-columns:1fr 1fr;}
}
@media (max-width:560px){
  .team-grid{grid-template-columns:1fr;}
}

/* ---------- PARTNERS ---------- */
.partner-grid{
  display:grid;grid-template-columns:repeat(2,1fr);gap:1px;
  background:var(--line);border:1px solid var(--line);
}
.partner-card{
  background:var(--paper-light);padding:32px 26px;
  display:flex;flex-direction:column;align-items:flex-start;
}
.avatar-square{border-radius:4px;}
.avatar-square::after{border-radius:2px;inset:7px;}
.partner-card h3{font-size:17px;font-weight:500;margin-bottom:4px;}
@media (max-width:640px){
  .partner-grid{grid-template-columns:1fr;}
}

/* ---------- APPROACH (ledger rows) ---------- */
.ledger{border-top:1px solid var(--line);margin-top:44px;}
.ledger-row{
  display:grid;grid-template-columns:70px 220px 1fr;gap:24px;
  padding:26px 0;border-bottom:1px solid var(--line);align-items:start;
}
.ledger-row .num{
  font-family:'IBM Plex Mono',monospace;color:var(--accent);font-size:14px;padding-top:4px;
}
.ledger-row h3{font-size:19px;font-weight:500;}
.ledger-row p{color:var(--ink-soft);font-size:15.5px;}

/* ---------- CONTACT ---------- */
.contact-card{
  background:var(--paper-light);
  border:1px solid var(--line);
  padding:52px;
  display:flex;justify-content:space-between;align-items:center;gap:40px;
  flex-wrap:wrap;
}
.contact-card .ref{
  font-family:'IBM Plex Mono',monospace;font-size:13px;color:var(--ink-soft);
  border:1px dashed var(--line);padding:10px 16px;display:inline-block;margin-top:18px;
}

/* ---------- FOOTER ---------- */
footer{padding:40px 0;}
.footer-inner{
  display:flex;justify-content:space-between;align-items:center;
  flex-wrap:wrap;gap:16px;
  font-size:13px;color:var(--ink-soft);
}
.footer-links{display:flex;gap:22px;}
.footer-links a{color:var(--ink-soft);}
.footer-links a:hover{color:var(--accent);}

.legal-block{margin-top:14px;font-size:13px;color:var(--ink-soft);max-width:560px;}
.legal-block .placeholder{color:var(--accent);}

/* ---------- RESPONSIVE ---------- */
@media (max-width:800px){
  .section-grid{grid-template-columns:1fr;gap:20px;}
  .hero-watermark{width:340px;height:340px;right:-100px;opacity:0.25;}
  .ledger-row{grid-template-columns:40px 1fr;grid-template-areas:"num title" "desc desc";}
  .ledger-row .num{grid-area:num;}
  .ledger-row h3{grid-area:title;}
  .ledger-row p{grid-area:desc;}
  nav.main-nav{display:none;}
  .contact-card{padding:32px;}
}

@media (prefers-reduced-motion: reduce){
  .fade-up{transition:none;opacity:1;transform:none;}
  html{scroll-behavior:auto;}
}

/* ---------- PROJECT SHOWCASE (Group landing page) ---------- */
.project-grid{
  display:grid;grid-template-columns:repeat(3,1fr);gap:1px;
  background:var(--line);border:1px solid var(--line);margin-top:44px;
}
.project-card{background:var(--paper-light);display:flex;flex-direction:column;}
.project-photo{
  aspect-ratio:4/3;border-bottom:1px solid var(--line);position:relative;
  background:var(--paper);
  display:flex;align-items:center;justify-content:center;
  overflow:hidden;
}
.project-photo img{
  width:100%;height:100%;object-fit:cover;
}
.project-photo span{
  font-family:'IBM Plex Mono',monospace;font-size:11px;letter-spacing:.05em;
  color:var(--ink-soft);text-transform:uppercase;border:1px dashed var(--line);
  padding:6px 12px;background:var(--paper-light);
}
.project-body{padding:26px;}
.project-body .loc{
  font-family:'IBM Plex Mono',monospace;font-size:11px;letter-spacing:.06em;
  text-transform:uppercase;color:var(--accent);display:block;margin-bottom:8px;
}
.project-body h3{font-size:17px;font-weight:500;margin-bottom:8px;}
.project-body p{font-size:14.5px;color:var(--ink-soft);}
@media (max-width:900px){ .project-grid{grid-template-columns:1fr 1fr;} }
@media (max-width:600px){ .project-grid{grid-template-columns:1fr;} }

/* ---------- BUSINESS UNITS ---------- */
.unit-card{
  display:flex;justify-content:space-between;align-items:center;flex-wrap:wrap;gap:24px;
  background:var(--paper-light);border:1px solid var(--line);padding:40px 44px;
  transition:border-color .2s;
}
.unit-card:hover{border-color:var(--accent);}
.unit-card .unit-name{font-family:'Fraunces',serif;font-weight:500;font-size:22px;display:block;margin-bottom:6px;}
.unit-card .unit-desc{color:var(--ink-soft);font-size:14.5px;max-width:460px;}
.unit-card .unit-arrow{
  font-family:'IBM Plex Mono',monospace;font-size:13px;color:var(--accent);
  border:1px solid var(--accent);border-radius:2px;padding:10px 18px;white-space:nowrap;
}

/* ---------- LEGAL (Impressum / Datenschutz) ---------- */
.legal-section{padding:70px 0 40px;}
.legal-block{
  margin-bottom:40px;font-size:14px;color:var(--ink-soft);line-height:1.7;max-width:640px;
}
.legal-block h3{
  font-family:'Fraunces',serif;font-size:19px;font-weight:500;color:var(--ink);margin-bottom:14px;
}
.legal-block h4{
  font-family:'IBM Plex Mono',monospace;font-size:12px;letter-spacing:.04em;text-transform:uppercase;
  color:var(--accent);margin:20px 0 6px;
}
.legal-block p{margin-bottom:10px;}
.legal-block .reg-data{
  font-family:'IBM Plex Mono',monospace;font-size:13px;color:var(--ink);
  border-left:2px solid var(--line);padding-left:14px;margin:14px 0;
}
.legal-block a{color:var(--ink);text-decoration:underline;text-decoration-color:var(--line);}
.legal-block a:hover{text-decoration-color:var(--accent);}
