:root{
  --bg:#ffffff;
  --panel:#ffffff;
  --soft:#f6f8fc;
  --line:#d8e1ef;
  --text:#0f172a;
  --muted:#526174;
  --blue:#2563eb;
  --blue-soft:#edf4ff;
  --shadow:0 16px 40px rgba(15,23,42,.06);
  --wrap:1180px;
}
*{box-sizing:border-box}
html{scroll-behavior:smooth}
body{margin:0;font-family:Inter,system-ui,sans-serif;background:var(--bg);color:var(--text)}
a{text-decoration:none;color:inherit}
img{max-width:100%;display:block}
.wrap{width:min(calc(100% - 32px),var(--wrap));margin:0 auto}

.site-header{position:sticky;top:0;z-index:100;background:rgba(255,255,255,.94);backdrop-filter:blur(10px);border-bottom:1px solid rgba(15,23,42,.08)}
.nav{display:flex;align-items:center;justify-content:space-between;min-height:76px;gap:24px}
.brand{display:flex;align-items:center;gap:12px}
.brand-mark{width:44px;height:44px;display:grid;place-items:center;background:var(--blue);color:#fff;font-weight:800}
.brand-copy strong{display:block;font-size:16px}
.brand-copy small{display:block;font-size:12px;color:var(--muted);margin-top:3px}
.desktop-nav{display:flex;align-items:center;gap:26px}
.desktop-nav a{font-size:14px;font-weight:600;color:#243041}
.nav-cta{padding:12px 16px;background:var(--blue);color:#fff}
.menu-btn{display:none;background:none;border:none;width:44px;height:44px;padding:0}
.menu-btn span{display:block;width:24px;height:2px;background:var(--text);margin:5px auto}
.mobile-nav{display:none;padding:0 16px 16px;background:#fff;border-top:1px solid rgba(15,23,42,.08)}
.mobile-nav.open{display:flex;flex-direction:column}
.mobile-nav a{padding:14px 4px;border-bottom:1px solid rgba(15,23,42,.08)}

.hero{padding:64px 0 34px;background:linear-gradient(180deg,#fff 0%,#f7faff 100%)}
.hero-grid{display:grid;grid-template-columns:1.1fr .9fr;gap:24px;align-items:stretch}
.eyebrow{font-size:12px;font-weight:800;letter-spacing:.12em;text-transform:uppercase;color:var(--blue)}
h1,h2,h3,p{margin:0}
h1{font-size:clamp(38px,5vw,66px);line-height:1.02;letter-spacing:-.03em;margin:14px 0 14px;max-width:780px}
.lead{font-size:18px;line-height:1.72;color:var(--muted);max-width:660px}
.hero-actions{display:flex;flex-wrap:wrap;gap:12px;margin:26px 0 22px}
.btn{min-height:52px;padding:0 22px;display:inline-flex;align-items:center;justify-content:center;font-weight:800;border:1px solid transparent;transition:.18s ease}
.btn:hover{transform:translateY(-1px)}
.btn-primary{background:var(--blue);color:#fff}
.btn-secondary{background:#fff;color:var(--text);border-color:var(--line)}
.btn-outline{background:transparent;color:var(--blue);border-color:#b9cdf7}
.full{width:100%}
.hero-points{display:flex;flex-wrap:wrap;gap:10px}
.hero-points div{padding:12px 14px;background:#fff;border:1px solid var(--line);font-size:14px;font-weight:600;color:#273548}
.hero-panel{background:#0f172a;color:#fff;padding:28px;display:flex;flex-direction:column;justify-content:center}
.panel-label{font-size:12px;letter-spacing:.12em;text-transform:uppercase;color:#93c5fd;font-weight:800;margin-bottom:16px}
.hero-list-grid{display:grid;grid-template-columns:1fr 1fr;gap:10px}
.hero-list-item{padding:16px 14px;background:rgba(255,255,255,.06);border:1px solid rgba(255,255,255,.08);font-weight:700}

.logo-strip-section{padding:8px 0 0}
.logo-marquee{overflow:hidden;border-top:1px solid var(--line);border-bottom:1px solid var(--line);background:#fff}
.logo-track{display:flex;gap:14px;min-width:max-content;padding:14px 0;animation:marquee 34s linear infinite}
.logo-track span{padding:12px 16px;background:var(--soft);border:1px solid var(--line);font-weight:700;color:#223044;white-space:nowrap}
@keyframes marquee{from{transform:translateX(0)}to{transform:translateX(-50%)}}

.section{padding:72px 0}
.section-soft{background:var(--soft)}
.section-head{margin-bottom:24px}
.section-head.left{text-align:left}
.section-head.narrow{max-width:760px}
.section-head h2{font-size:clamp(30px,4vw,50px);line-height:1.05;margin-top:10px;letter-spacing:-.03em}

.service-grid,.object-grid,.process-grid,.region-grid{display:grid;gap:18px}
.service-grid{grid-template-columns:repeat(4,1fr)}
.service-card,.process-card,.region-card,.contact-form,.contact-copy,.object-card{background:#fff;border:1px solid var(--line);box-shadow:var(--shadow)}
.service-card{padding:24px}
.service-card h3{font-size:22px;margin-bottom:10px}
.service-card p{color:var(--muted);line-height:1.72}

.object-grid{grid-template-columns:repeat(3,1fr)}
.object-card{overflow:hidden}
.image-placeholder{aspect-ratio:1.45/1;background:linear-gradient(135deg,#e9eef7,#f9fbff);display:grid;place-items:center;color:#64748b;font-weight:700;border-bottom:1px solid var(--line)}
.object-body{padding:18px}
.object-body h3{font-size:22px;margin-bottom:8px}
.object-body p{color:var(--muted);line-height:1.72}

.process-grid{grid-template-columns:repeat(3,1fr)}
.process-card{padding:24px}
.process-card span{display:inline-flex;min-width:52px;height:52px;padding:0 12px;align-items:center;justify-content:center;background:var(--blue);color:#fff;font-weight:800;margin-bottom:16px}
.process-card h3{font-size:22px;margin-bottom:8px}
.process-card p{color:var(--muted);line-height:1.72}

.region-grid{grid-template-columns:repeat(3,1fr)}
.region-card{padding:22px}
.region-card strong{display:block;font-size:22px;margin-bottom:8px}
.region-card p{color:var(--muted);line-height:1.72}

.contact-shell{display:grid;grid-template-columns:1fr .95fr;gap:18px;align-items:start}
.contact-copy{padding:26px}
.contact-copy h2{font-size:clamp(30px,4vw,48px);line-height:1.05;margin:10px 0 12px;letter-spacing:-.03em}
.contact-copy p{color:var(--muted);line-height:1.76;margin-bottom:20px}
.contact-links{display:grid;gap:12px}
.contact-links a{padding:14px 16px;background:var(--soft);border:1px solid var(--line);font-weight:700;color:var(--blue)}
.contact-form{padding:22px}
.contact-form label{display:block;font-size:14px;font-weight:700;margin-bottom:14px;color:#1f2937}
.contact-form input,.contact-form select,.contact-form textarea{width:100%;margin-top:8px;padding:15px 16px;border:1px solid #cfd8e6;background:#fbfdff;font:inherit;color:var(--text)}
.contact-form textarea{resize:vertical}
.form-row{display:grid;gap:12px}
.two-col{grid-template-columns:1fr 1fr}
.form-note{margin-top:12px;color:var(--muted);font-size:13px;line-height:1.6}

.site-footer{padding:28px 0 40px;border-top:1px solid rgba(15,23,42,.08)}
.footer-inner{display:flex;justify-content:space-between;align-items:center;gap:20px}
.footer-inner p{margin-top:8px;color:var(--muted)}
.footer-links{display:flex;gap:18px}
.footer-links a{color:#334155}

.floating-whatsapp{position:fixed;right:16px;bottom:16px;width:64px;height:64px;border-radius:50%;display:grid;place-items:center;background:#25D366;color:#fff;z-index:90;box-shadow:0 10px 22px rgba(0, 0, 0, 0.22);border:6px solid #fff}
.floating-whatsapp svg{width:30px;height:30px}


@media (max-width:1100px){
  .hero-grid,.service-grid,.object-grid,.process-grid,.region-grid,.contact-shell{grid-template-columns:1fr 1fr}
  .service-grid article:last-child,.region-grid article:last-child,.region-grid div:last-child{grid-column:1/-1}
}
@media (max-width:760px){
  .desktop-nav{display:none}
  .menu-btn{display:block}
  .hero,.section{padding:54px 0 22px}
  .hero-grid,.service-grid,.object-grid,.process-grid,.region-grid,.contact-shell,.two-col{grid-template-columns:1fr}
  .hero-list-grid{grid-template-columns:1fr 1fr}
  .footer-inner{flex-direction:column;align-items:flex-start}
  .floating-whatsapp{right:14px;bottom:14px;width:60px;height:60px;border-width:5px}
}


.reviews-row{display:flex;gap:18px;overflow-x:auto;padding-bottom:6px;scroll-snap-type:x proximity}
.reviews-row::-webkit-scrollbar{height:10px}
.reviews-row::-webkit-scrollbar-thumb{background:#c7d4e8}
.review-card{min-width:320px;max-width:360px;padding:24px;background:#fff;border:1px solid var(--line);box-shadow:var(--shadow);scroll-snap-align:start}
.review-stars{font-size:18px;letter-spacing:.1em;color:var(--blue);margin-bottom:14px}
.review-card p{color:var(--muted);line-height:1.78;margin-bottom:18px}
.review-card strong{font-size:15px}

.region-accordion{display:grid;gap:14px}
.region-panel{background:#fff;border:1px solid var(--line);box-shadow:var(--shadow)}
.region-panel summary{list-style:none;cursor:pointer;padding:22px 24px;font-size:24px;font-weight:800;display:flex;align-items:center;justify-content:space-between}
.region-panel summary::-webkit-details-marker{display:none}
.region-panel summary::after{content:'+';font-size:28px;line-height:1;color:var(--blue)}
.region-panel[open] summary::after{content:'–'}
.region-list{display:flex;flex-wrap:wrap;gap:10px;padding:0 24px 24px}
.region-list span{padding:10px 12px;background:var(--soft);border:1px solid var(--line);font-weight:600;color:#223044}

@media (max-width:760px){
  .review-card{min-width:84vw;max-width:84vw}
  .region-panel summary{font-size:22px;padding:20px}
  .region-list{padding:0 20px 20px}
}
/* ===== LOGO ===== */
.nav {
  display: flex;
  align-items: center;
  justify-content: space-between;
}

.brand {
  display: flex;
  align-items: center;
  gap: 6px;
}

.logo {
  height: 120px;
}

.brand small {
  font-size: 12px;
  color: #666;
}
.hero-panel {
  background-image: linear-gradient(
      rgba(15, 23, 42, 0.63),
      rgba(15, 23, 42, 0.63)
    ),
    url("assets/bg.jpg");
  background-size: cover;
  background-position: center;
  background-repeat: no-repeat;

  position: relative;
  overflow: hidden;
}
.object-image {
  width: 100%;
  height: 180px;
  overflow: hidden;
  border-radius: 10px 10px 0 0;
}

.object-image img {
  width: 100%;
  height: 100%;
  object-fit: cover;
  display: block;
}
.object-card:hover img {
  transform: scale(1.05);
}

.object-image img {
  transition: transform 0.3s ease;
}
/* ===== Datenschutz Page Upgrade ===== */

.section {
  padding: 80px 20px;
}

.wrap.narrow {
  max-width: 800px;
  margin: 0 auto;
}

.legal-title {
  font-size: 48px;
  font-weight: 700;
  margin-bottom: 40px;
  color: #0f172a;
}

.legal-block {
  margin-bottom: 35px;
}

.legal-block h2 {
  font-size: 20px;
  font-weight: 700;
  margin-bottom: 10px;
  color: #0f172a;
}

.legal-block p {
  font-size: 15px;
  line-height: 1.7;
  color: #475569;
}

/* kleine Linie unter Titel */
.legal-title::after {
  content: "";
  display: block;
  width: 60px;
  height: 4px;
  background: #2563eb;
  margin-top: 15px;
  border-radius: 2px;
}
.site-header {
  background: #fff;
  border-bottom: 1px solid #e5e7eb;
  position: sticky;
  top: 0;
  z-index: 1000;
}
/* ===== HEADER FIX ===== */

.site-header {
  background: #fff;
  border-bottom: 1px solid #eee;
  position: sticky;
  top: 0;
  z-index: 1000;
}

.nav {
  display: flex;
  align-items: center;
  justify-content: space-between;
  padding: 10px 20px;
}

.brand {
  display: flex;
  align-items: center;
  gap: 15px;
  text-decoration: none;
}

.logo {
  height: 120px;
  width: auto;
}

.brand small {
  font-size: 12px;
  line-height: 1.3;
  color: #555;
}
/* ===== STARTSEITE MOBILE FIX ===== */

@media (max-width: 700px) {
  .wrap {
    width: 100%;
    max-width: 100%;
    padding-left: 20px;
    padding-right: 20px;
  }

  .hero {
    overflow: hidden;
  }

  .hero-grid {
    display: grid;
    grid-template-columns: 1fr;
    gap: 32px;
  }

  .hero-copy {
    width: 100%;
    max-width: 100%;
  }

  .hero h1 {
    font-size: 38px;
    line-height: 1.05;
    letter-spacing: -1px;
  }

  .hero p {
    font-size: 17px;
    line-height: 1.6;
  }

  .hero-actions {
    display: flex;
    flex-direction: column;
    gap: 12px;
  }

  .hero-actions .btn {
    width: 100%;
    justify-content: center;
  }

  .trust-row {
    display: flex;
    flex-wrap: wrap;
    gap: 10px;
  }

  .trust-row span {
    width: auto;
  }
}
@media (max-width: 700px) {
  .wrap.narrow {
    max-width: 100%;
    padding-left: 18px;
    padding-right: 18px;
  }
}
/* ===== LEGAL SEITEN FIX ===== */

.legal-page {
  padding: 70px 20px;
}

.legal-page .wrap {
  width: 100%;
  max-width: 820px;
  margin: 0 auto;
  padding: 0;
}

@media (max-width: 700px) {
  .legal-page {
    padding: 42px 18px;
  }

  .legal-page .wrap {
    max-width: 100%;
    padding: 0;
  }

  .legal-title {
    font-size: 34px;
    line-height: 1.1;
  }

  .legal-block h2 {
    font-size: 20px;
  }

  .legal-block p {
    font-size: 15px;
    line-height: 1.7;
  }
}
/* ===== FINAL FOOTER FIX ===== */

.site-footer {
  background: #0b1a2b !important;
  color: #e5e7eb;
  padding: 48px 0 0 !important;
  margin-top: 0;
  border-top: none !important;
}

.site-footer .wrap {
  width: min(calc(100% - 32px), 1180px);
  max-width: 1180px;
  margin: 0 auto;
  padding: 0 !important;
}

.footer-grid {
  display: grid !important;
  grid-template-columns: 1.4fr 1fr 1fr 1fr;
  gap: 48px;
  align-items: start;
}

.footer-brand,
.footer-links,
.footer-contact {
  display: block !important;
  min-width: 0;
}

.footer-logo {
  width: 180px;
  height: auto !important;
  margin-bottom: 16px;
}

.footer-brand p {
  color: #94a3b8;
  font-size: 15px;
  line-height: 1.7;
}

.footer-links h4,
.footer-contact h4 {
  color: #fbbf24;
  font-size: 15px;
  margin: 0 0 14px;
}

.footer-links a {
  display: block !important;
  color: #dbeafe;
  margin-bottom: 10px;
  font-size: 14px;
}

.footer-contact p {
  color: #dbeafe;
  font-size: 14px;
  margin-bottom: 10px;
}

.footer-bottom {
  border-top: 1px solid rgba(255,255,255,.1);
  margin-top: 42px;
  padding: 18px 0;
  text-align: center;
  color: #94a3b8;
  font-size: 13px;
}

@media (max-width: 760px) {

  .footer-grid {
    grid-template-columns: 1fr !important;
    gap: 32px;
    text-align: center;
  }

  .footer-brand,
  .footer-links,
  .footer-contact {
    display: flex;
    flex-direction: column;
    align-items: center;
  }

  .footer-links a {
    text-align: center;
  }

  .footer-contact p {
    text-align: center;
  }

  .footer-logo {
    margin: 0 auto 12px;
  }

}
.nav-cta {
  color: #fff !important;
}
/* ===== FLOAT ANIMATION ===== */

@keyframes float {
  0% {
    transform: translateY(0px);
  }
  50% {
    transform: translateY(-4px);
  }
  100% {
    transform: translateY(0px);
  }
}

.hero-actions .btn {
  box-shadow: 0 8px 20px rgba(0,0,0,0.08);
  animation: float 3s ease-in-out infinite;
  transition: all 0.25s ease;
}

/* Hover stärker */
.hero-actions .btn:hover {
  transform: translateY(-6px);
  box-shadow: 0 16px 35px rgba(0,0,0,0.15);
  animation: none; /* stoppt float beim hover */
}
.service-grid {
  display: grid;
  grid-template-columns: repeat(3, 300px);
  justify-content: center; /* DAS ist der wichtigste Punkt */
  gap: 24px;
}
.section-head {
  text-align: center;
  margin-left: auto;
  margin-right: auto;
}
@media (max-width: 760px) {
  .service-grid {
    grid-template-columns: 1fr !important;
    justify-content: stretch;
    gap: 18px;
  }

  .service-card {
    width: 100%;
  }
}
/* ===== FINAL WOW PARTNER LINE ===== */

.partner-line.premium {
  display: flex;
  align-items: center;
  justify-content: center;
  gap: 14px;

  margin: 20px 0 40px; /* 👈 sauber kombiniert */

  font-size: 14px;
  color: #64748b;
}

/* Linien */
.partner-line.premium::before,
.partner-line.premium::after {
  content: "";
  flex: 1;
  height: 1px;
  background: linear-gradient(to right, transparent, #cbd5e1);
}

.partner-line.premium::after {
  background: linear-gradient(to left, transparent, #cbd5e1);
}

/* Text */
.partner-line.premium span {
  white-space: nowrap;
}

/* PREMIUM DARK LOOK */
.partner-line.premium strong {
  font-weight: 700;
  background: linear-gradient(90deg, #000000, #505050);
  -webkit-background-clip: text;
  -webkit-text-fill-color: transparent;
  animation: glow 2.5s ease-in-out infinite alternate;
}

/* Glow */
@keyframes glow {
  from {
    text-shadow: 0 0 6px rgba(255, 255, 255, 0.2);
  }
  to {
    text-shadow: 0 0 12px rgba(160, 160, 160, 0.5);
  }
}
#leistungen {
  padding-bottom: 30px;
}
.gold-section {
  background: #fff;
}

.gold-box {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 34px;
  align-items: center;
  background: #0b1a2b;
  padding: 36px;
  color: #fff;
  overflow: hidden;
}

.gold-copy h2 {
  font-size: clamp(32px, 4vw, 52px);
  line-height: 1.05;
  margin: 12px 0;
}

.gold-copy p {
  color: #cbd5e1;
  line-height: 1.7;
  margin-bottom: 24px;
}

.gold-slider {
  position: relative;
  min-height: 360px;
  overflow: hidden;
  border: 1px solid rgba(251,191,36,.35);
}

.gold-slide {
  position: absolute;
  inset: 0;
  background-size: cover;
  background-position: center;
  opacity: 0;
  animation: goldSlide 12s infinite;
}

.slide-1 {
  background-image: url("assets/gold-1.jpg");
  animation-delay: 0s;
}

.slide-2 {
  background-image: url("assets/gold-2.jpg");
  animation-delay: 4s;
}

.slide-3 {
  background-image: url("assets/gold-3.jpg");
  animation-delay: 8s;
}

.gold-slider::after {
  content: "";
  position: absolute;
  inset: 0;
  background: linear-gradient(to top, rgba(11,26,43,.45), transparent);
}

@keyframes goldSlide {
  0%, 28% {
    opacity: 1;
    transform: scale(1);
  }
  33%, 100% {
    opacity: 0;
    transform: scale(1.04);
  }
}

@media (max-width: 760px) {
  .gold-box {
    grid-template-columns: 1fr;
    padding: 26px;
  }

  .gold-slider {
    min-height: 260px;
  }
}

/* ===== FLOATING BUTTONS CLEAN ===== */

.floating-call,
.floating-whatsapp {
  position: fixed;
  right: 16px;
  width: 64px;
  height: 64px;
  border-radius: 50%;
  display: grid;
  place-items: center;
  z-index: 999;
  box-shadow: 0 10px 25px rgba(0,0,0,0.25);
  transition: 0.25s ease;
}

/* CALL */
.floating-call {
  bottom: 90px;
  background: #2563eb;
  color: #fff;
  font-size: 26px;
}

/* WHATSAPP */
.floating-whatsapp {
  bottom: 16px;
  background: #25D366;
}

.floating-whatsapp img {
  width: 30px;
  height: 30px;
}

/* HOVER */
.floating-call:hover,
.floating-whatsapp:hover {
  transform: scale(1.08);
}

/* WHATSAPP PULSE */
@keyframes whatsappPulse {
  0% { box-shadow: 0 0 0 0 rgba(37, 211, 102, 0.5); }
  70% { box-shadow: 0 0 0 14px rgba(37, 211, 102, 0); }
  100% { box-shadow: 0 0 0 0 rgba(37, 211, 102, 0); }
}

/* ===== PULSE ANIMATION (für beide) ===== */

.floating-call {
  animation: pulseBlue 2.6s infinite !important;
}

.floating-whatsapp {
  animation: whatsappPulse 2.6s infinite !important;
}
@keyframes pulseBlue {
  0% { box-shadow: 0 0 0 0 rgba(37, 99, 235, 0.45); }
  70% { box-shadow: 0 0 0 14px rgba(37, 99, 235, 0); }
  100% { box-shadow: 0 0 0 0 rgba(37, 99, 235, 0); }
}
.btn-whatsapp {
  background: #25D366 !important;
  color: #fff !important;
  border: none !important;
}

.btn-whatsapp:hover {
  background: #1ebe5d !important;
}
@media (max-width: 600px) {
  .services-grid,
  .koordination-grid,
  .feature-grid {
    grid-template-columns: 1fr !important;
    gap: 10px !important;
  }

  .services-grid .card,
  .koordination-grid .card,
  .feature-grid .card {
    width: 100% !important;
    min-height: 54px;
    display: flex;
    align-items: center;
  }
}
@media (max-width: 760px) {
  .hero-panel {
    width: 100%;
    max-width: 100%;
    padding: 24px 18px;
    overflow: hidden;
    background-position: center;
  }

  .hero-list-grid {
    grid-template-columns: 1fr;
    gap: 12px;
  }

  .hero-list-item {
    width: 100%;
    padding: 16px;
    font-size: 18px;
    white-space: normal;
  }

  .panel-label {
    text-align: center;
    font-size: 12px;
    line-height: 1.4;
  }
}
/* ===== GLOBAL SCROLL ANIMATIONS ===== */

.reveal {
  opacity: 0;
  transform: translateY(26px);
  transition: opacity 0.7s ease, transform 0.7s ease;
}

.reveal.visible {
  opacity: 1;
  transform: translateY(0);
}

.reveal-delay-1 {
  transition-delay: 0.12s;
}

.reveal-delay-2 {
  transition-delay: 0.24s;
}

.reveal-delay-3 {
  transition-delay: 0.36s;
}

/* leichte Karten-Animation */
.service-card,
.object-card,
.process-card,
.region-card,
.contact-copy,
.contact-form {
  transition: transform 0.25s ease, box-shadow 0.25s ease;
}

.service-card:hover,
.object-card:hover,
.process-card:hover,
.region-card:hover {
  transform: translateY(-4px);
  box-shadow: 0 18px 45px rgba(15, 23, 42, 0.10);
}

/* Hero leicht lebendig */
.hero-panel {
  animation: softFloat 5s ease-in-out infinite;
}

@keyframes softFloat {
  0%, 100% {
    transform: translateY(0);
  }
  50% {
    transform: translateY(-6px);
  }
}

/* Weniger Bewegung für Nutzer, die Animationen aus haben */
@media (prefers-reduced-motion: reduce) {
  .reveal,
  .hero-panel,
  .service-card,
  .object-card,
  .process-card,
  .region-card {
    animation: none !important;
    transition: none !important;
    transform: none !important;
    opacity: 1 !important;
  }
}