/* Base (desktop-first tweaks) */
.contact-page .hero-banner .centered h1 { font-size: 4.2em; }
.contact-page .breadcrumbs { font-size: 0.95em; }
.contact-page .forms { padding-left: 3em; padding-right: 3em; }
.contact-page .contact-form .form-control { font-size: 1em; padding: 0.8em 1em; }
.contact-page .contact-form .btn { padding: 0.8em 1.2em; font-size: 1em; }
.contact-page .contact-map { min-height: 22em; }

/* Contact Information Section */


.contact-page .contact-info-section .row {
  align-items: stretch;
  gap: 1.5rem;
  justify-content: center;
}

.contact-page .contact-info-section .col-12,
.contact-page .contact-info-section .col-md-3 {
  display: flex;
  flex: 1;
  max-width: calc(25% - 1.125rem);
}

.contact-page .contact-info-item {
  padding: 1.5rem 1rem;
  background: white;
  border-radius: 12px;
  height: 100%;
  min-height: 140px;
  display: flex;
  align-items: center;
}

.contact-page .contact-info-item .d-flex {
  align-items: center;
  width: 100%;
  gap: 1rem;
}


.contact-page .contact-icon-wrapper {
  width: 50px;
  height: 50px;
  background: #d44646;
  border-radius: 50%;
  display: flex;
  align-items: center;
  justify-content: center;
  flex-shrink: 0;
}

.contact-page .contact-icon {
  font-size: 1.2rem;
  color: white;
}

.contact-page .contact-icon.whatsapp-icon {
  color: white;
}



.contact-page .contact-info-text {
  flex: 1;
  min-width: 0;
  display: flex;
  flex-direction: column;
  justify-content: center;
}

.contact-page .contact-info-title {
  font-weight: 600;
  color: #333;
  font-size: 1rem;
  margin-bottom: 0.25rem;
}

.contact-page .contact-info-detail {
  text-decoration: none;
  font-size: 1.1rem;
  font-weight: 400;
  transition: color 0.3s ease;
  display: block;
  line-height: 1.4;
}

.contact-page .contact-info-detail:hover {
  color: #667eea;
  text-decoration: none;
}

/* For very small devices (phones, portrait) */
@media (max-width: 480px) {
  /* CSS for very small phones */
  .contact-page .hero-banner .centered h1 { font-size: 1.6em; }
  .contact-page .hero-banner .breadcrumbs { font-size: 0.9em; }

  .contact-page .forms { padding-left: 1em !important; padding-right: 1em !important; }
  .contact-page .contact-form .form-control { font-size: 0.95em; padding: 0.6em 0.8em; }
  .contact-page .contact-form .btn { padding: 0.65em 1em; font-size: 0.95em; }

  .contact-page .contact-map { min-height: 16.25em; }

  /* Contact info section mobile */
  .contact-page .contact-info-section {
    margin: 2rem 0;
    padding: 1rem 0;
  }

  .contact-page .contact-info-section .row {
    gap: 1rem;
    flex-direction: column;
    align-items: center;
  }

  .contact-page .contact-info-section .col-12,
  .contact-page .contact-info-section .col-md-3 {
    max-width: 100%;
    flex: none;
    width: 100%;
  }

  .contact-page .contact-info-item {
    padding: 1rem;
    min-height: 120px;
  }

  .contact-page .contact-info-item .d-flex {
    gap: 0.75rem;
    align-items: center;
    justify-content: center;
    flex-direction: column;
  }

  .contact-page .contact-info-text {
    text-align: center;
  }

  .contact-page .contact-icon-wrapper {
    width: 40px;
    height: 40px;
  }

  .contact-page .contact-icon {
    font-size: 1rem;
  }


  /* Center the whole form on mobile */
  .contact-page .forms .row { justify-content: center; }
  .contact-page .contact-form { max-width: 28em; margin-left: auto; margin-right: auto; }
  .contact-page .col-md-7 { flex: 0 0 100%; max-width: 100%; }

  /* Contact form: ensure uniform full-width fields on mobile */
  .contact-page .contact-form .row > [class^="col-"],
  .contact-page .contact-form .row > [class*=" col-"] {
    flex: 0 0 100%;
    max-width: 100%;
  }
  /* Align fields to the same left start: remove gutters */
  .contact-page .contact-form .row { margin-left: 0; margin-right: 0; }
  .contact-page .contact-form .row > [class^="col-"],
  .contact-page .contact-form .row > [class*=" col-"] { padding-left: 0; padding-right: 0; }
  .contact-page .contact-form .form-control {
    width: 100%;
    box-sizing: border-box;
    display: block;
  }
  /* Center the form itself */
  .contact-page .contact-form { max-width: 28em; margin-left: auto; margin-right: auto; }
  /* Ensure all fields/buttons are exactly same width */
  .contact-page .contact-form .form-item,
  .contact-page .contact-form .form-control,
  .contact-page .contact-form textarea,
  .contact-page .contact-form .btn {
    width: 100%;
    max-width: 100%;
    align-self: stretch;
  }

}

/* For small phones - ensure stacking */
@media (max-width: 576px) {
  .contact-page .contact-info-section .row {
    flex-direction: column !important;
    align-items: center;
  }
  
  .contact-page .contact-info-section .col-12,
  .contact-page .contact-info-section .col-md-3 {
    width: 100% !important;
    max-width: 100% !important;
    flex: none !important;
  }

  .contact-page .contact-info-item .d-flex {
    justify-content: center;
    align-items: center;
    flex-direction: column;
  }

  .contact-page .contact-info-text {
    text-align: center;
  }
}

/* For larger phones (landscape) */
@media (max-width: 768px) {
  /* CSS for tablets and big phones */
  .contact-page .hero-banner .centered h1 { font-size: 1.8em; }
  .contact-page .forms { padding-left: 2em !important; padding-right: 2em !important; }
  .contact-page .contact-map { min-height: 18.75em; }

  /* Form spacing */
  .contact-page .contact-form .form-item { margin-top: 0.6em; margin-bottom: 0.6em; }

  /* Contact info section tablet */
  .contact-page .contact-info-section {
    margin: 2.5rem 0;
  }

  .contact-page .contact-info-section .row {
    gap: 1.25rem;
    flex-direction: row;
  }

  .contact-page .contact-info-section .col-12,
  .contact-page .contact-info-section .col-md-3 {
    max-width: calc(50% - 0.5rem);
    flex: 0 0 calc(50% - 0.5rem);
  }

  .contact-page .contact-info-item {
    padding: 1.25rem;
    min-height: 130px;
  }

  .contact-page .contact-info-item .d-flex {
    gap: 0.875rem;
    align-items: center;
    justify-content: flex-start;
  }

  .contact-page .contact-info-text {
    text-align: left;
  }

}

/* For tablets and iPads */
@media (min-width: 769px) and (max-width: 1024px) {
  /* CSS for iPads, small laptops */
  .contact-page .hero-banner .centered h1 { font-size: 2.2em; }
  .contact-page .forms { padding: 0 2rem !important; }
  .contact-page .contact-map { min-height: 22em; }

  /* Contact info section for tablets */
  .contact-page .contact-info-section {
    margin: 3rem 0;
    padding: 0 1rem;
  }

  .contact-page .contact-info-section .row {
    gap: 1.5rem;
    flex-direction: row;
    justify-content: center;
  }

  .contact-page .contact-info-section .col-12,
  .contact-page .contact-info-section .col-md-3 {
    max-width: calc(50% - 0.75rem);
    flex: 0 0 calc(50% - 0.75rem);
  }

  .contact-page .contact-info-item {
    padding: 1.5rem 1rem;
    min-height: 150px;
  }

  .contact-page .contact-info-item .d-flex {
    gap: 1rem;
    align-items: center;
    justify-content: flex-start;
  }

  .contact-page .contact-info-text {
    text-align: left;
  }

  .contact-page .contact-icon-wrapper {
    width: 50px;
    height: 50px;
  }

  .contact-page .contact-icon {
    font-size: 1.2rem;
  }

  .contact-page .contact-info-title {
    font-size: 1.1rem;
  }

  .contact-page .contact-info-detail {
    font-size: 1rem;
  }

  /* Balance columns */
  .contact-page .col-md-7, .contact-page .col-md-5 { margin-top: 1em; }
}

/* Ensure cards stay in one line on larger screens */
@media (min-width: 769px) {
  .contact-page .contact-info-section .row {
    flex-direction: row !important;
    justify-content: center;
  }
  
  .contact-page .contact-info-section .col-12,
  .contact-page .contact-info-section .col-md-3 {
    flex: 1;
    max-width: calc(25% - 1.125rem);
  }
}


