
 :root { 
    --primary:#3a8b68;
    --secondary: #000;
    --yellow:#ffd700;
    --light: #EEF9FF;
    --gray:#f8f9fa;
    --dark-gray:#999999;
    --dark: #091E3E;
    --district-capricorn: #999999;
      --district-mopani: #198754;
      --district-sekhukhune: #ffd700;
      --district-waterberg: #000;
      --district-vhembe: #dc3545;
}
 
 
 
 /* ======== ORGANIZATIONAL STRUCTURE STYLES ======== */
  .org-structure {
    text-align: center;
    position: relative;
  }

  .org-node {
    display: inline-block;
    background: #f8f9fa;
    border: 2px solid #000;
    border-radius: 10px;
    padding: 15px 20px;
    min-width: 180px;
    box-shadow: 0 3px 6px rgba(0,0,0,0.1);
  }

  .org-node.main {
    background: #ffd700;
    color: #fff !important;
    font-weight: 600;
  }

  .org-node.mid {
    font-weight: 600;
  }

  .org-node.small {
    font-size: 0.9rem;
  }

  /* Vertical line */
  .org-line {
    width: 2px;
    height: 40px;
    background: #000;
    margin: 0 auto;
  }

  /* Horizontal splitter (between levels) */
  .org-horizontal-line {
    height: 2px;
    background: #000;
    width: 80%;
    margin: 20px auto;
    position: relative;
  }

  /* Flex rows */
  .org-row.level-3 {
    display: flex;
    justify-content: center;
    align-items: flex-start;
    gap: 40px;
    flex-wrap: nowrap;   /* keep all 4 inline */
    flex-basis: auto;
    overflow-x: auto;
    position: relative;
  }

  /* Connector line below Branch Infrastructure Ops */
  .infra-sub-connector {
    position: relative;
    width: 2px;
    height: 40px;
    background: #000;
    margin: 0 auto;
    z-index: 2;
  }

  /* === HORIZONTAL CONNECTOR between sub-directorates === */
  .infra-horizontal-line {
    position: relative;
    height: 2px;
    background: #000;
    width: 70%;
    margin: 0 auto;
  }

  /* Sub-directorates row */
  .org-sub-group.infra {
    display: flex;
    justify-content: center;
    flex-wrap: wrap;
    gap: 25px;
    margin-top: 25px;
    position: relative;
  }

  /* Vertical lines connecting horizontal bar to each sub box */
  .org-sub-group.infra::before {
    content: "";
    position: absolute;
    top: -25px;
    left: 50%;
    width: 2px;
    height: 25px;
    background: #000;
    transform: translateX(-50%);
  }

  /* Proper spacing between hierarchy levels */
  .level-3, .level-4 {
    margin-top: 25px;
  }

  /* === Connector & sub-directorate alignment fix === */
.org-branch-connector {
  display: flex;
  flex-direction: column;
  align-items: center;
  margin-top: -10px;
  position: relative;
}

.org-branch-connector .vertical-line {
  width: 2px;
  height: 40px;
  background: #000;
  margin: 0 auto;
}

.org-branch-connector .horizontal-branch-line {
  width: 70%;
  height: 2px;
  background: #000;
  margin: 0 auto;
  position: relative;
}

/* Sub-directorate row centered under Branch Infra Ops */
.org-sub-row {
  display: flex;
  justify-content: center;
  flex-wrap: wrap;
  gap: 25px;
  margin-top: 25px;
}

/* === Infrastructure Operations Connector === */
/* === Infrastructure Operations Connector (aligned correctly) === */
.infra-wrapper {
  position: relative;
  margin-top: 40px;
  width: 100%;
}

/* ✅ Vertical line placed exactly under the first (infraOps) card */
.infra-vertical-line {
  position: absolute;
  top: -40px;
  left: 0; /* Start at left of container */
  width: 100%;
  height: 0;
}

.infra-vertical-line::before {
  content: "";
  position: absolute;
  top: 0;
  left: 0;
  transform: translateX(calc(50% - 1px)); /* centers under first card */
  width: 2px;
  height: 40px;
  background: #000;
}

/* ✅ Horizontal line that starts below that vertical */
.infra-horizontal-line {
  width: 70%;
  height: 2px;
  background: #000;
  margin: 0 auto;
}

/* ✅ Sub-directorates row under the horizontal line */
.infra-sub-row {
  display: flex;
  justify-content: center;
  flex-wrap: wrap;
  gap: 25px;
  margin-top: 25px;
}


/* Keep the box style consistent */
.org-node.small {
  border: 2px solid #000;
  border-radius: 10px;
  padding: 15px;
  background: #fff;
  box-shadow: 0 2px 4px rgba(0,0,0,0.1);
  min-width: 200px;
  text-align: center;
  font-size: 0.9rem;
  font-weight: 500;
}


      .main__title {
    font-size: 2.125rem;
    font-weight: 800;
    color: #000 !important;
    text-align: center;
    margin-bottom: 3rem;
    position: relative;
}
.main__title::after {
    content: '';
    position: absolute;
    bottom: -12px;
    left: 50%;
    transform: translateX(-50%);
    width: 80px;
    height: 4px;
    background: #ffd700;
    border-radius: 2px;
}


  @media (max-width: 992px) {
    .org-row.level-3 {
      flex-wrap: wrap; /* allow wrap on small screens */
    }
  }

    .contact-header {
      background: linear-gradient(90deg, #007749, #ffd700);
      color: white;
      padding: 50px 20px;
      text-align: center;
    }

    .contact-header h1 {
      font-size: 2.5rem;
      margin-bottom: 10px;
    }

    .contact-header p {
      font-size: 1.1rem;
      opacity: 0.85;
    }

    .contact-section {
      padding: 60px 20px;
    }

    .contact-grid {
      display: grid;
      grid-template-columns: repeat(auto-fit, minmax(250px, 1fr));
      gap: 30px;
    }

    .contact-card {
      background: white;
      border-radius: 15px;
      box-shadow: 0 4px 15px rgba(0,0,0,0.1);
      padding: 30px 20px;
      transition: transform 0.3s, box-shadow 0.3s;
      position: relative;
      overflow: hidden;
    }

    .contact-card::before {
      content: '';
      position: absolute;
      top: 0;
      left: 0;
      height: 5px;
      width: 100%;
      background: linear-gradient(90deg, #007749, #ffd700);
    }

    .contact-card:hover {
      transform: translateY(-7px);
      box-shadow: 0 10px 25px rgba(0,0,0,0.15);
    }

    .contact-card h3 {
      font-size: 1.25rem;
      margin-bottom: 15px;
      color: #000;
      display: flex;
      align-items: center;
      gap: 10px;
    }

    .contact-card p {
      margin-bottom: 8px;
      font-size: 1rem;
      color: #333;
    }

    .coords-container {
      background: white;
      border-radius: 15px;
      padding: 25px;
      box-shadow: 0 4px 15px rgba(0,0,0,0.1);
      text-align: center;
      margin-top: 30px;
    }

    .coords-container h3 {
      color: #000;
      margin-bottom: 15px;
    }

    .coords {
      font-weight: bold;
      color: #198754;
      font-size: 1.1rem;
    }

    iframe {
      border-radius: 12px;
      width: 100%;
      height: 400px;
      border: 0;
    }

    @media (max-width: 576px) {
      .contact-header h1 {
        font-size: 2rem;
      }
      .contact-header p {
        font-size: 1rem;
      }
    }
