/* Shared contact section on the LP home and projects pages. */
.contact-section {
  position: relative;
  padding: 64px 24px;
  scroll-margin-top: calc(var(--header-height) + 20px);
  color: var(--ink);
  background: var(--pink) url('../images/halftone.svg') center / cover;
}
.contact-section__inner {
  width: min(1080px, 100%);
  margin-inline: auto;
  display: grid;
  grid-template-columns: 1fr auto;
  align-items: center;
  gap: 48px;
}
.contact-section__copy h2 {
  margin: 0 0 14px;
  color: var(--blue);
  font-family: var(--font-display);
  font-size: clamp(48px, 5vw, 68px);
  font-weight: 700;
  line-height: 1;
  text-transform: uppercase;
}
.contact-section__copy p { max-width: 380px; margin: 0; font-size: 16px; line-height: 1.6; }
.contact-section__phone {
  display: flex;
  align-items: center;
  gap: 18px;
  padding: 24px 28px;
  border-radius: 12px;
  color: var(--blue);
  background: var(--paper);
  cursor: pointer;
  transition: transform .2s ease, box-shadow .2s ease;
}
.contact-section__icon { display: grid; place-items: center; flex: 0 0 36px; }
.contact-section__icon svg { display: block; width: 36px; height: 36px; }
.contact-section__phone strong { display: block; white-space: nowrap; font-size: clamp(21px, 2.1vw, 29px); font-weight: 700; line-height: 1.3; }
.contact-section__hint { display: block; margin-top: 6px; color: var(--ink); font-size: 12px; line-height: 1.5; }
.contact-section__arrow { margin-left: 10px; font-size: 28px; }
.contact-section__phone:hover { transform: translateY(-3px); box-shadow: 0 8px 22px rgb(32 32 32 / .15); }
.contact-section__phone:focus-visible { outline: 3px solid var(--blue); outline-offset: 5px; }
.contact-section__phone:active { transform: translateY(0); box-shadow: none; }
@media (max-width: 900px) {
  .contact-section__inner { grid-template-columns: 1fr; justify-items: center; gap: 28px; }
  .contact-section__copy { text-align: center; }
}
@media (max-width: 480px) {
  .contact-section { padding: 46px 20px; }
  .contact-section__phone { width: 100%; max-width: 360px; padding: 22px 16px; gap: 12px; }
  .contact-section__icon { flex-basis: 28px; }
  .contact-section__icon svg { width: 28px; height: 28px; }
  .contact-section__arrow { margin-left: auto; font-size: 23px; }
  .contact-section__hint { max-width: 190px; }
}
@media (prefers-reduced-motion: reduce) {
  .contact-section__phone { transition: none; }
  .contact-section__phone:hover { transform: none; }
}
