﻿:root { --ci-primary:#0044cc; --ci-border:#cfd8eb; --header-h:92px; }

/* Reset/Grundlayout */
*{box-sizing:border-box}
html,body{height:100%}
body{margin:0;font-family:Arial, sans-serif;background:#fff;color:#222}
a{color:var(--ci-primary);text-decoration:none}
a:hover,a:focus-visible{text-decoration:underline;outline:none}
.sr-only{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0}
:where(h1,h2,h3,h4,h5,h6){scroll-margin-top:var(--header-h)}

/* Header & Navigation (sticky + adaptive) */
header{
  max-width:1920px;margin:auto;padding:1rem;
  display:grid;grid-template-columns:auto 1fr auto auto;
  grid-template-areas:"logo nav toggle info";
  align-items:center;gap:.75rem 1.5rem;
  position:sticky;top:0;z-index:1000;background:#fff;
  border-bottom:1px solid #e9eef7;box-shadow:0 1px 8px rgba(0,0,0,.06)
}
.logo{grid-area:logo;width:clamp(200px,30vw,420px);height:auto;display:block}
nav.main-nav{grid-area:nav;display:flex;flex-wrap:nowrap;gap:.75rem 1rem;align-items:center;justify-self:stretch;width:100%;max-width:100%;min-width:0;overflow:hidden;justify-content:center}
nav.main-nav a{font-weight:500;padding:.25rem .125rem;white-space:nowrap}
nav.main-nav a[aria-current=page]{font-weight:700;text-decoration:underline;text-underline-offset:4px}
.company-info{grid-area:info;line-height:1.35;font-size:.95rem;text-align:right;white-space:nowrap}
button.hamburger{grid-area:toggle;justify-self:end;display:none;appearance:none;-webkit-appearance:none;border:1px solid var(--ci-border);background:#fff;color:#222;border-radius:10px;padding:8px 10px;cursor:pointer;align-items:center;gap:8px}
.hamburger:focus-visible{outline:2px solid var(--ci-primary);outline-offset:2px}
.hamburger-box{width:20px;height:14px;position:relative;display:inline-block}
.hamburger-inner,.hamburger-inner::before,.hamburger-inner::after{position:absolute;left:0;right:0;height:2px;background:#222;content:"";transition:transform .2s ease,opacity .2s ease}
.hamburger-inner{top:6px}.hamburger-inner::before{top:-6px}.hamburger-inner::after{top:6px}
.hamburger[aria-expanded=true] .hamburger-inner{transform:rotate(45deg)}
.hamburger[aria-expanded=true] .hamburger-inner::before{transform:rotate(90deg) translateX(0);top:0}
.hamburger[aria-expanded=true] .hamburger-inner::after{opacity:0}
header.has-overflow button.hamburger{display:inline-flex}
@media (max-width:768px){
  header{grid-template-columns:1fr auto;grid-template-areas:"logo toggle"}
  nav.main-nav{display:none !important}
  .company-info{display:none !important;white-space:normal}
  button.hamburger{display:inline-flex !important}
}

/* Mobile-Menü */
.mobile-menu{
  position:fixed;top:var(--header-h);left:0;right:0;
  max-height:calc(100vh - var(--header-h));overflow:auto;background:#fff;
  border-top:1px solid #e9eef7;box-shadow:0 6px 18px rgba(0,0,0,.12);
  z-index:1001;padding:12px 16px
}
.mobile-links{display:flex;flex-direction:column;gap:8px}
.mobile-links a{display:block;padding:10px 8px;border-radius:8px;font-weight:500;color:var(--ci-primary)}
.mobile-links a:hover,.mobile-links a:focus-visible{background:#f4f7ff;text-decoration:none;outline:none}
.mobile-info{margin-top:14px;padding-top:14px;border-top:1px solid var(--ci-border);line-height:1.35}
.backdrop{position:fixed;inset:0;background:rgba(0,0,0,.3);backdrop-filter:saturate(.9) blur(1px);-webkit-backdrop-filter:saturate(.9) blur(1px);z-index:1000}
body.menu-open{overflow:hidden}

/* Partner-Bar (Optik) – im Footer platziert */
.partner-logos-wrap{position:relative;display:block;margin:0 auto;max-width:100%}
.partner-logos-frame{
  display:grid;grid-template-columns:auto auto 1fr auto;
  align-items:center;gap:8px;background:#fff;border:1px solid #ddd;
  border-radius:12px;box-shadow:0 1px 4px rgba(0,0,0,.06);padding:6px
}
.partner-title{display:flex;align-items:center;padding:10px 12px;min-width:92px;font:600 14px/1.2 Arial,sans-serif;color:#333;background:#f7f7f7;border-right:1px solid #ddd;border-top-left-radius:12px;border-bottom-left-radius:12px}
.partner-logos{
  display:flex;align-items:center;gap:16px;overflow-x:auto;overflow-y:hidden;
  padding:12px 14px 14px;scroll-snap-type:x proximity;-webkit-overflow-scrolling:touch
}
.partner-logos::-webkit-scrollbar{height:8px}
.partner-logos::-webkit-scrollbar-thumb{background:#c5c5c5;border-radius:999px}
.partner-logos a{display:inline-flex;align-items:center;justify-content:center;line-height:0;text-decoration:none;scroll-snap-align:center}
.partner-logos img{height:55px;width:auto;max-width:180px;object-fit:contain;opacity:.9;transition:transform .2s ease,opacity .2s ease}
.partner-logos img:hover,.partner-logos a:focus-visible img{opacity:1;transform:scale(1.08)}
.partner-logos a:focus-visible{outline:2px solid var(--ci-primary);outline-offset:3px;border-radius:6px}
.partner-scroll{appearance:none;-webkit-appearance:none;border:1px solid #ddd;background:#fff;color:#333;border-radius:8px;padding:6px 8px;cursor:pointer;line-height:1}
.partner-scroll:hover{background:#f7f7f7}
.partner-scroll:focus-visible{outline:2px solid var(--ci-primary);outline-offset:2px}
.partner-scroll[disabled]{opacity:.4;cursor:not-allowed}

/* Footer minimal: nur Partner-Bar, zentriert und flexibel */
.site-footer{margin-top:32px;border-top:1px solid #e9eef7;background:#fafbfe}
.footer-inner.only-partner{max-width:1200px;margin:0 auto;padding:14px 12px 18px;display:grid;place-items:center}
.footer-partners{display:grid;place-items:center;width:100%}
.footer-partners .partner-logos-frame{margin:0 auto;max-width:min(1000px,92vw);width:100%;justify-self:center}
.footer-partners .partner-logos{max-width:none;width:100%}

/* >>> Footer fixieren bei max 1600px Höhe (<=1600px) */
@media (max-height: 1600px) {
  .site-footer.is-fixed{
    position: fixed; left:0; right:0; bottom:0;
    z-index: 999; box-shadow:0 -4px 14px rgba(0,0,0,.06);
  }
}

/* Inhaltsbereich */
main {max-width:1000px; margin: 24px auto; padding: 0 16px; line-height:1.6}
main h1{font-size:clamp(1.8rem,3.6vw,2.2rem);margin:0 0 .5rem 0}
main h2{font-size:clamp(1.25rem,2.4vw,1.5rem);margin:1.5rem 0 .5rem}
.lead{font-size:1.05rem;color:#444}
.muted{color:#555}
ul{padding-left:1.2rem}
.grid{display:grid;gap:1rem}
@media(min-width:768px){.grid-2{grid-template-columns:1fr 1fr}}
.card{border:1px solid #e9eef7;border-radius:12px;padding:14px}

/* Bewegungsreduktion */
@media (prefers-reduced-motion:reduce){
  .hamburger-inner,.hamburger-inner::before,.hamburger-inner::after{transition:none}
  .partner-logos img{transition:none}
}