.public-footer {
  position: relative;
  z-index: 3;
  display: grid;
  grid-template-columns: minmax(220px, 1.45fr) repeat(4, minmax(130px, 1fr));
  gap: 30px;
  border-top: 1px solid var(--line);
  padding: 45px max(24px, calc((100vw - 1160px) / 2)) 24px;
  background: #e9ece9;
  color: var(--ink);
  font-family: "DM Sans", Arial, sans-serif;
}

.public-footer[hidden] { display: none; }
.public-footer > * { min-width: 0; }
.public-footer-brand { display: inline-flex; width: max-content; max-width: 100%; align-items: center; }
.public-footer-logo { display: block; width: 155px; max-width: 100%; height: auto; }
.public-footer-intro p { max-width: 250px; margin: 14px 0 0; color: #696b64; font-size: 14px; line-height: 1.55; }
.public-footer nav { display: grid; align-content: start; gap: 9px; }
.public-footer nav strong { margin-bottom: 4px; color: var(--ink); font-size: 14px; line-height: 1.4; }
.public-footer nav a {
  width: fit-content;
  color: #62645e;
  font-size: 14px;
  font-weight: 400;
  line-height: 1.4;
  text-decoration: none;
}
.public-footer nav a:hover { color: var(--wine); }
.public-footer a:focus-visible { border-radius: 2px; outline: 3px solid var(--wine); outline-offset: 3px; }
.public-footer > small {
  grid-column: 1 / -1;
  border-top: 1px solid rgba(23, 24, 22, .1);
  padding-top: 18px;
  color: #777970;
  font-size: 12px;
  line-height: 1.4;
}

@media (max-width: 1000px) {
  .public-footer { grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 30px 24px; }
  .public-footer-intro { grid-column: 1 / -1; }
}

@media (max-width: 520px) {
  .public-footer { grid-template-columns: 1fr 1fr; gap: 30px 18px; padding-inline: 18px; }
  .public-footer nav a { font-size: 13px; }
}

@media (max-width: 360px) {
  .public-footer { grid-template-columns: 1fr; }
}
