
:root {
  --ink: #1f2933;
  --muted: #66727e;
  --accent: #3d7181;
  --accent-dark: #2d5967;
  --soft: #f3f7f8;
  --line: #dbe5e8;
  --white: #fff;
  --max: 1120px;
}
* { box-sizing: border-box; }
html { scroll-behavior: smooth; }
body {
  margin: 0;
  font-family: -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, Arial, sans-serif;
  color: var(--ink);
  line-height: 1.7;
  background: #fff;
}
a { color: var(--accent-dark); }
.container { width: min(var(--max), calc(100% - 40px)); margin: 0 auto; }
.site-header {
  position: sticky; top: 0; z-index: 10;
  background: rgba(255,255,255,.96);
  border-bottom: 1px solid var(--line);
  backdrop-filter: blur(10px);
}
.header-inner { min-height: 82px; display:flex; align-items:center; justify-content:space-between; gap: 24px; }
.brand img { display:block; width:min(300px, 62vw); height:auto; }
.header-contact, .button {
  display:inline-block; text-decoration:none; border-radius:999px;
  padding: 10px 20px; font-weight:600;
}
.header-contact { border:1px solid var(--accent); }
.button { background:var(--accent); color:white; margin-top:16px; }
.button:hover { background:var(--accent-dark); }
.hero { padding: 76px 0 64px; background: linear-gradient(135deg, #f4f8f9, #fff); }
.hero-grid { display:grid; grid-template-columns: 1.15fr .85fr; gap: 64px; align-items:center; }
.eyebrow { text-transform:uppercase; letter-spacing:.14em; font-size:.78rem; font-weight:700; color:var(--accent); margin:0 0 12px; }
h1,h2,h3 { line-height:1.2; margin-top:0; }
h1 { font-size:clamp(2.5rem, 6vw, 4.6rem); letter-spacing:-.04em; margin-bottom:12px; }
h2 { font-size:clamp(1.8rem, 3vw, 2.5rem); }
.lead { font-size:1.35rem; margin:0 0 10px; }
.hero-text { max-width: 600px; color:var(--muted); font-size:1.1rem; }
.toc-card { background:white; border:1px solid var(--line); border-radius:18px; padding:28px 30px; box-shadow:0 14px 40px rgba(34,62,72,.08); }
.toc-card h2 { font-size:1.25rem; margin-bottom:14px; }
.toc-card ol { margin:0; padding-left:1.4rem; }
.toc-card li { padding:4px 0; }
.toc-card a { text-decoration:none; }
.content-section { position:relative; padding: 76px 0 72px; border-bottom:1px solid var(--line); scroll-margin-top:100px; }
.content-section:nth-of-type(even) { background:var(--soft); }
.section-heading { display:flex; align-items:center; gap:16px; margin-bottom:26px; }
.section-heading h2 { margin:0; }
.section-number { width:12px; height:48px; border-radius:8px; background:var(--accent); display:block; }
.content-card { max-width: 900px; font-size:1.05rem; }
.content-card p { margin:0 0 1.1em; }
.content-card ul, .content-card ol { padding-left:1.35rem; margin: 0 0 1.2em; }
.content-card li { margin:.35em 0; }
.content-card h1, .content-card h2 { display:none; }
.content-card h3, .content-card h4 { margin-top:1.8em; }
.back-top {
  position:absolute; right:0; bottom:24px; width:42px; height:42px;
  border-radius:50%; display:grid; place-items:center; text-decoration:none;
  background:var(--accent); color:#fff; font-size:1.2rem; font-weight:700;
}
.contact-section { padding:72px 0 36px; background:#eef5f6; scroll-margin-top:100px; }
.contact-card { display:grid; grid-template-columns: 1fr 1fr; gap:40px; align-items:start; padding:38px; background:white; border-radius:18px; border:1px solid var(--line); }
.contact-card h2 { margin-bottom:8px; }
.contact-details { display:flex; flex-direction:column; gap:8px; }
.contact-details a { font-weight:600; }
.footer-links { display:flex; gap:22px; padding:26px 0 0; font-size:.92rem; }
.site-footer { padding:20px 0; color:var(--muted); font-size:.9rem; border-top:1px solid var(--line); }
@media (max-width: 800px) {
  .hero-grid, .contact-card { grid-template-columns:1fr; gap:32px; }
  .hero { padding-top:52px; }
  .header-inner { min-height:70px; }
  .header-contact { padding:8px 14px; font-size:.9rem; }
  .content-section { padding:56px 0 64px; }
  .back-top { right:0; }
}
@media (max-width: 480px) {
  .container { width: min(var(--max), calc(100% - 28px)); }
  .brand img { width:230px; }
  .contact-card { padding:24px; }
}

/* Über mich */
.about-grid {
  display: grid;
  grid-template-columns: minmax(220px, 300px) 1fr;
  gap: 2.5rem;
  align-items: start;
}
.about-photo img {
  display: block;
  width: 100%;
  max-width: 280px;
  max-height: 360px;
  object-fit: cover;
  border-radius: 4px;
}
.about-text h2 { margin-top: 0; }

/* Rechtliche Hinweise */
.legal-content h3 {
  margin-top: 2rem;
  margin-bottom: .8rem;
}
.legal-content h4 {
  margin-top: 1.5rem;
  margin-bottom: .5rem;
}
.legal-content p {
  margin: 0 0 1rem;
}
.legal-content a {
  overflow-wrap: anywhere;
}

@media (max-width: 700px) {
  .about-grid {
    grid-template-columns: 1fr;
  }
  .about-photo img {
    max-width: 280px;
  }
}
