/* General resets */
body {
  font-family: system-ui, -apple-system, "Segoe UI", Roboto, Helvetica, Arial, sans-serif;
  line-height: 1.6;
}

/* Secondary header (grey) */
.secondary-header {
  background-color: #f8f9fa; /* light grey */
}

/* Primary nav (dark background, white text, centered items) */
.primary-nav {
  background-color: #1f2937; /* dark slate */
}
.primary-nav .nav-link {
  color: #fff !important;
}
.primary-nav .navbar-nav {
  margin: 0 auto; /* center menu items */
}

/* Carousel captions */
.carousel-caption {
  max-width: 640px;
  margin-left: auto;
  margin-right: auto;
}

/* Service cards */
.service-card {
  border-radius: 0.75rem; /* rounded corners */
  box-shadow: 0 2px 6px rgba(0,0,0,0.1); /* subtle shadow */
  overflow: hidden;
}
.service-card .thumb {
  height: 180px;
  object-fit: cover;
  border-top-left-radius: 0.75rem;
  border-top-right-radius: 0.75rem;
}

/* News cards */
.news-card {
  border-radius: 0.75rem;
  box-shadow: 0 2px 6px rgba(0,0,0,0.1);
  overflow: hidden;
}
.news-card .thumb {
  height: 160px;
  object-fit: cover;
  border-top-left-radius: 0.75rem;
  border-top-right-radius: 0.75rem;
}

/* Soft background color utilities */
.bg-info-soft {
  background-color: #e0f2fe; /* light blue */
}
.bg-success-soft {
  background-color: #dcfce7; /* light green */
}
.bg-warning-soft {
  background-color: #fef3c7; /* light yellow */
}
.bg-secondary-soft {
  background-color: #e5e7eb; /* light grey */
}

/* Responsive tweaks */
@media (max-width: 768px) {
  .carousel-caption {
    font-size: 0.9rem;
    padding: 0.5rem;
  }
  .service-card .thumb,
  .news-card .thumb {
    height: 140px;
  }
}


/* Caption overlay utilities: keep text readable over photos */
.caption-overlay {
  background-color: rgba(17, 24, 39, 0.5); /* dark slate @50% */
  color: #fff;
  border-radius: 0.5rem;
  padding: 0.75rem 1rem;
}

/* Contact section background image blend (fallback color if no image) */
.contact-bg {
  position: relative;
  background-color: #111827; /* dark fallback */
  color: #fff;
  overflow: hidden;
}
.contact-bg::before {
  content: "";
  position: absolute;
  inset: 0;
  background-image: var(--contact-bg-image, none);
  background-size: cover;
  background-position: center;
  opacity: 0.3; /* ~30% */
  pointer-events: none;
}
.contact-bg .container,
.contact-bg .content {
  position: relative; /* place content above overlay */
  z-index: 1;
}

/* Light background for About section */
.about-light {
  background-color: #f8fafc; /* very light gray-blue */
}

/* Ensure buttons and text remain visible on dark sections */
.section-dark .btn {
  color: #111;
}

/* Utilities for spacing and rounded shadows shared by cards */
.rounded-shadow {
  border-radius: 0.75rem;
  box-shadow: 0 2px 6px rgba(0,0,0,0.1);
}
