:root{
  --blue:#006ab3; --blue-dark:#00548c; --blue-800:#083b5e;
  --ink:#232830; --muted:#5b636e; --line:#e4e8ec;
  --bg:#ffffff; --bg-soft:#f4f6f8; --footer:#20232e; --footer-2:#171a22;
  --wrap:1160px; --radius:6px; --shadow:0 8px 30px rgba(10,30,55,.08);
  --font:"Helvetica Neue",Helvetica,Arial,system-ui,sans-serif;
}
*{box-sizing:border-box}
html{-webkit-text-size-adjust:100%}
body{margin:0;font-family:var(--font);color:var(--ink);background:var(--bg);line-height:1.65;font-size:17px}
img{max-width:100%;height:auto;display:block}
a{color:var(--blue);text-decoration:none}
a:hover{color:var(--blue-dark)}
.container{max-width:var(--wrap);margin:0 auto;padding:0 24px}
h1,h2,h3,h4{font-weight:700;line-height:1.2;color:var(--blue);text-transform:uppercase;letter-spacing:.01em}
h1{font-size:clamp(1.9rem,4vw,2.7rem);margin:0 0 .5em}
h2{font-size:clamp(1.4rem,2.6vw,1.9rem);margin:0 0 .6em}
h3{font-size:1.15rem;margin:0 0 .5em}
p{margin:0 0 1.1em}
.skip-link{position:absolute;left:-9999px}
.skip-link:focus{left:16px;top:16px;background:#fff;padding:8px 14px;z-index:1000}

/* Header */
.site-header{position:sticky;top:0;z-index:100;background:#fff;box-shadow:0 2px 14px rgba(0,0,0,.06)}
.header-inner{display:flex;align-items:center;justify-content:space-between;min-height:84px;gap:24px}
.brand img{height:48px;width:auto}
.site-nav ul{list-style:none;margin:0;padding:0}
.site-nav>ul{display:flex;gap:4px}
.site-nav a{display:block;padding:12px 14px;color:var(--ink);text-transform:uppercase;font-size:.86rem;font-weight:600;letter-spacing:.04em;border-radius:var(--radius)}
.site-nav>ul>li>a:hover,.site-nav>ul>li.active>a{color:var(--blue)}
.site-nav li{position:relative}
.subnav{display:none;position:absolute;top:100%;left:0;min-width:260px;background:#fff;box-shadow:var(--shadow);border-radius:var(--radius);padding:8px}
.site-nav li.has-sub:hover .subnav{display:block}
.subnav a{text-transform:none;font-weight:500;font-size:.9rem;color:var(--muted)}
.subnav a:hover{color:var(--blue);background:var(--bg-soft)}
.nav-toggle{display:none;flex-direction:column;gap:5px;background:none;border:0;cursor:pointer;padding:10px}
.nav-toggle span{width:26px;height:2px;background:var(--ink);display:block}

/* Hero */
.hero{position:relative;color:#fff;display:flex;align-items:center;min-height:420px;background:var(--blue-800) center/cover no-repeat}
.hero::after{content:"";position:absolute;inset:0;background:linear-gradient(90deg,rgba(8,40,66,.72),rgba(8,40,66,.30))}
.hero .container{position:relative;z-index:1;padding-top:70px;padding-bottom:70px}
.hero h1{color:#fff;max-width:18ch}
.hero p{font-size:1.15rem;max-width:52ch;margin-bottom:0;color:#eaf2f8}
.page-hero{min-height:300px}

/* Sections */
section.block{padding:70px 0}
section.block.soft{background:var(--bg-soft)}
.lead{font-size:1.15rem;color:var(--muted)}
.section-head{max-width:760px;margin-bottom:40px}
.content-body h2{margin-top:1.4em}
.content-body img{border-radius:var(--radius);box-shadow:var(--shadow);margin:1.5em 0}

/* Buttons */
.btn{display:inline-block;background:var(--blue);color:#fff;padding:13px 26px;border-radius:var(--radius);text-transform:uppercase;font-weight:600;font-size:.9rem;letter-spacing:.03em;transition:background .2s}
.btn:hover{background:var(--blue-dark);color:#fff}
.btn.ghost{background:transparent;border:2px solid #fff;color:#fff}
.btn.ghost:hover{background:#fff;color:var(--blue)}

/* Teaser grid */
.grid{display:grid;gap:26px}
.grid.cols-4{grid-template-columns:repeat(4,1fr)}
.grid.cols-3{grid-template-columns:repeat(3,1fr)}
.grid.cols-2{grid-template-columns:repeat(2,1fr)}
.card{background:#fff;border:1px solid var(--line);border-radius:var(--radius);overflow:hidden;display:flex;flex-direction:column;transition:transform .2s,box-shadow .2s}
.card:hover{transform:translateY(-4px);box-shadow:var(--shadow)}
.card img{aspect-ratio:4/3;object-fit:cover;width:100%}
.card .card-body{padding:20px;display:flex;flex-direction:column;gap:10px;flex:1}
.card h3{margin:0;font-size:1.02rem}
.card .more{margin-top:auto;font-weight:600;text-transform:uppercase;font-size:.82rem}

/* CTA band */
.cta{background:var(--blue-800) center/cover no-repeat;position:relative;color:#fff;text-align:center;padding:66px 0}
.cta::after{content:"";position:absolute;inset:0;background:rgba(8,40,66,.66)}
.cta .container{position:relative;z-index:1}
.cta h2{color:#fff}

/* Referenzen / lists */
.ref-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(240px,1fr));gap:18px}
.ref{background:#fff;border:1px solid var(--line);border-left:4px solid var(--blue);border-radius:var(--radius);padding:18px 20px}
.ref h3{margin:0 0 4px;font-size:1rem;text-transform:none;color:var(--ink)}
.ref span{color:var(--muted);font-size:.9rem}

/* Partner logos */
.partner-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:26px;align-items:center}
.partner{text-align:center;padding:26px;border:1px solid var(--line);border-radius:var(--radius);background:#fff}
.partner img{margin:0 auto 12px;max-height:70px;width:auto}

/* Certificates */
.cert-row{display:flex;flex-wrap:wrap;gap:24px;align-items:center}
.cert-row img{max-height:150px;width:auto;border:1px solid var(--line);border-radius:var(--radius);padding:8px;background:#fff}

/* Contact */
.contact-grid{display:grid;grid-template-columns:1fr 1fr;gap:40px}
.contact-card{background:var(--bg-soft);border-radius:var(--radius);padding:30px}

/* Footer */
.site-footer{background:var(--footer);color:#c7cdd6;margin-top:0}
.footer-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:40px;padding:56px 0 40px}
.site-footer h3{color:#fff;font-size:1rem;margin-bottom:14px}
.site-footer a{color:#c7cdd6}
.site-footer a:hover{color:#fff}
.footer-nav{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:8px}
.footer-bar{background:var(--footer-2);padding:16px 0;font-size:.85rem}
.footer-bar .container{display:flex;justify-content:space-between;flex-wrap:wrap;gap:10px}
.footer-legal a{margin-left:18px}

@media (max-width:900px){
  .nav-toggle{display:flex}
  .site-nav{display:none;position:absolute;top:100%;left:0;right:0;background:#fff;box-shadow:var(--shadow);padding:10px}
  .site-nav.open{display:block}
  .site-nav>ul{flex-direction:column;gap:0}
  .subnav{position:static;display:block;box-shadow:none;padding-left:16px}
  .grid.cols-4,.grid.cols-3{grid-template-columns:1fr 1fr}
  .contact-grid,.partner-grid{grid-template-columns:1fr}
  .footer-grid{grid-template-columns:1fr;gap:28px}
}
@media (max-width:560px){
  .grid.cols-4,.grid.cols-3,.grid.cols-2{grid-template-columns:1fr}
  body{font-size:16px}
}
