.page-footer { min-height: 680px; }
.page-footer .map-wrap { min-height: 680px; }
.page-footer .map-wrap iframe { border: 0; display: block; height: 100%; min-height: 680px; width: 100%; }
.page-footer .page-footer-contacts { padding: 56px clamp(34px, 4.5vw, 68px); }
.page-footer .page-footer-contacts .logo { margin-bottom: 46px; max-width: 100%; width: 560px; }
.page-footer .page-footer-contacts .logo img { display: block; height: auto; max-width: 100%; width: 560px; }
.page-footer .contacts-block { align-items: stretch; display: grid; gap: 14px 28px; grid-template-areas: "phone-free callback" "phone-local email"; grid-template-columns: minmax(210px, .9fr) minmax(260px, 1.1fr); grid-template-rows: repeat(2, 64px); margin-bottom: 44px; }
.page-footer .contacts-block > div:first-child { margin-right: 0; }
.page-footer .contacts-phones,
.page-footer .contacts-actions { display: contents; }
.page-footer .contacts-block > div:first-child a:first-child { margin-bottom: 0; }
.page-footer .contacts-block .phone { align-items: center; display: flex; font-size: clamp(24px, 1.9vw, 32px); line-height: 1.1; min-height: 64px; white-space: nowrap; }
.page-footer .phone-free { grid-area: phone-free; }
.page-footer .phone-local { grid-area: phone-local; }
.page-footer .contact-callback { grid-area: callback; }
.page-footer .contact-email { grid-area: email; }
.page-footer .contacts-block .primary-btn,
.page-footer .contacts-block .email-btn { align-items: center; display: flex; height: 64px; justify-content: center; margin: 0; min-height: 64px; padding: 10px 18px; }
.page-footer .contacts-block .email-btn span { overflow-wrap: anywhere; }
.page-footer address { font-size: clamp(18px, 1.55vw, 24px); line-height: 1.45; margin-bottom: 40px; }
.page-footer .copy { color: #aaa; font-size: 14px; line-height: 1.6; margin: 0; }
.page-footer .copy a { color: #fff; }

@media (min-width: 1101px) {
  .page-footer:not(.page-footer--with-map) .page-footer-contacts {
    align-items: center;
    display: flex;
    flex-direction: row;
    gap: 60px;
    justify-content: space-between;
    margin: 0 auto;
    max-width: 1600px;
    padding: 70px 80px;
    width: 100%;
  }
  /* the three blocks carried bottom margins that pushed the next line down -
     90 under the logo, 30 under the phones, 110 under the address. In one row
     they are what made the band sit 30px low, so they go. */
  .page-footer:not(.page-footer--with-map) .page-footer-contacts .logo,
  .page-footer:not(.page-footer--with-map) .page-footer-contacts .contacts-block,
  .page-footer:not(.page-footer--with-map) .page-footer-contacts address {
    margin-bottom: 0;
  }
  .page-footer:not(.page-footer--with-map) .page-footer-contacts address {
    text-align: right;
  }
}

@media (max-width: 1100px) {
	.page-footer { min-height: 0; }
	.page-footer .map-wrap,
	.page-footer .map-wrap iframe { min-height: 420px; }
	.page-footer .page-footer-contacts { text-align: center; }
	.page-footer .page-footer-contacts .logo { margin-left: auto; margin-right: auto; }
	.page-footer .page-footer-contacts .logo img { margin: 0 auto; max-width: 520px; }
	.page-footer .contacts-block { margin-left: auto; margin-right: auto; max-width: 760px; }
	.page-footer:not(.page-footer--with-map) .page-footer-contacts {
    padding-top: 60px;
    padding-bottom: 60px;
  }
  .page-footer:not(.page-footer--with-map) .page-footer-contacts address {
    margin-bottom: 0;
  }
  .page-footer:not(.page-footer--with-map) .page-footer-contacts .logo {
    margin-bottom: 50px;
  }
}

@media (max-width: 680px) {
	.page-footer .map-wrap,
	.page-footer .map-wrap iframe { min-height: 330px; }
	.page-footer .page-footer-contacts { padding: 44px 20px; }
	.page-footer .page-footer-contacts .logo { margin-bottom: 36px; width: 100%; }
	.page-footer .page-footer-contacts .logo img { width: 100%; }
	.page-footer .contacts-block { display: grid; gap: 12px; grid-template-areas: "phone-free" "phone-local" "callback" "email"; grid-template-columns: minmax(0, 1fr); grid-template-rows: repeat(4, auto); margin-bottom: 36px; }
	.page-footer .contacts-block > div:first-child { margin-bottom: 0; }
	.page-footer .contacts-block .phone { justify-content: center; min-height: 52px; }
	.page-footer .contacts-block .primary-btn,
	.page-footer .contacts-block .email-btn { height: 60px; min-height: 60px; }
	.page-footer .contacts-block .phone { font-size: clamp(24px, 8vw, 34px); white-space: normal; }
	.page-footer address { margin-bottom: 32px; }
}
