/* Public navigation and company details. Admin pages do not load this file. */
.side-catalog__panel .menu-category {
  min-width: 0;
  width: 238px;
  flex: 0 0 238px;
}

.side-catalog__panel .menu-category > img {
  width: 30px;
  height: 30px;
  flex: 0 0 30px;
  object-fit: contain;
}

.side-catalog__panel .menu-category > span {
  min-width: 0;
  overflow-wrap: anywhere;
  line-height: 1.4;
}

/* Open and close are controlled by the toggle, backdrop and Escape key. */
.side-catalog:not(.is-open):hover .side-catalog__panel { width: 58px; }
.side-catalog:not(.is-open):hover .side-catalog__toggle { width: 44px; border-radius: 50%; }
.side-catalog:not(.is-open):hover .side-catalog__summary-label { visibility: hidden; opacity: 0; }
.side-catalog:not(.is-open):hover .side-catalog__backdrop { visibility: hidden; opacity: 0; pointer-events: none; }

.footer-grid > div { min-width: 0; }
.footer-contacts > a { overflow-wrap: anywhere; }
.footer-grid .social-links { flex-wrap: wrap; }

.site-footer .footer-legal {
  display: grid;
  padding: 28px 0;
  grid-template-columns: minmax(180px, .9fr) minmax(0, 2fr);
  align-items: start;
  gap: 22px 40px;
  border-top: 1px solid #303b47;
}

.footer-legal__intro h2 { margin-bottom: 8px; }
.footer-legal__intro p { margin: 0; color: #8f9dab; font-size: .78rem; }
.footer-legal__details { display: grid; margin: 0; grid-template-columns: 1fr 1fr 2fr; gap: 20px; }
.footer-legal__details > div { min-width: 0; }
.footer-legal__details dt { margin: 0 0 4px; color: #8f9dab; font-size: .7rem; }
.footer-legal__details dd { margin: 0; color: #d5dce3; font-size: .8rem; overflow-wrap: anywhere; }
.footer-legal__links { display: flex; grid-column: 1 / -1; flex-wrap: wrap; gap: 10px 24px; }
.site-footer .footer-legal__links a { color: #b9c3cc; font-size: .75rem; text-decoration: underline; text-underline-offset: 3px; }
.site-footer .footer-legal__links a:hover { color: #fff; }

@media (max-width: 900px) {
  .site-footer .footer-legal { grid-template-columns: 1fr; gap: 22px; }
  .footer-legal__details { grid-template-columns: 1fr 1fr 2fr; }
}

@media (max-width: 620px) {
  .site-footer .footer-legal { padding: 26px 0; }
  .footer-legal__details { grid-template-columns: 1fr 1fr; gap: 18px 16px; }
  .footer-legal__address { grid-column: 1 / -1; }
  .footer-legal__links { display: grid; gap: 12px; }
  .footer-legal__links a { justify-self: start; }
}
