/* =========================================================
   SMALL TOWN MAHJ — CONTACT PAGE
   Warm, direct, and intentionally limited to this route.
   ========================================================= */

.contact-page {
  padding: clamp(1.8rem, 4vw, 3.6rem) 0 clamp(4rem, 7vw, 6rem);
}

.contact-page > .shell {
  width: min(100%, 860px);
}

.contact-page__intro {
  max-width: 620px;
  margin: 0 auto clamp(1.7rem, 3vw, 2.5rem);
  text-align: center;
}

.contact-page__intro h1 {
  margin: 0 0 .65rem;
  color: var(--blue-deep);
  font-size: clamp(2.7rem, 5vw, 4.2rem);
  line-height: .98;
}

.contact-page__intro p {
  max-width: 34rem;
  margin: 0 auto;
  color: var(--muted);
  font-size: clamp(.95rem, 1.35vw, 1.05rem);
}

.contact-form-shell {
  width: min(100%, 720px);
  margin: 0 auto;
  border-top: 1px solid rgba(18,56,102,.22);
  padding-top: clamp(1.35rem, 2.8vw, 2rem);
}

.contact-form {
  display: grid;
  gap: 1.05rem;
}

.contact-form__row {
  display: grid;
  gap: 1rem;
  grid-template-columns: repeat(2, minmax(0, 1fr));
}

.contact-page .field {
  gap: .38rem;
}

.contact-page .field label {
  color: var(--ink);
}

.contact-page .field input,
.contact-page .field textarea {
  border-color: rgba(18,56,102,.32);
  background: #fffdf8;
}

.contact-page .field input {
  min-height: 52px;
}

.contact-page .field textarea {
  min-height: 155px;
  resize: vertical;
}

.contact-form__actions {
  display: flex;
  align-items: center;
  gap: .9rem 1.15rem;
  padding-top: .15rem;
}

.contact-form__actions .button {
  flex: 0 0 auto;
  min-width: 155px;
}

.contact-form__note {
  margin: 0;
  color: var(--muted);
  font-size: .72rem;
  line-height: 1.45;
}

.contact-success {
  border: 0;
  background: transparent;
  padding: .55rem 0 0;
  text-align: center;
}

.contact-success h2 {
  margin-bottom: .65rem;
  color: var(--blue-deep);
  font-size: clamp(2rem, 4vw, 3rem);
}

.contact-success p {
  max-width: 31rem;
  margin: 0 auto 1.3rem;
  color: var(--muted);
}

.contact-page__availability {
  display: flex;
  align-items: center;
  justify-content: center;
  gap: .45rem;
  width: min(100%, 720px);
  margin: 1.4rem auto 0;
  color: var(--muted);
  font-size: .82rem;
  text-align: center;
}

.contact-page__availability .text-link {
  font-size: .78rem;
}

@media (max-width: 620px) {
  .contact-page {
    padding-top: 1.05rem;
  }

  .contact-page__intro {
    margin-bottom: 1.25rem;
  }

  .contact-page__intro h1 {
    font-size: clamp(2.4rem, 11vw, 3.15rem);
  }

  .contact-page__intro p {
    font-size: .9rem;
    line-height: 1.55;
  }

  .contact-form-shell {
    padding-top: 1.1rem;
  }

  .contact-form__row {
    grid-template-columns: 1fr;
  }

  .contact-page .field input {
    min-height: 50px;
  }

  .contact-page .field textarea {
    min-height: 145px;
  }

  .contact-form__actions {
    display: grid;
    gap: .65rem;
  }

  .contact-form__actions .button {
    width: 100%;
  }

  .contact-form__note {
    text-align: center;
  }

  .contact-page__availability {
    flex-wrap: wrap;
    margin-top: 1.25rem;
    font-size: .78rem;
  }
}
