/* Page-local system typography. Structural spacing lives in contacts.css. */
body.contacts-page {
  --contacts-system-font: -apple-system, BlinkMacSystemFont, system-ui, Inter, "Helvetica Neue", Arial, sans-serif;
  --service-font-display: var(--contacts-system-font);
  --service-font-body: var(--contacts-system-font);
  --service-font-data: var(--contacts-system-font);
  font-family: var(--contacts-system-font);
}

/* inner-design.css forces a family on text nodes; override only this page's copy. */
body.contacts-page #main :is(
  .contact-office__copy,
  .contact-requisites,
  .contact-business,
  .cookie-map-placeholder,
  .service-section--related-light
) :where(h1, h2, h3, p, a, span, strong, dt, dd, button),
body.contacts-page :is(.utp-cookie-panel, [data-login-dialog], [data-curtain])
  :where(h2, p, a, span, strong, small, label, button, input) {
  font-family: var(--contacts-system-font) !important;
}

body.contacts-page #main #contacts-title {
  color: #1d1d1f;
  font-family: var(--contacts-system-font);
  /* Override the shared first-screen 50px size without changing other pages. */
  font-size: 52px !important;
  font-weight: 600;
  line-height: 56px;
  letter-spacing: -.035em;
}

.contacts-page #main .contact-requisites__intro h2 {
  color: #1d1d1f;
  font: 600 40px/44px var(--contacts-system-font);
  letter-spacing: -.03em;
}

.contacts-page #main :is(
  .contact-office__details dd,
  .contact-office__note,
  .contact-requisites__intro > p,
  .contact-requisites__data dd
) {
  color: #1d1d1f;
  font: 400 17px/25px var(--contacts-system-font);
}

.contacts-page #main :is(
  .contact-office__details dt,
  .contact-requisites__data dt,
  .contact-office__links span
) {
  font: 600 10px/14px var(--contacts-system-font);
}

.contacts-page #main .contact-office__links a { color: #1d1d1f; }
.contacts-page #main .contact-office__links a:is(:hover, :focus-visible) {
  color: var(--contacts-red-ink);
}
.contacts-page #main .contact-office__links strong {
  font: 600 17px/25px var(--contacts-system-font);
}

.contacts-page #main :is(.contacts-eyebrow, .contact-business__eyebrow) {
  font: 600 10px/14px var(--contacts-system-font);
}

.contacts-page #main :is(
  .contact-button,
  .contact-office__actions > .messenger-switch--hero .messenger-switch__action,
  .cookie-map-placeholder__actions button,
  .cookie-map-placeholder__actions a
) {
  font: 600 14px/1.29 var(--contacts-system-font);
}

/* Tender invitation is a compact supporting CTA, not another major section. */
.contacts-page #main .contact-business h2 {
  color: #fff;
  font: 600 20px/25px var(--contacts-system-font);
  letter-spacing: -.02em;
}
.contacts-page #main .contact-business__copy > p:last-child {
  color: #fff;
  font: 400 17px/25px var(--contacts-system-font);
}
.contacts-page #main .contact-business__mail span {
  font: 600 10px/14px var(--contacts-system-font);
}
.contacts-page #main .contact-business__mail strong {
  font: 600 14px/1.29 var(--contacts-system-font);
}

.contacts-page #main .cookie-map-placeholder > strong {
  color: #1d1d1f;
  font: 600 20px/25px var(--contacts-system-font);
}
.contacts-page #main .cookie-map-placeholder > p {
  color: #1d1d1f;
  font: 400 15px/23.25px var(--contacts-system-font);
}

/* Related navigation keeps the existing grid, padding and hit areas. */
.contacts-page #main #contacts-related-title {
  font: 600 10px/14px var(--contacts-system-font);
}
.contacts-page #main .service-section--related-light .section-intro {
  color: #1d1d1f;
  font: 400 18px/1.58 var(--contacts-system-font);
}
.contacts-page #main .related-card h3 {
  color: #1d1d1f;
  font: 600 20px/25px var(--contacts-system-font);
}
.contacts-page #main .related-card p {
  color: #1d1d1f;
  font: 400 13px/19.5px var(--contacts-system-font);
}
.contacts-page #main .related-card__index {
  color: var(--sv-red, #ff0000);
  font: 600 10px/14px var(--contacts-system-font);
}
.contacts-page #main .related-card__link {
  font: 600 12px/1.29 var(--contacts-system-font);
}
.contacts-page #main .related-card:is(:hover, :focus-visible) :is(h3, p, .related-card__link) {
  color: #fff;
}

@media (min-width: 735px) and (max-width: 1068px) {
  body.contacts-page #main #contacts-title {
    font-size: 44px !important;
    line-height: 48px;
  }
  .contacts-page #main .contact-requisites__intro h2 {
    font-size: 32px;
    line-height: 36px;
  }
}

@media (max-width: 900px) {
  .contacts-page #main .related-card h3 {
    font-size: 17px;
    line-height: 21.25px;
  }
  .contacts-page #main .related-card p {
    font-size: 12.5px;
    line-height: 18.75px;
  }
}

@media (max-width: 734px) {
  body.contacts-page #main #contacts-title {
    font-size: 32px !important;
    line-height: 36px;
  }
  .contacts-page #main .contact-requisites__intro h2 {
    font-size: 28px;
    line-height: 32px;
  }
  .contacts-page #main .contact-business h2 {
    font-size: 18px;
    line-height: 22.5px;
  }
  .contacts-page #main .service-section--related-light .section-intro {
    font-size: 15px;
    line-height: 23.25px;
  }
}

/* Align the first text baselines, keeping the existing two-column details grid. */
.contacts-page #main .contact-office__details > div {
  align-items: baseline;
  text-align: left;
}

.contacts-page #main .contact-requisites__address-region,
.contacts-page #main .contact-requisites__address-city {
  display: block;
}

.contacts-page #main .contact-office .contacts-eyebrow,
.contacts-page #main .contact-business__eyebrow {
  color: var(--sv-red, #ff0000);
}

.contacts-page #main .contact-office__actions > .messenger-switch--hero {
  border-color: var(--contacts-navy);
}

@media (min-width: 901px) {
  .contacts-page #main .contact-office__actions > .messenger-switch--hero {
    flex: 0 0 260px;
  }
}
