/* ideal-heim-bau | V28 footer. Scoped, independent of SP Page Builder and Joomla module markup. */
body.ihb-page .ihb-footer.ihb-footer--v28 {
  --f28-cream: #f8f5ed;
  --f28-ink: #cddce8;
  --f28-muted: #9db4c6;
  --f28-sand: #e2c299;
  position: relative;
  isolation: isolate;
  overflow: hidden;
  padding: 0;
  background: #11283c; /* V28.1: Solid blue removes gradient banding */
  color: var(--f28-ink);
}
body.ihb-page .ihb-footer--v28::before {
  content: "";
  position: absolute;
  z-index: -2;
  pointer-events: none;
  top: -12px;
  right: -55px;
  bottom: 0;
  width: min(1060px, 72vw);
  background: url("../../../images/ihb-redesign/footer-kranwand-v28.svg") center right / contain no-repeat;
  opacity: .44; /* Keep the crane as a calm watermark, away from text */
}
body.ihb-page .ihb-footer--v28::after {
  content: "";
  position: absolute;
  z-index: -1;
  pointer-events: none;
  inset: 0;
  background: none; /* No composited gradient overlay */
  display: none;
}
body.ihb-page .ihb-footer--v28 .ihb-footer-v28__main {
  display: grid;
  grid-template-columns: 1fr 1.15fr 1fr;
  align-items: start;
  gap: clamp(26px, 5vw, 75px);
  padding-top: clamp(70px, 7vw, 103px);
  padding-bottom: clamp(65px, 7vw, 98px);
  position: relative;
  z-index: 1;
}
body.ihb-page .ihb-footer--v28 .ihb-footer-v28__logo { display: inline-block; max-width: 260px; }
body.ihb-page .ihb-footer--v28 .ihb-footer-v28__logo img {
  display: block;
  object-fit: contain;
  object-position: left center;
  width: min(255px,100%);
  max-width: 100%;
  height: auto;
}
body.ihb-page .ihb-footer--v28 .ihb-footer-v28__brandline {
  width: 49px;
  height: 2px;
  background: var(--f28-sand);
  margin-top: 35px;
  margin-bottom: 19px;
}
body.ihb-page .ihb-footer--v28 .ihb-footer-v28__brandname {
  margin: 0;
  color: #c2d2dd;
  font: 500 13px/1.65 system-ui, -apple-system, "Segoe UI", sans-serif;
  letter-spacing: .015em;
}
body.ihb-page .ihb-footer--v28 .ihb-footer-v28__eyebrow {
  display: block;
  margin-bottom: 24px;
  color: var(--f28-sand);
  letter-spacing: .16em;
  font: 750 11px/1.4 system-ui, -apple-system, "Segoe UI", sans-serif;
}
body.ihb-page .ihb-footer--v28 .ihb-footer-v28__headline {
  font: 400 clamp(26px,2.5vw,39px)/1.12 Georgia, "Times New Roman", serif;
  letter-spacing: -.035em;
  color: var(--f28-cream);
  margin: 0 0 32px;
}
body.ihb-page .ihb-footer--v28 .ihb-footer-v28__headline em {
  color: var(--f28-sand);
  font-style: italic;
  font-weight: 400;
}
body.ihb-page .ihb-footer--v28 a.ihb-footer-v28__contactlink {
  display: block;
  width: fit-content;
  font: 500 clamp(15px,1.25vw,18px)/1.6 system-ui, -apple-system, "Segoe UI", sans-serif;
  color: #fff;
  text-decoration: none;
  margin-bottom: 12px;
  overflow-wrap: anywhere;
  border-bottom: 1px solid rgba(226,194,153,.35);
  padding-bottom: 3px;
}
body.ihb-page .ihb-footer--v28 .ihb-footer-v28__hours {
  font: 400 12px/1.7 system-ui,-apple-system,"Segoe UI",sans-serif;
  color: var(--f28-muted);
  margin: 20px 0 0;
}
body.ihb-page .ihb-footer--v28 .ihb-footer-v28__location address {
  font: normal 500 clamp(15px,1.15vw,17px)/1.75 system-ui,-apple-system,"Segoe UI",sans-serif;
  color: var(--f28-cream);
  margin: 0;
}
body.ihb-page .ihb-footer--v28 a.ihb-footer-v28__map {
  color: var(--f28-sand);
  font: 750 11px/1.5 system-ui,-apple-system,"Segoe UI",sans-serif;
  letter-spacing: .095em;
  text-decoration: none;
  display: inline-flex;
  gap: 15px;
  align-items: center;
  min-height: 38px;
  border-bottom: 1px solid var(--f28-sand);
  margin-top: 22px;
  transition: color .2s, gap .2s;
}
body.ihb-page .ihb-footer--v28 a.ihb-footer-v28__map:hover { color: #fff; gap: 20px; }
body.ihb-page .ihb-footer--v28 .ihb-footer-v28__socialtitle {
  display: block;
  margin: 32px 0 14px;
  color: var(--f28-muted);
  letter-spacing: .15em;
  font: 700 10px/1.4 system-ui,-apple-system,"Segoe UI",sans-serif;
}
body.ihb-page .ihb-footer--v28 .ihb-footer-v28__social {
  display: flex;
  flex-wrap: wrap;
  gap: 10px;
}
body.ihb-page .ihb-footer--v28 a.ihb-footer-v28__sociallink {
  display: inline-flex;
  align-items: center;
  gap: 10px;
  min-height: 48px;
  padding: 10px 14px 10px 11px;
  border: 1px solid rgba(229,242,250,.28);
  background: rgba(232,244,252,.035);
  color: var(--f28-cream);
  font: 600 12px/1.4 system-ui,-apple-system,"Segoe UI",sans-serif;
  text-decoration: none;
  transition: background .18s, border-color .18s, color .18s, transform .18s;
}
body.ihb-page .ihb-footer--v28 a.ihb-footer-v28__sociallink svg { display:block;flex:0 0 auto; }
body.ihb-page .ihb-footer--v28 a.ihb-footer-v28__sociallink:hover {
  background: rgba(226,194,153,.13);
  border-color: var(--f28-sand);
  color: #fff;
  transform: translateY(-2px);
}
body.ihb-page .ihb-footer--v28 .ihb-footer-v28__bottom {
  position: relative;
  z-index: 1;
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 20px;
  width: calc(100% - 100px);
  padding: 24px 0 31px;
  border-top: 1px solid rgba(220,236,245,.24);
  color: #aabed0;
  font: 500 11px/1.6 system-ui,-apple-system,"Segoe UI",sans-serif;
}
body.ihb-page .ihb-footer--v28 .ihb-footer-v28__copyright { margin: 0; }
body.ihb-page .ihb-footer--v28 .ihb-footer-v28__legal {
  display: flex;
  align-items: center;
  justify-content: flex-end;
  flex-wrap: wrap;
  gap: clamp(14px,2.4vw,32px);
}
body.ihb-page .ihb-footer--v28 .ihb-footer-v28__legal a,
body.ihb-page .ihb-footer--v28 .ihb-footer-v28__legal button {
  appearance: none;
  background: none;
  border: 0;
  color: #d4e2ec;
  padding: 3px 0;
  font: inherit;
  font-size: 11px;
  text-decoration: none;
  line-height: 1.6;
  cursor: pointer;
  white-space: nowrap;
}
body.ihb-page .ihb-footer--v28 .ihb-footer-v28__legal a:hover,
body.ihb-page .ihb-footer--v28 .ihb-footer-v28__legal button:hover {
  color: var(--f28-sand);
  text-decoration: underline;
  text-underline-offset: 5px;
}
body.ihb-page .ihb-footer--v28 a:focus-visible,
body.ihb-page .ihb-footer--v28 button:focus-visible { outline: 2px solid var(--f28-sand); outline-offset: 5px; }
@media(max-width:1100px){
  body.ihb-page .ihb-footer--v28 .ihb-footer-v28__main { grid-template-columns: .78fr 1fr 1fr;gap:32px; }
  body.ihb-page .ihb-footer--v28 .ihb-footer-v28__bottom { width: calc(100% - 54px); }
  body.ihb-page .ihb-footer--v28 a.ihb-footer-v28__sociallink { padding: 9px 10px; }
}
@media(max-width:850px){
  body.ihb-page .ihb-footer--v28::before { width:1100px;right:-360px;opacity:.23;top:110px; }
  body.ihb-page .ihb-footer--v28 .ihb-footer-v28__main {
    grid-template-columns:repeat(2,minmax(0,1fr));
    gap: 54px 36px;
    padding-top:64px;
    padding-bottom:68px;
  }
  body.ihb-page .ihb-footer--v28 .ihb-footer-v28__brand{grid-column:1/-1;}
  body.ihb-page .ihb-footer--v28 .ihb-footer-v28__brandline { margin-top:23px; }
  body.ihb-page .ihb-footer--v28 .ihb-footer-v28__bottom {width:calc(100% - 54px)}
}
@media(max-width:600px){
  body.ihb-page .ihb-footer--v28::before {right:-550px;top:260px;opacity:.14;}
  body.ihb-page .ihb-footer--v28::after {display:none;background:none}
  body.ihb-page .ihb-footer--v28 .ihb-footer-v28__main {grid-template-columns:minmax(0,1fr);gap:39px;padding:57px 0 57px;}
  body.ihb-page .ihb-footer--v28 .ihb-footer-v28__brand {grid-column:auto;}
  body.ihb-page .ihb-footer--v28 .ihb-footer-v28__logo img {width:225px;}
  body.ihb-page .ihb-footer--v28 .ihb-footer-v28__brandline {margin:20px 0 13px;}
  body.ihb-page .ihb-footer--v28 .ihb-footer-v28__eyebrow {margin-bottom:15px;}
  body.ihb-page .ihb-footer--v28 .ihb-footer-v28__headline {font-size:32px;margin-bottom:22px;}
  body.ihb-page .ihb-footer--v28 .ihb-footer-v28__socialtitle {margin-top:25px;}
  body.ihb-page .ihb-footer--v28 .ihb-footer-v28__bottom {width:calc(100% - 36px);align-items:flex-start;gap:16px;padding:22px 0 28px;flex-direction:column;}
  body.ihb-page .ihb-footer--v28 .ihb-footer-v28__legal {justify-content:flex-start;gap:12px 21px;}
}
@media(prefers-reduced-motion:reduce){body.ihb-page .ihb-footer--v28 a{transition:none}}

/* V28.1: Defensive reset in case older template CSS sets another footer gradient. */
body.ihb-page footer.ihb-footer.ihb-footer--v28 {
  background-color: #11283c !important;
  background-image: none !important;
}
body.ihb-page footer.ihb-footer.ihb-footer--v28::after {
  content: none !important;
  display: none !important;
  background: none !important;
}
