/* Both candidates share every layout and treatment rule. */
.header nav { gap: 40px; }
.header nav a { letter-spacing: .025em; }
.header nav .nav-contact { padding-inline: 24px; }
.hero { min-height: 720px; background: var(--surface); }
.hero::after { background: rgba(247, 247, 244, .45); }
.hero-photo { object-position: center; filter: saturate(.85) contrast(.98); }
.hero-inner { padding-block: 113px 103px; }
.hero-copy { max-width: 1000px; color: var(--ink); }
.hero-label { margin: 0 0 26px; font-size: var(--size-company); line-height: 1.6; font-weight: var(--weight-semibold); letter-spacing: .08em; color: var(--blue); }
.hero-copy h1 { display: flex; justify-content: center; flex-wrap: wrap; font-size: var(--size-hero); font-weight: var(--weight-bold); line-height: 1.35; letter-spacing: .035em; margin-bottom: 28px; }
.hero-copy h1 span { white-space: nowrap; }
.hero-copy > p.hero-description { max-width: 600px; margin: 0 auto 36px; font-size: var(--size-description); line-height: 1.7; color: #344550; text-wrap: balance; }
.hero-button { min-height: 52px; padding: 10px 24px; font-size: 15px; gap: 24px; }
.cta-arrow { position: relative; width: 24px; height: 1px; background: currentColor; }
.cta-arrow::after { content: ''; position: absolute; right: 0; top: -3px; width: 7px; height: 7px; border-top: 1px solid currentColor; border-right: 1px solid currentColor; transform: rotate(45deg); }
.hero-button:hover span { transform: none; }
@media (max-width: 1023px) {

  .header nav { gap: 28px; }
}
@media (max-width: 767px) {
  .header nav { gap: 0; }
  .hero { min-height: 640px; }
  .hero-inner { padding-block: 88px 72px; }
  .hero-photo { object-position: 56% center; }
  .hero-label { margin-bottom: 24px; }
  .hero-copy h1 { line-height: 1.4; letter-spacing: .025em; margin-bottom: 22px; }
  .hero-title-divider { display: none; }
  .hero-copy h1 span:last-child { flex-basis: 100%; }
  .hero-copy > p.hero-description { line-height: 1.7; margin-bottom: 32px; }
}
