/* ===== Tokens ===== */
:root{
  --navy:#1a2541;
  --navy-deep:#111a2f;
  --green:#81bb29;
  --green-ink:#4f7a15;
  --paper:#f5f4f0;
  --paper-2:#e9e7e1;
  --white:#fff;
  --ink:#171d2b;
  --body:#333b4b;
  --muted:#5f6878;
  --rule:#d9dce2;
  --rule-strong:#b9bec8;
  --input-border:#8a92a2;
  --on-navy:#c9d1e0;
  --rule-dark:rgba(255,255,255,.16);
  --star:#f2b705;
  --error:#b42318;
  /* Schriftgrößen */
  --fs-body:1.0625rem;
  --fs-small:.95rem;
  --fs-xs:.875rem;
  --fs-label:.78rem;
  --fs-h3:1.25rem;
  --lh:1.6;
  /* Abstände */
  --space-1:.5rem;
  --space-2:.75rem;
  --space-3:1rem;
  --space-4:1.5rem;
  --space-5:2rem;
  --space-6:3rem;
  --pad-box:1.5rem;
  --radius:6px;
  --shadow:0 12px 30px rgba(23,29,43,.10);
  --font:Inter,"Segoe UI",system-ui,-apple-system,Roboto,"Helvetica Neue",Arial,sans-serif;
  --max:1200px;
  --gutter:20px;
  --header-h:64px;
  --cta-h:0px;
  --ease:cubic-bezier(.2,.7,.2,1);
}
@media (min-width:640px){:root{--pad-box:2rem}}
@media (min-width:768px){:root{--gutter:32px;--header-h:88px}}
@media (min-width:1024px){:root{--gutter:48px}}

/* ===== Basis ===== */
*,*::before,*::after{box-sizing:border-box}
html{-webkit-text-size-adjust:100%;scroll-padding-top:calc(var(--header-h) + 16px)}
@media (prefers-reduced-motion:no-preference){html{scroll-behavior:smooth}}
body{margin:0;overflow-x:clip;font-family:var(--font);font-size:var(--fs-body);line-height:var(--lh);color:var(--body);background:var(--white);-webkit-font-smoothing:antialiased}
img,svg{display:block;max-width:100%}
img{height:auto}
a{color:inherit}
button,input,select,textarea{font:inherit;color:inherit}
h1,h2,h3,p,ul,ol,dl,dd,figure,blockquote{margin:0}
ul,ol{padding:0;list-style:none}
address{font-style:normal}
small{font-size:var(--fs-xs)}
[id]{scroll-margin-top:calc(var(--header-h) + 16px)}
:focus-visible{outline:3px solid var(--green-ink);outline-offset:3px}
.on-dark :focus-visible{outline-color:var(--green)}
.sr-only{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0}
.anchor-top{position:absolute;top:0;left:0;width:0;height:0;scroll-margin-top:0}
.skip-link{position:absolute;left:16px;top:-120px;z-index:100;padding:12px 18px;background:var(--navy);color:#fff;font-weight:700;text-decoration:none;border-radius:var(--radius)}
.skip-link:focus{top:12px}
.icon{width:1.2em;height:1.2em;flex:none;fill:none;stroke:currentColor;stroke-width:2;stroke-linecap:round;stroke-linejoin:round}
.container{width:min(var(--max),100% - 2*var(--gutter));margin-inline:auto}
.section{padding:clamp(3.25rem,2.25rem + 3.5vw,6.5rem) 0}
.bg-paper{background:var(--paper)}
.on-dark{background:var(--navy);color:#fff}

/* ===== Typografie ===== */
h1,h2,h3{color:var(--navy);font-weight:800;line-height:1.15;letter-spacing:-.02em;-webkit-hyphens:auto;hyphens:auto;hyphenate-limit-chars:10 4 4;overflow-wrap:anywhere}
h1,h2{text-wrap:balance}
h1{font-size:clamp(1.7rem,.9rem + 4vw,2.6rem);line-height:1.06;letter-spacing:-.03em}
h2{font-size:clamp(1.6rem,1.2rem + 1.8vw,2.5rem);line-height:1.12;letter-spacing:-.025em}
h3{font-size:var(--fs-h3);line-height:1.3}
@media (min-width:768px){h1{font-size:clamp(2.4rem,1.3rem + 2.6vw,3.4rem)}}
.on-dark h1,.on-dark h2,.on-dark h3{color:#fff}
.label{display:flex;align-items:center;gap:var(--space-2);margin-bottom:var(--space-3);font-size:var(--fs-label);font-weight:700;letter-spacing:.14em;text-transform:uppercase;color:var(--muted)}
.label::before{content:"";width:28px;height:2px;flex:none;background:var(--green)}
.on-dark .label{color:var(--on-navy)}
.lead{font-size:clamp(1.1rem,1rem + .4vw,1.25rem);line-height:1.55;color:var(--muted);max-width:56ch}
.on-dark .lead{color:var(--on-navy)}
.section-head{max-width:66ch;margin-bottom:clamp(2rem,1.5rem + 2vw,3rem)}
.section-head h2+p{margin-top:var(--space-3)}
.section-head p:not(.label){color:var(--muted);max-width:60ch}
.text-link{font-weight:700;color:var(--navy);text-decoration:underline;text-decoration-color:var(--green);text-decoration-thickness:2px;text-underline-offset:3px;white-space:nowrap}
.text-link:hover{color:var(--green-ink)}

/* ===== Buttons ===== */
.btn{display:inline-flex;align-items:center;justify-content:center;gap:.6rem;min-height:50px;padding:.75rem 1.5rem;border:2px solid var(--navy);border-radius:var(--radius);background:var(--navy);color:#fff;font-weight:700;font-size:1rem;line-height:1.2;text-decoration:none;cursor:pointer;text-align:center}
.btn:hover{background:var(--navy-deep);border-color:var(--navy-deep)}
.btn-outline{background:transparent;color:var(--navy)}
.btn-outline:hover{background:var(--navy);color:#fff}
.btn-green{background:var(--green);border-color:var(--green);color:var(--navy)}
.btn-green:hover{background:#90cb36;border-color:#90cb36}
.btn-outline-light{background:transparent;border-color:rgba(255,255,255,.6);color:#fff}
.btn-outline-light:hover{background:rgba(255,255,255,.08);border-color:#fff}
.btn-lg{min-height:56px;padding:1rem 1.75rem;font-size:1.05rem}
.btn-block{width:100%}
.btn.is-busy{opacity:.7;cursor:progress}
.cta-group{display:flex;flex-wrap:wrap;gap:var(--space-2)}
@media (max-width:479px){.cta-group .btn{width:100%}}

/* ===== Header ===== */
.site-header{position:sticky;top:0;z-index:50;height:var(--header-h);background:#fff;border-bottom:1px solid var(--rule)}
.site-header.is-scrolled{box-shadow:0 6px 24px rgba(23,29,43,.08)}
.header-inner{height:100%;display:flex;align-items:center;justify-content:space-between;gap:var(--space-4)}
.brand{display:inline-flex;align-items:center;min-height:44px;min-width:0}
.brand img{width:160px}
@media (min-width:360px){.brand img{width:172px}}
@media (min-width:768px){.brand img{width:200px}}
@media (min-width:1280px){.brand img{width:230px}}
.header-actions{display:flex;align-items:center;gap:var(--space-1);flex:none}
.icon-btn{display:inline-flex;align-items:center;justify-content:center;width:44px;height:44px;border:1px solid var(--rule-strong);border-radius:var(--radius);background:#fff;color:var(--navy);cursor:pointer;text-decoration:none}
.icon-btn .icon{width:22px;height:22px}
.phone-mobile{background:var(--navy);border-color:var(--navy);color:#fff}
.btn-header{display:none}
.menu-toggle .icon-close{display:none}
.menu-toggle[aria-expanded="true"] .icon-menu{display:none}
.menu-toggle[aria-expanded="true"] .icon-close{display:block}
.main-nav{position:absolute;top:100%;left:0;right:0;display:none;background:#fff;border-bottom:1px solid var(--rule);box-shadow:0 16px 32px rgba(23,29,43,.12);max-height:calc(100dvh - var(--header-h));overflow:auto}
.main-nav.is-open{display:block}
.main-nav ul{padding:.25rem var(--gutter) 0}
.main-nav li a{display:flex;align-items:center;min-height:50px;padding:.5rem .25rem;border-bottom:1px solid var(--rule);font-weight:600;color:var(--ink);text-decoration:none}
.main-nav li a[aria-current]{color:var(--green-ink)}
.nav-cta{display:grid;padding:var(--space-3) var(--gutter) var(--space-4)}
@media (min-width:1024px){
  .main-nav{position:static;display:flex;align-items:center;background:none;border:0;box-shadow:none;max-height:none;overflow:visible}
  .main-nav ul{display:flex;gap:var(--space-4);padding:0}
  .main-nav li a{position:relative;min-height:44px;padding:.25rem 0;border:0;font-size:var(--fs-small);color:var(--ink);white-space:nowrap}
  .main-nav li a::after{content:"";position:absolute;left:0;right:0;bottom:6px;height:2px;background:var(--green);transform:scaleX(0);transform-origin:left}
  .main-nav li a:hover,.main-nav li a[aria-current]{color:var(--navy)}
  .main-nav li a:hover::after,.main-nav li a[aria-current]::after{transform:scaleX(1)}
  .nav-cta,.phone-mobile,.menu-toggle{display:none}
  .btn-header{display:inline-flex;min-height:44px;padding:.5rem 1.1rem;font-size:var(--fs-small);font-variant-numeric:tabular-nums;white-space:nowrap}
}

/* ===== Hero ===== */
.hero{position:relative;background:var(--navy-deep);color:#fff;overflow:hidden}
.hero-bg{position:absolute;top:0;left:0;right:0;height:min(150vw,760px);z-index:0;overflow:hidden}
.hero-bg img{width:100%;height:100%;object-fit:cover;object-position:50% 0}
.hero-bg::after{content:"";position:absolute;inset:0;z-index:1;background:linear-gradient(180deg,rgba(17,26,47,0) 0%,rgba(17,26,47,.06) 30%,rgba(17,26,47,.55) 46%,rgba(17,26,47,.86) 60%,#111a2f 88%)}
.hero-inner{position:relative;z-index:1;padding:min(96vw,420px) 0 var(--space-5)}
@supports (height:1svh){.hero-inner{padding-top:min(96vw,50svh)}}
.hero-copy{max-width:640px}
.hero .label{color:var(--on-navy)}
.hero h1{margin-bottom:var(--space-3);color:#fff}
.hero h1 .dot{color:var(--green)}
.hero .lead{color:#e6eaf2}
.hero .cta-group{margin-top:var(--space-4)}
.hero-rating{display:inline-flex;align-items:center;gap:.6rem;margin-top:var(--space-4);font-size:var(--fs-small);color:#e6eaf2}
.hero-rating a{font-weight:700;color:#fff}
@media (min-width:1024px){
  .hero-bg{height:auto;bottom:0}
  .hero-bg img{object-position:68% 35%}
  .hero-bg::after{background:linear-gradient(90deg,rgba(17,26,47,.94) 0%,rgba(17,26,47,.86) 30%,rgba(17,26,47,.45) 56%,rgba(17,26,47,.08) 100%),linear-gradient(180deg,rgba(17,26,47,0) 55%,rgba(17,26,47,.55) 100%)}
  .hero-inner{display:flex;align-items:center;min-height:clamp(600px,78vh,820px);padding:4rem 0}
  .hero-copy{max-width:660px}
}

/* ===== Faktenleiste ===== */
.facts{background:var(--navy);color:#fff;border-top:1px solid var(--rule-dark)}
.facts ul{display:grid;grid-template-columns:minmax(0,1fr)}
.facts li{display:flex;align-items:center;gap:.75rem;min-width:0;padding:.65rem 0;border-top:1px solid var(--rule-dark);font-weight:600;font-size:var(--fs-small);line-height:1.35}
.facts li:first-child{border-top:0}
.facts .icon{width:22px;height:22px;color:var(--green)}
@media (min-width:360px){
  .facts ul{grid-template-columns:repeat(2,minmax(0,1fr));column-gap:var(--space-4)}
  .facts li:nth-child(2){border-top:0}
}
@media (min-width:1024px){
  .facts ul{grid-template-columns:repeat(4,minmax(0,1fr));column-gap:0}
  .facts li{padding:var(--space-4) var(--space-4);border-top:0;border-left:1px solid var(--rule-dark)}
  .facts li:first-child{padding-left:0;border-left:0}
}

/* ===== Leistungen ===== */
.services{display:grid;gap:clamp(2.5rem,2rem + 2vw,4rem)}
.service{display:grid;gap:var(--space-3);min-width:0}
.service-media{overflow:hidden;border-radius:var(--radius);background:#dfe3e8}
.service-media img{width:100%;aspect-ratio:16/10;object-fit:cover}
.service h3{margin-bottom:var(--space-2);font-size:clamp(1.25rem,1.1rem + .6vw,1.6rem)}
.service-body>p{margin-bottom:var(--space-3);color:var(--muted);max-width:46ch}
.check-list{display:grid;gap:.15rem}
.check-list li{position:relative;padding:.3rem 0 .3rem 1.8rem}
.check-list .icon{position:absolute;left:0;top:.55rem;width:1.1em;height:1.1em;color:var(--green-ink);stroke-width:2.5}
@media (min-width:480px) and (max-width:767px){.service .check-list{grid-template-columns:1fr 1fr;column-gap:var(--space-3)}}
@media (min-width:768px){
  .services{gap:clamp(3rem,2rem + 3.5vw,5.5rem)}
  .service{grid-template-columns:minmax(0,7fr) minmax(0,5fr);gap:var(--space-6);align-items:center}
  .service:nth-child(even) .service-media{order:2}
  .service-media img{aspect-ratio:3/2}
}
.services-compact{display:grid;gap:var(--space-4);margin-top:clamp(3rem,2rem + 3vw,5rem);padding-top:var(--space-5);border-top:1px solid var(--rule)}
@media (min-width:768px){.services-compact{grid-template-columns:repeat(3,minmax(0,1fr));gap:var(--space-5)}}
.services-compact>div{min-width:0}
.services-compact>.icon,.services-compact>div>.icon{width:28px;height:28px;margin-bottom:var(--space-2);color:var(--green-ink)}
.services-compact h3{margin-bottom:var(--space-1)}
.services-compact p{color:var(--muted);font-size:var(--fs-small)}
.services-more{margin-top:var(--space-5);color:var(--muted);max-width:70ch}
.services-more strong{color:var(--navy)}
.notice{display:flex;gap:.6rem;align-items:flex-start;margin-top:var(--space-4);padding-top:var(--space-4);border-top:1px solid var(--rule);font-size:var(--fs-xs);line-height:1.55;color:var(--muted);max-width:80ch}
.notice .icon{flex:none;width:18px;height:18px;margin-top:.2rem}

/* ===== Für wen ===== */
.audience{display:grid;gap:var(--space-5)}
@media (min-width:768px){
  .audience{grid-template-columns:1fr 1fr;gap:0}
  .audience>div{padding-right:var(--space-6)}
  .audience>div+div{padding:0 0 0 var(--space-6);border-left:1px solid var(--rule-strong)}
}
.audience h3{display:flex;align-items:center;gap:.6rem;margin-bottom:var(--space-2)}
.audience h3 .icon{width:24px;height:24px;color:var(--green-ink)}
.audience>div>p{margin-bottom:var(--space-3);color:var(--muted);max-width:46ch}

/* ===== Ablauf ===== */
.steps{display:grid;gap:var(--space-4)}
@media (min-width:768px){.steps{grid-template-columns:repeat(3,minmax(0,1fr));gap:var(--space-5)}}
.step{min-width:0;padding-top:var(--space-3);border-top:2px solid var(--navy)}
.step>.icon{width:26px;height:26px;margin-bottom:var(--space-2);color:var(--green-ink)}
.step h3{margin-bottom:var(--space-1)}
.step p{color:var(--muted);font-size:var(--fs-small)}
.steps-note{margin-top:var(--space-5);color:var(--muted)}

/* ===== Über mich ===== */
.about{display:grid;gap:var(--space-5)}
@media (min-width:900px){.about{grid-template-columns:minmax(280px,5fr) 7fr;gap:5rem;align-items:center}}
.portrait{position:relative;width:100%;max-width:460px;aspect-ratio:1/1;border-radius:var(--radius);background:var(--paper-2);overflow:hidden}
.portrait picture{position:absolute;left:50%;bottom:0;width:78%;transform:translateX(-50%)}
@media (min-width:900px){.portrait{aspect-ratio:4/5}.portrait picture{width:98%}}
.portrait img{width:100%}
.portrait figcaption{position:absolute;left:0;bottom:0;padding:.55rem 1rem;background:var(--navy);color:#fff;font-size:var(--fs-xs);font-weight:700;border-radius:0 var(--radius) 0 0}
.about-copy h2{margin-bottom:var(--space-3)}
.about-copy p:not(.label){margin-bottom:var(--space-3);max-width:60ch}
.trust{display:grid;gap:var(--space-3);margin-top:var(--space-4);padding-top:var(--space-4);border-top:1px solid var(--rule-strong)}
.trust li{display:flex;gap:var(--space-3);align-items:flex-start}
.trust>li>.icon{flex:none;width:24px;height:24px;margin-top:.15rem;color:var(--green-ink)}
.trust strong{display:block;color:var(--navy)}
.trust span{font-size:var(--fs-small);color:var(--muted)}

/* ===== Google-Bewertungen ===== */
.reviews{border-top:1px solid var(--rule)}
.reviews-head{display:flex;flex-wrap:wrap;align-items:center;justify-content:space-between;gap:var(--space-3) var(--space-5);margin-bottom:var(--space-4)}
.rating{display:flex;align-items:center;gap:var(--space-2)}
.rating .google{width:40px;height:40px;fill:none;stroke:none}
.rating .google path{fill:currentColor}
.rating .google path:nth-child(1){color:#4285f4}
.rating .google path:nth-child(2){color:#34a853}
.rating .google path:nth-child(3){color:#fbbc05}
.rating .google path:nth-child(4){color:#ea4335}
.rating h2{font-size:var(--fs-h3);line-height:1.2}
.rating span.meta{font-size:var(--fs-xs);color:var(--muted)}
.stars{display:inline-flex;gap:2px;vertical-align:middle}
.star{width:18px;height:18px;fill:var(--rule);stroke:none}
.star-full{fill:var(--star)}
.star-half{fill:url(#star-half)}
.review-grid{display:grid;gap:var(--space-4)}
@media (min-width:640px){.review-grid{grid-template-columns:1fr 1fr}}
@media (min-width:1024px){.review-grid{grid-template-columns:repeat(3,1fr)}}
@media (max-width:639px){.review-grid .review:nth-child(n+4){display:none}}
.review{display:flex;flex-direction:column;gap:var(--space-2);padding:var(--space-4) 0 0;border-top:1px solid var(--rule)}
.review-author{display:flex;align-items:center;gap:.8rem}
.review-author .initial{display:inline-flex;align-items:center;justify-content:center;width:40px;height:40px;flex:none;border-radius:50%;background:var(--navy);color:#fff;font-weight:700}
.review-author strong{display:block;color:var(--navy);line-height:1.2}
.review-author span{font-size:var(--fs-xs);color:var(--muted)}
.review p{font-size:var(--fs-small);color:var(--body);display:-webkit-box;-webkit-line-clamp:6;-webkit-box-orient:vertical;overflow:hidden}

/* ===== Einsatzgebiet ===== */
.area-section{border-top:1px solid var(--rule)}
.area{display:grid;gap:var(--space-4)}
@media (min-width:900px){.area{grid-template-columns:1.1fr .9fr;gap:4rem;align-items:center}}
.area h2{margin-bottom:var(--space-3)}
.area p:not(.label){color:var(--muted);max-width:56ch}
.area-list{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:0 var(--space-4)}
.area-list li{display:flex;flex-direction:column;gap:.1rem;min-width:0;padding:var(--space-2) 0;border-top:1px solid var(--rule-strong)}
.area-list strong{color:var(--navy)}
.area-list span{font-size:var(--fs-xs);color:var(--muted)}

/* ===== FAQ ===== */
.faq-list{max-width:860px;border-top:1px solid var(--rule-strong)}
.faq{border-bottom:1px solid var(--rule-strong)}
.faq summary{display:flex;align-items:center;justify-content:space-between;gap:var(--space-3);min-height:60px;padding:var(--space-3) 0;font-weight:700;color:var(--navy);cursor:pointer;list-style:none}
.faq summary::-webkit-details-marker{display:none}
.faq summary .icon{flex:none;color:var(--green-ink)}
.faq[open] summary .icon{transform:rotate(45deg)}
.faq-body{padding:0 0 var(--space-4);max-width:70ch;color:var(--body)}
.faq-body a{font-weight:700;color:var(--navy)}

/* ===== Kontakt ===== */
.contact-grid{display:grid;gap:var(--space-5)}
@media (min-width:1024px){.contact-grid{grid-template-columns:1fr 1fr;gap:5rem;align-items:start}}
.contact-copy .lead{margin-top:var(--space-3)}
.contact-direct{margin-top:var(--space-4);border-top:1px solid var(--rule-dark)}
@media (min-width:768px){.contact-direct{margin-top:var(--space-5)}}
.contact-direct>div{display:flex;gap:var(--space-3);align-items:flex-start;padding:var(--space-3) 0;border-bottom:1px solid var(--rule-dark)}
.contact-direct>div>.icon{flex:none;width:24px;height:24px;margin-top:.45rem;color:var(--green)}
.contact-direct>div>div{min-width:0}
.contact-direct .k{display:block;margin-bottom:.25rem;font-size:var(--fs-label);font-weight:700;letter-spacing:.12em;text-transform:uppercase;color:var(--on-navy)}
.contact-direct .v{display:inline-block;padding:.1rem 0;font-size:clamp(1.25rem,1rem + 1.2vw,1.8rem);font-weight:800;letter-spacing:-.01em;color:#fff;text-decoration:none;overflow-wrap:anywhere;line-height:1.25}
.contact-direct a.v:hover{color:var(--green);text-decoration:underline}
.contact-direct .v-address{font-size:var(--fs-body);font-weight:600;color:#fff}
.contact-form{padding:var(--pad-box);background:#fff;color:var(--body);border-radius:var(--radius);box-shadow:var(--shadow)}
.contact-form h3{margin-bottom:var(--space-1);color:var(--navy)}
.form-intro{margin-bottom:var(--space-4);font-size:var(--fs-small);color:var(--muted)}
.form-grid{display:grid;gap:var(--space-3)}
@media (min-width:640px){.form-grid{grid-template-columns:1fr 1fr}.field-full{grid-column:1/-1}}
.field{min-width:0}
.field label{display:block;margin-bottom:.35rem;font-size:var(--fs-small);font-weight:700;color:var(--navy)}
.field input,.field select,.field textarea{width:100%;min-height:50px;padding:.75rem .9rem;border:1px solid var(--input-border);border-radius:var(--radius);background:#fff;color:var(--ink)}
.field textarea{min-height:150px;resize:vertical}
.field input:focus-visible,.field select:focus-visible,.field textarea:focus-visible{outline:3px solid var(--green-ink);outline-offset:1px;border-color:var(--navy)}
.field [aria-invalid="true"]{border-color:var(--error);border-width:2px}
.field-error{margin-top:.35rem;font-size:var(--fs-xs);font-weight:600;color:var(--error)}
.consent{display:flex;gap:.7rem;align-items:flex-start}
.consent input{flex:none;width:20px;height:20px;margin:.2rem 0 0;accent-color:var(--navy)}
.consent label{margin:0;font-size:var(--fs-xs);font-weight:500;color:var(--muted)}
.consent label a{color:var(--navy);font-weight:600}
.hp{position:absolute;left:-10000px;top:auto;width:1px;height:1px;overflow:hidden}
.form-actions{margin-top:var(--space-4)}
.form-note{margin-top:var(--space-2);font-size:var(--fs-xs);color:var(--muted)}
.form-status{margin-bottom:var(--space-4);padding:var(--space-3) var(--space-3);border:1px solid var(--rule-strong);border-left:4px solid var(--green);border-radius:var(--radius);background:#f7fbf1;font-size:var(--fs-small);color:var(--body)}
.form-status.is-error{border-left-color:var(--error);background:#fdf4f3}
.form-status.is-info{border-left-color:var(--navy);background:var(--paper)}
.form-status[hidden]{display:none}
.form-status a{font-weight:700;color:var(--navy)}

/* ===== Unterseiten (Impressum, Datenschutz, 404) ===== */
.page-hero{padding:clamp(2.5rem,2rem + 2vw,4rem) 0 clamp(1.5rem,1rem + 1.5vw,2.5rem);background:var(--paper);border-bottom:1px solid var(--rule)}
.page-hero h1{max-width:24ch}
.page-hero p{margin-top:var(--space-2);color:var(--muted);max-width:60ch}
.legal{max-width:78ch;font-size:1rem}
.legal h2{margin:var(--space-5) 0 var(--space-2);font-size:1.4rem}
.legal h2:first-child{margin-top:0}
.legal p,.legal ul,.legal address{margin-bottom:var(--space-3)}
.legal ul{padding-left:1.25rem;list-style:disc}
.legal li{margin:.3rem 0}
.legal a{color:var(--navy);font-weight:600}
.legal-meta{margin-top:var(--space-5);padding-top:var(--space-3);border-top:1px solid var(--rule);font-size:var(--fs-xs);color:var(--muted)}

/* ===== Footer ===== */
.site-footer{padding:var(--space-6) 0 calc(var(--space-4) + var(--cta-h));background:var(--paper);color:var(--muted);border-top:1px solid var(--rule)}
.footer-grid{display:grid;gap:var(--space-5);padding-bottom:var(--space-5);border-bottom:1px solid var(--rule)}
@media (min-width:640px){.footer-grid{grid-template-columns:1fr 1fr}.footer-brand{grid-column:1/-1}}
@media (min-width:1024px){.footer-grid{grid-template-columns:1.6fr 1fr 1fr}.footer-brand{grid-column:auto}}
.footer-brand img{width:200px;margin-bottom:var(--space-3)}
.footer-brand p{max-width:44ch;font-size:var(--fs-small)}
.footer-contact{display:grid;gap:.15rem;margin-top:var(--space-3)}
.footer-contact a,.footer-contact span{display:inline-flex;align-items:center;gap:.5rem;min-height:36px;font-size:var(--fs-small)}
.footer-contact .icon{color:var(--green-ink)}
.footer-nav{display:none}
@media (min-width:640px){.footer-nav{display:block}}
.footer-title{margin-bottom:var(--space-1);font-size:var(--fs-label);font-weight:700;letter-spacing:.12em;text-transform:uppercase;color:var(--navy)}
.site-footer a{color:var(--navy);text-decoration:none}
.site-footer a:hover{color:var(--green-ink);text-decoration:underline}
.footer-list li a{display:inline-flex;align-items:center;min-height:36px;font-size:var(--fs-small);overflow-wrap:anywhere}
.footer-bottom{display:flex;flex-wrap:wrap;justify-content:space-between;align-items:center;gap:.5rem var(--space-4);padding-top:var(--space-3);font-size:var(--fs-xs)}
.footer-bottom ul{display:flex;flex-wrap:wrap;gap:.25rem var(--space-4)}
.footer-bottom>ul a{display:inline-flex;align-items:center;min-height:44px}
.footer-meta{display:grid;gap:.1rem}
.footer-credit{font-size:.8rem;color:var(--muted)}
.footer-credit a{color:var(--muted);text-decoration:underline;text-decoration-color:var(--rule-strong);text-underline-offset:3px}
.footer-credit a:hover{color:var(--navy);text-decoration-color:var(--green)}

/* ===== Mobile Kontaktleiste ===== */
.mobile-cta{display:none}
@media (max-width:767px) and (min-height:500px){
  :root{--cta-h:calc(72px + env(safe-area-inset-bottom,0px))}
  .mobile-cta{position:fixed;left:0;right:0;bottom:0;z-index:40;display:grid;grid-template-columns:1fr 1fr;gap:.5rem;padding:.6rem 16px calc(.6rem + env(safe-area-inset-bottom,0px));background:#fff;border-top:1px solid var(--rule);box-shadow:0 -6px 20px rgba(23,29,43,.08)}
  .mobile-cta .btn{min-height:48px;padding:.5rem .6rem;font-size:var(--fs-small);gap:.4rem}
  .mobile-cta.is-hidden{transform:translateY(120%);box-shadow:none}
}

/* ===== Dezente Übergänge (nur ohne reduzierte Bewegung) ===== */
@media (prefers-reduced-motion:no-preference){
  .btn,.icon-btn{transition:background-color .18s ease,border-color .18s ease,color .18s ease}
  .main-nav li a::after{transition:transform .25s var(--ease)}
  .site-header{transition:box-shadow .25s ease}
  .faq summary .icon{transition:transform .25s var(--ease)}
  .faq-body{animation:fade-in .3s var(--ease)}
  .mobile-cta{transition:transform .3s var(--ease),box-shadow .3s ease}
  html.js .hero-copy{animation:rise .6s var(--ease) both}
  html.js .reveal{opacity:0;transform:translateY(12px);transition:opacity .5s ease,transform .5s var(--ease)}
  html.js .reveal.is-visible{opacity:1;transform:none}
}
@keyframes rise{from{opacity:0;transform:translateY(12px)}to{opacity:1;transform:none}}
@keyframes fade-in{from{opacity:0}to{opacity:1}}

@media print{
  .site-header,.mobile-cta,.skip-link,.menu-toggle,.cta-group{display:none}
  .section{padding:1.5rem 0}
  .on-dark{background:none;color:var(--ink)}
  .on-dark h2,.on-dark h3,.contact-direct .v{color:var(--navy)}
}
