:root { --blue:#5997b7; --green:#86b96f; --ink:#27292b; --muted:#f4f6f8; --line:#e9ecee; }
* { box-sizing:border-box; }
html { scroll-behavior:smooth; }
body { margin:0; background:var(--muted); color:var(--ink); font-family:"Trebuchet MS", "Avenir Next", Arial, sans-serif; font-size:18px; line-height:1.62; }
a { color:var(--blue); text-decoration:none; text-underline-offset:.18em; }
a:hover, a:focus-visible { text-decoration:underline; }
.skip-link { position:fixed; left:1rem; top:-5rem; z-index:20; background:#fff; padding:.6rem 1rem; }
.skip-link:focus { top:1rem; }
.site-header { width:min(1180px, calc(100% - 48px)); margin:0 auto; min-height:120px; display:flex; align-items:center; justify-content:space-between; gap:2rem; }
.logo-link img { display:block; width:205px; height:60px; }
.desktop-nav { display:flex; gap:2.5rem; }
.desktop-nav a { color:#656568; letter-spacing:.08em; }
.mobile-nav { display:none; position:relative; }
.page-shell { width:min(1180px, calc(100% - 48px)); margin:0 auto; display:grid; grid-template-columns:minmax(0, 820px) 1fr; gap:60px; align-items:start; }
.content-card { background:#fff; padding:60px 40px; min-height:600px; }
.side-nav { padding-top:38px; display:flex; flex-direction:column; gap:.4rem; }
.side-nav a { font-size:1.05rem; }
.intro { display:flex; align-items:center; gap:38px; margin:18px 0 78px; }
.intro img { display:block; width:48%; max-width:352px; height:auto; }
blockquote { margin:0; padding-left:24px; border-left:5px solid #efefef; font-size:1.45rem; line-height:1.65; font-style:italic; }
blockquote cite { display:block; margin-top:18px; font-style:italic; }
h1, h2, h3 { line-height:1.25; }
.home-title { font-size:2rem; margin:0 0 72px; letter-spacing:.015em; }
.service-grid { display:grid; grid-template-columns:1fr 1fr; gap:48px 38px; }
.service-grid h2 { font-size:1.32rem; font-weight:400; color:var(--green); margin:0 0 14px; }
.service-grid h2 a, .more { color:var(--green); }
.service-grid p { margin:0 0 12px; }
.prose { max-width:720px; }
.prose h1 { font-size:2.05rem; margin:0 0 34px; }
.prose h2 { font-size:1.25rem; margin:32px 0 10px; }
.prose p { margin:0 0 1.15rem; }
.prose li + li { margin-top:.55rem; }
.prose address { font-style:normal; }
.contact-link { margin-top:42px !important; }
.contact-link a, .button-link { display:inline-block; padding:.68rem 1rem; background:var(--green); color:#13200f; font-weight:700; }
.contact-form { display:grid; gap:18px; margin-top:30px; }
.contact-form label { display:grid; gap:6px; font-weight:700; }
.contact-form input, .contact-form textarea { width:100%; border:1px solid #bcc5ca; background:#fff; padding:.75rem; font:inherit; border-radius:2px; }
.contact-form input:focus, .contact-form textarea:focus { outline:3px solid rgba(89,151,183,.25); border-color:var(--blue); }
.contact-form button { justify-self:start; border:0; background:var(--green); color:#13200f; padding:.8rem 1.2rem; font:inherit; font-weight:700; cursor:pointer; }
.form-note { min-height:1.5em; font-size:.92rem; }
footer { width:min(1180px, calc(100% - 48px)); margin:50px auto 70px; font-size:.9rem; color:#667; display:flex; justify-content:space-between; gap:2rem; }
footer nav { display:flex; flex-direction:column; }
.error-page { text-align:center; margin:4rem auto; }
.error-code { color:var(--green); font-size:4rem; line-height:1; font-weight:700; margin:0 !important; }
@media (max-width:850px) {
  body { font-size:17px; }
  .site-header { min-height:96px; width:min(100% - 32px, 720px); }
  .logo-link img { width:164px; height:auto; }
  .desktop-nav { display:none; }
  .mobile-nav { display:block; }
  .mobile-nav summary { cursor:pointer; color:#555; }
  .mobile-nav nav { position:absolute; right:0; top:2.4rem; background:#fff; box-shadow:0 12px 30px rgba(0,0,0,.12); min-width:200px; padding:12px; display:flex; flex-direction:column; z-index:10; }
  .mobile-nav a { padding:.45rem .65rem; }
  .page-shell { width:min(100% - 32px, 720px); display:block; }
  .content-card { padding:36px 26px; }
  .side-nav { padding:30px 26px 0; gap:.5rem; }
  .side-nav::before { content:"Leistungen im Überblick"; color:var(--ink); font-weight:700; margin-bottom:.35rem; }
  .intro { margin:0 0 48px; gap:24px; }
  blockquote { font-size:1.15rem; }
  .home-title { font-size:1.65rem; margin-bottom:48px; }
  footer { width:min(100% - 32px, 720px); }
}
@media (max-width:560px) {
  .intro { align-items:stretch; flex-direction:column; }
  .intro img { width:100%; max-width:none; }
  .service-grid { grid-template-columns:1fr; gap:34px; }
  .content-card { padding:30px 20px; }
  .prose h1 { font-size:1.7rem; overflow-wrap:anywhere; }
  footer { flex-direction:column; }
}
@media print { .site-header, .side-nav, footer, .contact-link, .contact-form { display:none; } body { background:#fff; color:#000; } .page-shell { display:block; width:100%; } .content-card { padding:0; } }

.menu-button{display:none;border:0;background:transparent;font:inherit;color:#555;cursor:pointer}.mobile-nav{display:none}.eyebrow{margin:0 0 .4rem!important;color:var(--green);font-weight:700;letter-spacing:.06em;text-transform:uppercase;font-size:.82rem}.contact-intro{font-size:1.12rem;max-width:38rem}.contact-actions{display:flex;flex-direction:column;align-items:flex-start;gap:.8rem;margin:2rem 0 2.5rem}.email-button{display:inline-block;background:var(--green);color:#14200f;padding:.9rem 1.3rem;font-weight:700;border-radius:2px}.email-button:hover,.email-button:focus-visible{background:#77a862;text-decoration:none}.text-link{font-size:.95rem}.request-hints{padding:1.4rem 1.6rem;background:var(--muted);border-left:4px solid var(--blue);margin:0 0 2.5rem}.request-hints h2{margin-top:0}.request-hints ul{padding-left:1.2rem}.contact-details{display:grid;grid-template-columns:1fr 1fr;gap:2rem;border-top:1px solid var(--line);padding-top:1rem}.privacy-note{margin-top:2rem!important;color:#687078;font-size:.88rem}@media(max-width:850px){.menu-button{display:block}.mobile-nav{position:absolute;right:16px;top:76px;background:#fff;box-shadow:0 12px 30px rgba(0,0,0,.12);min-width:200px;padding:12px;flex-direction:column;z-index:10}.mobile-nav.open{display:flex}.mobile-nav a{padding:.45rem .65rem}}@media(max-width:560px){.contact-details{grid-template-columns:1fr}.email-button{width:100%;text-align:center}}.legal-note{margin:1.5rem 0;padding:1.2rem 1.4rem;background:#fff8e7;border-left:4px solid #d7a62a}