/* Magic CMS Salto Portale footer */
.portal-footer{--footer-bg:#020617;--footer-text:#bfe9ff;--footer-accent:#168bff;--footer-cols:4;margin-top:0;background-color:var(--footer-bg);background-image:linear-gradient(rgba(0,0,0,.42),rgba(0,0,0,.62)),var(--footer-image,none);background-size:cover;background-position:center;border-top:2px solid var(--footer-accent);color:var(--footer-text);box-shadow:0 -8px 28px rgba(0,0,0,.32)}
.portal-footer-inner{max-width:var(--width,1440px);margin:auto;padding:8px 18px 6px}.portal-footer-grid{display:grid;grid-template-columns:repeat(var(--footer-cols),minmax(0,1fr));gap:18px 28px;padding-bottom:14px;border-bottom:1px solid color-mix(in srgb,var(--footer-accent) 60%,transparent)}.portal-footer-block{min-width:0;text-align:left}.portal-footer-block h3{margin:0 0 10px;font-size:14px;color:#5ff5ff;text-shadow:0 0 9px rgba(0,220,255,.35)}.portal-footer-block h3 i{margin-right:6px}.portal-footer-image{display:block;max-width:150px;max-height:85px;object-fit:contain;margin:6px 0 8px;border-radius:4px}.portal-footer-content{font-size:13px;line-height:1.5}.portal-footer-content p{margin:5px 0}.portal-footer-content a,.portal-footer-link,.portal-footer-legal a{color:#5ff5ff}.portal-footer-link{display:inline-block;margin-top:7px;font-weight:700}.portal-footer-copyright{text-align:center;color:#5ff5ff;font-weight:700;font-size:15px;padding:8px 0 2px;text-shadow:0 0 8px rgba(0,220,255,.25)}.portal-footer-stats{text-align:center;font-size:14px;font-weight:600;padding:2px 0 6px}.portal-footer-stats span{margin-left:8px}.portal-footer-legal{display:flex;justify-content:center;align-items:center;gap:8px;padding:2px 0;font-size:12px;line-height:1.2}
.portal-footer-project{text-align:center;font-size:11px;line-height:1.35;font-weight:500;opacity:.78;padding:4px 8px 2px;color:var(--footer-text);letter-spacing:.01em}.portal-footer-project:hover{opacity:1}.portal-footer a{text-decoration:none}.portal-footer a:hover{text-decoration:underline}
/* 1.1.34: Wenn nur Impressum/Datenschutz angezeigt werden, Footer wirklich flach halten. */
.portal-footer--legal-only{margin-top:0!important;min-height:0!important;height:auto!important}
.portal-footer--legal-only .portal-footer-inner{padding:4px 10px!important;min-height:0!important;height:auto!important}
.portal-footer--legal-only .portal-footer-legal{margin:0!important;padding:0!important;min-height:0!important;line-height:18px!important}
@media(max-width:900px){.portal-footer-grid{grid-template-columns:repeat(2,minmax(0,1fr))}}
@media(max-width:560px){.portal-footer-inner{padding:7px 12px 5px}.portal-footer-grid{grid-template-columns:1fr;gap:14px}.portal-footer-block{text-align:center}.portal-footer-image{margin:6px auto 8px}.portal-footer-stats span{display:inline-block;margin:2px 4px}.portal-footer-copyright{font-size:13px}.portal-footer--legal-only .portal-footer-inner{padding:3px 8px!important}.portal-footer-project{font-size:10px;padding-left:4px;padding-right:4px}}

/* 1.1.36 · Scrollup sichtbar mit Cache-Fallback */
.portal-scrollup{position:fixed;bottom:var(--scrollup-bottom,24px);z-index:1200;width:46px;height:46px;border:1px solid color-mix(in srgb,var(--footer-accent,#168bff) 75%,#fff 25%);border-radius:50%;display:grid;place-items:center;background:color-mix(in srgb,var(--footer-bg,#020617) 82%,var(--footer-accent,#168bff) 18%);color:#fff;box-shadow:0 6px 22px rgba(0,0,0,.35),0 0 14px color-mix(in srgb,var(--footer-accent,#168bff) 45%,transparent);cursor:pointer;opacity:1;visibility:visible;transform:translateY(0);transition:opacity .18s ease,transform .18s ease,visibility .18s ease}.portal-scrollup--right{right:22px}.portal-scrollup--left{left:22px}.portal-scrollup.is-hidden{opacity:0;visibility:hidden;pointer-events:none;transform:translateY(8px)}.portal-scrollup.is-visible{opacity:1;visibility:visible;pointer-events:auto;transform:translateY(0)}.portal-scrollup:hover{filter:brightness(1.12)}.portal-scrollup:focus-visible{outline:2px solid #fff;outline-offset:3px}@media(max-width:560px){.portal-scrollup{width:42px;height:42px}.portal-scrollup--right{right:12px}.portal-scrollup--left{left:12px}}

/* 1.1.39 · Footer-Hintergrund kann exakt den Mittelteil der Homepage übernehmen.
   Der bisherige schwarze Footer-Verlauf war der Grund, warum gleiche Farben trotzdem anders aussahen. */
.portal-grid.home-layout{
  background:color-mix(in srgb,var(--portal-content-bg,#000008) 82%,transparent);
}
.portal-footer.portal-footer--match-content{
  background:color-mix(in srgb,var(--portal-content-bg,#000008) 82%,transparent);
  background-image:none;
}


/* 1.1.40 · Ausrichtung pro Footer-Spalte */
.portal-footer-block--left{text-align:left!important}
.portal-footer-block--center{text-align:center!important}
.portal-footer-block--right{text-align:right!important}
.portal-footer-block--left .portal-footer-image{margin-left:0!important;margin-right:auto!important}
.portal-footer-block--center .portal-footer-image{margin-left:auto!important;margin-right:auto!important}
.portal-footer-block--right .portal-footer-image{margin-left:auto!important;margin-right:0!important}
.portal-footer-block--left .portal-footer-link{margin-left:0;margin-right:auto}
.portal-footer-block--center .portal-footer-link{margin-left:auto;margin-right:auto}
.portal-footer-block--right .portal-footer-link{margin-left:auto;margin-right:0}

/* 1.1.41+ · Breite des inneren Footers */
.portal-footer--inner-full .portal-footer-inner{
  max-width:none!important;
  width:100%!important;
  box-sizing:border-box;
}
.portal-footer--inner-content .portal-footer-inner{
  max-width:var(--width,1440px)!important;
  width:auto!important;
}

/* 1.1.42 · Footer-Trennlinie unter den Inhalts-Spalten entfernt. */
.portal-footer-grid{border-bottom:none!important}

/* 1.1.47 · vereinfachte und echte Blockpositionen.
   Sobald mindestens ein Block eine feste Position hat, arbeitet der Footer mit
   fünf klaren horizontalen Bereichen: ganz links, links-mittig, Mitte,
   rechts-mittig, ganz rechts. Mehrere Blöcke bleiben dabei in derselben Zeile,
   statt wie zuvor durch grid-column:1/-1 untereinander zu rutschen. */
.portal-footer-grid--positioned{
  grid-template-columns:repeat(5,minmax(0,1fr))!important;
  align-items:start;
  column-gap:20px;
}
.portal-footer-grid--positioned .portal-footer-block{
  min-width:0;
  width:100%;
  max-width:100%;
  box-sizing:border-box;
  margin:0!important;
  transform:none!important;
  align-self:start;
}
.portal-footer-grid--positioned .portal-footer-position--left{grid-column:1;justify-self:stretch}
.portal-footer-grid--positioned .portal-footer-position--center-left{grid-column:2;justify-self:stretch}
.portal-footer-grid--positioned .portal-footer-position--center{grid-column:3;justify-self:stretch}
.portal-footer-grid--positioned .portal-footer-position--center-right{grid-column:4;justify-self:stretch}
.portal-footer-grid--positioned .portal-footer-position--right{grid-column:5;justify-self:stretch}
.portal-footer-grid--positioned .portal-footer-position--auto{grid-column:auto;justify-self:stretch}

@media(max-width:900px){
  .portal-footer-grid--positioned{grid-template-columns:repeat(3,minmax(0,1fr))!important}
  .portal-footer-grid--positioned .portal-footer-position--left,
  .portal-footer-grid--positioned .portal-footer-position--center-left{grid-column:1}
  .portal-footer-grid--positioned .portal-footer-position--center{grid-column:2}
  .portal-footer-grid--positioned .portal-footer-position--center-right,
  .portal-footer-grid--positioned .portal-footer-position--right{grid-column:3}
}
@media(max-width:560px){
  .portal-footer-grid--positioned{grid-template-columns:1fr!important}
  .portal-footer-grid--positioned .portal-footer-block{grid-column:1!important;width:100%}
}


/* 1.1.49 · Footerbilder proportional anzeigen, ohne Höhen-Crop/Begrenzung. */
.portal-footer-block{overflow:visible!important;height:auto!important;min-height:0!important}
.portal-footer-image{
  display:block!important;
  width:auto!important;
  height:auto!important;
  max-width:min(100%,180px)!important;
  max-height:none!important;
  object-fit:contain!important;
  object-position:left top!important;
  overflow:visible!important;
}
.portal-footer-block--center .portal-footer-image{object-position:center top!important}
.portal-footer-block--right .portal-footer-image{object-position:right top!important}


/* 1.1.51 · Footer-Positionierung vereinfacht: exakt vier feste Desktop-Zonen.
   Footerbereich 1 = ganz links, 2 = mittig links, 3 = mittig rechts, 4 = ganz rechts.
   Damit entspricht der Adminaufbau direkt der sichtbaren Footer-Reihenfolge. */
.portal-footer-grid--positioned{
  display:grid!important;
  grid-template-columns:repeat(4,minmax(0,1fr))!important;
  grid-auto-flow:row!important;
  align-items:start!important;
  gap:18px 28px!important;
}
.portal-footer-grid--positioned .portal-footer-block{
  width:100%!important;
  min-width:0!important;
  max-width:none!important;
  align-self:start!important;
  justify-self:stretch!important;
  margin:0!important;
  transform:none!important;
}
.portal-footer-grid--positioned .portal-footer-position--left{grid-column:1!important}
.portal-footer-grid--positioned .portal-footer-position--center-left{grid-column:2!important}
.portal-footer-grid--positioned .portal-footer-position--center-right{grid-column:3!important}
.portal-footer-grid--positioned .portal-footer-position--right{grid-column:4!important}
/* Altwert aus 1.1.45/1.1.46: nicht mehr als fünfte Zone behandeln. */
.portal-footer-grid--positioned .portal-footer-position--center{grid-column:auto!important}
.portal-footer-grid--positioned .portal-footer-position--auto{grid-column:auto!important}
@media(max-width:900px){
  .portal-footer-grid--positioned{grid-template-columns:repeat(2,minmax(0,1fr))!important}
  .portal-footer-grid--positioned .portal-footer-block{grid-column:auto!important}
}
@media(max-width:560px){
  .portal-footer-grid--positioned{grid-template-columns:1fr!important}
  .portal-footer-grid--positioned .portal-footer-block{grid-column:1!important}
}
