/* =========================================================
   FOOTER
   ========================================================= */

.site-footer {
  --footer-text: #6b6b6b;
  --footer-heading: #666a70;
  --footer-rule: #7eb9dc;
  --footer-max-width: 1560px;
  --footer-side-space: 170px;
  --footer-letter-spacing: 0.012em;

  width: 100vw;
  margin-left: calc(50% - 50vw);
  margin-right: calc(50% - 50vw);
  background: #fff;
  color: var(--footer-text);
}

.site-footer,
.site-footer * {
  box-sizing: border-box;
}

.site-footer a {
  color: inherit;
  text-decoration: none;
  transition: color 0.2s ease, opacity 0.2s ease;
}

.site-footer a:hover {
  color: #0f74b7;
  opacity: 0.92;
}

.site-footer__section {
  width: min(var(--footer-max-width), calc(100vw - var(--footer-side-space)));
  margin: 0 auto;
}

/* =========================================================
   CONTACT
   ========================================================= */

.site-footer__section--contact {
  padding: 82px 0 72px;
}

.site-footer__contacts-grid {
  display: grid;
  grid-template-columns: minmax(250px, 1.04fr) repeat(3, minmax(0, 1fr));
  gap: 48px 52px;
  align-items: start;
}

.site-footer__column {
  width: 100%;
  text-align: center;
}

.site-footer__heading {
  margin: 0;
  color: var(--footer-heading);
  letter-spacing: var(--footer-letter-spacing);
}

.site-footer__heading--main {
  margin-bottom: 28px;
  font-size: clamp(2.05rem, 3.25vw, 3.3rem);
  font-weight: 300;
  line-height: 0.9;
  letter-spacing: -0.03em;
  text-transform: lowercase;
}

.site-footer__heading--section {
  margin-bottom: 30px;
  padding-top: 12px;
  border-top: 1px solid var(--footer-rule);
  font-size: clamp(1.28rem, 1.7vw, 1.82rem);
  font-weight: 700;
  line-height: 1;
  letter-spacing: 0.02em;
  text-transform: uppercase;
}

.site-footer__copy {
  margin: 0;
  color: var(--footer-text);
  font-size: clamp(0.96rem, 1.12vw, 1.14rem);
  font-weight: 300;
  line-height: 1.48;
  letter-spacing: var(--footer-letter-spacing);
}

.site-footer__copy + .site-footer__copy {
  margin-top: 34px;
}

/* =========================================================
   ASSISTANTS
   ========================================================= */

.site-footer__section--assistants {
  position: relative;
  padding: 28px 0 104px;
}

.site-footer__section--assistants::before {
  content: "";
  position: absolute;
  top: 0;
  left: 0;
  right: 0;
  border-top: 1px solid var(--footer-rule);
}

.site-footer__assistants-title {
  position: static;
  margin: 0;
  padding: 0;
  color: var(--footer-heading);
  font-size: clamp(1.42rem, 1.8vw, 1.86rem);
  font-weight: 700;
  line-height: 1;
  letter-spacing: 0.02em;
  text-transform: uppercase;
  text-align: center;
}

.site-footer__assistants-grid {
  display: grid;
  grid-template-columns: repeat(4, minmax(0, 1fr));
  gap: 58px 64px;
  align-items: start;
  margin-top: 54px;
}

.site-footer__assistant {
  text-align: center;
}

.site-footer__assistant-name {
  margin: 0 0 8px;
  color: var(--footer-heading);
  font-size: clamp(1.16rem, 1.45vw, 1.65rem);
  font-weight: 700;
  line-height: 1.12;
  letter-spacing: var(--footer-letter-spacing);
}

.site-footer__assistant-role {
  margin: 0 0 16px;
  color: var(--footer-text);
  font-size: clamp(1.04rem, 1.28vw, 1.42rem);
  font-style: italic;
  font-weight: 300;
  line-height: 1.16;
  letter-spacing: var(--footer-letter-spacing);
}

.site-footer__assistant-email {
  margin: 0;
  color: var(--footer-text);
  font-size: clamp(0.94rem, 1.05vw, 1.08rem);
  font-weight: 300;
  line-height: 1.4;
  letter-spacing: var(--footer-letter-spacing);
}

/* =========================================================
   RESPONSIVE
   ========================================================= */

@media (max-width: 1200px) {
  .site-footer {
    --footer-side-space: 70px;
  }

  .site-footer__section--contact {
    padding: 62px 0 58px;
  }

  .site-footer__contacts-grid {
    gap: 42px 34px;
  }

  .site-footer__section--assistants {
    padding: 24px 0 84px;
  }

  .site-footer__assistants-grid {
    gap: 46px 34px;
  }
}

@media (max-width: 860px) {
  .site-footer {
    --footer-side-space: 40px;
  }

  .site-footer__section--contact {
    padding: 52px 0 44px;
  }

  .site-footer__contacts-grid {
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 34px 24px;
  }

  .site-footer__contacts-intro {
    grid-column: 1 / -1;
  }

  .site-footer__heading--main {
    margin-bottom: 24px;
  }

  .site-footer__heading--section {
    margin-bottom: 26px;
  }

  .site-footer__section--assistants {
    padding: 22px 0 70px;
  }

  .site-footer__assistants-title {
    font-size: clamp(1.38rem, 4vw, 1.72rem);
  }

  .site-footer__assistants-grid {
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 40px 24px;
    margin-top: 42px;
  }
}

@media (max-width: 560px) {
  .site-footer {
    --footer-side-space: 32px;
  }

  .site-footer__section--contact {
    padding: 40px 0 34px;
  }

  .site-footer__contacts-grid,
  .site-footer__assistants-grid {
    grid-template-columns: 1fr;
  }

  .site-footer__contacts-grid {
    gap: 30px;
  }

  .site-footer__heading--main {
    font-size: clamp(1.82rem, 10vw, 2.45rem);
  }

  .site-footer__heading--section {
    margin-bottom: 20px;
    padding-top: 12px;
    font-size: 1.38rem;
  }

  .site-footer__copy {
    font-size: 1rem;
  }

  .site-footer__copy + .site-footer__copy {
    margin-top: 28px;
  }

  .site-footer__section--assistants {
    padding: 20px 0 54px;
  }

  .site-footer__assistants-title {
    font-size: clamp(1.08rem, 5.4vw, 1.26rem);
    text-align: center;
  }

  .site-footer__assistants-grid {
    gap: 34px;
    margin-top: 34px;
  }

  .site-footer__assistant-name {
    font-size: 1.22rem;
  }

  .site-footer__assistant-role {
    font-size: 1.04rem;
  }

  .site-footer__assistant-email {
    font-size: 0.96rem;
  }
}
