    /* ---------- Global Reset & Variables (unchanged) ---------- */
    * {
      margin: 0;
      padding: 0;
      box-sizing: border-box;
    }
    :root {
      --primary-color: #1e2a78;
      --secondary-color: #4f7bed;
      --accent-color: #f15a29;
      --bg-light: #f9f9fb;
      --bg-section: #ffffff;
      --font-family: 'Montserrat', sans-serif;
    }
    body {
      font-family: var(--font-family);
      color: #333;
      background-color: var(--bg-light);
      scroll-behavior: smooth;
    }
    a {
      text-decoration: none;
      color: inherit;
    }
    img {
      max-width: 100%;
      display: block;
    }

    /* ---------- Fixed Navbar ---------- */
    nav {
      position: fixed;
      top: 0;
      left: 0;
      width: 100%;
      background: rgba(30, 42, 120, 0.95);
      z-index: 999;
      padding: 1rem 2rem;
      display: flex;
      align-items: center;
      justify-content: space-between;
      box-shadow: 0 2px 8px rgba(0, 0, 0, 0.15);
      height:61px;
    }
    nav .logo {
      font-size: 1.5rem;
      font-weight: 700;
      color: #fff;
    }
    /* Hamburger toggle (default hidden) */
    .menu-toggle {
      display: none;
      font-size: 1.5rem;
      color: #fff;
      cursor: pointer;
    }
    /* Renamed nav ul to .nav-links */
    .nav-links {
      list-style: none;
      display: flex;
      gap: 2rem;
    }
    .nav-links li a {
      color: #fff;
      font-weight: 500;
      transition: color 0.2s ease;
    }
    .nav-links li a:hover {
      color: var(--accent-color);
    }

    /* ---------- Hero Section ---------- */

      /* ============================= */
  /* 1) HERO SECTION (UPDATED)     */
  /* ============================= */

  #hero {
    min-height: 100vh;                     /* ← was height: 100vh; */
    width: 100%;
    background: linear-gradient(135deg, #1e2a78 0%, #4f7bed 100%);
    display: flex;
    flex-wrap: wrap;                       /* ← added so items can wrap */
    align-items: center;
    justify-content: center;
    text-align: center;
    color: #fff;
    padding: 1rem 2rem;                    /* ← new: breathing room top/bottom */
  }
  #hero .hero-content {
    max-width: 800px;
    width: 100%;                           /* ← added so it never overflows */
    margin-top: 7rem;                      /* compensate for navbar */
  }
  #hero h1 {
    font-size: 2.75rem;                    /* ← slightly smaller */
    font-weight: 700;
    line-height: 1.2;
    margin-bottom: 1rem;
  }
  #hero p {
    font-size: 1.15rem;                    /* ← slightly smaller */
    margin-bottom: 2rem;
    line-height: 1.5;
  }
  #hero .cta-btn {
    display: inline-block;
    padding: 0.75rem 1.75rem;
    background-color: var(--accent-color);
    color: #fff;
    font-size: 1rem;
    font-weight: 600;
    border-radius: 4px;
    transition: background-color 0.2s ease, transform 0.2s ease;
  }
  #hero .cta-btn:hover {
    background-color: #d4491e;
    transform: translateY(-2px);
  }
  #hero .hero-animation {
    margin-top: 2rem;
    max-width: 400px;
    width: 100%;                           /* ← added so it scales down */
    margin-left: auto;
    margin-right: auto;
  }

  /* Hero Logos (below Lottie) */
  .hero-logos {
    display: flex;
    justify-content: center;
    align-items: center;
    gap: 1.5rem;
    margin-top: 2rem;
    width: 100%;                           /* ← added */
    max-width: 400px;                      /* ← cap on large screens */
    flex-wrap: wrap;                       /* ← allow wrapping/logos to stack */
    padding-bottom: 1rem;                  /* extra breathing room */
    margin:auto;
    margin-top: 4rem;
  }
  .hero-logo-img {
    max-height: 80px;                      /* ← reduced from 120px */
    width: auto;
    flex: 1 1 45%;                         /* ← each logo takes ~45% on small viewports */
    object-fit: contain;
  }

  /* ------------------------------------- */
  /* 2) MEDIA QUERY ADJUSTMENTS FOR MOBILE */
  /* ------------------------------------- */

  /* Tablet breakpoint */
  @media (max-width: 768px) {
    #hero {
      flex-direction: column;               /* ← stack text + animation vertically */
      padding: 1rem;                        /* reduce side padding */
    }
    #hero .hero-content {
      margin-top: 3rem;                     /* less top margin */
    }
    #hero h1 {
      font-size: 2.25rem;                   /* shrink heading further */
    }
    #hero p {
      font-size: 1rem;                      /* shrink paragraph further */
    }
    #hero .cta-btn {
      padding: 0.5rem 1.25rem;              /* shrink button */
      font-size: 0.9rem;                    /* shrink button text */
    }
    #hero .hero-animation {
      max-width: 300px;                     /* shrink lottie on tablet */
      margin-top: 1.5rem;                   /* tighten the gap */
    }
    .hero-logos {
      max-width: 300px;                     /* shrink logos container */
      gap: 1rem;                            /* narrower gap */
    }
    .hero-logo-img {
      max-height: 60px;                     /* shrink logos further */
      flex: 1 1 40%;                        /* each logo takes ~40% */
    }
  }

  /* Phone breakpoint */
  @media (max-width: 480px) {
    #hero {
      padding: 0.5rem;                      /* minimal padding */
      margin-top:-0.2rem;
    }
    #hero h1 {
      font-size: 1.75rem;                   /* smallest heading */
      margin-bottom: 0.75rem;
    }
    #hero p {
      font-size: 0.9rem;                    /* smallest paragraph */
      margin-bottom: 1.5rem;
    }
    #hero .cta-btn {
      padding: 0.4rem 1rem;                 /* shrink button even more */
      font-size: 0.8rem;
    }
    #hero .hero-animation {
      max-width: 250px;                     /* shrink lottie to fit phone */
      margin-top: 1rem;
    }
    .hero-logos {
      max-width: 250px;                     /* shrink logos container */
    }
    .hero-logo-img {
      max-height: 50px;                     /* shrink logos */
      flex: 1 1 45%;
    }
  }


    /* ---------- Section Headings ---------- */
    section {
      padding: 6rem 2rem;
      background-color: var(--bg-section);
    }
    section:nth-of-type(even) {
      background-color: var(--bg-light);
    }
    section .section-header {
      text-align: center;
      margin-bottom: 3rem;
    }
    section .section-header h2 {
      font-size: 2.5rem;
      font-weight: 700;
      color: var(--primary-color);
      margin-bottom: 0.5rem;
    }
    section .section-header p {
      font-size: 1rem;
      color: #555;
    }

    /* ---------- About / Overview ---------- */
    #overview .overview-text {
      max-width: 800px;
      margin: 0 auto;
      font-size: 1rem;
      line-height: 1.6;
      color: #444;
      text-align: justify;
    }

    /* ---------- Objectives & Outcomes (Grid) ---------- */
    .grid-3 {
      display: grid;
      grid-template-columns: repeat(auto-fit, minmax(250px, 1fr));
      gap: 2rem;
      max-width: 1480px;
      margin: 0 auto;
    }
    .grid-3 .card {
      background-color: #fff;
      border-radius: 8px;
      padding: 2rem;
      box-shadow: 0 4px 14px rgba(0, 0, 0, 0.05);
      transition: transform 0.2s ease, box-shadow 0.2s ease;
    }
    .grid-3 .card:hover {
      transform: translateY(-5px);
      box-shadow: 0 8px 20px rgba(0, 0, 0, 0.08);
    }
    .grid-3 .card h3 {
      font-size: 1.25rem;
      color: var(--primary-color);
      margin-bottom: 0.75rem;
      font-weight: 600;
    }
    .grid-3 .card p {
      font-size: 0.95rem;
      color: #555;
      line-height: 1.5;
      text-align: justify;
    }

    /* ---------- Modules Table ---------- */
    .table-wrapper {
      width: 100%;
      overflow-x: auto;
      -webkit-overflow-scrolling: touch;
    }
    .modules-table {
      width: 100%;
      min-width: 600px; /* prevents too much squishing */
      max-width: 1000px;
      margin: 0 auto;
      border-collapse: collapse;
      font-size: 0.9rem;
    }
    .modules-table th,
    .modules-table td {
      border: 1px solid #ddd;
      padding: 0.75rem 1rem;
      text-align: left;
    }
    .modules-table th {
      background-color: var(--secondary-color);
      color: #fff;
      font-weight: 600;
    }
    .modules-table tr:nth-child(even) {
      background-color: #f1f1f1;
    }

    /* ---------- Lottie “Concept” Animation ---------- */
    #ai-concept {
      display: flex;
      align-items: center;
      justify-content: center;
      flex-wrap: wrap;
      gap: 2rem;
    }
    #ai-concept .concept-text {
      max-width: 400px;
      font-size: 1rem;
      color: #444;
      line-height: 1.6;
    }
    #ai-concept .concept-animation {
      max-width: 550px;
      width: 400px;
    }

    /* ---------- Footer ---------- */
    footer {
      background-color: var(--primary-color);
      color: #fff;
      padding: 3rem 2rem;
      text-align: center;
    }
    footer p {
      font-size: 0.9rem;
    }

    /* ---------- Fade‐in on Scroll ---------- */
    .fade-in {
      opacity: 0;
      transform: translateY(20px);
      transition: opacity 0.6s ease-out, transform 0.6s ease-out;
    }
    .fade-in.visible {
      opacity: 1;
      transform: translateY(0);
    }

    /* ---------- Responsive Tweaks ---------- */
    @media (max-width: 768px) {
      /* Show hamburger */
      .menu-toggle {
        display: block;
      }

      /* Hide nav links by default on mobile */
      .nav-links {
        position: fixed;
        top: 4rem; 
        right: 0;
        background-color: rgba(30, 42, 120, 0.98);
        flex-direction: column;
        gap: 1.5rem;
        padding: 2rem 1.5rem;
        width: 200px;
        transform: translateX(100%);
        transition: transform 0.3s ease;
        border-radius: 4px 0 0 4px;
      }
      .nav-links.active {
        transform: translateX(0);
      }

      /* Tappable link size */
      .nav-links li a {
        font-size: 1.1rem;
        display: block;
        color: #fff;
      }

      /* Adjust body top padding so content sits below navbar */
      body {
        padding-top: 4rem;
      }


      /* Section padding smaller */
      section {
        padding: 3rem 1rem;
      }

      /* Section headings smaller */
      section .section-header h2 {
        font-size: 2rem;
      }
      section .section-header p {
        font-size: 0.9rem;
      }

      /* Card text smaller */
      .grid-3 .card h3 {
        font-size: 1.1rem;
      }
      .grid-3 .card p {
        font-size: 0.9rem;
      }
    }



    .nav-links li a.active {
      color: var(--accent-color);
      border-bottom: 2px solid var(--accent-color);
      padding-bottom: 2px;
      transition: color 0.2s ease, border-bottom 0.2s ease;
    }

    /* ---------- Footer Logos ---------- */
    .footer-logos {
      display: flex;
      justify-content: center;
      align-items: center;
      gap: 2rem;                /* space between the two logos */
      margin-bottom: 1.5rem;    /* space below logos before the text */
      flex-wrap: wrap;          /* wrap on very narrow screens */
    }

    .footer-logos img {
      max-height: 60px;         /* make sure logos are uniform height */
      height: auto;
      width: auto;
      object-fit: contain;
    }

    /* On very small screens, reduce logo height */
    @media (max-width: 480px) {
      .footer-logos img {
        max-height: 50px;
        gap: 1rem;
      }
    }

    /* ========= Instructors Section ========= */
    #instructors {
      padding: 6rem 2rem;               /* matches other sections */
    }

    #instructors .section-header h2 {
      font-size: 2.5rem;
      font-weight: 700;
      color: var(--primary-color);
      margin-bottom: 0.5rem;
    }

    #instructors .section-header p {
      font-size: 1rem;
      color: #555;
    }

    /* Grid container: exactly 4 columns on desktop */
    .instructors-grid {
      display: grid;
      gap: 2rem;
      max-width: 1200px;
      margin: 2rem auto 0;
      grid-template-columns: repeat(4, 1fr); /* ← four cards per row */
    }

    /* Card */
    .instructor-card {
      background-color: #fff;
      border-radius: 8px;
      padding: 1.5rem 1rem;
      text-align: center;
      box-shadow: 0 4px 14px rgba(0, 0, 0, 0.05);
      transition: transform 0.2s ease, box-shadow 0.2s ease;
    }

    .instructor-card:hover {
      transform: translateY(-5px);
      box-shadow: 0 8px 20px rgba(0, 0, 0, 0.08);
    }

    /* Circular image wrapper */
    .instructor-img {
      width: 120px;
      height: 120px;
      margin: 0 auto 1rem;
      border-radius: 50%;
      overflow: hidden;
      box-shadow: 0 2px 8px rgba(0, 0, 0, 0.1);
    }

    .instructor-img img {
      width: 100%;
      height: 100%;
      object-fit: cover;
    }

    /* Name & Role */
    .instructor-card h3 {
      font-size: 1.25rem;
      color: var(--primary-color);
      margin-bottom: 0.5rem;
      font-weight: 600;
    }

    .instructor-card p {
      font-size: 0.95rem;
      color: #555;
      line-height: 1.4;
    }

    /* Tooltip (CV info) styling, unchanged */
    .instructor-card {
      position: relative;
      cursor: pointer;
    }

    .cv-info {
      display: none;
      position: absolute;
      top: 0;
      left: 50%;
      transform: translateX(-50%) translateY(-100%);
      width: 260px;
      background-color: #fff;
      color: #333;
      padding: 1rem;
      border-radius: 8px;
      box-shadow: 0 4px 16px rgba(0, 0, 0, 0.1);
      z-index: 10;
      text-align: left;
    }

    .cv-info::after {
      content: "";
      position: absolute;
      bottom: -8px;
      left: 50%;
      transform: translateX(-50%);
      border-width: 8px;
      border-style: solid;
      border-color: #fff transparent transparent transparent;
    }

    .instructor-card:hover .cv-info {
      display: block;
    }

    .cv-info h4 {
      margin-top: 0;
      margin-bottom: 0.5rem;
      font-size: 1.1rem;
      color: var(--primary-color);
    }

    .cv-info ul {
      list-style: disc inside;
      padding-left: 1rem;
      margin: 0;
    }

    .cv-info ul li {
      font-size: 0.9rem;
      line-height: 1.4;
      margin-bottom: 0.4rem;
      color: #555;
    }

    /* Responsive: collapse to two columns on tablets, one on phones */
    @media (max-width: 1024px) {
      .instructors-grid {
        grid-template-columns: repeat(2, 1fr); /* two cards per row */
        gap: 1.5rem;
        margin: 1.5rem auto 0;
      }
      .instructor-img {
        width: 100px;
        height: 100px;
      }
      .instructor-card h3 {
        font-size: 1.1rem;
      }
      .instructor-card p {
        font-size: 0.9rem;
      }
      .cv-info {
        width: 220px;
        padding: 0.75rem;
        font-size: 0.9rem;
      }
      .cv-info::after {
        bottom: -6px;
        border-width: 6px;
      }
    }

    @media (max-width: 600px) {
      .instructors-grid {
        grid-template-columns: 1fr; /* one card per row */
        gap: 1rem;
      }
      .instructor-img {
        width: 80px;
        height: 80px;
      }
      .instructor-card h3 {
        font-size: 1rem;
      }
      .instructor-card p {
        font-size: 0.85rem;
      }
    }


   /* ========= Thematic Areas Section (updated icon styles) ========= */
    #thematic-areas {
      padding: 6rem 2rem;                   /* matches other sections */
    }

    /* Section header */
    #thematic-areas .section-header h2 {
      font-size: 2.5rem;
      font-weight: 700;
      color: var(--primary-color);
      margin-bottom: 0.5rem;
    }
    #thematic-areas .section-header p {
      font-size: 1rem;
      color: #555;
    }

    /* Grid container */
    .thematic-grid {
      display: grid;
      gap: 2rem;
      max-width: 1200px;
      margin: 2rem auto 0;
      grid-template-columns: repeat(auto-fit, minmax(300px, 1fr));
    }

    /* Each thematic item */
    .thematic-item {
      background-color: #fff;
      border-radius: 8px;
      padding: 2rem 1.5rem;
      display: flex;
      gap: 1.5rem;
      box-shadow: 0 4px 14px rgba(0, 0, 0, 0.05);
      transition: transform 0.2s ease, box-shadow 0.2s ease;
    }
    .thematic-item:hover {
      transform: translateY(-5px);
      box-shadow: 0 8px 20px rgba(0, 0, 0, 0.08);
    }

    /* Icon container wraps the <img> */
    .thematic-icon {
      flex-shrink: 0;
      width: 64px;
      height: 64px;
      border-radius: 50%;
      background-color: var(--secondary-color); /* optional colored circle behind icon */
      display: flex;
      align-items: center;
      justify-content: center;
      overflow: hidden;
    }

    /* The actual <img> inside the icon */
    .thematic-icon img {
      width: 40px;      /* adjust as needed so it fits comfortably inside the circle */
      height: 40px;
      object-fit: contain;
      filter: brightness(0) invert(1); 
      /* 
        If your PNG is a colored icon on transparent background,
        and you want it to appear white over the colored circle:
        - filter: brightness(0) invert(1); 
        otherwise, remove the filter rule.
      */
    }

    /* Text content of each item */
    .thematic-content h3 {
      margin-top: 0;
      margin-bottom: 0.5rem;
      font-size: 1.25rem;
      color: var(--primary-color);
      font-weight: 600;
    }
    .thematic-content p {
      font-size: 0.95rem;
      color: #444;
      line-height: 1.6;
    }

    /* Responsive tweaks */
    @media (max-width: 768px) {
      #thematic-areas {
        padding: 3rem 1rem;
      }
      .thematic-grid {
        grid-template-columns: 1fr; /* one column on tablets and phones */
        gap: 1.5rem;
      }
      .thematic-item {
        flex-direction: column;
        align-items: flex-start;
        padding: 1.5rem 1rem;
      }
      .thematic-icon {
        width: 56px;
        height: 56px;
        margin-bottom: 1rem;
      }
      .thematic-icon img {
        width: 32px;
        height: 32px;
      }
      .thematic-content h3 {
        font-size: 1.15rem;
      }
      .thematic-content p {
        font-size: 0.9rem;
      }
    }
    /* Make each instructor-card the containing block for its tooltip */
    .instructor-card {
      position: relative; /* new */
      cursor: pointer;    /* indicate interactivity */
    }

    /* CV info tooltip, hidden until hover */
    .cv-info {
      display: none;                /* hide by default */
      position: absolute;
      top: 0;                       /* align top of card */
      left: 50%;                    /* center horizontally */
      transform: translateX(-50%) translateY(-100%); 
      /* shift up so tooltip sits above the card */
      width: 260px;                 /* fixed width */
      background-color: #fff;
      color: #333;
      padding: 1rem;
      border-radius: 8px;
      box-shadow: 0 4px 16px rgba(0, 0, 0, 0.1);
      z-index: 10;
      text-align: left;
    }

    /* Small arrow pointing down from the tooltip */
    .cv-info::after {
      content: "";
      position: absolute;
      bottom: -8px;            /* 8px below tooltip container */
      left: 50%;
      transform: translateX(-50%);
      border-width: 8px;
      border-style: solid;
      border-color: #fff transparent transparent transparent;
    }

    /* Show the tooltip on hover */
    .instructor-card:hover .cv-info {
      display: block;
    }

    /* CV heading inside tooltip */
    .cv-info h4 {
      margin-top: 0;
      margin-bottom: 0.5rem;
      font-size: 1.1rem;
      color: var(--primary-color);
    }

    /* CV bullet list */
    .cv-info ul {
      list-style: disc inside;
      padding-left: 1rem;
      margin: 0;
    }

    .cv-info ul li {
      font-size: 0.9rem;
      line-height: 1.4;
      margin-bottom: 0.4rem;
      color: #555;
    }

    /* Responsive: shrink tooltip on small screens */
    @media (max-width: 768px) {
      .cv-info {
        width: 220px;
        padding: 0.75rem;
        font-size: 0.9rem;
      }
      .cv-info::after {
        bottom: -6px;
        border-width: 6px;
      }
    }



/* ======= Overview Table Container ======= */
.overview-section {
  padding: 2rem;
  background-color: var(--bg-section);
}

.overview-tables {
  display: flex;
  flex-direction: row;       /* ← ensure tables go side-by-side */
  gap: 1.5rem;               /* space between them */
  max-width: 800px;
  margin: 0 auto;
  flex-wrap: nowrap;         /* prevent wrapping unless the viewport is very narrow */
  padding-bottom: 2rem;
}

/* 2) Give each table a fixed (or %-based) width so they don’t shrink or grow too much */
.overview-table {
  width: 48%;                /* each table takes about half of the 800px container */
  min-width: 300px;          /* prevents it from collapsing on medium screens */
  border-collapse: collapse; /* keep existing styling */
}

.overview-table th,
.overview-table td {
  padding: 1rem 1.25rem;
  vertical-align: middle;
}

.overview-table th {
  text-align: left;
  font-size: 1rem;
  font-weight: 600;
  color: var(--primary-color);
  border-bottom: 2px solid #ddd;
}

.overview-table td {
  border-bottom: 1px solid #eee;
}

/* 3) (Optional) At very small widths, stack them again */
@media (max-width: 768px) {
  .overview-tables {
    flex-direction: column;
    gap: 1rem;
  }
  .overview-table {
    width: 100%;
    min-width: auto;
  }
}

.key-cell {
  display: flex;
  align-items: center;
  gap: 0.75rem;
  width: 35%;
  font-size: 0.95rem;
  color: #555;
}

.key-cell i {
  font-size: 1.25rem;
  color: var(--secondary-color);
  width: 1.25rem;
  text-align: center;
}

.value-cell {
  font-size: 1.1rem;
  font-weight: 700;
  color: #333;
}

/* ======= Progress Circle for Attendance ======= */
.progress-circle {
  position: relative;
  width: 48px;
  height: 48px;
}

.progress-circle svg {
  transform: rotate(-90deg);
  width: 100%;
  height: 100%;
}

.progress-circle circle {
  fill: none;
  stroke-width: 6;
  cx: 24;
  cy: 24;
  r: 20;
}

.progress-bg {
  stroke: #eee;
}

.progress-fg {
  stroke: var(--accent-color);
  stroke-dasharray: 126; /* circumference (2π·20) ≈ 125.6 */
  stroke-dashoffset: 126;
  animation: fill-70 1.5s ease-out forwards;
}

@keyframes fill-70 {
  to {
    stroke-dashoffset: calc(126 * (1 - 0.70));
  }
}

/* ======= Responsive ======= */
@media (max-width: 600px) {
  .overview-tables {
    gap: 1.5rem;
  }

  .overview-table th,
  .overview-table td {
    padding: 0.75rem 1rem;
  }

  .key-cell {
    font-size: 0.9rem;
  }

  .value-cell {
    font-size: 1rem;
  }

  .progress-circle {
    width: 40px;
    height: 40px;
  }

  .progress-circle circle {
    stroke-width: 5;
    cx: 20;
    cy: 20;
    r: 16;
    stroke-dasharray: 100; /* 2π·16 ≈ 100.5 */
  }

  @keyframes fill-70 {
    to {
      stroke-dashoffset: calc(100 * (1 - 0.70));
    }
  }
}
/* ====== Updated Overview Section Layout ====== */

/* 1. Flex‐container holding paragraph + Lottie animation */
.overview-content {
  display: flex;
  align-items: flex-start;
  gap: 2rem;
  max-width: 1000px;
  margin: 0 auto; /* center the content */
  padding: 1rem 0; /* optional vertical breathing room */
}

/* The paragraph area */
.overview-text {
  flex: 1;
  font-size: 1rem;
  line-height: 1.6;
  color: #444;
  text-align: justify;
}

/* The Lottie animation area */
.overview-animation {
  flex: 1;
  max-width: 400px; /* cap its width on large screens */
  width: 100%;
}

/* Ensure Lottie scales responsively */
.overview-animation lottie-player {
  width: 100%;
  height: auto;
  display: block;
}

/* On tablets and below, stack paragraph + Lottie vertically */
@media (max-width: 768px) {
  .overview-content {
    flex-direction: column;
  }
  .overview-animation {
    margin-top: 1.5rem;
  }
}

/* ====== Two Tables Side by Side ====== */
.overview-tables {
  display: flex;
  gap: 2rem;
  max-width: 1480px;
  margin: 0 auto;        /* center tables */
  flex-wrap: wrap;       /* allow wrapping on mobile */
  padding-bottom: 2rem;  /* optional spacing below */
}

/* Each table takes roughly 45% on wide screens */
.overview-tables table {
  flex: 1 1 45%;
  min-width: 280px; /* prevents the tables from squishing too much */
  border-collapse: collapse;
}

/* On very narrow screens, make tables full‐width */
@media (max-width: 600px) {
  .overview-tables {
    flex-direction: column;
    gap: 1.5rem;
  }
  .overview-tables table {
    flex: 1 1 100%;
    min-width: auto;
  }
}


/* Target only the Learning Objectives section */
#objectives .grid-3 {
  display: flex;
  flex-wrap: wrap;         /* allow wrapping on very small screens */
  gap: 1rem;               /* space between cards */
  justify-content: space-between;
}

/* Make each card take up about one-fifth of the row */
#objectives .grid-3 .card {
  flex: 1 1 calc(20% - 1rem);  /* five cards per row (minus gaps) */
  box-sizing: border-box;
}


strong {
  color: var(--primary-color);
  padding: 0 2px;
  border-radius: 2px;
}

/* ─── 1. Row‐hover highlighting for all tables ─── */
table tr:hover {
  background-color: #a2bcff !important; /* light gray; adjust as needed */
}

/* ─── 2. Force Montserrat (inherit) on the overview tables ─── */
.overview-table,
.overview-table th,
.overview-table td {
  font-family: var(--font-family); /* Montserrat, as defined in :root */
}

/* ─── Cookie Banner ─── */
#cookie-banner {
  position: fixed;
  bottom: 0;
  left: 0;
  width: 100%;
  background: var(--secondary-color);
  color: #fff;
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  justify-content: space-between;
  padding: 1rem 2rem;
  box-shadow: 0 -2px 8px rgba(0,0,0,0.2);
  z-index: 1000;
}
#cookie-banner p {
  margin: 0;
  font-size: 0.9rem;
}
#cookie-banner a {
  color: var(--accent-color);
  text-decoration: underline;
  margin-left: 0.25rem;
}
#cookie-banner .btn-group {
  margin-top: 0.5rem;
}
#cookie-banner button {
  background: #fff;
  color: var(--primary-color);
  border: none;
  padding: 0.5rem 1rem;
  margin-left: 0.5rem;
  border-radius: 4px;
  cursor: pointer;
  font-weight: 600;
  transition: background 0.2s;
}
#cookie-banner button:hover {
  background: #f0f0f0;
}

/* ─── Modal Overlay ─── */
#cookie-modal {
  position: fixed;
  top: 0;
  left: 0;
  width: 100%;
  height: 100%;
  display: none;               /* hidden by default */
  align-items: center;
  justify-content: center;
  background: rgba(0,0,0,0.6); /* semi-transparent backdrop */
  z-index: 1001;
}
#cookie-modal .modal-content {
  background: #fff;
  padding: 2rem;
  width: 90%;
  max-width: 500px;
  border-radius: 8px;
  text-align: left;
  box-shadow: 0 4px 20px rgba(0,0,0,0.2);
}
#cookie-modal h2 {
  margin-top: 0;
  color: var(--primary-color);
}
#cookie-modal .modal-actions {
  text-align: right;
  margin-top: 1.5rem;
}
#cookie-modal .modal-actions button {
  background: var(--accent-color);
  color: #fff;
  border: none;
  padding: 0.5rem 1rem;
  border-radius: 4px;
  cursor: pointer;
}
#cookie-modal .modal-actions button:hover {
  background: #d4491e;
}
#cookie-banner {
  display: none;
}

/* in your style.css */
.instructors-grid {
  display: flex;
  flex-wrap: wrap;
  gap: 2rem;                 /* space between cards */
  justify-content: center;   /* center each row’s items */
}

.instructor-card {
  /* fix the “ideal” width of each card; flex:0 1 allows wrapping */
  flex: 0 1 240px;
  /* optional: center inner content */
  text-align: center;
}
/* =============================================================================
   RESPONSIVE ENHANCEMENTS (append to bottom of style.css)
   ===========================================================================*/

/* 1) OVERVIEW SECTION: ensure text + animation stack neatly under 600px */
@media (max-width: 600px) {
  .overview-content {
    flex-direction: column;
  }
  .overview-animation {
    margin-top: 1rem;
  }
  .overview-tables {
    flex-direction: column;
    gap: 1rem;
  }
  .overview-tables table {
    flex: 1 1 100%;
    min-width: auto;
  }
}

/* 2) MODULES TABLE: allow tables to shrink so they never overflow */
@media (max-width: 768px) {
  .modules-table {
    min-width: 0;  /* lets the table reflow inside its container */
    font-size: 0.85rem;
  }
}

/* 3) INSTRUCTORS GRID: switch from 4-column grid to 1 on phones, 2 on tablets */
@media (max-width: 1024px) {
  #instructors .instructors-grid {
    display: grid;
    grid-template-columns: repeat(2, 1fr);
    gap: 1.5rem;
  }
}
@media (max-width: 600px) {
  #instructors .instructors-grid {
    grid-template-columns: 1fr;
  }
}

/* 4) MAKE SURE ANY FLEX WRAPS HAVE A MINIMUM BASIS */
.instructors-grid {
  display: flex;
  flex-wrap: wrap;
  gap: 2rem;
  justify-content: center;
}
.instructor-card {
  flex: 1 1 240px;    /* card will shrink no smaller than 240px */
  max-width: 300px;   /* but never grow wider than 300px */
  text-align: center;
}

/* 5) NAVIGATION: ensure menu sits below the 61px navbar on mobile */
@media (max-width: 768px) {
  .nav-links {
    top: 61px; /* match nav height */
  }
}

/* 6) TIGHTEN UP ANY EMERGENCY OVERFLOWS */
@media (max-width: 480px) {
  section {
    padding: 2rem 1rem;
  }
  #hero {
    padding: 0.5rem;
  }
}


/* =============================================================================
   FIXED: Assessment & Certification table responsiveness
   ===========================================================================*/

/* 1) Override inline width and make container fluid */
#assessment .overview-tables {
  width: 100% !important;      /* override the style="width:65em" */
  max-width: 50em;
  display: flex;
  justify-content: center;     /* center the table */
}

/* 2) On all screens, allow the table to shrink/grow */
#assessment .overview-tables table {
  width: 100%;
  min-width: 0;                /* prevent forced overflow */
}

/* 3) Stack / add horizontal scroll if really narrow */
@media (max-width: 600px) {
  #assessment .overview-tables {
    flex-direction: column;    /* though it’s one table, this helps if you ever add more */
    padding: 0 1rem;
  }
  #assessment .overview-tables table {
    overflow-x: auto;          /* horizontal scroll if content still too wide */
    display: block;            /* ensure scroll container */
  }
  #assessment .overview-tables th,
  #assessment .overview-tables td {
    white-space: normal;       /* allow text to wrap in cells */
  }
}

