/* Site-wide footer (mounted via /js/eze-footer.js into #universal-app__footer).
   Single source of truth — keep page-level overrides out of here. */

/* Sticky footer: short pages keep the footer at the bottom of the viewport.
   Pages opt in with class `eze-page` on <body> and wrap main content in #eze-page-shell. */
body.eze-page {
  min-height: 100dvh;
  display: flex;
  flex-direction: column;
}

#eze-page-shell {
  flex: 1 1 auto;
  display: flex;
  flex-direction: column;
  min-height: 0;
}

#universal-app__footer {
  flex-shrink: 0;
}

.eze-footer {
  margin-top: calc(var(--space-base) * 4);
  border-top: 1px solid var(--color-layer-02);
}

.eze-footer__inner {
  display: flex;
  flex-direction: row;
  align-items: center;
  justify-content: space-between;
  flex-wrap: wrap;
  gap: var(--space-base);
  padding: calc(var(--space-base) * 1.5) 0;
}

.eze-footer__line {
  flex: 1 1 auto;
  min-width: 0;
  font-size: var(--font-size-sm);
  line-height: 1.5;
  color: color-mix(in srgb, var(--color-foreground) 55%, var(--color-layer-03));
  text-align: left;
  white-space: normal;
  word-break: break-word;
}

.eze-footer__copy-icon {
  display: inline-block;
  vertical-align: -0.2em;
  width: 1.05em;
  height: 1.05em;
  margin-right: 0.2em;
  color: inherit;
}

.eze-footer__copy-icon svg {
  display: block;
  width: 100%;
  height: 100%;
}

@media (min-width: 640px) {
  .eze-footer__line {
    text-align: left;
  }
}

.eze-footer__line [data-eze-foot-tpl] {
  font-variant-numeric: tabular-nums;
}

.eze-footer__theme {
  flex-shrink: 0;
}
