/* NWS footer (block <!-- nws:footer --> from nextweb-tools/nav.mjs (outside the repo)): areas like the Site Tests footer, slimmer;
   in tune with the navbar – light in the light theme, navy in the dark theme, same container width.
   The year in the bottom line stays automatic (template script fills .js-year). */
footer.nws-footer {
  --nws-footer-bg: #f5f7fb;
  --nws-footer-fg: var(--nws-header-fg);
  --nws-footer-fg-2: var(--nws-header-fg-2);
  --nws-footer-line: var(--nws-header-line);
  --nws-footer-accent: var(--nws-c-primary);
  position: relative;
  padding: 64px 0 0;
  background: var(--nws-footer-bg) !important;
  background-image: none !important;
  color: var(--nws-footer-fg-2);
  font-family: var(--nws-font-body);
  font-size: 0.9375rem;
  line-height: 1.55;
}
[data-theme='dark'] footer.nws-footer {
  --nws-footer-bg: #0e0f26;
  --nws-footer-accent: #8db0ee;
}
/* fine brand line on top */
footer.nws-footer::before {
  content: '';
  position: absolute;
  top: 0;
  left: 0;
  right: 0;
  height: 1px;
  background: linear-gradient(90deg, transparent 0%, #4a81d3 30%, #514a9d 70%, transparent 100%);
  opacity: 0.55;
}
footer.nws-footer .nws-footer__inner {
  max-width: calc(var(--nws-container) + 2 * var(--nws-gutter));
  margin-inline: auto;
  padding-inline: var(--nws-gutter);
}
footer.nws-footer ul {
  margin: 0;
  padding: 0;
  list-style: none;
}
footer.nws-footer p {
  margin: 0;
}
/* the template centres the footer on small screens – the NWS footer is always left-aligned */
footer.nws-footer,
footer.nws-footer * {
  text-align: left;
}
/* the template sets every <nav> to height 0 below 992 px (its old mobile menu) – the footer columns are <nav>s */
footer.nws-footer nav {
  height: auto;
}

/* main area: big N mark · TableServ · Websites · Unternehmen · contact */
footer.nws-footer .nws-footer__main {
  display: grid;
  grid-template-columns: minmax(96px, 0.8fr) repeat(3, minmax(0, 1fr)) minmax(0, 1.45fr);
  gap: 40px;
  align-items: start;
}
footer.nws-footer .nws-footer__brand {
  display: inline-block;
  width: fit-content;
  border-radius: 12px;
}
/* the big N mark as before: white on navy, navy on light */
footer.nws-footer .nws-footer__mark {
  display: block;
  width: 96px;
  height: 96px;
  content: url('/images/nws/n-mark-light.svg');
}
[data-theme='dark'] footer.nws-footer .nws-footer__mark {
  content: url('/images/svg-19.svg');
}
footer.nws-footer .nws-footer__title {
  margin: 0 0 14px;
  color: var(--nws-footer-fg-2);
  font-size: 0.75rem;
  font-weight: 600;
  letter-spacing: 0.12em;
  line-height: 1.4;
  text-transform: uppercase;
}
footer.nws-footer .nws-footer__col li {
  margin: 0 0 9px;
}
footer.nws-footer a {
  color: var(--nws-footer-fg);
  font-weight: 500;
  text-decoration: none;
  transition: color 160ms ease;
}
footer.nws-footer a:hover,
footer.nws-footer a:focus-visible,
footer.nws-footer a[aria-current='page'] {
  color: var(--nws-footer-accent);
}
footer.nws-footer a:focus-visible {
  outline: 2px solid var(--nws-c-focus);
  outline-offset: 3px;
  border-radius: 4px;
}

/* contact: icon tile on the left, label + value stacked next to it – always aligned */
footer.nws-footer .nws-footer__contact li {
  display: grid;
  grid-template-columns: 34px minmax(0, 1fr);
  column-gap: 12px;
  align-items: center;
  margin: 0 0 14px;
}
footer.nws-footer .nws-footer__icon {
  grid-row: span 2;
  display: grid;
  place-items: center;
  width: 34px;
  height: 34px;
  border-radius: 10px;
  background: rgba(var(--nws-c-primary-rgb), 0.1);
  color: var(--nws-footer-accent);
}
[data-theme='dark'] footer.nws-footer .nws-footer__icon {
  background: rgba(141, 176, 238, 0.12);
}
footer.nws-footer .nws-footer__icon svg {
  display: block;
}
footer.nws-footer .nws-footer__label {
  align-self: end;
  color: var(--nws-footer-fg-2);
  font-size: 0.8125rem;
  line-height: 1.3;
}
footer.nws-footer .nws-footer__contact li > a,
footer.nws-footer .nws-footer__contact li > span:last-child {
  align-self: start;
  overflow-wrap: anywhere;
  color: var(--nws-footer-fg);
  font-weight: 500;
  line-height: 1.4;
}

/* slim bottom line */
footer.nws-footer .nws-footer__bottom {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  justify-content: space-between;
  gap: 10px 24px;
  margin-top: 48px;
  padding: 18px 0;
  border-top: 1px solid var(--nws-footer-line);
  font-size: 0.8125rem;
}
footer.nws-footer .nws-footer__legal {
  display: flex;
  flex-wrap: wrap;
  gap: 8px 22px;
}
footer.nws-footer .nws-footer__legal a {
  color: var(--nws-footer-fg-2);
}

/* the floating cookie / TableServ buttons sit in the bottom corners: below ~1440 px the bottom line is exactly as tall
   as their row and its text stays between them – nothing covered, no extra gap */
@media (max-width: 1439px) {
  footer.nws-footer .nws-footer__bottom {
    min-height: 92px;
    padding: 14px 76px;
  }
}
/* tablets: N mark + three link columns in one row, contact below in two columns */
@media (max-width: 1199px) {
  footer.nws-footer .nws-footer__main {
    grid-template-columns: auto repeat(3, minmax(0, 1fr));
    gap: 32px 28px;
  }
  footer.nws-footer .nws-footer__contact {
    grid-column: 1 / -1;
  }
  footer.nws-footer .nws-footer__contact ul {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    column-gap: 28px;
  }
  footer.nws-footer .nws-footer__mark {
    width: 80px;
    height: 80px;
  }
}
/* phones: N mark, link columns two by two, contact full width; room for the floating buttons at the bottom */
@media (max-width: 767px) {
  footer.nws-footer {
    padding-top: 44px;
  }
  footer.nws-footer .nws-footer__main {
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 28px 20px;
  }
  footer.nws-footer .nws-footer__brand {
    grid-column: 1 / -1;
  }
  footer.nws-footer .nws-footer__mark {
    width: 64px;
    height: 64px;
  }
  footer.nws-footer .nws-footer__contact ul {
    grid-template-columns: minmax(0, 1fr);
  }
  footer.nws-footer .nws-footer__bottom {
    flex-direction: column;
    justify-content: center;
    align-items: center;
    gap: 6px;
    margin-top: 28px;
    padding: 12px 70px;
  }
  footer.nws-footer .nws-footer__bottom,
  footer.nws-footer .nws-footer__bottom * {
    text-align: center;
  }
  footer.nws-footer .nws-footer__legal {
    justify-content: center;
    gap: 4px 16px;
  }
}
