/* ================================
   Kollmorgen-Service – Global Styles
   ================================ */
:root{
  --brand:#004a7c;
  --brand-600:#035a97;
  --text:#0f172a;
  --muted:#64748b;
  --bg:#f8fafc;
  --radius:14px;
  --border:#e5e7eb;
}

*{box-sizing:border-box}
html{scroll-behavior:smooth}
body{
  margin:0;
  font-family:system-ui,-apple-system,Segoe UI,Roboto,Ubuntu,Cantarell,Inter,Arial,sans-serif;
  line-height:1.6;
  color:var(--text);
  background:var(--bg);
}

.wrap{max-width:1100px;margin:0 auto;padding:0 20px}

/* ================================
   Header / Navigation
   ================================ */
.site-header{
  position:sticky; top:0; z-index:50;
  background:var(--brand); color:#fff;
  border-bottom:1px solid rgba(255,255,255,.08);
}
.nav{display:flex;align-items:center;justify-content:space-between;padding:14px 0}
.brand{display:flex;align-items:center;gap:12px;text-decoration:none;color:#fff;white-space:nowrap;margin-left:6px}
#main-nav ul{display:flex;gap:16px;list-style:none;margin:0;padding:0;flex-wrap:nowrap}
#main-nav a{color:#fff;text-decoration:none;font-weight:550}
#main-nav a:hover{opacity:.9}
.menu-toggle{display:none;background:transparent;border:0;color:#fff;font-size:1.2rem}

/* Brand-Varianten */
.brand--logo{
  width:32px;height:32px;display:inline-block;
  background:url("/assets/img/logo.svg") no-repeat center/contain;
}
.brand--text{
  display:flex;align-items:center;font-weight:700;font-size:1.05rem;
  color:#fff;text-decoration:none;letter-spacing:.2px;white-space:nowrap;
}
.brand--text:hover{opacity:.9}
.brand-title,.badge{display:none !important} /* falls alte Texte im DOM sind */

/* Sicherheitsnetz gegen Layout-Overflow */
.site-header .wrap{min-width:0}

/* ================================
   Hero
   ================================ */
.hero{background:linear-gradient(180deg,#e6f0f6,#dfe7ee);padding:72px 0}
.hero .content{display:grid;grid-template-columns:1.1fr .9fr;gap:28px;align-items:center}
.hero h1{margin:0 0 10px;font-size:2rem}
.hero p{margin:0 0 18px;color:#334155}
.hero .hero-media img{width:100%;height:auto;border-radius:12px;border:1px solid var(--border)}

/* ================================
   Sections
   ================================ */
.section{padding:48px 0}
.section h2{font-size:1.6rem;margin:0 0 8px}
.section p.lead{color:var(--muted);margin:0 0 24px}

/* ================================
   Cards / Utilities
   ================================ */
.card{
  background:#fff;border:1px solid var(--border);
  border-radius:var(--radius);padding:20px;
}
.card h3{margin:12px 0 6px;font-size:1.1rem}
.card p{margin:0;color:#475569}

/* Einheitliche Medienfläche in Karten */
.card .media{
  width:100%;
  height:180px;                 /* Desktop-Standardhöhe */
  border:1px solid var(--border);
  border-radius:12px;
  overflow:hidden;
  background:#f1f5f9;
  margin-bottom:10px;
}
.card .media img{
  width:100%; height:100%;
  object-fit:cover; display:block;
}

/* ================================
   Grids (Leistungen / Referenzen)
   ================================ */
.services{display:grid;grid-template-columns:repeat(12,1fr);gap:18px}
.services .card{grid-column:span 6}

.refs{display:grid;grid-template-columns:repeat(12,1fr);gap:18px}
.ref{grid-column:span 6;background:#fff;border:1px solid var(--border);border-radius:var(--radius);padding:16px}
.ref img{width:100%;height:140px;object-fit:cover;border-radius:10px;margin-bottom:8px}
.ref small{color:var(--muted)}

/* ================================
   Buttons
   ================================ */
.btn{
  appearance:none;border:0;border-radius:10px;
  padding:12px 16px;font-weight:600;cursor:pointer;
  display:inline-block;text-decoration:none;
}
.btn-primary{background:var(--brand);color:#fff}
.btn-primary:hover{background:var(--brand-600)}
.btn-ghost{background:#fff;color:var(--brand);border:1px solid #e2e8f0}
.btn-ghost:hover{background:#f1f5f9}

/* ================================
   Kontakt
   ================================ */
.contact-grid{display:grid;grid-template-columns:1fr 1fr;gap:24px}
.contact-grid > *{min-width:0} /* wichtig für sauberes Umbruchverhalten */

form.contact{
  background:#fff;border:1px solid var(--border);
  border-radius:var(--radius);padding:20px
}
label{display:block;font-weight:600;margin:8px 0 6px}
input,textarea{
  width:100%;padding:12px;border:1px solid #cbd5e1;border-radius:10px;font:inherit
}
textarea{min-height:140px}

/* DSGVO-Consent bruchsicher */
label.consent{
  display:grid;grid-template-columns:auto 1fr;
  align-items:flex-start;gap:10px;width:100%;
}
label.consent input{margin-top:4px}
label.consent span{
  min-width:0;line-height:1.4;
  overflow-wrap:anywhere;word-break:break-word;
}
label.consent a{white-space:normal;overflow-wrap:anywhere;word-break:break-word}

.legal{font-size:.82rem;color:var(--muted)}

/* CTA-Reihe in der Kontaktkarte */
.contact-card .cta-buttons{
  margin-top:6px;display:flex;flex-wrap:wrap;gap:12px;
}
.contact-card .cta-buttons .btn{
  flex:1 1 160px;min-width:140px;text-align:center;
}

/* ================================
   Footer
   ================================ */
.site-footer{background:var(--brand);color:#fff;margin-top:36px}
.foot{display:flex;flex-wrap:wrap;gap:16px;align-items:center;justify-content:space-between;padding:18px 0}
.foot a{color:#cfe8ff;text-decoration:none}
.foot a:hover{text-decoration:underline}

/* ================================
   Responsive
   ================================ */
@media (max-width:900px){
  .hero .content{grid-template-columns:1fr}
  .services .card,.refs .ref{grid-column:span 12}
  .contact-grid{grid-template-columns:1fr}
  .card .media{height:170px}
}
@media (max-width:720px){
  #main-nav ul{display:none}
  .menu-toggle{display:block}
  #main-nav.open ul{
    display:flex;flex-direction:column;gap:12px;
    background:var(--brand);position:absolute;left:0;right:0;top:56px;
    padding:14px 20px;border-top:1px solid rgba(255,255,255,.15)
  }
  .card .media{height:160px}
}
@media (max-width:600px){
  .contact-card .cta-buttons .btn{flex:1 1 100%;min-width:0}
  .legal{overflow-wrap:anywhere;word-break:break-word}
}
/* === FIX: Kartenbilder sauber im Rahmen (Desktop & Mobile) === */

/* alte pauschale Regel neutralisieren */
.card img{
  height:auto;
  border-radius:0;          /* Rundung übernimmt der .media-Wrapper */
}

/* falls irgendwo noch ein <img> direkt in .card steht: ausblenden */
.card > img{ display:none; }

/* definierter Medienrahmen */
.card .media{
  position:relative;
  display:block;
  width:100%;
  aspect-ratio:4/3;         /* hält 4:3 automatisch ein */
  border:1px solid var(--border);
  border-radius:12px;
  overflow:hidden;
  background:#f1f5f9;
  margin:0 0 10px 0;
}

/* Bild füllt die Box, ohne zu verzerren */
.card .media img{
  position:absolute;
  inset:0;
  width:100%;
  height:100%;
  object-fit:cover;
  display:block;
}

/* Figure-Default-Rand entfernen */
figure{ margin:0; }
/* === MOBILE FIX: Impressum / Footer & Header besser lesbar === */
@media (max-width: 700px) {
  /* Footer zentrieren */
  .site-footer .foot {
    flex-direction: column;
    align-items: center;
    text-align: center;
    gap: 6px;
  }

  .site-footer .foot small {
    display: block;
    width: 100%;
  }

  /* Header: Menüpunkte gleichmäßig verteilt & nicht am Rand klebend */
  #main-nav.open ul {
    text-align: center;
  }
  #main-nav.open ul li {
    width: 100%;
  }
  #main-nav.open ul a {
    display: block;
    padding: 8px 0;
  }
}
/* Einheitliche vertikale Abstände für alle Abschnitte */
.section {
  padding-top: clamp(36px, 6vw, 56px);
  padding-bottom: clamp(36px, 6vw, 56px);
}

/* Überschriften und Folgeabsätze harmonischer ausrichten */
.section h2 {
  margin-top: 0;
  margin-bottom: 10px;
}

.section p.lead {
  margin-top: 0;
  margin-bottom: 24px;
  color: var(--muted);
}

/* Letzter Abschnitt (Kontakt) etwas weniger Abstand zum Footer */
#kontakt.section {
  padding-bottom: clamp(24px, 4vw, 36px);
}
/* Hover-Zoom-Effekt für Leistungsbilder */
.card .media {
  overflow: hidden;
  border-radius: 12px;
  position: relative;
}

.card .media img {
  width: 100%;
  height: 100%;
  object-fit: cover;
  transition: transform 0.45s ease, filter 0.3s ease;
}

.card:hover .media img {
  transform: scale(1.08);
  filter: brightness(1.05);
}
.card {
  transition: transform 0.3s ease, box-shadow 0.3s ease;
}
.card:hover {
  transform: translateY(-4px);
  box-shadow: 0 6px 14px rgba(0,0,0,0.1);
}
.form-message {
  text-align: left;
  font-size: 0.95rem;
  margin-top: 8px;
}
