/* =========================================================
   CONTACT PAGE
   ========================================================= */

.contact-page {
  width: min(94vw, 1180px);
  margin: clamp(1.5rem, 3vw, 2.75rem) auto 3rem;
}

.contact-header {
  margin-bottom: 1.5rem;
  text-align: center;
}

.contact-header-icon {
  width: 48px;
  height: 48px;
  margin: 0 auto .65rem;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  border-radius: 12px;
  color: var(--primary);
  background: #dff0fa;
  font-size: 1.25rem;
}

.contact-header h1 {
  margin: 0;
  color: #173b5f;
  font-size: clamp(1.65rem, 4vw, 2.5rem);
  line-height: 1.2;
}

.contact-header p {
  max-width: 700px;
  margin: .65rem auto 0;
  color: var(--text-muted);
  font-size: .95rem;
  line-height: 1.5;
}

.contact-layout {
  display: grid;
  grid-template-columns: minmax(0, 1fr) minmax(0, 1.15fr);
  gap: 1.25rem;
  align-items: start;
}

.contact-information {
  display: grid;
  gap: 1rem;
}

.contact-card,
.contact-map {
  overflow: hidden;
  background: #fff;
  border: 1px solid #dce6ee;
  border-radius: 12px;
  box-shadow: 0 3px 14px rgba(20, 55, 80, .08);
}

.contact-card-title,
.contact-map-header {
  display: flex;
  align-items: center;
  gap: 12px;
  min-height: 66px;
  padding: 1rem 1.2rem;
  color: #173b5f;
  background: linear-gradient(135deg, #f7fafc, #eaf5fb);
  border-bottom: 1px solid #e1eaf0;
}

.contact-card-title > i,
.contact-map-header > i {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  width: 36px;
  height: 36px;
  flex: 0 0 36px;
  border-radius: 9px;
  color: var(--primary);
  background: #dff0fa;
}

.contact-card-title h2,
.contact-map-header h2 {
  margin: 0;
  color: #173b5f;
  font-size: 1rem;
  font-weight: 700;
  line-height: 1.3;
  text-align: left;
}

.contact-card ul {
  display: grid;
  gap: 7px;
  margin: 0;
  padding: 1rem 1.2rem 1.15rem;
  list-style: none;
}

.contact-card li {
  margin: 0;
  padding: .65rem .75rem;
  color: #234a73;
  background: #fbfdfe;
  border: 1px solid #e7eef3;
  border-radius: 8px;
  font-size: .92rem;
  line-height: 1.4;
  overflow-wrap: anywhere;
}

.contact-card a {
  color: var(--primary);
}

.contact-card a:hover {
  color: var(--primary-dark);
  text-decoration: underline;
}

.contact-map-header {
  min-height: 66px;
}

.contact-map-frame {
  aspect-ratio: 4 / 3;
  min-height: 360px;
  background: #eef5f9;
}

.contact-map-frame iframe {
  display: block;
  width: 100%;
  height: 100%;
  min-height: 360px;
  border: 0;
}

@media (max-width: 850px) {
  .contact-page {
    width: calc(100% - 24px);
    margin: 1.25rem auto 2rem;
  }

  .contact-layout {
    grid-template-columns: 1fr;
    gap: .9rem;
  }
}

@media (max-width: 600px) {
  .contact-header {
    margin-bottom: 1rem;
  }

  .contact-header h1 {
    font-size: clamp(1.45rem, 7vw, 2rem);
  }

  .contact-header p {
    font-size: .88rem;
  }

  .contact-card-title,
  .contact-map-header {
    min-height: 60px;
    padding: .85rem 1rem;
  }

  .contact-card-title > i,
  .contact-map-header > i {
    width: 32px;
    height: 32px;
    flex-basis: 32px;
  }

  .contact-card ul {
    padding: .75rem;
  }

  .contact-card li {
    padding: .65rem .7rem;
    font-size: .88rem;
  }

  .contact-map-frame,
  .contact-map-frame iframe {
    min-height: 300px;
  }
}

@media (max-width: 380px) {
  .contact-page {
    width: calc(100% - 18px);
  }
}