.footer {

  padding-top: clamp(2.25rem, calc(56 / var(--design-width) * 100vw), 3.5rem);

  padding-bottom: clamp(2.25rem, calc(56 / var(--design-width) * 100vw), 3.5rem);

  background: var(--gradient-footer);

  color: #434343;

}



.footer__grid {

  display: grid;

  grid-template-columns: minmax(0, 1.15fr) minmax(0, 1fr) minmax(0, 1fr) minmax(0, 1.15fr);

  grid-template-rows: auto auto;

  column-gap: clamp(1.5rem, calc(40 / var(--design-width) * 100vw), 2.5rem);

  row-gap: clamp(1.25rem, calc(32 / var(--design-width) * 100vw), 2rem);

  align-items: start;

}



.footer__col--brand {

  grid-column: 1;

  grid-row: 1 / -1;

  min-width: 0;

  display: flex;

  flex-direction: column;

}



.footer__aside {

  display: contents;

}



.footer__col--nav {

  grid-row: 1;

  color: #2b2b2b;

}



.footer__col--nav:first-of-type {

  grid-column: 2;

  grid-row: 1;

}



.footer__col--nav:last-of-type {

  grid-column: 3;

  grid-row: 1;

}



.footer__col--contacts {

  grid-column: 4;

  grid-row: 1;

  color: #2b2b2b;

}



.footer__logo {

  display: inline-block;

}



.footer__logo img {

  display: block;

  width: clamp(10rem, calc(220 / var(--design-width) * 100vw), 13.75rem);

  height: auto;

}



.footer__brand-body {

  display: flex;

  flex-direction: column;

  justify-content: space-between;

  flex: 1;

  margin-top: clamp(0.5rem, calc(12 / var(--design-width) * 100vw), 0.75rem);

}



.footer__block {

  display: flex;

  flex-direction: column;

  gap: 0;

  margin-top: 0;

}



.footer__col--brand .footer__block-title,

.footer__col--brand .footer__block-text {

  font-size: clamp(0.75rem, calc(14 / var(--design-width) * 100vw), 0.875rem);

  font-weight: 400;

  line-height: 1.2;

}



.footer__block--requisites .footer__block-title {

  margin-bottom: clamp(0.125rem, calc(4 / var(--design-width) * 100vw), 0.25rem);

}



.footer__block--license {

  margin-top: 0;

}



.footer__block--license .footer__block-title {

  margin-bottom: clamp(0.125rem, calc(4 / var(--design-width) * 100vw), 0.25rem);

}



.footer__nav-title,

.footer__phone {

  margin: 0;

  font-size: clamp(1.25rem, calc(28 / var(--design-width) * 100vw), 1.75rem);

  font-weight: 600;

  line-height: 1.2;

  color: #2b2b2b;

}



.footer__phone {

  display: block;

  transition: opacity 0.2s ease;

}



.footer__phone:hover {

  opacity: 0.75;

}



.footer__nav-list {

  display: flex;

  flex-direction: column;

  gap: clamp(0.625rem, calc(14 / var(--design-width) * 100vw), 0.875rem);

  margin-top: clamp(1.25rem, calc(32 / var(--design-width) * 100vw), 2rem);

  padding: 0;

  list-style: none;

}



.footer__nav-link {

  font-size: clamp(1rem, calc(18 / var(--design-width) * 100vw), 1.125rem);

  font-weight: 600;

  line-height: 1.45;

  color: #2b2b2b;

  transition: opacity 0.2s ease;

}



.footer__nav-link:hover {

  opacity: 0.7;

}



.footer__contacts {

  display: flex;

  flex-direction: column;

}



.footer__info {

  display: flex;

  flex-direction: column;

  gap: clamp(0.25rem, calc(6 / var(--design-width) * 100vw), 0.375rem);

  margin-top: clamp(1rem, calc(24 / var(--design-width) * 100vw), 1.5rem);

}



.footer__contacts > .footer__info:first-of-type {

  margin-top: clamp(1.25rem, calc(32 / var(--design-width) * 100vw), 2rem);

}



.footer__info-label,

.footer__info-value {

  margin: 0;

  font-size: clamp(1rem, calc(18 / var(--design-width) * 100vw), 1.125rem);

  font-weight: 600;

  line-height: 1.45;

  color: #2b2b2b;

}



.footer__info-value a {

  color: inherit;

  text-decoration: none;

}



.footer__info-value a:hover {

  opacity: 0.75;

}



.footer__disclaimer {

  grid-column: 2 / 4;

  grid-row: 2;

  margin: 0;

  max-width: clamp(20rem, calc(560 / var(--design-width) * 100vw), 35rem);

  font-size: clamp(0.75rem, calc(14 / var(--design-width) * 100vw), 0.875rem);

  font-weight: 400;

  line-height: 1.5;

  color: #434343;

}



.footer__legal {

  grid-column: 4;

  grid-row: 2;

  display: flex;

  flex-direction: column;

  gap: clamp(0.125rem, calc(2 / var(--design-width) * 100vw), 0.25rem);

  align-self: start;

}



.footer__legal-link,

.footer__legal-copy {

  margin: 0;

  font-size: clamp(0.875rem, calc(16 / var(--design-width) * 100vw), 1rem);

  font-weight: 400;

  line-height: 1.3;

  color: #434343;

}



.footer__legal-link {

  transition: opacity 0.2s ease;

}



.footer__legal-link:hover {

  opacity: 0.75;

}



.footer__credit {

  margin: clamp(1.25rem, calc(28 / var(--design-width) * 100vw), 1.75rem) 0 0;

  padding-top: clamp(0.75rem, calc(16 / var(--design-width) * 100vw), 1rem);

  border-top: 1px solid rgba(67, 67, 67, 0.12);

  font-size: clamp(0.75rem, calc(13 / var(--design-width) * 100vw), 0.8125rem);

  font-weight: 400;

  line-height: 1.4;

  text-align: center;

  color: var(--color-text-muted);

}



.footer__credit-link {

  display: inline-flex;

  align-items: center;

  gap: clamp(0.25rem, calc(6 / var(--design-width) * 100vw), 0.375rem);

  color: #434343;

  font-weight: 500;

  text-decoration: none;

  transition: color 0.2s ease;

}



.footer__credit-logo {

  flex-shrink: 0;

  width: clamp(0.625rem, calc(12 / var(--design-width) * 100vw), 0.75rem);

  height: clamp(0.8125rem, calc(16 / var(--design-width) * 100vw), 1rem);

  background-color: #434343;

  mask: url("../img/geotwin-logo.svg") no-repeat center / contain;

  -webkit-mask: url("../img/geotwin-logo.svg") no-repeat center / contain;

  transition: background-color 0.2s ease;

}



.footer__credit-link:hover {

  color: #76c6ff;

}



.footer__credit-link:hover .footer__credit-logo {

  background-color: #76c6ff;

}



.footer__mobile-nav {

  display: none;

}



@media (max-width: 1100px) {

  .footer__grid {

    grid-template-columns: 1fr;

    grid-template-rows: auto;

    row-gap: clamp(1.5rem, calc(40 / var(--design-width) * 100vw), 2.5rem);

  }



  .footer__col--brand {

    grid-row: auto;

  }



  .footer__brand-body {

    justify-content: flex-start;

    gap: clamp(1rem, calc(24 / var(--design-width) * 100vw), 1.5rem);

  }



  .footer__aside {

    display: grid;

    grid-column: auto;

    grid-row: auto;

    grid-template-columns: repeat(2, minmax(0, 1fr));

    grid-template-rows: auto auto;

    column-gap: clamp(1rem, calc(24 / var(--design-width) * 100vw), 1.5rem);

    row-gap: clamp(1.25rem, calc(32 / var(--design-width) * 100vw), 2rem);

  }



  .footer__col--nav:first-of-type {

    grid-column: 1;

    grid-row: 1;

  }



  .footer__col--nav:last-of-type {

    grid-column: 2;

    grid-row: 1;

  }



  .footer__col--contacts {

    grid-column: 1 / -1;

    grid-row: 2;

  }



  .footer__disclaimer,

  .footer__legal {

    grid-column: 1 / -1;

    grid-row: auto;

    max-width: none;

  }

}



@media (max-width: 700px) {

  .footer {

    padding-top: clamp(2.5rem, calc(56 / var(--design-width) * 100vw), 3.5rem);

    padding-bottom: clamp(2.5rem, calc(56 / var(--design-width) * 100vw), 3.5rem);

  }



  .footer__grid {

    row-gap: 0;

  }



  .footer__col--brand {

    align-items: center;

    text-align: center;

  }



  .footer__logo {

    display: block;

  }



  .footer__logo img {

    width: clamp(11rem, calc(240 / var(--design-width) * 100vw), 15rem);

    margin-inline: auto;

  }



  .footer__brand-body,

  .footer__aside {

    display: none;

  }



  .footer__mobile-nav {

    display: block;

    width: 100%;

    margin-top: clamp(2rem, calc(48 / var(--design-width) * 100vw), 3rem);

  }



  .footer__mobile-list {

    display: flex;

    flex-direction: column;

    align-items: center;

    gap: clamp(1.25rem, calc(28 / var(--design-width) * 100vw), 1.75rem);

    margin: 0;

    padding: 0;

    list-style: none;

  }



  .footer__mobile-link {

    font-size: clamp(0.9375rem, calc(18 / var(--design-width) * 100vw), 1.125rem);

    font-weight: 400;

    line-height: 1.3;

    color: #434343;

    transition: opacity 0.2s ease;

  }



  .footer__mobile-link:hover {

    opacity: 0.75;

  }

}


