/* WGRCMS-Step-0056 CTA + Footer 1:1 Polish */
:root{
  --wgr-blue:#015da8;
  --wgr-blue-dark:#014f8e;
  --wgr-dark:#09233b;
  --wgr-muted:#40556a;
  --wgr-line:#dbe8f0;
  --wgr-box:1180px;
}

/* CTA-Leiste wie Mockup */
.home-cta{
  max-width:1180px!important;
  margin:24px auto 0!important;
  min-height:78px!important;
  padding:18px 28px!important;
  display:grid!important;
  grid-template-columns:72px 1fr auto!important;
  align-items:center!important;
  gap:22px!important;
  background:#015da8!important;
  color:#fff!important;
  border-radius:7px!important;
  box-shadow:0 16px 36px rgba(1,93,168,.22)!important;
  overflow:hidden!important;
  position:relative!important;
}

.home-cta::before{
  content:""!important;
  width:52px!important;
  height:52px!important;
  border-radius:12px!important;
  background:rgba(255,255,255,.13)!important;
  grid-column:1!important;
  grid-row:1!important;
}

.home-cta::after{
  content:""!important;
  width:34px!important;
  height:34px!important;
  background:#fff!important;
  position:absolute!important;
  left:37px!important;
  top:50%!important;
  transform:translateY(-50%)!important;
  opacity:.95!important;
  mask-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cpath fill='black' d='M8 11a3 3 0 1 0 0-6 3 3 0 0 0 0 6Zm8 0a3 3 0 1 0 0-6 3 3 0 0 0 0 6ZM2 20a6 6 0 0 1 12 0H2Zm8.5-2.8A6 6 0 0 1 22 20h-6.5a7.9 7.9 0 0 0-5-2.8Z'/%3E%3C/svg%3E")!important;
  -webkit-mask-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cpath fill='black' d='M8 11a3 3 0 1 0 0-6 3 3 0 0 0 0 6Zm8 0a3 3 0 1 0 0-6 3 3 0 0 0 0 6ZM2 20a6 6 0 0 1 12 0H2Zm8.5-2.8A6 6 0 0 1 22 20h-6.5a7.9 7.9 0 0 0-5-2.8Z'/%3E%3C/svg%3E")!important;
  mask-size:contain!important;
  -webkit-mask-size:contain!important;
  mask-repeat:no-repeat!important;
  -webkit-mask-repeat:no-repeat!important;
}

.home-cta > div,
.home-cta .home-cta-text,
.home-cta h2,
.home-cta p{
  grid-column:2!important;
}

.home-cta h2{
  color:#fff!important;
  font-size:18px!important;
  line-height:1.25!important;
  font-weight:900!important;
  margin:0 0 5px!important;
}

.home-cta p{
  color:#eaf6ff!important;
  font-size:14px!important;
  line-height:1.45!important;
  margin:0!important;
}

.home-cta .btn,
.home-cta a.btn,
.home-cta a{
  grid-column:3!important;
  justify-self:end!important;
}

.home-cta .btn,
.home-cta a.btn{
  min-height:42px!important;
  padding:0 24px!important;
  border-radius:4px!important;
  background:rgba(255,255,255,.10)!important;
  color:#fff!important;
  border:1px solid rgba(255,255,255,.70)!important;
  font-size:13px!important;
  font-weight:900!important;
  text-decoration:none!important;
}

.home-cta .btn:hover,
.home-cta a.btn:hover{
  background:rgba(255,255,255,.18)!important;
}

/* Footer wie Mockup */
.footer{
  margin:0!important;
  padding:30px max(28px,calc((100% - 1180px)/2)) 28px!important;
  background:#015da8!important;
  color:#fff!important;
  display:grid!important;
  grid-template-columns:1.05fr .85fr .9fr 1.3fr!important;
  gap:34px!important;
  align-items:start!important;
  box-shadow:inset 0 1px 0 rgba(255,255,255,.16)!important;
}

.footer > div{
  max-width:none!important;
  flex:none!important;
}

.footer h3,
.footer strong{
  color:#fff!important;
  display:block!important;
  font-size:15px!important;
  line-height:1.25!important;
  font-weight:900!important;
  margin:0 0 12px!important;
}

.footer p,
.footer li,
.footer a,
.footer span{
  color:#eaf6ff!important;
  font-size:13px!important;
  line-height:1.55!important;
  text-decoration:none!important;
}

.footer a:hover{
  color:#fff!important;
  text-decoration:underline!important;
}

.footer ul{
  list-style:none!important;
  padding:0!important;
  margin:0!important;
}

.footer li{
  margin:0 0 6px!important;
}

/* Kontakt-Icons im Footer */
.footer p{
  margin:0 0 7px!important;
}

.footer p:has(a[href^="mailto"])::before{
  content:"✉ "!important;
}

.footer p:has(a[href^="tel"])::before{
  content:"☎ "!important;
}

/* Kartenbox rechts im Footer */
.footer-map,
.map-box,
.footer .map,
.footer iframe{
  width:100%!important;
  min-height:150px!important;
  border-radius:6px!important;
  overflow:hidden!important;
  background:#eef6fb!important;
  border:1px solid rgba(255,255,255,.22)!important;
}

.footer iframe{
  display:block!important;
  border:0!important;
}

/* Falls keine echte Map vorhanden ist: schöne Karten-Anmutung */
.footer > div:last-child{
  min-height:150px!important;
  border-radius:6px!important;
  background:
    linear-gradient(135deg,rgba(255,255,255,.82),rgba(255,255,255,.72)),
    linear-gradient(45deg,transparent 0 24%,rgba(1,93,168,.14) 24% 26%,transparent 26% 49%,rgba(1,93,168,.12) 49% 51%,transparent 51% 74%,rgba(1,93,168,.10) 74% 76%,transparent 76%),
    #edf5fa!important;
  padding:22px!important;
  color:#015da8!important;
  position:relative!important;
}

.footer > div:last-child::before{
  content:""!important;
  width:30px!important;
  height:30px!important;
  border-radius:999px 999px 999px 0!important;
  background:#015da8!important;
  transform:rotate(-45deg)!important;
  position:absolute!important;
  left:28px!important;
  top:38px!important;
}

.footer > div:last-child::after{
  content:""!important;
  width:10px!important;
  height:10px!important;
  border-radius:999px!important;
  background:#fff!important;
  position:absolute!important;
  left:38px!important;
  top:48px!important;
}

.footer > div:last-child h3,
.footer > div:last-child strong,
.footer > div:last-child p,
.footer > div:last-child a,
.footer > div:last-child span{
  color:#015da8!important;
  margin-left:46px!important;
}

/* Footer Bottom */
.wgr-footer-bottom,
.footer-bottom{
  background:#f7fbfe!important;
  color:#015da8!important;
  padding:13px max(28px,calc((100% - 1180px)/2))!important;
  display:flex!important;
  align-items:center!important;
  justify-content:space-between!important;
  gap:20px!important;
  border-top:1px solid #dbe8f0!important;
}

.wgr-footer-bottom a,
.footer-bottom a,
.wgr-footer-bottom span,
.footer-bottom span{
  color:#015da8!important;
  font-size:13px!important;
  text-decoration:none!important;
}

.wgr-footer-bottom a:hover,
.footer-bottom a:hover{
  text-decoration:underline!important;
}

/* Social Icons falls vorhanden */
.socials,
.footer-socials{
  display:flex!important;
  gap:10px!important;
  align-items:center!important;
}

.socials a,
.footer-socials a{
  width:28px!important;
  height:28px!important;
  display:grid!important;
  place-items:center!important;
  border-radius:6px!important;
  background:#015da8!important;
  color:#fff!important;
}

/* Mobile */
@media(max-width:1100px){
  .footer{
    grid-template-columns:repeat(2,1fr)!important;
  }

  .home-cta{
    margin-left:22px!important;
    margin-right:22px!important;
  }
}

@media(max-width:980px){
  .home-cta{
    grid-template-columns:56px 1fr!important;
    gap:16px!important;
  }

  .home-cta .btn,
  .home-cta a.btn,
  .home-cta a{
    grid-column:2!important;
    justify-self:start!important;
  }

  .footer{
    grid-template-columns:1fr!important;
    padding:28px 22px!important;
  }

  .wgr-footer-bottom,
  .footer-bottom{
    padding:13px 22px!important;
    flex-direction:column!important;
    align-items:flex-start!important;
  }
}
