.public-footer {
  position: relative;
  border-top: 1px solid var(--color-border);
  background: color-mix(in srgb, var(--app-surface) 94%, transparent);
  color: var(--color-text-medium);
}

.public-footer__inner {
  width: min(1180px, calc(100% - 32px));
  margin: 0 auto;
  padding: 56px 0 44px;
  display: grid;
  grid-template-columns: minmax(260px, 1.45fr) repeat(3, minmax(150px, 1fr));
  gap: clamp(28px, 5vw, 68px);
}

.public-footer__brand > p {
  max-width: 330px;
  margin: 18px 0 22px;
  color: var(--color-text-muted);
  font-size: .9rem;
  line-height: 1.7;
}

.public-footer__mobile {
  max-width: 330px;
  padding: 12px;
  display: grid;
  grid-template-columns: 36px 1fr auto;
  align-items: center;
  gap: 11px;
  border: 1px solid var(--color-border);
  border-radius: var(--border-radius);
  background: var(--app-surface-muted);
  color: var(--color-text-dark);
  text-decoration: none;
  transition: border-color .2s ease, transform .2s ease, background .2s ease;
}

.public-footer__mobile:hover { border-color: rgba(5, 150, 105, .42); background: var(--color-bg-hover); transform: translateY(-1px); }
.public-footer__mobile-icon { width: 36px; height: 36px; display: grid; place-items: center; border-radius: var(--border-radius); background: rgba(16, 185, 129, .12); color: var(--color-primary); }
.public-footer__mobile strong, .public-footer__mobile small { display: block; }
.public-footer__mobile strong { font-size: .84rem; }
.public-footer__mobile small { margin-top: 2px; color: var(--color-text-muted); font-size: .72rem; line-height: 1.35; }
.public-footer__mobile > i { color: var(--color-text-light); font-size: .8rem; }

.public-footer__column { display: flex; flex-direction: column; align-items: flex-start; gap: 11px; }
.public-footer__column h2 { margin: 0 0 5px; color: var(--color-text-dark); font-size: .76rem; font-weight: 800; letter-spacing: .09em; text-transform: uppercase; }
.public-footer__column a { color: var(--color-text-muted); font-size: .86rem; line-height: 1.45; text-decoration: none; }
.public-footer__column a:hover { color: var(--color-primary); }

.public-footer__bottom {
  width: min(1180px, calc(100% - 32px));
  margin: 0 auto;
  padding: 20px 0 28px;
  border-top: 1px solid var(--color-border);
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 18px;
  color: var(--color-text-muted);
  font-size: .78rem;
}

.public-footer__bottom nav { display: flex; flex-wrap: wrap; gap: 18px; }
.public-footer__bottom a { color: inherit; text-decoration: none; }
.public-footer__bottom a:hover { color: var(--color-primary); }

[data-theme="dark"] .public-footer { background: #030b09; }
[data-theme="dark"] .public-footer__mobile { background: rgba(255, 255, 255, .025); }

@media (max-width: 900px) {
  .public-footer__inner { grid-template-columns: 1.3fr 1fr 1fr; }
  .public-footer__brand { grid-column: 1 / -1; }
}

@media (max-width: 620px) {
  .public-footer__inner { grid-template-columns: 1fr 1fr; padding-top: 38px; gap: 30px 22px; }
  .public-footer__brand { grid-column: 1 / -1; }
  .public-footer__bottom { align-items: flex-start; flex-direction: column; }
}
