
/* NLS FINAL 2026 – cross-page stability, accessibility and mobile polish */
:root{--nls-blue:#0A59A0;--nls-text:#111827;--nls-muted:#64748b;--nls-line:#e5e7eb;--nls-soft:#f8fafc}
html{scroll-behavior:smooth;-webkit-text-size-adjust:100%}
body{overflow-x:hidden}
img{max-width:100%;height:auto}
a,button,input,textarea{font:inherit}
a:focus-visible,button:focus-visible,input:focus-visible,textarea:focus-visible{outline:3px solid rgba(10,89,160,.35);outline-offset:3px;border-radius:6px}
header,header.site-header{z-index:100}
.card,.prj,.partner-grid .pbox{transition:transform .18s ease,box-shadow .18s ease,border-color .18s ease}
@media (hover:hover){.card:hover,.prj:hover{transform:translateY(-2px);box-shadow:0 10px 26px rgba(15,23,42,.08);border-color:#cbd5e1}}
.hero img{display:block}
.hero .slide:first-child img{content-visibility:auto}
.seo-intro{margin:30px 0 8px}
.seo-intro>p{max-width:900px;color:var(--nls-muted)}
.service-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:16px;margin-top:18px}
.service-card{border:1px solid var(--nls-line);border-radius:16px;padding:18px;background:#fff}
.service-card h3{margin:0 0 8px;font-size:1.08rem}.service-card p{margin:0;color:var(--nls-muted)}
.project-intro{max-width:900px;color:var(--nls-muted);margin:0 0 20px}
.category-links{display:flex;flex-wrap:wrap;gap:10px;margin:0 0 22px}.category-links a{border:1px solid var(--nls-line);border-radius:999px;padding:8px 13px}.category-links a:hover{border-color:var(--nls-blue);text-decoration:none;color:var(--nls-blue)}
.project-meta{color:var(--nls-muted);margin:-8px 0 18px}.project-copy{max-width:850px;margin:0 0 22px;color:#374151}
.gallery img{background:#f1f5f9}
.form-status{display:none;border-radius:12px;padding:11px 13px;margin-bottom:12px}.form-status.ok{display:block;background:#ecfdf5;border:1px solid #a7f3d0;color:#065f46}.form-status.err{display:block;background:#fef2f2;border:1px solid #fecaca;color:#991b1b}
.hp-field{position:absolute!important;left:-9999px!important;width:1px!important;height:1px!important;overflow:hidden!important}
.map-placeholder{min-height:280px;display:flex;flex-direction:column;align-items:center;justify-content:center;text-align:center;padding:24px;background:var(--nls-soft)}.map-placeholder p{max-width:560px;color:var(--nls-muted)}
.btn{cursor:pointer;background:#fff;color:var(--nls-text)}.btn:hover{border-color:var(--nls-blue);color:var(--nls-blue);text-decoration:none}
.partner-grid .pbox img.plogo{object-fit:contain}.partner-grid .pbox.gealan img{max-height:58px;max-width:92%;width:auto;height:auto;object-fit:contain}
.footer-note{padding:0 14px 14px}
@media(max-width:900px){
  .service-grid{grid-template-columns:1fr 1fr}
  header .container.nav{height:auto;min-height:64px;gap:10px;padding-top:10px;padding-bottom:10px;flex-wrap:wrap}
  header .menu{flex-wrap:wrap;gap:8px 16px;justify-content:flex-end}
  .nav-fix .sub{left:auto!important;right:0!important}
}
@media(max-width:680px){
  .service-grid{grid-template-columns:1fr}
  header .container.nav{align-items:flex-start;flex-direction:column}
  header .menu{width:100%;justify-content:flex-start;gap:4px 10px}
  header .menu>a,header .menu>.nav-fix>a{display:inline-flex;min-height:42px;align-items:center;padding:3px 6px}
  header.site-header .hdr{padding-top:48px!important;padding-bottom:8px}
  header.site-header .brand-left{left:20px!important;top:14px!important;transform:none!important}
  header.site-header .topnav{flex-direction:row!important;flex-wrap:wrap!important;gap:4px 10px!important;justify-content:flex-start!important;width:100%}
  header.site-header .topnav>a,header.site-header .nav-btn{min-height:42px!important;padding:3px 7px!important}
  header.site-header .sub{position:absolute!important;top:100%!important;left:0!important;right:auto!important;width:min(260px,80vw)!important;margin-top:4px!important}
}
@media(max-width:420px){
  .container{padding-left:15px!important;padding-right:15px!important}
  header .menu{font-size:14px}
  header.site-header .topnav{font-size:14px!important}
  .partner-grid{grid-template-columns:1fr 1fr!important;gap:10px!important}
  .partner-grid .pbox{min-height:76px!important}
}

.service-link{display:block;color:inherit;text-decoration:none}.service-link:hover{text-decoration:none;border-color:var(--nls-blue);box-shadow:0 10px 26px rgba(15,23,42,.08)}.service-link span{display:inline-block;margin-top:10px;color:var(--nls-blue);font-weight:600}.all-services-link{margin-top:14px}.all-services-link a,.text-link{color:var(--nls-blue);font-weight:600}.service-hero{width:100%;max-height:360px;object-fit:cover;border-radius:16px;border:1px solid var(--nls-line);margin:4px 0 22px}.service-overview{grid-template-columns:repeat(2,minmax(0,1fr))}.service-detail{max-width:900px}.service-detail h2{margin-top:8px}.service-detail li{margin:8px 0}.service-detail .btn{margin-right:12px}.service-cta{margin:22px 0}
@media(max-width:680px){.service-overview{grid-template-columns:1fr}.service-hero{max-height:240px}.service-detail .btn{display:inline-block;margin-bottom:10px}}
/* Prevent long German compound words from causing horizontal scroll on small screens */
h1,h2,h3,.t{overflow-wrap:break-word;word-break:normal;hyphens:auto}

/* Final accessibility / navigation polish */
nav a[aria-current="page"], .topnav .is-active{font-weight:700;color:var(--nls-blue)}
@media (prefers-reduced-motion:reduce){html{scroll-behavior:auto}.card,.prj,.partner-grid .pbox{transition:none}.partner-track{animation:none!important}}
@media print{header,.footer,.site-footer,.footer-social{display:none!important}a{text-decoration:none!important}.container{max-width:none!important}}
