/* --- Link / Menü Fixes (keine Unterstreichung) --- */
a { text-decoration: none; color: inherit; }             /* global */
.nav-list a, .footer-links a, .header-overlay a {
  text-decoration: none;                                 /* sicherheitshalber noch mal */
  color: inherit;
  display: inline-block;
}
.nav-list a:hover, .footer-links a:hover { opacity: 1; background: rgba(255,255,255,.06); }

/* Falls ein Template sonst Text-Dekoration erzwingt, letzte Instanz: */
.nav-list a, .footer-links a { text-decoration: none !important; }

:root{
  --bg:#ffffff; --text:#1f2937; --muted:#6b7280;
  --brand:#0f62fe; --brand-600:#1e40af; --surface:#f3f4f6;
  --nav:#0b1220; --nav-text:#f9fafb; --accent:#f59e0b;
  --radius:12px; --shadow:0 6px 20px rgba(0,0,0,.08);
  --container:1300px;
  --max-hero-height:560px;
}

*{box-sizing:border-box;margin:0;padding:0}
html,body{height:100%}
body{
  font-family:Inter,system-ui,-apple-system,Segoe UI,Roboto,Arial,sans-serif;
  color:var(--text); background:var(--bg); line-height:1.55;
  -webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;
}
a{color:inherit}
img{max-width:100%;height:auto;display:block}

.container{max-width:var(--container);margin:0 auto;padding:0 20px}

/* Header / Nav */
header{position:sticky;top:0;z-index:120;background:var(--nav);box-shadow:0 2px 12px rgba(0,0,0,.12)}
.navbar{display:flex;align-items:center;justify-content:space-between;height:64px}
.brand{color:var(--nav-text);font-weight:700;font-size:18px;letter-spacing:.2px}
.nav-list{display:flex;gap:14px;align-items:center;list-style:none}
.nav-list a{color:var(--nav-text);padding:8px 10px;border-radius:8px;opacity:.95;transition:all .18s}
.nav-list a:hover{background:rgba(255,255,255,.04);opacity:1}
.lang-switch{display:flex;gap:8px;align-items:center;margin-left:12px}
.lang-btn{background:transparent;border:0;color:var(--nav-text);font-size:18px;cursor:pointer;padding:6px 8px;border-radius:8px;opacity:.85}
.lang-btn.active{outline:2px solid var(--accent);outline-offset:2px;opacity:1}

/* hamburger */
.menu-toggle{display:none;cursor:pointer;width:34px;height:34px;align-items:center;justify-content:center}
.menu-toggle span{display:block;width:20px;height:2px;background:var(--nav-text);border-radius:2px;transition:all .25s}
.header-nav-open .nav-list{display:flex;flex-direction:column;position:absolute;top:64px;left:0;right:0;background:var(--nav);padding:18px 20px;gap:12px;box-shadow:0 8px 30px rgba(0,0,0,.12)}
.header-nav-open .menu-toggle span:nth-child(1){transform:rotate(45deg) translate(4px,4px)}
.header-nav-open .menu-toggle span:nth-child(2){opacity:0}
.header-nav-open .menu-toggle span:nth-child(3){transform:rotate(-45deg) translate(4px,-4px)}
/* overlay for mobile nav */
.header-overlay {
  position: fixed;
  inset: 64px 0 0 0;
  background: rgba(0,0,0,0.6);
  display: none;
  z-index: 1100;
  justify-content: center;
  align-items: flex-start;
  padding-top: 20px;
}
.header-nav-open .header-overlay { display: flex; }
.header-overlay .nav-list {
  display:flex;
  flex-direction:column;
  gap:10px;
  width:100%;
  max-width:420px;
  background:var(--nav);
  padding:18px;
  border-radius:10px;
  box-shadow:0 12px 40px rgba(0,0,0,.3);
}


/* hero */
.hero{padding:56px 0;background:linear-gradient(180deg,var(--surface),#fff)}
.hero-grid{display:grid;grid-template-columns:1.1fr .9fr;gap:28px;align-items:center}
.eyebrow{color:var(--brand);font-weight:700;margin-bottom:8px}
.hero h1{font-size:clamp(28px,3.8vw,48px);line-height:1.08;margin-bottom:12px}
.hero p{color:var(--muted);font-size:clamp(15px,2.2vw,18px);margin-bottom:18px}
.cta-row{display:flex;gap:12px;flex-wrap:wrap}
.btn{display:inline-flex;align-items:center;gap:10px;padding:12px 16px;border-radius:10px;font-weight:700;cursor:pointer}
.btn-primary{background:var(--brand);color:#fff;box-shadow:var(--shadow)}
.btn-primary:hover{background:var(--brand-600)}
.btn-ghost{background:transparent;border:1px solid #e6e9ef;color:var(--text)}

/* cards / grids */
.card{background:#fff;border-radius:var(--radius);padding:18px;border:1px solid #eef2f6;box-shadow:var(--shadow)}
.features{padding:40px 0}
.features-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:20px}

/* services / Leistungen-like grid */
.section{padding:56px 0}
.services-grid{display:grid;grid-template-columns:repeat(2,1fr);gap:20px;align-items:start}

/* gallery */
.gallery-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:12px}
.gallery-grid .item{position:relative;overflow:hidden;border-radius:10px}
.gallery-grid .item img{width:100%;height:100%;object-fit:cover;display:block}

/* references A-Z list */
.refs-az{display:flex;gap:12px;flex-wrap:wrap}
.ref-letter{min-width:36px;padding:6px 8px;border-radius:8px;background:#f3f4f6;font-weight:700;text-align:center}

/* form */
form{display:flex;flex-direction:column;gap:12px}
label{font-weight:700}
input,textarea,select{padding:10px;border-radius:8px;border:1px solid #d8dbe0;font-size:15px}
textarea{min-height:140px;resize:vertical}
.note{color:var(--muted);font-size:13px}

/* alerts */
.alert{padding:12px;border-radius:10px;margin-bottom:14px}
.alert.ok{background:#e6ffef;color:#064e3b;border:1px solid:#10b981}
.alert.err{background:#fff0f0;color:#7f1d1d;border:1px solid:#f87171}

/* footer */
footer{background:var(--nav);color:var(--nav-text);padding:28px 0;margin-top:40px}
.footer-inner{display:flex;align-items:center;justify-content:space-between;gap:12px;flex-wrap:wrap}
.footer-links{display:flex;gap:12px;list-style:none}

/* responsive breakpoints */
@media (max-width:1100px){ .gallery-grid{grid-template-columns:repeat(3,1fr)} .features-grid{grid-template-columns:repeat(2,1fr)} }
@media (max-width:800px){ .services-grid{grid-template-columns:1fr} .hero-grid{grid-template-columns:1fr} }
@media (max-width:800px){
  .nav-list{display:none}
  .menu-toggle{display:flex}
  .gallery-grid{grid-template-columns:repeat(2,1fr)}
  .features-grid{grid-template-columns:1fr}
  .hero{padding:28px 0}
  .hero h1{font-size:clamp(22px,6vw,34px)}
  .container{padding:0 16px}
}

/* 4K tweaks */
@media (min-width:2500px){
  :root{--container:2200px}
  .hero{padding:88px 0}
  .hero h1{font-size:72px}
}

