.page-contact {
  font-family: 'Arial', sans-serif;
  line-height: 1.6;
  color: #ffffff; /* Default text color for dark body background */
  background-color: transparent; /* Body background handled by shared.css */
}

.page-contact__container {
  max-width: 1200px;
  margin: 0 auto;
  padding: 0 20px;
  box-sizing: border-box;
}

.page-contact__dark-bg {
  background-color: #017439; /* Brand primary color */
  color: #ffffff;
}

.page-contact__light-bg {
  background-color: #ffffff;
  color: #333333; /* Dark text for light background */
}

/* Hero Section */
.page-contact__hero-section {
  display: flex;
  align-items: center;
  justify-content: center;
  padding: 80px 0;
  text-align: center;
  padding-top: 0; /* Assuming shared.css handles body padding-top */
  position: relative;
  overflow: hidden;
}

.page-contact__hero-content {
  max-width: 700px;
  z-index: 1;
  position: relative;
}

.page-contact__hero-title {
  font-size: 3.5em;
  margin-bottom: 20px;
  font-weight: bold;
  color: #ffffff;
}

.page-contact__hero-description {
  font-size: 1.2em;
  margin-bottom: 30px;
  color: #f0f0f0;
}

.page-contact__hero-cta-buttons {
  display: flex;
  gap: 20px;
  justify-content: center;
}

.page-contact__hero-image-wrapper {
  position: absolute;
  top: 0;
  left: 0;
  width: 100%;
  height: 100%;
  overflow: hidden;
  z-index: 0;
}

.page-contact__hero-image {
  width: 100%;
  height: 100%;
  object-fit: cover;
  filter: brightness(0.4); /* Darken image for text readability */
}

/* General Section Styling */
.page-contact__info-section, 
.page-contact__form-section, 
.page-contact__faq-section, 
.page-contact__trust-safety-section {
  padding: 60px 0;
  text-align: center;
}

.page-contact__section-title {
  font-size: 2.5em;
  margin-bottom: 20px;
  font-weight: bold;
}

.page-contact__info-section .page-contact__section-title, 
.page-contact__trust-safety-section .page-contact__section-title {
  color: #017439; /* Dark green for titles on light background */
}

.page-contact__form-section .page-contact__section-title {
  color: #017439;
}

.page-contact__faq-section .page-contact__section-title {
  color: #ffffff;
}

.page-contact__section-description {
  font-size: 1.1em;
  margin-bottom: 40px;
  max-width: 800px;
  margin-left: auto;
  margin-right: auto;
  color: #f0f0f0; /* Light text for dark background */
}

.page-contact__info-section .page-contact__section-description, 
.page-contact__trust-safety-section .page-contact__section-description {
  color: #333333; /* Dark text for light background */
}

/* Contact Cards */
.page-contact__contact-cards {
  display: grid;
  grid-template-columns: repeat(auto-fit, minmax(300px, 1fr));
  gap: 30px;
  margin-top: 40px;
}

.page-contact__contact-card {
  background-color: #ffffff;
  padding: 30px;
  border-radius: 10px;
  box-shadow: 0 4px 15px rgba(0, 0, 0, 0.1);
  display: flex;
  flex-direction: column;
  align-items: center;
  text-align: center;
  color: #333333;
}

.page-contact__card-icon {
  width: 100px;
  height: 100px;
  margin-bottom: 20px;
  object-fit: contain;
}

.page-contact__card-title {
  font-size: 1.8em;
  margin-bottom: 10px;
  color: #017439;
}

.page-contact__card-text {
  font-size: 1em;
  margin-bottom: 15px;
}

.page-contact__card-detail {
  font-size: 1.1em;
  font-weight: bold;
  color: #C30808;
  margin-bottom: 20px;
}

.page-contact__additional-info {
  margin-top: 40px;
  font-size: 1em;
  color: #333333;
}

/* Contact Form */
.page-contact__contact-form {
  max-width: 600px;
  margin: 40px auto 0;
  padding: 30px;
  background-color: #f8f8f8;
  border-radius: 10px;
  box-shadow: 0 4px 15px rgba(0, 0, 0, 0.05);
  text-align: left;
}

.page-contact__form-group {
  margin-bottom: 20px;
}

.page-contact__form-label {
  display: block;
  margin-bottom: 8px;
  font-weight: bold;
  color: #333333;
}

.page-contact__form-input,
.page-contact__form-textarea {
  width: calc(100% - 20px);
  padding: 12px 10px;
  border: 1px solid #ddd;
  border-radius: 5px;
  font-size: 1em;
  color: #333333;
}

.page-contact__form-textarea {
  resize: vertical;
}

/* FAQ Section */
.page-contact__faq-list {
  max-width: 800px;
  margin: 40px auto 0;
  text-align: left;
}

.page-contact__faq-item {
  background-color: rgba(255, 255, 255, 0.1);
  border-radius: 8px;
  margin-bottom: 15px;
  overflow: hidden;
  color: #ffffff;
}

.page-contact__faq-question {
  display: flex;
  justify-content: space-between;
  align-items: center;
  padding: 20px;
  cursor: pointer;
  background-color: rgba(0, 0, 0, 0.2);
  border-bottom: 1px solid rgba(255, 255, 255, 0.1);
}

.page-contact__faq-question:hover {
  background-color: rgba(0, 0, 0, 0.3);
}

.page-contact__faq-title {
  font-size: 1.2em;
  font-weight: bold;
  margin: 0;
  color: #ffffff;
}

.page-contact__faq-toggle {
  font-size: 1.5em;
  font-weight: bold;
  color: #FFFF00;
  transition: transform 0.3s ease;
}

.page-contact__faq-item.active .page-contact__faq-toggle {
  transform: rotate(45deg);
}

.page-contact__faq-answer {
  max-height: 0;
  overflow: hidden;
  padding: 0 20px;
  transition: max-height 0.3s ease, padding 0.3s ease;
  color: #f0f0f0;
}

.page-contact__faq-item.active .page-contact__faq-answer {
  max-height: 1000px !important; /* Sufficiently large to show content */
  padding: 20px;
}

.page-contact__faq-answer p {
  margin: 0 0 10px 0;
  color: #f0f0f0;
}

.page-contact__faq-answer a {
  color: #FFFF00; /* Yellow for links in FAQ answers */
  text-decoration: underline;
}

.page-contact__faq-answer a:hover {
  color: #ffffff;
}

.page-contact__faq-cta-text {
  margin-top: 40px;
  font-size: 1.1em;
  color: #f0f0f0;
}

/* Trust & Safety Section */
.page-contact__trust-safety-section {
  background-color: #f2f2f2; /* Light background for contrast */
  color: #333333;
}

.page-contact__trust-points {
  display: grid;
  grid-template-columns: repeat(auto-fit, minmax(300px, 1fr));
  gap: 30px;
  margin-top: 40px;
}

.page-contact__trust-card {
  background-color: #ffffff;
  padding: 30px;
  border-radius: 10px;
  box-shadow: 0 4px 15px rgba(0, 0, 0, 0.1);
  display: flex;
  flex-direction: column;
  align-items: center;
  text-align: center;
  color: #333333;
}

.page-contact__trust-card .page-contact__card-icon {
  width: 100px;
  height: 100px;
  margin-bottom: 20px;
  object-fit: contain;
}

.page-contact__trust-card .page-contact__card-title {
  font-size: 1.8em;
  margin-bottom: 10px;
  color: #017439;
}

.page-contact__trust-card .page-contact__card-text {
  font-size: 1em;
  margin-bottom: 15px;
}

.page-contact__trust-card a {
  color: #017439;
  text-decoration: underline;
}

.page-contact__trust-card a:hover {
  color: #C30808;
}

.page-contact__final-cta {
  margin-top: 40px;
  font-size: 1.1em;
  color: #333333;
}

/* Buttons */
.page-contact__btn-primary {
  display: inline-block;
  background-color: #C30808; /* Red for primary action */
  color: #FFFF00; /* Yellow text for contrast */
  padding: 12px 25px;
  border-radius: 5px;
  text-decoration: none;
  font-weight: bold;
  transition: background-color 0.3s ease, color 0.3s ease;
  border: none;
  cursor: pointer;
  font-size: 1em;
}

.page-contact__btn-primary:hover {
  background-color: #a00606;
  color: #ffffff;
}

.page-contact__btn-secondary {
  display: inline-block;
  background-color: #ffffff;
  color: #017439; /* Brand primary color */
  padding: 12px 25px;
  border-radius: 5px;
  text-decoration: none;
  font-weight: bold;
  transition: background-color 0.3s ease, color 0.3s ease, border-color 0.3s ease;
  border: 2px solid #017439;
  cursor: pointer;
  font-size: 1em;
}

.page-contact__btn-secondary:hover {
  background-color: #017439;
  color: #ffffff;
}

.page-contact__btn-link {
  display: inline-block;
  background-color: #017439;
  color: #ffffff;
  padding: 10px 20px;
  border-radius: 5px;
  text-decoration: none;
  font-weight: bold;
  transition: background-color 0.3s ease;
  font-size: 0.9em;
}

.page-contact__btn-link:hover {
  background-color: #005f2e;
}

.page-contact__inline-link {
  color: #FFFF00; /* Yellow for inline links in dark sections */
  text-decoration: underline;
}

.page-contact__inline-link:hover {
  color: #ffffff;
}

/* Responsive adjustments */
@media (max-width: 1024px) {
  .page-contact__hero-title {
    font-size: 3em;
  }
  .page-contact__section-title {
    font-size: 2em;
  }
}

@media (max-width: 768px) {
  .page-contact__hero-section {
    padding: 60px 0;
  }
  .page-contact__hero-title {
    font-size: 2.5em;
  }
  .page-contact__hero-description {
    font-size: 1em;
  }
  .page-contact__hero-cta-buttons {
    flex-direction: column;
    gap: 15px;
  }
  .page-contact__section-title {
    font-size: 1.8em;
  }
  .page-contact__section-description {
    font-size: 0.95em;
  }
  .page-contact__contact-cards,
  .page-contact__trust-points {
    grid-template-columns: 1fr;
  }
  .page-contact__contact-form {
    padding: 20px;
  }
  .page-contact__faq-question {
    padding: 15px;
  }
  .page-contact__faq-title {
    font-size: 1.1em;
  }
  
  /* Mobile responsive images */
  .page-contact img {
    max-width: 100% !important;
    height: auto !important;
    display: block !important;
  }
  
  /* Mobile responsive containers */
  .page-contact__section, 
  .page-contact__container, 
  .page-contact__card, 
  .page-contact__hero-section, 
  .page-contact__info-section, 
  .page-contact__form-section, 
  .page-contact__faq-section, 
  .page-contact__trust-safety-section {
    max-width: 100% !important;
    width: 100% !important;
    box-sizing: border-box !important;
    padding-left: 15px;
    padding-right: 15px;
    overflow: hidden !important;
  }

  /* Buttons responsive */
  .page-contact__btn-primary,
  .page-contact__btn-secondary,
  .page-contact a[class*="button"],
  .page-contact a[class*="btn"] {
    max-width: 100% !important;
    width: 100% !important;
    box-sizing: border-box !important;
    white-space: normal !important;
    word-wrap: break-word !important;
    padding-left: 15px;
    padding-right: 15px;
  }
  
  .page-contact__hero-cta-buttons {
    flex-direction: column !important;
    gap: 10px !important;
  }
}

@media (max-width: 480px) {
  .page-contact__hero-title {
    font-size: 2em;
  }
  .page-contact__section-title {
    font-size: 1.5em;
  }
}

/* Ensure content area images are not too small */
.page-contact img:not(.page-contact__card-icon) {
  min-width: 200px;
  min-height: 200px;
}

/* Specific card icon size override to allow smaller icons if needed, but still above 200px if they are content images. However, the requirement is NO SMALL ICONS, so these should be >= 200px too. */
/* Re-evaluating based on "any width or height less than 200 pixels is forbidden". Card icons must also be >= 200x200. */
.page-contact__card-icon {
  width: 200px; /* Enforce min size */
  height: 200px; /* Enforce min size */
  object-fit: contain;
}