/* Contact page and reusable blue contact section. Scoped to .pg-contact and .pg-contact-section. */
.pg-contact, .pg-contact-section { color: #2b2e33; }
.pg-contact *, .pg-contact *::before, .pg-contact *::after,
.pg-contact-section *, .pg-contact-section *::before, .pg-contact-section *::after {
  box-sizing: border-box;
}
.pg-contact__info { padding: 8px 0 88px; background: #ffffff; }
.pg-contact__inner {
  display: flex;
  flex-wrap: wrap;
  align-items: stretch;
  gap: 32px;
  width: min(1280px, calc(100% - 64px));
  margin: 0 auto;
}
.pg-contact__map {
  flex: 1 1 420px;
  min-width: 0;
  min-height: 420px;
  overflow: hidden;
  border: 1px solid #cfe1ea;
  border-radius: 28px;
  background: #eaf5fb;
}
.pg-contact__map iframe {
  display: block;
  width: 100%;
  height: 100%;
  min-height: 420px;
  border: 0;
}
.pg-contact__cards {
  display: flex;
  flex: 1 1 380px;
  flex-direction: column;
  gap: 14px;
  min-width: 0;
}
.pg-contact__card { padding: 22px 24px; border-radius: 22px; background: #f3f8fb; }
.pg-contact__card h2 {
  margin: 0 0 8px;
  color: #056f9d;
  font-family: inherit;
  font-size: 17px;
  font-weight: 800;
}
.pg-contact__card a, .pg-contact__card p {
  display: flex;
  align-items: center;
  gap: 10px;
  min-height: 32px;
  margin: 0;
  color: #2b2e33;
  font-size: 15px;
  line-height: 1.6;
  text-decoration: none;
  overflow-wrap: anywhere;
}
.pg-contact__card i { flex: 0 0 auto; color: #009cde; font-size: 18px; }
.pg-contact__phone { font-weight: 700; }
.pg-contact-section { padding: 88px 0; background: #009cde; }
.pg-contact-section__inner {
  display: flex;
  flex-wrap: wrap;
  align-items: flex-start;
  gap: 48px;
  width: min(1280px, calc(100% - 64px));
  margin: 0 auto;
}
.pg-contact-section__copy { flex: 1 1 320px; min-width: 0; }
.pg-contact-section__eyebrow {
  display: block;
  margin-bottom: 8px;
  color: #ffffff;
  font-size: 13px;
  font-weight: 800;
  letter-spacing: 0.12em;
  text-transform: uppercase;
}
.pg-contact-section h2 {
  margin: 0;
  color: #ffffff;
  font-family: inherit;
  font-size: clamp(28px, 3.4vw, 38px);
  font-weight: 800;
  line-height: 1.12;
  letter-spacing: -0.02em;
}
.pg-contact-section__copy p {
  max-width: 440px;
  margin: 16px 0 0;
  color: #ffffff;
  font-size: 16px;
  line-height: 1.65;
}
.pg-contact-section__form {
  display: flex;
  flex: 2 1 520px;
  flex-wrap: wrap;
  gap: 16px;
  min-width: 0;
  padding: 32px;
  border-radius: 28px;
  background: #ffffff;
  box-shadow: 0 10px 30px rgba(6, 43, 67, 0.06);
}
.pg-contact-section__field {
  display: flex;
  flex: 1 1 220px;
  flex-direction: column;
  gap: 6px;
  min-width: 0;
}
.pg-contact-section__field--wide { flex-basis: 100%; }
.pg-contact-section__field label { color: #2b2e33; font-size: 13px; font-weight: 700; }
.pg-contact-section__field input, .pg-contact-section__field textarea {
  width: 100%;
  border: 1px solid #d3e3ec;
  border-radius: 14px;
  background: #ffffff;
  color: #2b2e33;
  font: inherit;
  font-size: 15px;
}
.pg-contact-section__field input { height: 50px; padding: 0 16px; }
.pg-contact-section__field textarea { min-height: 140px; padding: 14px 16px; resize: vertical; }
.pg-contact-section__submit {
  min-height: 52px;
  padding: 0 32px;
  border: 0;
  border-radius: 999px;
  background: #2b2e33;
  color: #ffffff;
  font: inherit;
  font-size: 15px;
  font-weight: 700;
  cursor: pointer;
}
.pg-contact-section__submit:hover { opacity: 0.88; }
.pg-contact-section__notice {
  flex-basis: 100%;
  padding: 16px;
  border: 1px solid #b8d8c8;
  border-radius: 14px;
  background: #f0faf4;
  color: #24513a;
  font-size: 14px;
}
.pg-contact-section__notice--error { border-color: #ebc8cb; background: #fff3f4; color: #8a2632; }
.pg-contact-section__notice p { margin: 4px 0 0; color: inherit; }
.pg-contact :where(a, button, input, textarea):focus-visible,
.pg-contact-section :where(a, button, input, textarea):focus-visible {
  outline: 3px solid #009cde;
  outline-offset: 3px;
}
@media (max-width: 575.98px) {
  .pg-contact__info { padding-bottom: 48px; }
  .pg-contact__inner, .pg-contact-section__inner { width: calc(100% - 32px); gap: 28px; }
  .pg-contact__card { padding: 20px; }
  .pg-contact-section { padding: 48px 0; }
  .pg-contact-section__form { padding: 20px; }
}
