:root {
  --bg:#ffffff;
  --text:#0b0b0f;
  --muted:#676b70;
  --line:#e7e9ec;
  --brand:#111111;
  --accent:#111111;
  --radius:12px;
  --shadow:0 10px 30px rgba(0,0,0,.06);
  --maxw:1100px;
}

*{box-sizing:border-box}
html{scroll-behavior:smooth}
body{
  margin:0;
  font-family: ui-sans-serif,system-ui,-apple-system,"Segoe UI",Roboto,Helvetica,Arial;
  color:var(--text);
  background:var(--bg);
  line-height:1.5;
}
img,video{max-width:100%;height:auto;display:block}

.container{max-width:var(--maxw);margin:0 auto;padding:0 20px}
.section{padding:72px 0}
.section-head{display:flex;align-items:baseline;justify-content:space-between;gap:16px;margin-bottom:20px}
.section h2{margin:0;font-size:clamp(24px,3vw,34px)}
.muted{color:var(--muted)}
.center{text-align:center}

/* Header/Nav */
.site-header{position:sticky;top:0;z-index:50;background:var(--brand);color:#fff;border-bottom:1px solid #000}
.nav{display:flex;align-items:center;justify-content:space-between;gap:16px;height:64px}
.brand img{height:38px;width:auto}
nav ul{list-style:none;display:flex;gap:22px;margin:0;padding:0}
nav a{color:#fff;text-decoration:none;font-weight:600}
nav a:hover{opacity:.85}
.nav-toggle{display:none;background:#fff;color:#111;border:0;padding:8px 10px;border-radius:8px}
@media (max-width:900px){
  nav ul{display:none;position:absolute;right:20px;top:68px;background:#111;padding:14px;border-radius:12px;box-shadow:var(--shadow);width:240px;flex-direction:column}
  nav ul.open{display:flex}
  .nav-toggle{display:inline-block}
}

/* Hero */
.hero{position:relative;border-bottom:1px solid var(--line)}
.hero-media{height:58vh;min-height:420px;max-height:720px;overflow:hidden;background:#fff;position:relative}
.hero-video,.hero-fallback{width:100%;height:100%;display:block}
.hero-video{object-fit:cover}
.hero-fallback{display:none}
@media (max-width:768px){
  .hero-video{display:none}
  .hero-fallback{
    display:block;
    object-fit:contain;      /* Bild vollständig sichtbar */
    object-position:center;
    background:#fff;
    padding:8px;
  }
}

/* CTA */
.cta-section{padding:40px 0 20px;background:#fff;text-align:center;border-bottom:1px solid var(--line)}
.hero-cta .btn{background:#111;color:#fff;font-weight:700;padding:14px 22px;border-radius:10px;box-shadow:var(--shadow);font-size:1.1rem}
.hero-cta .btn:hover{opacity:.9}

/* Kleiner Kontaktblock */
.small-contact .contact-card{max-width:640px;margin-top:8px}

/* About Layout */
.about-grid{display:grid;grid-template-columns:1.2fr .8fr;gap:24px}
.about-card{border:1px solid var(--line);border-radius:var(--radius);padding:18px;background:#fff;box-shadow:var(--shadow)}
@media (max-width:900px){.about-grid{grid-template-columns:1fr}}

/* Feature-Kacheln */
.feature-grid{
  display:grid;
  grid-template-columns:repeat(3,1fr);
  gap:16px;
  margin-top:16px;
}
@media (max-width:900px){.feature-grid{grid-template-columns:1fr 1fr}}
@media (max-width:560px){.feature-grid{grid-template-columns:1fr}}

.feature{
  border:1px solid var(--line);
  border-radius:12px;
  background:#fff;
  box-shadow:var(--shadow);
  padding:16px;
  text-align:left;
  cursor:pointer;
  transition:transform .12s ease, box-shadow .12s ease;
  min-height:120px;
}
.feature:hover{transform:translateY(-1px)}
.feature:focus{outline:3px solid rgba(0,0,0,.06)}

.feature-head{
  display:flex;align-items:center;justify-content:space-between;gap:10px;
  font-weight:700;
}
.feature-title{font-size:1.05rem}
.feature-icon{
  width:32px;height:32px;display:inline-flex;align-items:center;justify-content:center;
  border:1px solid var(--line);border-radius:8px;font-weight:900;line-height:1;position:relative;
}
.feature-icon::after{content:"+";font-size:18px}
.feature[aria-expanded="true"] .feature-icon::after{content:"–"}

.feature-body{
  max-height:0;overflow:hidden;
  transition:max-height .25s ease, margin-top .2s ease;
  color:var(--text);
}
.feature[aria-expanded="true"] .feature-body{
  margin-top:10px;
  max-height:240px;
}

/* Erklärvideos */
.video-wrap{position:relative}
.explain-video{
  width:100%;border:1px solid var(--line);border-radius:12px;background:#000;box-shadow:var(--shadow)
}
.video-desktop{display:block}
.video-mobile{display:none}
@media (max-width:768px){
  .video-desktop{display:none}
  .video-mobile{display:block}
}

/* Kontakt/Info-Karten */
.contact-card{border:1px solid var(--line);border-radius:12px;padding:18px;background:#fff;box-shadow:var(--shadow)}
.contact-row{display:flex;align-items:center;justify-content:space-between;padding:10px 0;border-bottom:1px solid var(--line)}
.contact-row:last-child{border-bottom:0}
.contact-link{font-weight:700;text-decoration:none;color:var(--accent)}

/* Formular */
.contact-form{border:1px solid var(--line);border-radius:12px;padding:18px;background:#fff;box-shadow:var(--shadow)}
.form-grid{display:grid;grid-template-columns:1fr 1fr;gap:16px}
.form-field{display:flex;flex-direction:column;gap:8px}
.form-field input,.form-field textarea{padding:12px 14px;border:1px solid var(--line);border-radius:10px;font:inherit}
.form-full{grid-column:1/-1}
.form-actions{margin-top:12px;display:flex;align-items:center;gap:10px;flex-wrap:wrap}
.form-status{margin-left:8px;font-size:.95rem;color:var(--muted)}
.form-status.success{color:#1a7f37}
.form-status.error{color:#b42318}
@media (max-width:800px){.form-grid{grid-template-columns:1fr}}

/* Modals */
.modal{position:fixed;inset:0;display:none}
.modal.show{display:block}
.modal-backdrop{position:absolute;inset:0;background:rgba(0,0,0,.45)}
.modal-dialog{position:relative;max-width:900px;margin:60px auto;background:#fff;border-radius:12px;box-shadow:var(--shadow);padding:20px;max-height:80vh;overflow:auto}
.modal-close{position:absolute;top:8px;right:8px;border:0;background:#000;color:#fff;width:34px;height:34px;border-radius:999px;font-size:20px;cursor:pointer}
.modal-content h2{margin-top:0}

/* Handelsregister-Box */
.register-block{
  margin: 20px 0;
  padding: 16px;
  border: 1px solid var(--line);
  border-radius: 10px;
  background: #fafafa;
  box-shadow: 0 2px 6px rgba(0,0,0,.05);
  font-size: .95rem;
  line-height: 1.6;
}
.register-block h3{
  margin-top:0;
  font-size:1.2rem;
  border-bottom:1px solid var(--line);
  padding-bottom:6px;
}
.register-block p{margin:10px 0}
.register-block ul{margin:6px 0 6px 20px}

/* Footer */
.site-footer{border-top:1px solid var(--line);padding:28px 0;background:#fff}
.foot{display:flex;align-items:center;justify-content:space-between;gap:12px;color:var(--muted)}
.foot a{color:inherit;text-decoration:none}
.foot a:hover{text-decoration:underline}

/* Buttons */
.btn{cursor:pointer;background:#111;color:#fff;font-weight:700;padding:12px 18px;border-radius:10px;box-shadow:var(--shadow);text-decoration:none;display:inline-block}
.btn:hover{opacity:.9}
