/*
Theme Name: AlphaCom
Version: 14.0
Description: AlphaCom Computertechnik GmbH
Author: AlphaCom Computertechnik GmbH
Text Domain: alphacom
*/


/* ═══ DESIGN TOKENS ══════════════════════════════════════════════════════ */
:root {
  --y:    #fcde18;
  --yd:   #e8ca00;
  --yl:   #fffbe6;
  --n:    #1a1a2e;
  --n2:   #0d0d1f;
  --nm:   #2d2d4e;
  --w:    #ffffff;
  --g0:   #fafafa;
  --g1:   #f4f4f6;
  --g2:   #e8e8ed;
  --g3:   #d1d1db;
  --t:    #2d2d3d;
  --tm:   #6b6b80;
  --tl:   #9898a8;
  --r:    8px;
  --r2:   4px;
  --fh:   'DM Serif Display', Georgia, serif;
  --fb:   'DM Sans', system-ui, sans-serif;
  --max:  1200px;
  --sh:   0 1px 3px rgba(0,0,0,.06), 0 4px 12px rgba(0,0,0,.04);
  --sh2:  0 4px 16px rgba(0,0,0,.08), 0 12px 40px rgba(0,0,0,.06);
}

/* ═══ RESET & BASE ═══════════════════════════════════════════════════════ */
*, *::before, *::after { box-sizing: border-box; margin: 0; padding: 0 }
html { scroll-behavior: smooth; font-size: 16px }
body {
  font-family: var(--fb);
  color: var(--t);
  background: var(--w);
  -webkit-font-smoothing: antialiased;
  line-height: 1.6;
}
img { display: block; max-width: 100% }
a { color: inherit; text-decoration: none }
button { font-family: var(--fb); cursor: pointer }

/* ═══ TYPOGRAPHY ═════════════════════════════════════════════════════════ */
h1, h2, h3 { font-family: var(--fh); color: var(--n); line-height: 1.15; letter-spacing: -.01em }
h1 { font-size: clamp(32px, 5vw, 56px); font-weight: 400 }
h2 { font-size: clamp(24px, 3.5vw, 36px); font-weight: 400 }
h3 { font-size: clamp(18px, 2vw, 22px); font-weight: 400 }
h4 { font-size: 15px; font-weight: 600; font-family: var(--fb) }
p  { color: var(--tm); line-height: 1.75; font-size: 15px }
em { color: var(--y); font-style: italic }

/* ═══ LAYOUT ═════════════════════════════════════════════════════════════ */
.wrap { max-width: var(--max); margin: 0 auto; padding: 0 clamp(20px,5vw,60px) }
.sec  { padding: clamp(56px,8vw,96px) 0 }
.sec-sm { padding: clamp(56px,7vw,88px) 0; background: var(--w); border-top: 4px solid var(--y) }
.sec-dark  { background: var(--n); color: #fff }
.sec-dark h2, .sec-dark h3, .sec-dark h4 { color: #fff }
.sec-dark p  { color: rgba(255,255,255,.58) }
.sec-gray  { background: var(--g0) }
.sec-ruled { border-top: 1px solid var(--g2) }
.grid-2 { display: grid; grid-template-columns: 1fr 1fr; gap: clamp(32px,5vw,72px); align-items: center }
.grid-3 { display: grid; grid-template-columns: repeat(3,1fr); gap: 24px }
.grid-4 { display: grid; grid-template-columns: repeat(4,1fr); gap: 20px }

/* ═══ BUTTONS ════════════════════════════════════════════════════════════ */
.btn {
  display: inline-flex; align-items: center; gap: 8px;
  padding: 12px 24px; border-radius: var(--r);
  font-family: var(--fb); font-size: 14px; font-weight: 500;
  border: none; transition: all .18s; white-space: nowrap; cursor: pointer;
}
.btn-y   { background: var(--y);  color: var(--n) }
.btn-y:hover { background: var(--yd) }
.btn-n   { background: var(--n);  color: #fff }
.btn-n:hover { background: var(--nm) }
.btn-ol  { background: transparent; color: var(--n); border: 1.5px solid var(--g3) }
.btn-ol:hover { border-color: var(--n) }
.btn-ol-w { background: transparent; color: #fff; border: 1.5px solid rgba(255,255,255,.3) }
.btn-ol-w:hover { border-color: #fff; background: rgba(255,255,255,.08) }
.btn-sm  { padding: 9px 18px; font-size: 13px }

/* Label / tag */
.tag {
  display: inline-block; font-family: var(--fb); font-size: 11px;
  font-weight: 600; letter-spacing: .06em; text-transform: uppercase;
  padding: 4px 12px; border-radius: 2px; margin-bottom: 16px;
}
.tag-y  { background: var(--yl); color: #7a6000 }
.tag-n  { background: rgba(26,26,46,.08); color: var(--n) }
.tag-dk { background: rgba(255,255,255,.1); color: rgba(255,255,255,.7) }

/* ═══ TOPBAR ═════════════════════════════════════════════════════════════ */
.topbar {
  background: var(--n2);
  padding: 8px 0;
  font-size: 12px;
  color: rgba(255,255,255,.5);
  border-bottom: 1px solid rgba(255,255,255,.06);
}
.topbar .wrap { display: flex; justify-content: space-between; align-items: center; flex-wrap: wrap; gap: 8px }
.topbar a { color: rgba(255,255,255,.5); transition: color .15s }
.topbar a:hover { color: var(--y) }
.tb-l { white-space: nowrap; }
.tb-r { display: flex; align-items: center; gap: 5px; flex-shrink: 0; flex-wrap: wrap }
.tb-r span { color: rgba(255,255,255,.2) }
.tb-btn {
  background: rgba(255,255,255,.08); border: 1px solid rgba(255,255,255,.14);
  border-radius: 3px; padding: 3px 10px; font-size: 11.5px;
  color: rgba(255,255,255,.65); transition: background .15s; white-space: nowrap;
}
.tb-btn:hover { background: rgba(255,255,255,.14); color: #fff }

/* ═══ NAV ════════════════════════════════════════════════════════════════ */
.nav {
  background: var(--w);
  border-bottom: 1px solid var(--g2);
  position: sticky; top: 0; z-index: 100;
  transition: box-shadow .2s;
}
.nav.up { box-shadow: var(--sh2) }
.nav-inner {
  display: flex; align-items: center;
  height: 128px; gap: 0;
}
.nav-logo {
  display: flex; align-items: center;
  padding-right: 32px; border-right: 1px solid var(--g2);
  flex-shrink: 0; cursor: pointer;
}
.nav-logo img { height: 117px; width: auto; object-fit: contain }

.nav-links {
  display: flex; align-items: stretch;
  list-style: none; flex: 1; padding: 0 8px;
}
.nav-links > li { display: flex; align-items: stretch }
.nav-links > li > a,
.nav-links > li > button {
  display: flex; align-items: center; padding: 0 16px;
  font-size: 14px; font-weight: 500; color: var(--t);
  border-bottom: 2px solid transparent;
  transition: all .15s; cursor: pointer; white-space: nowrap;
  background: none; border-top: none; border-left: none; border-right: none;
  font-family: var(--fb);
}
.nav-links > li > a:hover,
.nav-links > li > button:hover,
.nav-links > li > a.act,
.nav-links > li > button.act { color: var(--n); border-bottom-color: var(--y) }
.nav-sep { width: 1px; background: var(--g2); margin: 20px 4px; flex-shrink: 0 }

/* Dropdown */
.nav-dd { position: relative }
.nav-dd-btn { display: flex; align-items: center; gap: 6px }
.nav-dd-btn svg { transition: transform .2s; flex-shrink: 0 }
.nav-dd.open .nav-dd-btn svg { transform: rotate(180deg) }
.nav-dd.open .nav-dd-btn { color: var(--n); border-bottom-color: var(--y) }

.dd-panel {
  display: none;
  position: absolute; top: calc(100% + 1px); left: -20px;
  background: var(--w); border: 1px solid var(--g2); border-radius: var(--r);
  box-shadow: var(--sh2); width: 860px; z-index: 200;
  padding: 24px;
  grid-template-columns: 1fr 1fr 1fr 1fr;
  gap: 0;
}
.nav-dd.open .dd-panel { display: grid }
.dd-col { padding: 0 20px }
.dd-col:first-child { padding-left: 0 }
.dd-col:not(:last-child) { border-right: 1px solid var(--g2) }
.dd-col-title {
  font-size: 10px; font-weight: 600; letter-spacing: .08em; text-transform: uppercase;
  color: var(--y); background: var(--n); padding: 5px 8px; border-radius: 3px;
  margin-bottom: 12px; display: inline-block;
}
.dd-item {
  display: flex; align-items: center; gap: 10px; padding: 9px 8px;
  font-size: 13px; color: var(--t); border-radius: var(--r2);
  transition: background .12s; cursor: pointer; border-left: 2px solid transparent;
}
.dd-item:hover { background: var(--g0); border-left-color: var(--y); color: var(--n) }
.dd-ico {
  width: 28px; height: 28px; background: var(--g1); border-radius: 6px;
  display: flex; align-items: center; justify-content: center; flex-shrink: 0;
  transition: background .12s;
}
.dd-item:hover .dd-ico { background: var(--yl) }
.dd-ico svg { width: 13px; height: 13px; color: var(--n) }

/* Nav right */
.nav-right { display: flex; align-items: center; gap: 10px; padding-left: 20px; border-left: 1px solid var(--g2); flex-shrink: 0 }
.nav-shop {
  display: flex; align-items: center; gap: 7px; padding: 9px 16px;
  border: 1.5px solid var(--g2); border-radius: var(--r); font-size: 13px;
  font-weight: 500; color: var(--t); transition: all .15s;
}
.nav-shop:hover { border-color: var(--n) }

/* Hamburger */
.ham { display: none; flex-direction: column; gap: 5px; padding: 8px; background: none; border: none; cursor: pointer; flex-shrink: 0 }
.ham span { display: block; width: 22px; height: 2px; background: var(--y); border-radius: 2px; transition: all .25s }
.ham.open span:nth-child(1) { transform: rotate(45deg) translate(5px,5px) }
.ham.open span:nth-child(2) { opacity: 0 }
.ham.open span:nth-child(3) { transform: rotate(-45deg) translate(5px,-5px) }

/* Mobile drawer */
.drawer {
  display: none; flex-direction: column;
  background: var(--w); border-top: 2px solid var(--y);
  box-shadow: var(--sh2); max-height: 80vh; overflow-y: auto;
}
.drawer.open { display: flex }
.dr-section { padding: 14px 24px 4px; font-size: 10px; font-weight: 600; letter-spacing: .08em; text-transform: uppercase; color: var(--y); background: var(--n) }
.dr-item { display: flex; align-items: center; gap: 10px; padding: 12px 24px; font-size: 14px; color: var(--t); border-left: 2px solid transparent; cursor: pointer; transition: all .15s }
.dr-item:hover, .dr-item.act { background: var(--g0); border-left-color: var(--y); color: var(--n) }
.dr-sub { padding-left: 44px }
.dr-sep { height: 1px; background: var(--g2) }
.dr-actions { padding: 14px 20px; display: flex; flex-direction: column; gap: 8px; border-top: 1px solid var(--g2) }

/* ═══ STRIP ══════════════════════════════════════════════════════════════ */
.strip {
  background: #e8ecf4;
  border-bottom: 1px solid var(--g3);
}
.strip-inner {
  display: flex;
  flex-wrap: nowrap;
  justify-content: center;
  align-items: stretch;
  max-width: 1400px;
  margin: 0 auto;
  width: 100%;
}
.strip-item {
  color: var(--n);
  display: flex;
  align-items: center;
  justify-content: center;
  gap: 7px;
  white-space: nowrap;
  padding: 10px 12px;
  border-right: 1px solid var(--g3);
  cursor: pointer;
  transition: background .15s;
  text-decoration: none;
  flex: 1 1 0;
  min-width: 0;
}
.strip-item:last-child { border-right: none }
.strip-item:hover { background: rgba(252,222,24,.12) }
.si-ico {
  width: 20px; height: 20px; border-radius: 5px;
  background: var(--n);
  display: flex; align-items: center; justify-content: center;
  flex-shrink: 0; transition: background .15s;
}
.strip-item:hover .si-ico { background: var(--y) }
.si-ico svg { width: 11px; height: 11px; color: #fff; transition: color .15s }
.strip-item:hover .si-ico svg { color: var(--n) }


/* Strip: aktive Seite dauerhaft hervorheben */
.strip-item.active {
  background: rgba(252,222,24,.12);
  box-shadow: inset 0 -3px 0 var(--y);
}

.strip-item.active .si-ico { background: var(--y); }

.strip-item.active .si-ico svg { color: var(--n); }

.strip-item.active .si-lbl { font-weight: 700; }

.si-lbl { font-size: 11.5px; font-weight: 500; color: var(--n); white-space: nowrap; font-family: var(--fb); }

/* ═══ HERO ════════════════════════════════════════════════════════════════ */
.hero {
  background: var(--n);
  padding: clamp(24px,4vw,48px) 0;
  position: relative; overflow: hidden;
}
.hero-bg {
  position: absolute; inset: 0; pointer-events: none;
  background:
    radial-gradient(ellipse 60% 50% at 80% 50%, rgba(252,222,24,.06) 0%, transparent 60%),
    linear-gradient(135deg, rgba(252,222,24,.03) 0%, transparent 50%);
}
.hero-inner {
  position: relative; z-index: 1;
  display: grid; grid-template-columns: 1fr 380px; gap: 60px; align-items: center;
}
.hero-kicker {
  display: inline-flex; align-items: center; gap: 8px;
  font-size: 11px; font-weight: 600; letter-spacing: .1em; text-transform: uppercase;
  color: var(--y); margin-bottom: 20px;
}
.hero-kicker::before { content: ''; width: 20px; height: 1px; background: var(--y) }
.hero h1 { color: #fff; margin-bottom: 16px; font-size: clamp(28px,4vw,48px) }
.hero-lead { font-size: 15px; color: rgba(255,255,255,.55); line-height: 1.8; margin-bottom: 28px; max-width: 460px }
.hero-btns { display: flex; gap: 10px; flex-wrap: wrap }

/* Hero stats card */
.hero-card {
  background: rgba(255,255,255,.05);
  border: 1px solid rgba(255,255,255,.1);
  border-radius: 12px;
  padding: 24px;
}
.hero-card-label {
  font-size: 10px; font-weight: 600; letter-spacing: .08em; text-transform: uppercase;
  color: rgba(255,255,255,.35); margin-bottom: 16px;
}
.hstat { display: flex; align-items: center; gap: 14px; padding: 12px 0; border-bottom: 1px solid rgba(255,255,255,.06) }
.hstat:last-child { border-bottom: none }
.hstat-n { font-family: var(--fh); font-size: 24px; color: var(--y); min-width: 62px; font-weight: 400 }
.hstat-l { font-size: 12.5px; color: rgba(255,255,255,.5); line-height: 1.4 }

/* Hero small (sub-pages) */
.hero-sm { background: var(--n); padding: clamp(28px,4vw,44px) 0; position: relative; overflow: hidden }
.hero-sm .hero-bg { position: absolute; inset: 0; pointer-events: none }
.hero-sm-inner { position: relative; z-index: 1 }
.hero-sm h1 { color: #fff; margin-bottom: 8px; font-size: clamp(26px,3.5vw,38px) }
.hero-sm p { color: rgba(255,255,255,.55); font-size: 15px; max-width: 560px }
.bc { font-size: 12px; color: rgba(255,255,255,.35); margin-bottom: 10px }
.bc span { cursor: pointer; transition: color .15s }
.bc span:hover { color: var(--y) }

/* ═══ SECTION HEADERS ════════════════════════════════════════════════════ */
.sh { margin-bottom: clamp(32px,4vw,48px) }
.sh-c { text-align: center; max-width: 600px; margin: 0 auto clamp(32px,4vw,48px) }
.sh-c p { margin-top: 10px }
.sh h2 { margin-top: 8px }
.sh p { margin-top: 10px; max-width: 540px }

/* ═══ SERVICE CARDS ══════════════════════════════════════════════════════ */
.svc-grid {
  display: grid; grid-template-columns: repeat(3,1fr);
  gap: 1px; background: var(--g2);
  border: 1px solid var(--g2); border-radius: 12px; overflow: hidden;
}
.svc {
  background: var(--w); padding: 28px;
  cursor: pointer; transition: background .18s; position: relative;
}
.svc::before {
  content: ''; position: absolute; top: 0; left: 0; right: 0; height: 2px;
  background: var(--y); transform: scaleX(0); transform-origin: left; transition: transform .25s;
}
.svc:hover { background: var(--g0) }
.svc:hover::before { transform: scaleX(1) }
.svc-ico {
  width: 44px; height: 44px; border-radius: 10px; background: var(--g1);
  display: flex; align-items: center; justify-content: center; margin-bottom: 16px;
  transition: background .18s;
}
.svc-ico svg { width: 22px; height: 22px; color: var(--n) }
.svc:hover .svc-ico { background: var(--yl) }
.svc h3 { font-size: 16px; margin-bottom: 8px; font-family: var(--fb); font-weight: 600 }
.svc p { font-size: 13px; line-height: 1.65; color: var(--tm) }
.svc-link { display: inline-flex; align-items: center; gap: 4px; font-size: 12.5px; font-weight: 600; color: var(--n); margin-top: 14px; font-family: var(--fb) }
.svc-link::after { content: '→'; transition: transform .15s }
.svc:hover .svc-link::after { transform: translateX(4px) }
.svc-badge { display: inline-block; font-size: 9.5px; font-weight: 700; letter-spacing: .05em; text-transform: uppercase; padding: 2px 8px; border-radius: 2px; margin-bottom: 10px; background: var(--y); color: var(--n) }

/* ═══ CONTACT CTA (home) ═════════════════════════════════════════════════ */
.cta-bar {
  background: var(--y); padding: clamp(24px,3vw,36px) 0;
}
.cta-bar .wrap {
  display: flex; align-items: center; justify-content: space-between;
  flex-wrap: wrap; gap: 16px;
}
.cta-bar-text h3 { font-family: var(--fh); font-size: clamp(18px,2.5vw,24px); color: var(--n); font-weight: 400 }
.cta-bar-text p { color: rgba(26,26,46,.6); font-size: 14px; margin-top: 2px }
.cta-bar-btns { display: flex; gap: 10px; flex-shrink: 0 }

/* ═══ ABOUT SECTION ══════════════════════════════════════════════════════ */
.about-stats {
  display: grid; grid-template-columns: repeat(4,1fr);
  border: 1px solid var(--g2); border-radius: 12px; overflow: hidden;
}
.astat { padding: 24px; border-right: 1px solid var(--g2) }
.astat:last-child { border-right: none }
.astat-n { font-family: var(--fh); font-size: 32px; color: var(--n); font-weight: 400; line-height: 1 }
.astat-l { font-size: 12.5px; color: var(--tm); margin-top: 5px }
.checklist { list-style: none; display: flex; flex-direction: column; gap: 11px; margin: 18px 0 24px }
.cl-item { display: flex; align-items: flex-start; gap: 11px; font-size: 14px; color: var(--t) }
.cl-dot { width: 20px; height: 20px; border-radius: 50%; background: var(--y); display: flex; align-items: center; justify-content: center; flex-shrink: 0; margin-top: 1px }
.cl-dot svg { width: 10px; height: 10px; color: var(--n) }
.partner-chips { display: flex; flex-wrap: wrap; gap: 8px; margin-top: 16px }
.pchip { font-size: 11.5px; font-weight: 500; color: var(--tm); background: var(--g1); border: 1px solid var(--g2); border-radius: var(--r); padding: 5px 14px }

/* ═══ PRICING ════════════════════════════════════════════════════════════ */
.price-grid { display: grid; grid-template-columns: repeat(3,1fr); gap: 20px }
.pc { border: 1.5px solid var(--g2); border-radius: 12px; padding: 28px; background: var(--w); position: relative }
.pc.feat { border-color: var(--n) }
.pc-badge { position: absolute; top: -10px; left: 50%; transform: translateX(-50%); background: var(--n); color: #fff; font-size: 10px; font-weight: 600; padding: 2px 14px; border-radius: 2px; white-space: nowrap; letter-spacing: .04em; font-family: var(--fb) }
.pc-name { font-size: 11px; font-weight: 700; letter-spacing: .07em; text-transform: uppercase; color: var(--tm); margin-bottom: 6px; font-family: var(--fb) }
.pc-price { font-family: var(--fh); font-size: 36px; color: var(--n); font-weight: 400 }
.pc-unit { font-size: 13px; color: var(--tm); margin-top: 2px }
.pc-desc { font-size: 13px; color: var(--tm); margin: 12px 0 16px; padding-bottom: 16px; border-bottom: 1px solid var(--g1) }
.pc-list { list-style: none; display: flex; flex-direction: column; gap: 9px; margin-bottom: 22px }
.pc-list li { font-size: 13px; color: var(--t); display: flex; align-items: flex-start; gap: 8px }
.pc-list li::before { content: ''; width: 4px; height: 4px; border-radius: 50%; background: var(--y); flex-shrink: 0; margin-top: 7px }

/* ═══ STEPS ══════════════════════════════════════════════════════════════ */
.steps { display: grid; grid-template-columns: repeat(4,1fr); gap: 0; position: relative }
.steps::before { content: ''; position: absolute; top: 22px; left: 12%; right: 12%; height: 1px; background: var(--g2) }
.step { text-align: center; padding: 0 12px; position: relative; z-index: 1 }
.step-n { width: 44px; height: 44px; border-radius: 50%; background: var(--n); color: #fff; font-weight: 600; display: flex; align-items: center; justify-content: center; margin: 0 auto 14px; border: 3px solid var(--g0); font-size: 15px }
.step h4 { font-size: 13.5px; margin-bottom: 5px }
.step p { font-size: 12.5px }

/* ═══ TEAM ════════════════════════════════════════════════════════════════ */
.team-grid { display: grid; grid-template-columns: repeat(4,1fr); gap: 16px }
.tc { border: 1px solid var(--g2); border-radius: 12px; overflow: hidden; transition: box-shadow .18s }
.tc:hover { box-shadow: var(--sh2) }
.tc img { width: 100%; height: 160px; object-fit: cover; object-position: top center }
.tc-info { padding: 14px }
.tc-name { font-weight: 600; font-size: 13.5px; color: var(--n) }
.tc-role { font-size: 12px; color: var(--tm); margin-top: 3px }

/* ═══ SCHULUNGEN ══════════════════════════════════════════════════════════ */
.schul-grid { display: grid; grid-template-columns: repeat(3,1fr); gap: 16px }
.sk { border: 1px solid var(--g2); border-radius: 12px; padding: 22px; background: var(--w) }
.sk h4 { font-size: 15px; margin-bottom: 8px }
.sk p { font-size: 13px }
.sk-tags { display: flex; flex-wrap: wrap; gap: 5px; margin-top: 12px }
.sk-tag { font-size: 11px; font-weight: 500; color: var(--tm); background: var(--g1); padding: 3px 9px; border-radius: 3px }

/* ═══ CONTACT ═════════════════════════════════════════════════════════════ */
.contact-grid { display: grid; grid-template-columns: 1fr 1fr; gap: clamp(32px,5vw,64px) }
.form-row { display: grid; grid-template-columns: 1fr 1fr; gap: 14px; margin-bottom: 14px }
.fg { display: flex; flex-direction: column; gap: 5px; margin-bottom: 14px }
label { font-size: 12px; font-weight: 500; color: var(--n) }
input,select,textarea {
  width: 100%; padding: 10px 14px; border: 1.5px solid var(--g2); border-radius: var(--r);
  font-size: 14px; font-family: var(--fb); color: var(--t); background: var(--w);
  outline: none; transition: border-color .15s;
}
input:focus,select:focus,textarea:focus { border-color: var(--n) }
.ci { display: flex; gap: 14px; padding: 14px; border: 1px solid var(--g2); border-radius: var(--r); margin-bottom: 10px; align-items: flex-start }
.ci-icon { width: 36px; height: 36px; background: var(--g1); border-radius: 8px; display: flex; align-items: center; justify-content: center; flex-shrink: 0 }
.ci-icon svg { width: 16px; height: 16px; color: var(--n) }
.ci-lbl { font-size: 11.5px; font-weight: 600; color: var(--n); margin-bottom: 2px }
.ci-val { font-size: 14px; color: var(--tm) }

/* ═══ SECURITY CARDS ═════════════════════════════════════════════════════ */
.sec-cards { display: grid; grid-template-columns: 1fr 1fr; gap: 12px }
.scard { background: rgba(255,255,255,.05); border: 1px solid rgba(255,255,255,.1); border-radius: 10px; padding: 18px; border-left: 2px solid var(--y) }
.scard h4 { color: #fff; font-size: 13px; margin-bottom: 4px }
.scard p { color: rgba(255,255,255,.45); font-size: 12px; margin: 0 }

/* ═══ WORKFLOW ════════════════════════════════════════════════════════════ */
.wf-step { display: flex; gap: 16px; padding: 16px 0; border-bottom: 1px solid var(--g2) }
.wf-step:last-child { border-bottom: none }
.wf-n { width: 32px; height: 32px; border-radius: 50%; background: var(--y); color: var(--n); font-weight: 700; font-size: 14px; display: flex; align-items: center; justify-content: center; flex-shrink: 0 }
.wf-body h4 { font-size: 14px; margin-bottom: 3px }
.wf-body p { font-size: 13px }
.mod-grid { display: grid; grid-template-columns: repeat(3,1fr); gap: 12px }
.mcard { border: 1px solid var(--g2); border-radius: 8px; padding: 16px; background: var(--w) }
.mcard h4 { font-size: 13.5px; margin-bottom: 5px }
.mcard p { font-size: 12.5px }

/* ═══ LOGOS ═══════════════════════════════════════════════════════════════ */
.logo-row { display: flex; flex-wrap: wrap; gap: 8px; margin-top: 16px }
.litem { background: var(--g0); border: 1px solid var(--g2); border-radius: var(--r); padding: 8px 16px; display: flex; align-items: center; justify-content: center; min-height: 40px }
.litem span { font-size: 11px; font-weight: 600; color: var(--tm); text-align: center }

/* ═══ CTA BAND ════════════════════════════════════════════════════════════ */
.cta { padding: clamp(48px,6vw,72px) 0; text-align: center }
.cta-dark { background: var(--n) }
.cta-dark h2 { color: #fff }
.cta-dark p { color: rgba(255,255,255,.55) }
.cta-yellow { background: var(--y) }
.cta-yellow h2 { color: var(--n) }
.cta-yellow p { color: rgba(26,26,46,.6) }
.cta h2 { margin-bottom: 10px }
.cta p { margin-bottom: 24px }
.cta-btns { display: flex; gap: 10px; justify-content: center; flex-wrap: wrap }

/* ═══ STATS ROW ══════════════════════════════════════════════════════════ */
.stats { display: grid; grid-template-columns: repeat(4,1fr); border: 1px solid var(--g2); border-radius: 12px; overflow: hidden }
.stat { padding: 24px; border-right: 1px solid var(--g2) }
.stat:last-child { border-right: none }
.stat-n { font-family: var(--fh); font-size: 28px; color: #fff; font-weight: 400 }
.stat-l { font-size: 12.5px; color: rgba(255,255,255,.65); margin-top: 5px }
.sec-dark .stats { border-color: rgba(255,255,255,.15) }
.sec-dark .stat { border-color: rgba(255,255,255,.08) }
.stat.sec-dark .stat-n { color: var(--y) }
.sec-dark .stat-l { color: rgba(255,255,255,.45) }

/* ═══ FOOTER ══════════════════════════════════════════════════════════════ */
.footer { background: var(--n2); padding: clamp(48px,6vw,64px) 0 clamp(20px,3vw,28px) }
.footer-grid { display: grid; grid-template-columns: 2fr 1fr 1fr 1fr; gap: clamp(24px,3vw,48px); margin-bottom: 40px }
.foot-logo img { height: 80px; width: auto; filter: brightness(0) invert(1); margin-bottom: 14px }
.foot-desc { font-size: 12.5px; color: rgba(255,255,255,.4); line-height: 1.75; max-width: 220px; margin-top: 20px }
.foot-addr { font-size: 12.5px; color: rgba(255,255,255,.55); margin-top: 14px; line-height: 1.75 }
.foot-col h5 { font-size: 10.5px; font-weight: 700; letter-spacing: .08em; text-transform: uppercase; color: var(--y); margin-bottom: 14px }
.foot-col a { display: block; font-size: 13px; color: rgba(255,255,255,.5); margin-bottom: 8px; transition: color .15s; cursor: pointer }
.foot-col a:hover { color: var(--y) }
.foot-bot { border-top: 1px solid rgba(255,255,255,.07); padding-top: 20px; display: flex; justify-content: space-between; align-items: center; flex-wrap: wrap; gap: 10px }
.foot-bot span, .foot-bot a { font-size: 12px; color: rgba(255,255,255,.3) }
.foot-bot a { transition: color .15s; margin-left: 16px }
.foot-bot a:hover { color: var(--y) }

/* ═══ PAGE SYSTEM ═════════════════════════════════════════════════════════ */
.ac-page { display: none }
.ac-page.active { display: block }

/* ═══ RESPONSIVE ══════════════════════════════════════════════════════════ */
@media(max-width:1100px){
  .hero-inner { grid-template-columns:1fr; gap:28px }
  .hero-card { display:none }
  .svc-grid { grid-template-columns:repeat(2,1fr) }
  .grid-3 { grid-template-columns:1fr 1fr }
  .grid-4 { grid-template-columns:repeat(2,1fr) }
  .about-stats,.stats { grid-template-columns:repeat(2,1fr) }
  .astat:nth-child(2),.stat:nth-child(2){ border-right:none }
  .astat:nth-child(3),.stat:nth-child(3){ border-top:1px solid var(--g2) }
  .price-grid { grid-template-columns:1fr; max-width:400px; margin:0 auto }
  .footer-grid { grid-template-columns:1fr 1fr }
  .team-grid { grid-template-columns:repeat(3,1fr) }
  .dd-panel { width:860px; grid-template-columns:1fr 1fr 1fr }
  
  .schul-grid { grid-template-columns:1fr 1fr }
}
@media(max-width:900px){
  .grid-2 { grid-template-columns:1fr; gap:28px }
  .contact-grid { grid-template-columns:1fr }
  .steps { grid-template-columns:repeat(2,1fr); gap:20px }
  .steps::before { display:none }
  .sec-cards { grid-template-columns:1fr }
  .form-row { grid-template-columns:1fr }
  .mod-grid { grid-template-columns:1fr 1fr }
}
@media(max-width:768px){
  .nav-links,.nav-right { display:none }
  .ham { display:flex }
  .nav-logo img { height:80px }
  .nav-inner { height:88px }
  .svc-grid { grid-template-columns:1fr; background:transparent; border:none; gap:8px }
  .svc { border:1px solid var(--g2); border-radius:10px }
  .team-grid { grid-template-columns:repeat(2,1fr) }
  .schul-grid { grid-template-columns:1fr }
  .footer-grid { grid-template-columns:1fr }
  .foot-desc { max-width:100% }
  .foot-bot { flex-direction:column; text-align:center }
  .foot-bot a { margin-left:0 }
  
}
@media(max-width:600px){
  
  
  
  .cta-bar .wrap { flex-direction:column; text-align:center }
  .cta-bar-btns { justify-content:center }
  .hero-btns { flex-direction:column }
  .hero-btns .btn { justify-content:center }
  .cta-btns { flex-direction:column; align-items:center }
  .cta-btns .btn { width:100%; max-width:260px; justify-content:center }
  .tb-r { font-size:11px; gap:6px }
}
@media(max-width:480px){
  .about-stats,.stats { grid-template-columns:1fr 1fr }
  .mod-grid { grid-template-columns:1fr }
  .grid-4 { grid-template-columns:1fr 1fr }
  .team-grid { grid-template-columns:1fr 1fr }
  .steps { grid-template-columns:1fr }
}
@media(hover:none){
  .svc:hover { background:var(--w) }
  .svc:hover::before { transform:scaleX(0) }
}


/* Admin-Bar nur für eingeloggte User */
#wpadminbar { display: none !important; }
body.logged-in #wpadminbar { display: block !important; }
body.logged-in { margin-top: 32px !important; }

/* Additional CSS for new pages */
.two-col { display: grid; grid-template-columns: 1fr 1fr; gap: clamp(32px,5vw,64px); align-items: start }
.eyebrow { display: inline-block; font-family: var(--fb); font-size: 11px; font-weight: 600;
  letter-spacing: .08em; text-transform: uppercase; color: var(--tm); margin-bottom: 14px }
.price-grid { display: grid; grid-template-columns: repeat(3,1fr); gap: 18px }
.price-card { border: 1.5px solid var(--g2); border-radius: var(--r); padding: clamp(20px,2.5vw,28px);
  background: var(--w); position: relative }
.price-card.featured { border-color: var(--n) }
.price-card-badge { position: absolute; top: -11px; left: 50%; transform: translateX(-50%);
  background: var(--n); color: #fff; font-size: 10px; font-weight: 600; font-family: var(--fb);
  padding: 3px 14px; border-radius: 2px; white-space: nowrap; letter-spacing: .04em }
.price-name { font-size: 11px; font-weight: 600; letter-spacing: .07em; text-transform: uppercase;
  color: var(--tm); margin-bottom: 6px; font-family: var(--fb) }
.price-val { font-family: var(--fh); font-size: 32px; font-weight: 400; color: var(--n); line-height: 1 }
.price-unit { font-size: 13px; color: var(--tm); margin-top: 3px }
.price-desc { font-size: 13px; color: var(--tm); margin: 12px 0 14px;
  padding-bottom: 14px; border-bottom: 1px solid var(--g1) }
.price-list { list-style: none; display: flex; flex-direction: column; gap: 8px; margin-bottom: 20px }
.price-list li { font-size: 13px; color: var(--t); display: flex; align-items: flex-start; gap: 8px }
.price-list li::before { content: ''; width: 4px; height: 4px; border-radius: 50%;
  background: var(--y); flex-shrink: 0; margin-top: 7px }
.sec-hdr-c { text-align: center; max-width: 560px; margin: 0 auto clamp(28px,4vw,40px) }
.sec-hdr-c p { margin-top: 8px }
.sec-hdr { margin-bottom: clamp(28px,4vw,40px) }
.btn-primary { background: var(--n); color: #fff; border: 1.5px solid var(--n) }
.btn-primary:hover { background: var(--nm) }
.btn-ghost { background: transparent; color: rgba(255,255,255,.7); border: 1.5px solid rgba(255,255,255,.3) }
.btn-ghost:hover { border-color: rgba(255,255,255,.7); color: #fff }
.btn-outline { background: transparent; color: var(--n); border: 1.5px solid var(--g2) }
.btn-outline:hover { border-color: var(--n) }
.logo-row { display: flex; flex-wrap: wrap; gap: 8px }
.logo-item { background: var(--g0); border: 1px solid var(--g2); border-radius: var(--r);
  padding: 8px 16px; display: flex; align-items: center; min-height: 38px }
.logo-item span { font-size: 11.5px; font-weight: 500; color: var(--tm) }
@media(max-width:900px) {
  .two-col { grid-template-columns: 1fr }
  .price-grid { grid-template-columns: 1fr; max-width: 380px; margin: 0 auto }
}


.fg { display: flex; flex-direction: column; gap: 5px; margin-bottom: 12px }
.fg label { font-size: 12px; font-weight: 500; color: var(--n) }
.fg input, .fg select, .fg textarea {
  width: 100%; padding: 9px 13px; border: 1.5px solid var(--g2); border-radius: var(--r);
  font-size: 14px; font-family: var(--fb); color: var(--t); background: var(--w);
  outline: none; transition: border-color .15s;
}
.fg input:focus, .fg select:focus, .fg textarea:focus { border-color: var(--n) }
.dd-sub-item { background: var(--g0) !important }
.dd-sub-item:hover { background: var(--g1) !important }
.btn-ghost { background: transparent; color: rgba(255,255,255,.7); border: 1.5px solid rgba(255,255,255,.3) }
.btn-ghost:hover { border-color: rgba(255,255,255,.7); color: #fff }


/* WCAG 2.1 Kontrast-Verbesserungen */
.sec-dark p, .sec-dark li { color: rgba(255,255,255,0.75) !important; }
.sec-dark .stat-l { color: rgba(255,255,255,0.65); }
p { line-height: 1.75; }


/* ═══ AUFGERÄUMTES DESIGN — v8 ════════════════════════════════════════════
   Weniger Buttons, mehr Weissraum, Fotos subtil integriert
   ══════════════════════════════════════════════════════════════════════ */

/* Mehr Weissraum zwischen Sections */
.sec-sm { padding: clamp(52px,7vw,88px) 0; }

/* Buttons: klarer, weniger gedrängt */
.btn + .btn { margin-left: 10px; }
.cta-btns { gap: 12px; }

/* Hero: Fotos-Container */
.hero-face {
  position: absolute; right: clamp(32px,8vw,120px); bottom: 0;
  display: flex; align-items: flex-end; gap: -12px;
  opacity: .92; pointer-events: none;
}
.hero-face-img {
  width: clamp(110px,12vw,160px);
  aspect-ratio: 3/4;
  object-fit: cover; object-position: top;
  border-radius: 12px 12px 0 0;
  box-shadow: 0 -8px 32px rgba(0,0,0,.4);
  border-top: 3px solid var(--y);
}
.hero-face-img:first-child { margin-right: -18px; z-index: 1; }
.hero-face-img:last-child  { z-index: 2; transform: translateY(-20px); }

/* Team-Karte: aufgeräumt */
.team-card-v2 {
  display: flex; flex-direction: column; align-items: center;
  text-align: center; padding: 28px 20px;
  background: var(--w); border: 1px solid var(--g2);
  border-radius: 12px; transition: box-shadow .2s, transform .2s;
}
.team-card-v2:hover {
  box-shadow: 0 8px 32px rgba(0,0,0,.08);
  transform: translateY(-3px);
}
.team-card-v2 img {
  width: 100px; height: 100px; border-radius: 50%;
  object-fit: cover; object-position: top;
  border: 3px solid var(--y); margin-bottom: 14px;
}
.team-card-v2 h3 { font-size: 15px; margin-bottom: 4px; }
.team-card-v2 .role { font-size: 13px; color: var(--tm); margin-bottom: 6px; }
.team-card-v2 a { font-size: 12px; color: var(--y); }

/* Ansprechpartner-Box (statt 2 Buttons) */
.contact-person {
  display: flex; align-items: center; gap: 16px;
  background: var(--g0); border: 1px solid var(--g2);
  border-radius: 10px; padding: 16px 20px;
  margin-top: 20px;
}
.contact-person img {
  width: 56px; height: 56px; border-radius: 50%;
  object-fit: cover; object-position: top;
  border: 2px solid var(--y); flex-shrink: 0;
}
.contact-person-info { flex: 1; }
.contact-person-info strong { display: block; font-size: 14px; color: var(--n); }
.contact-person-info span  { font-size: 13px; color: var(--tm); }
.contact-person .btn { flex-shrink: 0; }

/* Section-Header aufgeräumter */
.sec-hdr-c { margin-bottom: clamp(32px,4vw,48px); }

/* Reduced button density — secondary text links */
.text-link {
  display: inline-flex; align-items: center; gap: 6px;
  color: var(--n); font-size: 14px; font-weight: 500;
  text-decoration: none; border-bottom: 1px solid var(--y);
  padding-bottom: 1px; transition: color .2s;
}
.text-link:hover { color: var(--yd); }
.text-link svg { transition: transform .2s; }
.text-link:hover svg { transform: translateX(3px); }

/* Cleaner two-col */
.two-col { gap: clamp(36px,5vw,72px); }

/* Weniger dominant: svc-link als Text-Link */
.svc-link {
  margin-top: auto; padding-top: 12px;
  font-size: 13px; font-weight: 500; color: var(--y);
  display: flex; align-items: center; gap: 4px;
}

/* Hero fix for face */
.hero { position: relative; overflow: hidden; }
@media(max-width:768px) { .hero-face { display: none; } }


.team-card-v2 {
  display:flex;flex-direction:column;align-items:center;text-align:center;
  padding:24px 16px;background:var(--w);border:1px solid var(--g2);
  border-radius:12px;transition:box-shadow .2s,transform .2s;
}
.team-card-v2:hover { box-shadow:0 8px 32px rgba(0,0,0,.08);transform:translateY(-3px); }
.team-card-v2 img {
  width:90px;height:90px;border-radius:50%;object-fit:cover;object-position:top;
  border:3px solid var(--y);margin-bottom:12px;
}
.team-card-v2 h3 { font-size:14px;margin-bottom:3px; }
.team-card-v2 .role { font-size:12px;color:var(--tm);margin-bottom:4px; }
.contact-person {
  display:flex;align-items:center;gap:14px;background:var(--g0);
  border:1px solid var(--g2);border-radius:10px;padding:14px 18px;margin-top:18px;
}
.contact-person img {
  width:52px;height:52px;border-radius:50%;object-fit:cover;
  object-position:top;border:2px solid var(--y);flex-shrink:0;
}
.contact-person-info { flex:1; }
.contact-person-info strong { display:block;font-size:14px;color:var(--n); }
.contact-person-info span { font-size:12px;color:var(--tm); }
.text-link {
  display:inline-flex;align-items:center;gap:5px;background:none;border:none;
  cursor:pointer;color:var(--n);font-size:14px;font-weight:500;
  border-bottom:1.5px solid var(--y);padding-bottom:1px;font-family:var(--fb);
}
.text-link:hover { color:var(--yd); }
.sec-dark { background:var(--n); }
.sec-dark h2 { color:#fff; }
.sec-dark p { color:rgba(255,255,255,.6); }
.btn-ghost { background:transparent;color:rgba(255,255,255,.8);border:1.5px solid rgba(255,255,255,.3); }
.btn-ghost:hover { border-color:rgba(255,255,255,.8);color:#fff; }
@media(max-width:768px) {
  [style*="grid-template-columns:280px"] { grid-template-columns:1fr!important; }
  [style*="width:40%"] { display:none!important; }
}


/* Stats on light background */
.stats-light .stat-n { color: var(--n) !important; }
.stats-light .stat-l { color: var(--tm) !important; }
.stats-light .stat   { border-color: var(--g2) !important; }
.stats-light         { border-color: var(--g2) !important; }

/* Hero responsive */
@media(max-width:900px) {
  #hero-team-box { display:none; }
}
@media(max-width:600px) {
  .hero .wrap { flex-direction:column; }
}

/* Lesbarkeit: Texte auf dunklem Hintergrund */
.sec-dark .eyebrow { color: rgba(255,255,255,.55) !important; }
.sec-dark h3 { color: #fff; }
.cta-dark p { color: rgba(255,255,255,.72) !important; }

/* Hero sub text */
.hero-sub { color: rgba(255,255,255,.8) !important; line-height: 1.65; }

/* Bessere Lesbarkeit allgemein */
p { color: var(--t); }
.two-col p { color: var(--t); }

/* Hero Team: responsive */
@media(max-width:860px) { #hero-team-wrap { display:none !important; } }
@media(max-width:600px) { .hero .wrap { flex-direction:column; } }

.partner-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(150px,1fr));gap:14px;margin-top:24px}
.partner-card{display:flex;flex-direction:column;align-items:center;justify-content:center;text-align:center;padding:18px 14px;border:1.5px solid var(--g2);border-radius:10px;background:var(--w);text-decoration:none;transition:border-color .2s,box-shadow .2s,transform .2s;min-height:80px}
.partner-card:hover{border-color:var(--y);box-shadow:0 4px 20px rgba(0,0,0,.08);transform:translateY(-2px)}
.partner-name{font-weight:600;font-size:13px;color:var(--n)}
.partner-sub{font-size:11px;color:var(--tm);margin-top:3px}
.contact-form-block{background:var(--g0);border:1px solid var(--g2);border-radius:var(--r);padding:clamp(24px,3vw,40px);margin-top:32px}
.contact-form-block h3{margin-bottom:6px}.contact-form-block p{font-size:14px;color:var(--tm);margin-bottom:20px}
.cf-grid{display:grid;grid-template-columns:1fr 1fr;gap:12px;margin-bottom:12px}
.contact-form-block label{display:block;font-size:12px;font-weight:600;margin-bottom:4px;color:var(--n)}
.contact-form-block input,.contact-form-block textarea{width:100%;padding:9px 13px;border:1.5px solid var(--g2);border-radius:var(--r);font-size:14px;font-family:var(--fb);outline:none;background:var(--w);box-sizing:border-box;margin-bottom:12px;transition:border-color .2s}
.contact-form-block input:focus,.contact-form-block textarea:focus{border-color:var(--y)}
.contact-form-block textarea{resize:vertical}.cf-note{font-size:12px;color:var(--tl);margin-left:12px}
.team-card-v2{display:flex;flex-direction:column;align-items:center;text-align:center;padding:24px 16px;background:var(--w);border:1px solid var(--g2);border-radius:12px;transition:box-shadow .2s,transform .2s}
.team-card-v2:hover{box-shadow:0 8px 32px rgba(0,0,0,.08);transform:translateY(-3px)}
.team-card-v2 img{width:90px;height:90px;border-radius:50%;object-fit:cover;object-position:top;border:3px solid var(--y);margin-bottom:12px}
.team-card-v2 h3{font-size:14px;margin-bottom:3px}.team-card-v2 .role{font-size:12px;color:var(--tm);margin-bottom:4px}
.funny-block{position:relative;border-radius:16px;overflow:hidden;box-shadow:0 12px 48px rgba(0,0,0,.12)}
.funny-block img{width:100%;display:block;object-fit:cover}
.funny-overlay{position:absolute;bottom:0;left:0;right:0;background:linear-gradient(to top,rgba(26,26,46,.92) 0%,rgba(26,26,46,.5) 60%,transparent 100%);padding:24px 28px;display:flex;align-items:flex-end;justify-content:space-between;flex-wrap:wrap;gap:12px}
.funny-label{color:var(--y);font-size:11px;font-weight:600;letter-spacing:.07em;text-transform:uppercase;margin-bottom:4px}
.funny-title{color:#fff;font-family:var(--fh);font-size:clamp(15px,2.5vw,21px)}
.stat-n{color:#fff!important}.stat:not(.sec-dark) .stat-n{color:#fff!important}.stat-l{color:rgba(255,255,255,.65)!important}.stat.sec-dark .stat-n{color:var(--y)!important}
.stats-light .stat-n{color:var(--n)!important}.stats-light .stat-l{color:var(--tm)!important}
.hero-sub{color:rgba(255,255,255,.82)!important}
.text-link{background:none;border:none;cursor:pointer;display:inline-flex;align-items:center;gap:5px;color:var(--n);font-size:14px;font-weight:500;border-bottom:1.5px solid var(--y);padding-bottom:1px;font-family:var(--fb);text-decoration:none}
.text-link:hover{color:var(--yd)}.btn-ghost{background:transparent;color:rgba(255,255,255,.8);border:1.5px solid rgba(255,255,255,.3)}
.btn-ghost:hover{border-color:rgba(255,255,255,.8);color:#fff}
.sec-dark h2,.sec-dark h3{color:#fff}.sec-dark p{color:rgba(255,255,255,.7)}.sec-dark .eyebrow{color:rgba(255,255,255,.5)}
@media(max-width:860px){#hero-team-wrap{display:none!important}}
@media(max-width:600px){.cf-grid{grid-template-columns:1fr}}
.price-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:18px}
.price-card{border:1.5px solid var(--g2);border-radius:var(--r);padding:clamp(20px,2.5vw,28px);background:var(--w);position:relative}
.price-card.featured{border-color:var(--n)}.price-card-badge{position:absolute;top:-11px;left:50%;transform:translateX(-50%);background:var(--n);color:#fff;font-size:10px;font-weight:600;padding:3px 14px;border-radius:2px;white-space:nowrap}
.price-name{font-size:11px;font-weight:700;letter-spacing:.07em;text-transform:uppercase;color:var(--tm);margin-bottom:6px}
.price-val{font-family:var(--fh);font-size:32px;font-weight:400;color:var(--n);line-height:1}
.price-unit{font-size:13px;color:var(--tm);margin-top:3px}
.price-desc{font-size:13px;color:var(--tm);margin:12px 0 14px;padding-bottom:14px;border-bottom:1px solid var(--g1)}
.price-list{list-style:none;padding:0;display:flex;flex-direction:column;gap:8px;margin-bottom:20px}
.price-list li{font-size:13px;color:var(--t);display:flex;align-items:flex-start;gap:8px}
.price-list li::before{content:"";width:4px;height:4px;border-radius:50%;background:var(--y);flex-shrink:0;margin-top:7px}
@media(max-width:900px){.price-grid{grid-template-columns:1fr;max-width:380px;margin:0 auto}}

/* Partner Chips — dezent, klein */
.partner-section { background: var(--g0); border-top: 1px solid var(--g2); border-bottom: 1px solid var(--g2); padding: clamp(28px,4vw,44px) 0; }
.partner-chips-wrap { display: flex; flex-wrap: wrap; gap: 10px; justify-content: center; margin-top: 20px; }
.pchip {
  font-size: 12px; font-weight: 500; color: var(--t);
  background: var(--w); border: 1.5px solid var(--g2);
  border-radius: 20px; padding: 6px 16px;
  text-decoration: none; transition: border-color .2s, color .2s, transform .15s;
  display: inline-flex; align-items: center; gap: 6px; white-space: nowrap;
}
.pchip:hover { border-color: var(--y); color: var(--n); transform: translateY(-1px); }
.pchip .badge {
  font-size: 9px; font-weight: 700; letter-spacing: .04em; text-transform: uppercase;
  background: var(--y); color: var(--n); border-radius: 3px; padding: 1px 5px;
}
/* Funny block styles */
.funny-block { position: relative; border-radius: 16px; overflow: hidden; box-shadow: 0 12px 48px rgba(0,0,0,.12); }
.funny-block img { width: 100%; display: block; object-fit: cover; }
.funny-overlay {
  position: absolute; bottom: 0; left: 0; right: 0;
  background: linear-gradient(to top, rgba(26,26,46,.92) 0%, rgba(26,26,46,.5) 60%, transparent 100%);
  padding: 24px 28px; display: flex; align-items: flex-end; justify-content: space-between; flex-wrap: wrap; gap: 12px;
}
.funny-label { color: var(--y); font-size: 11px; font-weight: 600; letter-spacing: .07em; text-transform: uppercase; margin-bottom: 4px; }
.funny-title { color: #fff; font-family: var(--fh); font-size: clamp(15px,2.5vw,22px); }
/* Misc */
.stat-n { color: #fff !important; } .stat.sec-dark .stat-n { color: var(--y) !important; }
.stat-l { color: rgba(255,255,255,.65) !important; }
.hero-sub { color: rgba(255,255,255,.82) !important; }
.text-link { background:none;border:none;cursor:pointer;display:inline-flex;align-items:center;gap:5px;color:var(--n);font-size:14px;font-weight:500;border-bottom:1.5px solid var(--y);padding-bottom:1px;font-family:var(--fb);text-decoration:none; }
.text-link:hover { color: var(--yd); }
.btn-ghost { background: transparent; color: rgba(255,255,255,.8); border: 1.5px solid rgba(255,255,255,.3); }
.btn-ghost:hover { border-color: rgba(255,255,255,.8); color: #fff; }
.team-card-v2 { display:flex;flex-direction:column;align-items:center;text-align:center;padding:24px 16px;background:var(--w);border:1px solid var(--g2);border-radius:12px;transition:box-shadow .2s,transform .2s; }
.team-card-v2:hover { box-shadow:0 8px 32px rgba(0,0,0,.08);transform:translateY(-3px); }
.team-card-v2 img { width:90px;height:90px;border-radius:50%;object-fit:cover;object-position:top;border:3px solid var(--y);margin-bottom:12px; }
.team-card-v2 h3 { font-size:14px;margin-bottom:3px; }
.team-card-v2 .role { font-size:12px;color:var(--tm);margin-bottom:4px; }
.cf-grid { display:grid;grid-template-columns:1fr 1fr;gap:12px;margin-bottom:12px; }
.contact-form-block { background:var(--g0);border:1px solid var(--g2);border-radius:var(--r);padding:clamp(24px,3vw,40px);margin-top:32px; }
.contact-form-block h3 { margin-bottom:6px; }
.contact-form-block p { font-size:14px;color:var(--tm);margin-bottom:20px; }
.contact-form-block label { display:block;font-size:12px;font-weight:600;margin-bottom:4px;color:var(--n); }
.contact-form-block input,.contact-form-block textarea { width:100%;padding:9px 13px;border:1.5px solid var(--g2);border-radius:var(--r);font-size:14px;font-family:var(--fb);outline:none;background:var(--w);box-sizing:border-box;margin-bottom:12px;transition:border-color .2s; }
.contact-form-block input:focus,.contact-form-block textarea:focus { border-color:var(--y); }
.contact-form-block textarea { resize:vertical; }
.cf-note { font-size:12px;color:var(--tl);margin-left:12px; }
@media(max-width:860px) { #hero-team-wrap { display:none!important; } }
@media(max-width:600px) { .cf-grid { grid-template-columns:1fr; } }

.partner-section{background:var(--g0);border-top:1px solid var(--g2);border-bottom:1px solid var(--g2);padding:clamp(28px,4vw,44px) 0}
.partner-chips-wrap{display:flex;flex-wrap:wrap;gap:10px;justify-content:center;margin-top:20px}
.pchip{font-size:12px;font-weight:500;color:var(--t);background:var(--w);border:1.5px solid var(--g2);border-radius:20px;padding:6px 16px;text-decoration:none;transition:border-color .2s,color .2s;display:inline-flex;align-items:center;gap:6px;white-space:nowrap}
.pchip:hover{border-color:var(--y);color:var(--n)}
.pchip .badge{font-size:9px;font-weight:700;text-transform:uppercase;background:var(--y);color:var(--n);border-radius:3px;padding:1px 5px}
.funny-block{position:relative;border-radius:16px;overflow:hidden;box-shadow:0 12px 48px rgba(0,0,0,.12)}
.funny-block img{width:100%;display:block;object-fit:cover}
.funny-overlay{position:absolute;bottom:0;left:0;right:0;background:linear-gradient(to top,rgba(26,26,46,.92),rgba(26,26,46,.5) 60%,transparent);padding:24px 28px;display:flex;align-items:flex-end;justify-content:space-between;flex-wrap:wrap;gap:12px}
.funny-label{color:var(--y);font-size:11px;font-weight:600;letter-spacing:.07em;text-transform:uppercase;margin-bottom:4px}
.funny-title{color:#fff;font-family:var(--fh);font-size:clamp(15px,2.5vw,21px)}
.stat-n{color:#fff!important}.stat:not(.sec-dark) .stat-n{color:#fff!important}.stat-l{color:rgba(255,255,255,.65)!important}.stat.sec-dark .stat-n{color:var(--y)!important}
.hero-sub{color:rgba(255,255,255,.82)!important}
.contact-form-block{background:var(--g0);border:1px solid var(--g2);border-radius:var(--r);padding:clamp(24px,3vw,40px);margin-top:32px}
.contact-form-block h3{margin-bottom:6px}.contact-form-block p{font-size:14px;color:var(--tm);margin-bottom:20px}
.cf-grid{display:grid;grid-template-columns:1fr 1fr;gap:12px;margin-bottom:12px}
.contact-form-block label{display:block;font-size:12px;font-weight:600;margin-bottom:4px;color:var(--n)}
.contact-form-block input,.contact-form-block textarea{width:100%;padding:9px 13px;border:1.5px solid var(--g2);border-radius:var(--r);font-size:14px;font-family:var(--fb);outline:none;background:var(--w);box-sizing:border-box;margin-bottom:12px}
.contact-form-block input:focus,.contact-form-block textarea:focus{border-color:var(--y)}
.contact-form-block textarea{resize:vertical}.cf-note{font-size:12px;color:var(--tl);margin-left:12px}
.team-card-v2{display:flex;flex-direction:column;align-items:center;text-align:center;padding:24px 16px;background:var(--w);border:1px solid var(--g2);border-radius:12px;transition:box-shadow .2s,transform .2s}
.team-card-v2:hover{box-shadow:0 8px 32px rgba(0,0,0,.08);transform:translateY(-3px)}
.team-card-v2 img{width:90px;height:90px;border-radius:50%;object-fit:cover;object-position:top;border:3px solid var(--y);margin-bottom:12px}
.team-card-v2 h3{font-size:14px;margin-bottom:3px}.team-card-v2 .role{font-size:12px;color:var(--tm);margin-bottom:4px}
@media(max-width:860px){#hero-team-wrap{display:none!important}}
@media(max-width:768px){.two-col{grid-template-columns:1fr!important}.svc-grid{grid-template-columns:1fr!important}.stats{grid-template-columns:repeat(2,1fr)!important}.footer-grid{grid-template-columns:1fr 1fr!important}}
@media(max-width:480px){.footer-grid{grid-template-columns:1fr!important}.cf-grid{grid-template-columns:1fr!important}.topbar{display:none}.hero-btns{flex-direction:column!important}}


.topbar { color: rgba(255,255,255,.75); }
.topbar a { color: rgba(255,255,255,.75); }
.topbar .tb-l { color: rgba(255,255,255,.65); }
.tb-r span { color: rgba(255,255,255,.3); }

/* ── DUNKLE TEXTE HELLER ─────────────────────────────────────────── */
/* Alle p-Texte auf dunklen Hintergründen */
.hero p, .hero-sm p, .sec-dark p { color: rgba(255,255,255,.82) !important; }
.hero-lead { color: rgba(255,255,255,.82) !important; }
.hero-sub { color: rgba(255,255,255,.82) !important; }

/* Team card phone */
.team-card-v2 .role { color: var(--tm); }

/* Strip hover */

.strip-item:hover { background: #d8dde8; }

/* ── FOOTER & GENERAL TEXT FIXES ─────────────────────────────────── */
.foot-desc { color: rgba(255,255,255,.78) !important; }
.foot-addr { color: rgba(255,255,255,.78) !important; }
.foot-addr a { color: rgba(255,255,255,.78) !important; }
.foot-col a { color: rgba(255,255,255,.65); }
.foot-col a:hover { color: var(--y); }
.foot-bot span { color: rgba(255,255,255,.4); }
.foot-bot a { color: rgba(255,255,255,.35); }
.foot-bot a:hover { color: var(--y); }
.foot-social { color: rgba(255,255,255,.5); transition: color .15s; }
.foot-social:hover { color: var(--y); }
/* Hero and dark section text */
.hero p, .hero-lead, .hero-sub { color: rgba(255,255,255,.82) !important; }
.hero-sm p { color: rgba(255,255,255,.82) !important; }
.sec-dark p { color: rgba(255,255,255,.78) !important; }
.cta-dark p { color: rgba(255,255,255,.78) !important; }

/* ── FOOTER ADDR inline fix ──────────────────────────────────────── */
.foot-addr br + a, .foot-addr a { display: inline; }
.foot-addr { line-height: 1.8; }


/* ═══════════════════════════════════════════════════════════════════
   RESPONSIVE COMPLETENESS — v12.1
   Mobile-first fixes for all breakpoints
   ═══════════════════════════════════════════════════════════════════ */

/* Prevent horizontal overflow on ALL devices */
html, body { overflow-x: hidden; max-width: 100%; }
* { min-width: 0; }

/* Inputs: prevent iOS zoom (font-size >= 16px) */
input, select, textarea { font-size: 16px !important; }

/* Touch targets: minimum 44px height */
.btn, .tb-btn, .strip-item, .dr-item, .nav-links > li > a,
.nav-links > li > button { min-height: 44px; }
.tb-btn { min-height: 32px; padding: 6px 12px; }

/* Strip: full width scroll on mobile */

@media(max-width:480px) {
  .strip-inner { grid-template-columns: repeat(4,1fr); }
  .si-lbl { font-size: 10px; }
}

/* Nav: topbar on small screens */
@media(max-width:600px) {
  .topbar .wrap { flex-direction: row; gap: 8px; align-items: center; }
  .tb-r { flex-wrap: wrap; gap: 4px; }
  .nav-inner { height: 72px; }
  .nav-logo img { height: 64px; }
}

/* Inline grids — responsive overrides */
@media(max-width:768px) {
  /* All inline style grids collapse to 1 column */
  [style*="grid-template-columns:repeat(3,1fr)"],
  [style*="grid-template-columns: repeat(3,1fr)"] {
    grid-template-columns: 1fr !important;
  }
  [style*="grid-template-columns:repeat(6,1fr)"] {
    grid-template-columns: repeat(3,1fr) !important;
  }
  [style*="grid-template-columns:1fr 1fr"],
  [style*="grid-template-columns: 1fr 1fr"] {
    grid-template-columns: 1fr !important;
  }
  [style*="grid-template-columns:repeat(2,1fr)"] {
    grid-template-columns: 1fr !important;
  }
  /* two-col */
  .two-col { grid-template-columns: 1fr !important; }
  /* svc-grid */
  .svc-grid { grid-template-columns: 1fr !important; background: transparent !important; border: none !important; gap: 8px !important; }
  .svc { border: 1px solid var(--g2) !important; border-radius: 10px !important; }
  /* price grid */
  .price-grid { grid-template-columns: 1fr !important; max-width: 400px; margin: 0 auto; }
  /* team grid */
  .team-grid { grid-template-columns: repeat(2,1fr) !important; }
  /* stats */
  .stats, .about-stats { grid-template-columns: repeat(2,1fr) !important; }
  /* footer */
  .footer-grid { grid-template-columns: 1fr !important; }
  /* hero inner */
  .hero-inner { grid-template-columns: 1fr !important; }
  /* cta bar */
  .cta-bar .wrap { flex-direction: column; text-align: center; }
  .cta-bar-btns { justify-content: center; }
}
@media(max-width:480px) {
  [style*="grid-template-columns:repeat(6,1fr)"] {
    grid-template-columns: repeat(2,1fr) !important;
  }
  .hero-btns { flex-direction: column; }
  .hero-btns .btn { justify-content: center; width: 100%; }
  .cta-btns { flex-direction: column; align-items: center; }
  .cta-btns .btn { width: 100%; max-width: 280px; justify-content: center; }
  h1 { font-size: clamp(26px,7vw,40px) !important; }
  .hero-sm h1 { font-size: clamp(24px,6vw,36px) !important; }
}

/* News grid: 3col → 1col on mobile */
@media(max-width:768px) {
  [style*="grid-template-columns:repeat(3,1fr)"][style*="gap:20px"] {
    grid-template-columns: 1fr !important;
  }
}

/* Team cards: auto-fill already responsive — but min card width */
@media(max-width:480px) {
  [style*="grid-template-columns:repeat(auto-fill,minmax(185px"] {
    grid-template-columns: repeat(2,1fr) !important;
  }
}

/* Modal: full width on small screens */
@media(max-width:480px) {
  .modal-box, [id^="modal-"] > div { max-width: 100% !important; margin: 10px; }
}

/* Buttons: full width on mobile for CTA areas */
@media(max-width:480px) {
  .contact-person { flex-direction: column; text-align: center; }
  .contact-person .btn { width: 100%; justify-content: center; }
}

/* Tables and large content */
@media(max-width:768px) {
  .dd-panel { display: none !important; } /* hide dropdown on mobile (use drawer) */
  .contact-grid { grid-template-columns: 1fr !important; }
  .form-row { grid-template-columns: 1fr !important; }
  .steps { grid-template-columns: repeat(2,1fr) !important; }
  .steps::before { display: none; }
}

/* Topbar: phone link always visible */
@media(max-width:768px) {
  .tb-r { justify-content: center; }
}

/* Smooth scrolling and tap highlight */
html { scroll-behavior: smooth; -webkit-tap-highlight-color: transparent; }
a, button { -webkit-tap-highlight-color: rgba(252,222,24,0.2); }

/* Safe area for iPhone notch */
.topbar, .nav, .footer {
  padding-left: max(16px, env(safe-area-inset-left));
  padding-right: max(16px, env(safe-area-inset-right));
}
.footer { padding-bottom: max(20px, env(safe-area-inset-bottom)); }

/* ── STRIP RESPONSIVE FIX ────────────────────────────────────────────── */

.strip-item:last-child { border-right: none !important; }
@media(max-width:768px) {
        .si-lbl { font-size: 10.5px !important; }
  
}

/* ═══ PERFORMANCE & ACCESSIBILITY ═══════════════════════════════════ */
/* Font display swap */
@font-face { font-display: swap; }

/* Reduce paint on scroll */
.nav { will-change: transform; }

/* Focus styles for accessibility */
a:focus-visible, button:focus-visible {
  outline: 2px solid var(--y);
  outline-offset: 2px;
  border-radius: 3px;
}

/* Reduce motion for users who prefer it */
@media (prefers-reduced-motion: reduce) {
  *, *::before, *::after {
    animation-duration: .01ms !important;
    transition-duration: .01ms !important;
  }
}

/* Print styles */
@media print {
  .topbar, .nav, .strip, .ham, .drawer, .modal { display: none !important; }
  body { color: #000; background: #fff; }
  a { color: #000; }
}

@media (max-width: 780px) {
  /* Kontaktblock: 3 Spalten → 1 Spalte */
  section[style*="background:var(--n2)"] .wrap > div[style*="grid-template-columns:1fr 260px 300px"] {
    grid-template-columns: 1fr !important;
    gap: 16px !important;
  }
  /* Kontakt-Box + Formular: Höhe auto */
  section[style*="background:var(--n2)"] .contact-box-unified,
  section[style*="background:var(--n2)"] .wrap > div > div:last-child {
    height: auto !important;
  }
  /* display:flex Wrapper für Contact-Box und Form aufheben */
  section[style*="background:var(--n2)"] .wrap > div > div[style*="display:flex"] {
    display: block !important;
  }
  /* Kontaktblock Padding auf Mobile reduzieren */
  section[style*="background:var(--n2)"] {
    padding: 24px 0 !important;
  }
  /* "Haben Sie Fragen" h2 kleiner */
  section[style*="background:var(--n2)"] h2 {
    font-size: 22px !important;
  }
}
@media (max-width: 600px) {
  .strip-inner {
    grid-template-columns: repeat(4,1fr) !important;
  }
  
}
/* ── AC PLUGIN CSS ──────────────────────────────────────────────── */
.ac-ol{list-style:none;margin:24px 0;padding:0;counter-reset:ac-step}
.ac-ol li{display:flex;gap:14px;align-items:flex-start;padding:14px 0;border-bottom:0.5px solid var(--g2)}
.ac-ol li:last-child{border-bottom:none}
.ac-ol li::before{counter-increment:ac-step;content:counter(ac-step);min-width:32px;height:32px;border-radius:50%;background:var(--y);color:var(--n);font-weight:700;font-size:14px;display:flex;align-items:center;justify-content:center;flex-shrink:0;margin-top:1px}
.ac-ol li strong{display:block;font-size:15px;font-weight:600;color:var(--n);margin-bottom:3px}
.ac-ol li span{font-size:13px;color:var(--tm);line-height:1.5}
.ac-table{width:100%;border-collapse:collapse;margin:24px 0;font-size:13px}
.ac-table th{background:var(--n);color:var(--w);padding:10px 14px;text-align:left;font-weight:600}
.ac-table th:first-child{border-radius:8px 0 0 0}
.ac-table th:last-child{border-radius:0 8px 0 0}
.ac-table td{padding:10px 14px;border-bottom:0.5px solid var(--g2);color:var(--t)}
.ac-table tr:last-child td{border-bottom:none}
.ac-table tr:nth-child(even) td{background:var(--g0)}
.ac-table .check{color:#2e7d32;font-weight:700}
.ac-table .minus{color:var(--tm)}
.ac-ratings{display:flex;flex-wrap:wrap;gap:16px;margin:24px 0}
.ac-rating-card{background:var(--w);border:1.5px solid var(--g2);border-radius:10px;padding:16px 20px;flex:1;min-width:220px}
.ac-rating-card .stars{color:#f9a825;font-size:20px;letter-spacing:2px;margin-bottom:6px}
.ac-rating-card .rating-val{font-size:28px;font-weight:700;color:var(--n);display:inline}
.ac-rating-card .rating-max{font-size:14px;color:var(--tm)}
.ac-rating-card .rating-count{font-size:12px;color:var(--tm);margin-top:4px}
.ac-rating-card .rating-src{font-size:11px;color:var(--tm);margin-top:8px;display:flex;align-items:center;gap:6px}
.ac-testimonials{display:grid;grid-template-columns:repeat(auto-fill,minmax(260px,1fr));gap:16px;margin:24px 0}
.ac-testimonial{background:var(--w);border:1.5px solid var(--g2);border-radius:10px;padding:18px 20px}
.ac-testimonial .stars{color:#f9a825;font-size:14px;margin-bottom:8px}
.ac-testimonial .text{font-size:13px;color:var(--t);line-height:1.6;font-style:italic;margin-bottom:12px}
.ac-testimonial .author{font-size:12px;font-weight:600;color:var(--n)}
.ac-testimonial .company{font-size:11px;color:var(--tm)}
.ac-inject-title{font-size:18px;font-weight:600;color:var(--n);margin:32px 0 8px}
.ac-inject-title span{font-size:13px;font-weight:400;color:var(--tm);margin-left:8px}
.ac-region-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(140px,1fr));gap:8px;margin:16px 0 32px}
.ac-region-item{background:var(--g0);border:1px solid var(--g2);border-radius:8px;padding:10px 14px;font-size:13px;color:var(--t);display:flex;align-items:center;gap:8px}
.ac-region-item svg{flex-shrink:0;color:var(--tm)}

/* ── SEC-SM ──────────────────────────────────────────────────────── */
.sec-sm { padding: clamp(56px,7vw,88px) 0; background: var(--w); border-top: 4px solid var(--y) }
.sec-sm .eyebrow { color: var(--n); }

/* ── FOOT-DESC ───────────────────────────────────────────────────── */
.foot-desc { margin-top: 20px }

/* ── STATS ───────────────────────────────────────────────────────── */
.stats { align-items: stretch; }
.stat { display: flex; flex-direction: column; justify-content: center; }
.sec-dark .stat { border-color: rgba(255,255,255,.2) !important; }
.sec-dark .stats { border-color: rgba(255,255,255,.25) !important; }
.stat.sec-dark .stat-n { color: var(--y) !important; }

/* ── STRIP SCROLL ────────────────────────────────────────────────── */
.strip { overflow: hidden; }
.strip-inner { display: flex !important; flex-wrap: wrap !important; }
.strip-item { flex: 0 0 auto !important; white-space: nowrap !important; min-width: auto !important; }

/* ── TOPBAR ─────────────────────────────────────────────────────────
   Ansatz: CSS Grid mit auto-fit
   Adresse: min-content (volle Textbreite, nie abgeschnitten)
   Buttons: auto (passt sich an)
   Grid bricht automatisch um wenn kein Platz
   ──────────────────────────────────────────────────────────────────── */
.topbar .wrap {
  display: grid !important;
  grid-template-columns: auto auto !important;
  gap: 8px !important;
  align-items: center !important;
  max-width: none !important;
  padding: 6px clamp(16px,2vw,40px) !important;
}
.topbar .tb-l {
  display: block !important;
  white-space: nowrap !important;
  color: rgba(255,255,255,.75) !important;
  font-size: 12px !important;
}
.topbar .tb-r {
  display: flex !important;
  flex-wrap: wrap !important;
  gap: 5px !important;
  justify-content: flex-end !important;
}
@media (max-width:1280px) {
  .topbar .wrap {
    grid-template-columns: 1fr !important;
    justify-items: center !important;
  }
  .topbar .tb-l {
    text-align: center !important;
    white-space: normal !important;
    font-size: 11px !important;
  }
  .topbar .tb-r {
    justify-content: center !important;
  }
}

/* ── KUNDENLISTE ─────────────────────────────────────────────────── */
.ac-kunden-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(260px,1fr));gap:16px;margin:32px 0}
.ac-kunde-card{background:#fff;border:1px solid var(--g2);border-radius:12px;padding:20px;display:flex;flex-direction:column;gap:10px;transition:box-shadow .2s,border-color .2s}
.ac-kunde-card:hover{box-shadow:0 4px 20px rgba(26,26,46,.1);border-color:var(--y)}
.ac-kunde-logo{height:52px;display:flex;align-items:center}
.ac-kunde-logo img{max-height:44px;max-width:180px;width:auto;object-fit:contain;filter:grayscale(100%);opacity:.75;transition:filter .2s,opacity .2s}
.ac-kunde-card:hover .ac-kunde-logo img{filter:grayscale(0%);opacity:1}
.ac-kunde-name{font-size:14px;font-weight:600;color:var(--n);line-height:1.4}
.ac-kunde-addr{font-size:12px;color:var(--tm);line-height:1.5}
.ac-kunde-link{display:inline-flex;align-items:center;gap:5px;font-size:12px;color:var(--n);text-decoration:none;border:1px solid var(--g2);border-radius:6px;padding:5px 10px;margin-top:4px;transition:background .15s,border-color .15s}
.ac-kunde-link:hover{background:var(--y);border-color:var(--y)}
.ac-anfrage-card{background:#fff;border:2px solid var(--y);border-radius:12px;padding:24px;display:flex;flex-direction:column;gap:8px}
.ac-anfrage-card .ac-anfrage-title{font-size:15px;font-weight:700;color:var(--n);line-height:1.4;margin:0}
.ac-anfrage-card p{font-size:13px;color:var(--tm);line-height:1.6;margin:0}
.ac-anfrage-btn{display:inline-block;background:var(--y);color:var(--n);font-weight:700;font-size:13px;padding:10px 22px;border-radius:6px;text-decoration:none;text-transform:uppercase;letter-spacing:.04em;margin-top:8px;align-self:flex-start;transition:background .15s}
.ac-anfrage-btn:hover{background:var(--yd)}
@media(max-width:600px){.ac-kunden-grid{grid-template-columns:1fr}}
@media(min-width:601px) and (max-width:900px){.ac-kunden-grid{grid-template-columns:repeat(2,1fr)}}

/* ===== Einheitlicher Header: Icon-Logo + "Alle Leistungen" (header.php v3) ===== */
.tb-logo-group{display:flex;align-items:center;gap:12px;flex-shrink:0;min-width:max-content}
.tb-logo{display:flex;align-items:center;flex-shrink:0}
.tb-logo img{height:52px;width:52px;min-width:52px;min-height:52px;max-width:52px;border-radius:8px;flex-shrink:0;display:block;object-fit:cover}

.tb-dd{position:relative}
.tb-dd-leistungen{display:flex;align-items:center;gap:5px;background:var(--y);border:1px solid var(--y);color:var(--n);font-weight:700;border-radius:3px;padding:6px 12px;font-size:11.5px;white-space:nowrap;cursor:pointer;font-family:var(--fb);line-height:normal;transition:background .15s}
.tb-dd-leistungen:hover{background:#ffe558;border-color:#ffe558}
.tb-dd-leistungen svg{transition:transform .2s;flex-shrink:0;width:10px;height:10px}
.tb-dd.open .tb-dd-leistungen svg{transform:rotate(180deg)}
.tb-dd .dd-panel{left:auto;right:0;top:calc(100% + 10px)}
@media(max-width:1150px){.tb-dd .dd-panel{display:none !important}.ham{display:flex !important}}
@media(min-width:1151px){.topbar .ham{display:none}}
html,body{background:#e8ecf4}

/* Fix: .topbar a Farbregel überschreibt sonst die Mega-Menü-Texte (weiss auf weiss) */
.topbar .dd-item{color:var(--n) !important}
.topbar .dd-item:hover{color:var(--n) !important}
.topbar .dd-col-title{color:var(--y) !important}

/* Fix: Footer-Logo nutzt Klasse "fl-logo"; Filter entfernt da logo.jpg keinen transparenten Hintergrund hat (sonst weisser Klotz) */
.fl-logo img{height:64px;width:auto;border-radius:6px;margin-bottom:14px}

/* Such-Lupe in der Topbar */
.tb-search{display:flex;align-items:center;position:relative;flex-shrink:0}
.tb-search-toggle{background:rgba(255,255,255,.1);border:1px solid rgba(255,255,255,.18);border-radius:3px;color:#fff;cursor:pointer;padding:6px 9px;display:flex;align-items:center;transition:background .15s,border-color .15s}
.tb-search-toggle:hover{background:rgba(255,255,255,.2);border-color:rgba(255,255,255,.35)}
.tb-search.open .tb-search-toggle{background:var(--y);border-color:var(--y);color:var(--n)}
.tb-search-input{width:0;opacity:0;padding:6px 0;margin-left:0;border:none;border-bottom:1px solid transparent;background:transparent;color:#fff;font-size:12px;transition:width .2s,opacity .2s,margin-left .2s,border-color .2s}
.tb-search.open .tb-search-input{width:140px;opacity:1;margin-left:8px;border-bottom-color:rgba(255,255,255,.3)}
.tb-search-input::placeholder{color:rgba(255,255,255,.4)}

/* ===== Variante B: Icon-Box Navy/Gelb (ersetzt farbige Emojis) ===== */
.ac-icon-box{width:44px;height:44px;min-width:44px;border-radius:9px;background:var(--n);display:flex;align-items:center;justify-content:center;margin-bottom:12px}
.ac-icon-box i{font-size:22px;color:var(--y)}

/* ===== Fix: --fs war undefiniert (Alias für --fb = DM Sans) ===== */
:root { --fs: var(--fb) }

/* ===== WP Editor: Editor-Ansicht = Frontend-Ansicht ===== */
.editor-styles-wrapper { font-family: var(--fb); color: var(--t); }
.editor-styles-wrapper h1, .editor-styles-wrapper h2,
.editor-styles-wrapper h3 { font-family: var(--fh); color: var(--n); }

/* ═══ HERO STAGE — MOBILE FIX (in style.css, zuverlässig) ═══════════════════ */
.h-flip-scene{perspective:3000px;width:clamp(150px,15vw,195px);aspect-ratio:1/1}
.h-flip-card{width:100%;height:100%;border-radius:10px;overflow:hidden;transform:rotateY(0deg);will-change:transform}
.h-flip-card img{width:100%;height:100%;object-fit:cover;object-position:center top;display:block}

@media(max-width:860px){
  /* Slots bleiben position:absolute → kein Layout-Shift beim Textwechsel */
  #hero-stage{height:310px!important;width:100%}
  /* KRITISCH: Hero-Wrap bleibt ROW (andere CSS setzen .hero .wrap auf column) */
  /* Bei column: flex:1 steuert Höhe, nicht Breite → Textcontainer wird 0px breit */
  .hero .wrap{
    flex-direction:row!important;
    padding-top:36px!important;
    padding-bottom:36px!important;
    flex-wrap:nowrap!important;
  }
  /* Textcontainer: volle verfügbare Breite, max-width:520px aufheben */
  .hero .wrap > div:first-child{
    width:100%!important;
    max-width:100%!important;
    flex:1!important;
  }
  .h-slot-hidden{display:block}
}

/* ═══ TOPBAR — RESPONSIVE FIX ══════════════════════════════════════════════ */
/* Problem 1: min-width:max-content verhindert Schrumpfen der Adresszeile */
.tb-logo-group{min-width:0!important}

/* Problem 2: Adresse umbrechen wenn Platz knapp wird */
@media(max-width:1000px){
  .tb-l{white-space:normal!important;line-height:1.4!important}
  .tb-logo-group{flex-wrap:wrap!important;align-items:flex-start!important}
}

/* Problem 3: Unter 700px — Logo + Adresse übereinander, dann alle Buttons zentriert */
@media(max-width:700px){
  .topbar .wrap{
    display:flex!important;
    flex-direction:column!important;
    align-items:center!important;
    gap:6px!important;
    padding:8px 14px!important;
  }
  .tb-logo-group{
    flex-direction:row!important;
    flex-wrap:nowrap!important;
    align-items:center!important;
    width:100%!important;
    justify-content:center!important;
  }
  .tb-l{
    white-space:normal!important;
    font-size:11px!important;
    flex:1!important;
    text-align:center!important;
  }
  .topbar .tb-r{
    width:100%!important;
    justify-content:center!important;
    flex-wrap:wrap!important;
    gap:4px!important;
  }
  .tb-dd-leistungen,.tb-search-toggle{font-size:11px!important;padding:5px 9px!important}
  .topbar .tb-r a{font-size:11px!important;padding:5px 8px!important}
}

/* ═══ NEUER FOOTER — VARIANTE B (5 Spalten) ════════════════════════════════ */
.footer{background:var(--n);padding:0}
.foot-top{padding:24px clamp(16px,3vw,40px) 0;max-width:var(--max);margin:0 auto}
.foot-brand-row{display:flex;align-items:center;justify-content:space-between;padding-bottom:16px;border-bottom:1px solid rgba(255,255,255,.08);margin-bottom:18px;gap:16px;flex-wrap:wrap}
.foot-brand-left{display:flex;align-items:center;gap:10px}
.foot-logo-box{background:var(--y);border-radius:6px;width:30px;height:30px;display:flex;align-items:center;justify-content:center;flex-shrink:0}
.foot-logo-box img{width:20px;height:20px;object-fit:contain}
.foot-company-name{font-size:12px;font-weight:600;color:rgba(255,255,255,.85);line-height:1.3}
.foot-company-sub{font-size:10px;color:rgba(255,255,255,.35);margin-top:1px}
.foot-contact-row{display:flex;gap:14px;align-items:center;flex-wrap:wrap}
.foot-contact-row a{font-size:11px;color:rgba(255,255,255,.4);text-decoration:none;display:flex;align-items:center;gap:5px}
.foot-contact-row a svg{opacity:.5}
.foot-contact-row a:hover{color:rgba(255,255,255,.7)}
.foot-cols{display:grid;grid-template-columns:repeat(5,1fr);gap:16px;padding-bottom:18px;border-bottom:1px solid rgba(255,255,255,.06)}
.foot-col-n{} 
.foot-col-n h6{font-size:10px;font-weight:600;letter-spacing:.09em;text-transform:uppercase;color:var(--y);margin:0 0 10px;padding-bottom:6px;border-bottom:1px solid rgba(252,222,24,.15)}
.foot-col-n a{display:block;font-size:11px;color:rgba(255,255,255,.5);text-decoration:none;margin-bottom:5px;line-height:1.45}
.foot-col-n a:hover{color:rgba(255,255,255,.8)}
.foot-col-n a.foot-link-y{color:var(--y)}
.foot-col-n .foot-div{height:1px;background:rgba(255,255,255,.06);margin:7px 0}
.foot-bar{background:rgba(0,0,0,.25);padding:9px clamp(16px,3vw,40px)}
.foot-bar-inner{max-width:var(--max);margin:0 auto;display:flex;justify-content:space-between;align-items:center;flex-wrap:wrap;gap:6px}
.foot-bar-inner span{font-size:10px;color:rgba(255,255,255,.22)}
.foot-bar-inner div{display:flex;gap:12px;flex-wrap:wrap}
.foot-bar-inner div a{font-size:10px;color:rgba(255,255,255,.28);text-decoration:none}
.foot-bar-inner div a:hover{color:rgba(255,255,255,.55)}
/* Mobile */
@media(max-width:860px){
  .foot-cols{grid-template-columns:repeat(2,1fr);gap:12px}
  .foot-brand-row{flex-direction:column;align-items:flex-start}
}
@media(max-width:480px){
  .foot-cols{grid-template-columns:1fr}
}

/* ── Stats-Bar Mobile: horizontale Trennlinien zwischen Zeilen ── */
@media(max-width:768px){
  .stats > .stat{
    border-bottom:1px solid rgba(255,255,255,.2)!important;
    border-right:1px solid rgba(255,255,255,.2)!important;
  }
  /* Rechte Spalte: kein rechter Rand (würde doppelt mit Aussen-Rahmen) */
  .stats > .stat:nth-child(even){
    border-right:none!important;
  }
  /* Letzte zwei (unterste Zeile): kein unterer Rand */
  .stats > .stat:nth-last-child(-n+2){
    border-bottom:none!important;
  }
}
