/* ----- base & reset ----- */
    body {
      font-family: 'Inter', sans-serif;
      color: #212529;
      background: #fcfcfc;
    }
    h1, h2, h3, h4, h5, .navbar-brand {
      font-family: 'Poppins', sans-serif;
    }
    .text-primary { color: #0d6efd !important; }
    .bg-primary { background-color: #0d6efd !important; }
    .bg-light-custom { background-color: #f2f6fe; }
    .section-padding { padding: 70px 0; }

    /* navbar */
    .navbar {
      background: rgba(255,255,255,0.95);
      backdrop-filter: blur(6px);
      transition: box-shadow 0.3s ease;
    }
    .navbar.scrolled { box-shadow: 0 4px 20px rgba(0,0,0,0.08); }
    .navbar-brand span { font-size: 0.85rem; line-height: 1.2; }
    .nav-link { font-weight: 500; color: #1e2b3a !important; margin: 0 6px; }
    .nav-link.active, .nav-link:hover { color: #0d6efd !important; }

    /* hero */
    .hero-section .carousel-item {
      min-height: 70vh;
      background-size: cover;
      background-position: center;
      position: relative;
    }
    .hero-section .carousel-item::after {
      content: '';
      position: absolute;
      inset: 0;
      background: rgba(0,0,0,0.45);
      z-index: 1;
    }
    .hero-section .carousel-item .container {
      position: relative;
      z-index: 2;
    }
    .hero-section h1 { font-size: 3rem; font-weight: 700; }
    .hero-section .lead { font-size: 1.3rem; }

    /* stats */
    .stats-section {
      background: linear-gradient(135deg, #0d6efd 0%, #0a58ca 100%);
      color: #fff;
      padding: 50px 0;
    }
    .stat-number { font-size: 2.8rem; font-weight: 700; }
    .stat-label { font-size: 1.1rem; opacity: 0.9; }

    /* program cards */
    .program-card {
      border: none;
      border-radius: 20px;
      background: #fff;
      box-shadow: 0 6px 25px rgba(0,0,0,0.04);
      transition: transform 0.25s ease, box-shadow 0.3s ease;
    }
    .program-card:hover { transform: translateY(-8px); box-shadow: 0 15px 40px rgba(13,110,253,0.12); }
    .program-icon {
      width: 80px;
      height: 80px;
      background: #e7f0ff;
      border-radius: 50%;
      display: flex;
      align-items: center;
      justify-content: center;
      margin: 0 auto 20px;
      font-size: 2.2rem;
      color: #0d6efd;
    }
    .program-card ul li { font-size: 0.95rem; padding: 4px 0; }

    /* cards for mission/vision */
    .card-header {
      background: #0d6efd;
      color: #fff;
      border-radius: 16px 16px 0 0 !important;
      padding: 1.1rem 1.5rem;
    }
    .card-header h3 { font-size: 1.4rem; }

    /* table */
    .table thead th { background: #0d6efd; color: #fff; border-color: #0d6efd; }
    .table-bordered { border: 1px solid #dde4ec; }
    .table-striped tbody tr:nth-of-type(odd) { background: #f9fcff; }

    /* testimonial */
    .testimonial-card {
      background: #fff;
      padding: 28px 24px;
      border-radius: 24px;
      box-shadow: 0 5px 20px rgba(0,0,0,0.02);
      border: 1px solid #eef3f9;
      height: 100%;
    }
    .testimonial-avatar {
      width: 54px;
      height: 54px;
      border-radius: 50%;
      object-fit: cover;
      background: #dbe5f0;
    }

    /* cta */
    .cta-section { background: #0d6efd; }

    /* footer */
    .footer {
      background: #0b1a2a;
      color: #cfddee;
      padding: 50px 0 20px;
    }
    .footer h5 { color: #fff; font-weight: 600; margin-bottom: 1.2rem; }
    .footer a { color: #b0c8e0; text-decoration: none; transition: color 0.2s; }
    .footer a:hover { color: #fff; }
    .footer-social a {
      display: inline-block;
      background: rgba(255,255,255,0.06);
      color: #b0c8e0;
      width: 40px;
      height: 40px;
      line-height: 40px;
      text-align: center;
      border-radius: 50%;
      margin-right: 10px;
      transition: 0.2s;
    }
    .footer-social a:hover { background: #0d6efd; color: #fff; }
    .footer-bottom { border-top: 1px solid rgba(255,255,255,0.05); }

    /* back to top */
    .back-to-top {
      position: fixed;
      bottom: 30px;
      right: 30px;
      background: #0d6efd;
      color: #fff;
      width: 44px;
      height: 44px;
      border-radius: 50%;
      display: flex;
      align-items: center;
      justify-content: center;
      text-decoration: none;
      opacity: 0;
      transition: opacity 0.3s, transform 0.2s;
      pointer-events: none;
      box-shadow: 0 4px 12px rgba(13,110,253,0.35);
      z-index: 999;
    }
    .back-to-top.active { opacity: 1; pointer-events: auto; }
    .back-to-top:hover { background: #0b5ed7; color: #fff; }

    /* responsiveness */
    @media (max-width: 768px) {
      .hero-section h1 { font-size: 2.1rem; }
      .hero-section .lead { font-size: 1rem; }
      .stat-number { font-size: 2.2rem; }
      .section-padding { padding: 40px 0; }
    }
    .hover-shadow:hover { box-shadow: 0 1rem 3rem rgba(0,0,0,.15) !important; transition: .3s; }
    .transition-all { transition: all 0.2s ease-in-out; }
    .rounded-4 { border-radius: 1rem; }

.pre-header {
            background: #0b1a2a;
            color: #cfddee;
            padding: 10px 0;
            font-size: 0.9rem;
            border-bottom: 2px solid #0d6efd;
        }
        .pre-header a {
            color: #cfddee;
            text-decoration: none;
            transition: color 0.2s;
        }
        .pre-header a:hover {
            color: #fff;
        }
        .pre-header .apply-now {
            background: #0d6efd;
            color: #fff !important;
            padding: 4px 16px;
            border-radius: 20px;
            font-weight: 500;
            font-size: 0.85rem;
            transition: background 0.2s;
        }
        .pre-header .apply-now:hover {
            background: #0b5ed7;
            color: #fff !important;
        }
        @media (max-width: 768px) {
            .pre-header {
                font-size: 0.8rem;
                padding: 8px 0;
            }
        }

/* ---- Odoo integration overrides (keep Bootstrap default palette) ---- */
#wrap.zcht-home { padding: 0 !important; margin: 0 !important; }

/* only colour plain links; NEVER touch .btn labels (that hid button text) */
.zcht-home a:not(.btn) { color: #0d6efd; }

/* explicit, high-specificity button colours with !important */
.zcht-home .btn { text-decoration: none; }
.zcht-home .btn-primary,
.zcht-home .btn-primary:focus { color: #fff !important; background-color: #0d6efd !important; border-color: #0d6efd !important; }
.zcht-home .btn-primary:hover,
.zcht-home .btn-primary:active { color: #fff !important; background-color: #0b5ed7 !important; border-color: #0a58ca !important; }
.zcht-home .btn-outline-primary { color: #0d6efd !important; border-color: #0d6efd !important; background-color: transparent !important; }
.zcht-home .btn-outline-primary:hover { color: #fff !important; background-color: #0d6efd !important; border-color: #0d6efd !important; }
.zcht-home .btn-outline-light { color: #f8f9fa !important; border-color: #f8f9fa !important; background-color: transparent !important; }
.zcht-home .btn-outline-light:hover { color: #212529 !important; background-color: #f8f9fa !important; border-color: #f8f9fa !important; }
.zcht-home .btn-light,
.zcht-home .btn-light:focus { color: #212529 !important; background-color: #f8f9fa !important; border-color: #f8f9fa !important; }
.zcht-home .btn-light:hover { color: #212529 !important; background-color: #e2e6ea !important; border-color: #dae0e5 !important; }

.zcht-home .text-primary { color: #0d6efd !important; }
.zcht-home .bg-primary { background-color: #0d6efd !important; }
.zcht-home .form-control:focus, .zcht-home .form-select:focus { border-color: #86b7fe; box-shadow: 0 0 0 .25rem rgba(13,110,253,.25); }
.zcht-home .table thead th { background: #0d6efd; color: #fff; border-color: #0d6efd; }

/* hero: make the slide content fill the banner and centre vertically */
.zcht-home .hero-section .carousel-item .container {
  min-height: 70vh;
  display: flex;
  flex-direction: column;
  justify-content: center;
  align-items: center;
  padding-top: 80px;
  padding-bottom: 80px;
}
@media (max-width: 768px) {
  .zcht-home .hero-section .carousel-item .container {
    min-height: 62vh;
    padding-top: 48px;
    padding-bottom: 48px;
  }
}

/* keep original link colours in dark sections */
.zcht-home .pre-header a { color: #cfddee; }
.zcht-home .pre-header a:hover { color: #fff; }
.zcht-home .pre-header .apply-now { color: #fff !important; }
.zcht-home .footer a, .zcht-home .footer-social a { color: #b0c8e0; }
.zcht-home .footer a:hover, .zcht-home .footer-social a:hover { color: #fff; }
.zcht-home .back-to-top { color: #fff; }
.zcht-home .back-to-top:hover { color: #fff; }
