/* Shared footer presentation: home, catalogue, FAQ/company and legal documents. */
body .public-footer {
  box-sizing: border-box;
  width: 100%;
  min-width: 0;
  margin: 0;
  padding: 20px 28px;
  border: 0;
  border-radius: 0;
  background: #20241f;
  color: #b5bbae;
  text-align: center;
}
body .public-footer p {
  display: flex;
  width: 100%;
  max-width: 1240px;
  min-height: 44px;
  margin: 0 auto;
  align-items: center;
  justify-content: center;
  flex-wrap: wrap;
  gap: 6px 24px;
  font-size: 12px;
  line-height: 1.7;
}
body .public-footer strong { color: #fff; font-weight: 750; }
body .public-footer :is(a, button) {
  position: relative;
  display: inline-flex;
  max-width: 100%;
  min-height: 44px;
  align-items: center;
  justify-content: center;
  padding: 8px 0;
  border: 0;
  border-radius: 0;
  background: none;
  color: #b5bbae;
  font: inherit;
  font-weight: 550;
  line-height: 1.7;
  text-align: center;
  text-decoration: none;
  overflow-wrap: anywhere;
  transition: color 160ms ease;
}
body .public-footer :is(a, button)::before { content: none; display: none; }
body .public-footer :is(a, button)::after {
  content: "";
  position: absolute;
  left: 0;
  right: 0;
  bottom: 5px;
  height: 2px;
  background: #f7df22;
  transform: scaleX(0);
  transform-origin: left;
  transition: transform 180ms ease;
}
body .public-footer :is(a, button):is(:hover, :focus-visible, [aria-current="page"]) { color: #fff; text-decoration: none; }
body .public-footer :is(a, button):is(:hover, :focus-visible, [aria-current="page"])::after { transform: scaleX(1); }
body .public-footer :is(a, button):focus-visible,
body .public-footer[data-fixed-layout] :is(a, button):focus-visible { outline: 2px solid #f7df22; outline-offset: 4px; }

/* Short regular pages: the footer follows the content and rests at the bottom. */
body.home-redesign:not(.catalog-view):not(.product-preview-mode),
body:has(> .legal-footer) { display: flex; flex-direction: column; min-height: 100vh; min-height: 100dvh; }
body.home-redesign:not(.catalog-view) > main,
body:has(> .legal-footer) > .legal-main { flex: 1 0 auto; }
body > .public-footer { flex: 0 0 auto; }

/* Keep the catalogue's existing independent scrolling and sticky headings.
   Only free space below short result lists is given to the footer. */
body.catalog-redesign.catalog-view #catalogue { padding-bottom: 0; }
/* The optional back row may be hidden; keep the scroller in the flexible row. */
body.catalog-redesign.catalog-view #catalogue > .catalog-browser { grid-row: 3; }
body.catalog-redesign.catalog-view #catalogue .catalog-browser:not(.category-overview) .catalog-main {
  display: flex;
  flex-direction: column;
  padding-right: 0;
  padding-bottom: 0;
}
.catalog-redesign #catalogue .catalog-main > * { flex: 0 0 auto; }
.catalog-redesign #catalogue .catalog-inline-footer { margin-top: auto; }
.catalog-redesign #catalogue :is(#productGrid, #brandCatalogGrid):not([hidden]) { margin-bottom: 28px; }
.catalog-redesign #catalogue .catalog-overview-footer { display: none; }
.catalog-redesign #catalogue .category-overview .category-sidebar { display: flex; flex-direction: column; padding-right: 0; padding-bottom: 0; }
.catalog-redesign #catalogue .category-overview .category-sidebar > * { flex: 0 0 auto; }
.catalog-redesign #catalogue .category-overview .category-list { margin-bottom: 28px; }
.catalog-redesign #catalogue .category-overview .catalog-overview-footer { display: block; margin-top: auto; }

@media (max-width: 620px) {
  body .public-footer { padding: 16px 18px calc(16px + env(safe-area-inset-bottom, 0px)); }
  body .public-footer p { gap: 2px 18px; font-size: 11px; }
  body .public-footer p > strong { flex-basis: 100%; }
  body .public-footer p > span { flex-basis: 100%; margin-bottom: 3px; }
}
@media (prefers-reduced-motion: reduce) {
  body .public-footer :is(a, button), body .public-footer :is(a, button)::after { transition: none; }
}
@media print { body .public-footer { display: none; } }
