/* Contact number stays visible in both desktop and mobile headers. */
.header-phone {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  flex: none;
  min-height: 40px;
  padding: 9px 8px;
  border-radius: 7px;
  color: var(--text);
  font: 400 14px/1.4 var(--font-body);
  font-variant-numeric: tabular-nums;
  white-space: nowrap;
  transition: background-color .18s ease;
}
.header-phone:hover { background: var(--hover-subtle); }
.header-in { gap: 16px; }

/* The footer follows the page grid, with navigation grouped by intent. */
.site-footer { padding: 64px 0 104px; background: var(--deep); }
.site-footer > .wrap { display: block; }
.site-footer-grid {
  display: grid;
  grid-template-columns: minmax(0, 1.4fr) minmax(0, .9fr) minmax(0, .9fr) minmax(0, 1.1fr);
  gap: clamp(24px, 3vw, 44px);
  align-items: start;
}
.site-footer-grid > * { min-width: 0; }
.site-footer .brand { display: inline-flex; }
.site-footer .brand-logo { width: 156px; }
.site-footer h3 {
  margin: 0 0 16px;
  color: var(--text);
  font: 500 14px/1.5 var(--font-body);
  letter-spacing: normal;
}
.site-footer .site-footer-intro {
  margin: 22px 0 12px;
  color: var(--text);
  font: 400 21px/1.4 var(--font-body);
}
.site-footer-description { margin: 0 0 18px; color: var(--muted); font-size: 13px; line-height: 1.65; }
.site-footer-nav, .site-footer-contacts { display: flex; flex-direction: column; align-items: flex-start; }
.site-footer-link {
  display: inline-flex;
  align-items: center;
  gap: 8px;
  max-width: calc(100% + 16px);
  min-height: 36px;
  margin-left: -8px;
  padding: 7px 8px;
  border-radius: 7px;
  color: var(--text-secondary);
  font: 400 13px/1.55 var(--font-body);
  text-decoration: none;
  overflow-wrap: anywhere;
  transition: background-color .18s ease, color .18s ease;
}
.site-footer-link:hover, .site-footer-top:hover { color: var(--text); background: var(--hover-subtle); }
.site-footer svg { display: block; flex: none; width: 17px; height: 17px; fill: none; stroke: currentColor; stroke-width: 1.7; stroke-linecap: round; stroke-linejoin: round; }
.site-footer-brand .site-footer-external { display: flex; width: fit-content; color: var(--muted); font-size: 12px; }
.site-footer .site-footer-phone { color: var(--text); font-size: 20px; white-space: nowrap; font-variant-numeric: tabular-nums; }
.site-footer address { margin: 14px 0 18px; color: var(--text-secondary); font: 400 13px/1.7 var(--font-body); }
.site-footer address span { color: var(--muted); }
.site-footer .site-footer-start { color: var(--green); }
.site-footer-bottom {
  display: grid;
  grid-template-columns: minmax(0, 1fr) minmax(0, 1.25fr) 40px;
  align-items: center;
  gap: 24px;
  margin-top: 44px;
  padding-top: 26px;
  border-top: 1px solid var(--border);
}
.site-footer-identity p { margin: 0; color: var(--muted); font-size: 11px; line-height: 1.8; }
.site-footer-documents { display: flex; flex-wrap: wrap; column-gap: 20px; row-gap: 0; }
.site-footer-documents .site-footer-link { color: var(--muted); font-size: 11px; }
.site-footer-top { display: grid; place-items: center; width: 40px; height: 40px; border-radius: 7px; color: var(--text-secondary); transition: background-color .18s ease; }
.site-footer-top svg { width: 20px; height: 20px; }

@media (max-width: 1150px) and (min-width: 1081px) {
  .header-in { gap: 10px; }
  .header-phone { padding-inline: 4px; font-size: 13px; }
  .nav a { padding-inline: 8px; }
}
@media (max-width: 1080px) {
  .header-phone { margin-left: auto; }
  .header .menu-toggle { margin-left: 0; }
  .site-footer-grid { grid-template-columns: 1.3fr 1fr; gap: 36px 56px; }
  .site-footer-brand { grid-row: span 2; }
  .site-footer-contacts { grid-column: 1 / -1; }
  .site-footer-bottom { grid-template-columns: minmax(0, 1fr) 40px; }
  .site-footer-documents { grid-column: 1; grid-row: 2; }
  .site-footer-top { grid-column: 2; grid-row: 1; }
}
@media (max-width: 700px) {
  .site-footer { padding-top: 44px; }
  .site-footer-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 32px 22px; }
  .site-footer-brand { grid-column: 1 / -1; grid-row: auto; }
  .site-footer .site-footer-intro { margin-top: 20px; }
  .site-footer-bottom { margin-top: 32px; padding-top: 22px; gap: 12px 18px; }
  .site-footer-documents { display: flex; flex-direction: column; align-items: flex-start; grid-column: 1 / -1; }
}
@media (max-width: 575px) {
  .header-in { gap: 10px; }
  .header-phone { min-height: 40px; padding: 8px 3px; font-size: 13px; }
}
@media (max-width: 380px) {
  .header-in { gap: 8px; }
  .header .brand-logo { width: 108px; }
  .header-phone { padding-inline: 2px; font-size: 12px; }
  .header .menu-toggle { width: 36px; height: 40px; padding: 6px; }
}
@media (prefers-reduced-motion: reduce) {
  .header-phone, .site-footer-link, .site-footer-top { transition: none; }
}
