:root {
  --brand-primary: #2b3a67;   /* deep indigo */
  --brand-accent:  #ffb703;   /* warm accent */
  --brand-dark:    #0c1222;
}

/* Core & Typography */
html, body { height: 100%; }
body {
  font-family: system-ui, -apple-system, "Segoe UI", Roboto, "Helvetica Neue", Arial, sans-serif;
  color: #1a1a1a;
  background-color: #fff;
}

/* Topbar & Navbar */
.topbar { background: var(--brand-dark); }
.bg-gradient-primary {
  background: linear-gradient(135deg, var(--brand-primary), #1e2b4d);
}
.brand-icon { display: inline-block; transform: translateY(-1px); margin-right: .35rem; }

.navbar .btn-accent {
  background: var(--brand-accent);
  border: none;
  color: #1a1a1a;
}
.navbar .btn-accent:hover { filter: brightness(0.95); }

/* HERO / Carousel */
.hero { min-height: 68vh; }

.carousel-item {
  height: 68vh;
  background-size: cover;
  background-position: center;
  background-repeat: no-repeat;
  position: relative;
}

/* Overlay now sits BELOW text */
.carousel-item .overlay {
  position: absolute;
  inset: 0;
  background: rgba(0, 0, 0, 0.45); /* adjust opacity to taste */
  z-index: 1;
}

/* Ensure text and buttons sit ABOVE overlay */
.carousel-item .container,
.carousel-item .hero-content {
  position: relative;
  z-index: 2;
  color: #fff;
}

/* Hero text layout */
.hero-content {
  display: flex;
  flex-direction: column;
  justify-content: center;
  height: 100%;
  max-width: 760px;
}

.carousel-indicators [data-bs-target] {
  width: 12px;
  height: 12px;
  border-radius: 50%;
}

/* Section Titles */
.section-title { font-weight: 800; color: var(--brand-primary); }

/* Icon Lists */
.icon-list { list-style: none; padding-left: 0; }
.icon-list li { padding-left: 1.25rem; position: relative; margin-bottom: .5rem; }
.icon-list li::before {
  content: "•";
  position: absolute;
  left: 0;
  color: var(--brand-accent);
}

/* Buttons */
.btn-primary-soft {
  background: rgba(43, 58, 103, .12);
  color: var(--brand-primary);
  border: 1px solid rgba(43, 58, 103, .2);
}
.btn-primary-soft:hover { background: rgba(43, 58, 103, .18); }

/* Accent background sections */
.bg-light-gradient {
  background: linear-gradient(180deg, #f7f9fc, #ffffff);
}
.section.bg-light-gradient:nth-of-type(even) {
  background: linear-gradient(180deg, #ffffff, #f7f9fc);
}

/* CTA banner */
.cta {
  background:
    linear-gradient(180deg, rgba(12, 18, 34, .2), rgba(12, 18, 34, .6)),
    url('../img/banner2.jpg') center/cover no-repeat;
  background-attachment: fixed;
}

/* Alerts */
.alert-accent {
  background: #fff6df;
  border: 1px solid #ffe6a9;
  color: #4a3a00;
}

/* Footer */
.footer a { text-decoration: none; }
.footer a:hover { text-decoration: underline; }

/* Responsive hero adjustments */
@media (max-width: 991.98px) {
  .hero-content h1, .hero-content h2 {
    font-size: 1.75rem;
    line-height: 1.3;
  }
  .hero-content p {
    font-size: 1rem;
  }
  .hero, .carousel-item {
    height: 70vh;
    min-height: 70vh;
  }
}

@media (max-width: 575.98px) {
  .hero-content {
    text-align: center;
    align-items: center;
  }
  .hero-content h1, .hero-content h2 {
    font-size: 1.5rem;
  }
  .hero-content p {
    font-size: .95rem;
  }
}