:root {
  scroll-behavior: smooth;
  --primary-color-bg: #ecf1f8;
  --primary-color-1: rgb(164, 187, 223);
  --primary-color-2: rgb(113, 145, 195);
  --primary-color-3: rgb(75, 110, 166);
  --primary-color-4: rgb(50, 88, 148);
  --primary-color-5: rgb(28, 65, 124);
  --primary-color-6: rgb(13, 36, 74);
  --complement-color-bg: #fff6e5;
  --complement-color-1: rgb(255, 228, 180);
  --complement-color-2: rgb(255, 212, 137);
  --complement-color-3: rgb(251, 196, 99);
  --complement-color-4: rgb(224, 165, 61);
  --complement-color-5: rgb(187, 129, 28);
}

body {
  margin: 0;
  background-color: var(--complement-color-bg);
  font-family: "Montserrat", sans-serif;
  display: flex;
  flex-direction: column;
  align-items: center;
}

nav {
  position: sticky;
  top: 0;
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  background-color: var(--primary-color-1);
  align-self: stretch;
  flex-direction: column;
  z-index: 100;
}

@media screen and (min-width: 600px) {
  nav {
    flex-direction: row;
    padding-right: 1rem;
  }
}

nav a {
  position: relative; /* Required for ::after to work properly */
  padding: 0.5rem 1rem;
  font-weight: bold;
  text-decoration: none;
  color: var(--primary-color-5); /* Set color for consistency */
}

nav a:hover {
  background-color: var(--primary-color-1);
  filter: brightness(0.95);
}

nav a::after {
  content: "";
  position: absolute;
  bottom: 0;
  left: 025%;
  height: 2px;
  width: 0;
  background-color: var(--complement-color-3);
  transition: width 0.3s ease-in;
}

nav a:hover::after,
nav a.active::after {
  /* Use .active class for the current page */
  left: 25%;
  width: 50%;
}

.spacer {
  flex-grow: 1;
}

a {
  text-decoration: none;
  color: var(--primary-color-5);
}

section {
  width: 100%;
  padding: 5rem 0px;
  scroll-margin-top: 5rem;
}

section .content {
  max-width: 100ch;
  margin: 0 auto;
  padding: 0 1rem;
}

.hero-section {
  display: flex;
  flex-direction: column;
  min-height: 65vh;
  background-color: var(--primary-color-1);
  align-items: center;
  justify-content: space-around;
  gap: 2rem;
}

@media screen and (min-width: 900px) {
  .hero-section {
    flex-direction: row;
  }
}

.hero-section .hero-text {
  max-width: 90%;
}

.hero-section h1 {
  text-align: left;
  font-size: 2rem;
  color: var(--primary-color-6);
}

@media screen and (min-width: 600px) {
  .hero-section h1 {
    font-size: 4rem;
  }
}

.hero-section p {
  font-size: 1.1rem;
  color: var(--primary-color-5);
  font-family: "Mukta Malar", sans-serif;
  line-height: 1.5;
  display: block;
}

.hero-section img {
  grid-area: 1 / 2 / 3 / 3;
  place-self: center;
  max-width: min(20rem, 90%);
}

.about p {
  padding-top: 1rem;
  font-size: 1.2rem;
  font-family: "Mukta Malar", sans-serif;
  color: var(--primary-color-5);
  text-align: center;
  line-height: 1.5;
  display: block;
}

h1,
h2 {
  text-align: center;
  margin: 0px;
  color: var(--primary-color-5);
  font-family: "Lexend", sans-serif;
}

h2 {
  font-weight: 800;
  font-size: 1.75rem;
  letter-spacing: 2px;
  margin-bottom: 1rem;
}

.about {
  display: flex;
  flex-direction: column;
  align-items: center;
  gap: 1rem;
  background-color: var(--primary-color-bg);
}

.videos {
  display: flex;
  flex-wrap: wrap;
  justify-content: center;
  align-items: center;
  gap: 1rem;
}

.team {
  background-color: var(--primary-color-1);
}

.deliverables {
  background-color: var(--primary-color-bg);
}

iframe {
  max-width: calc(100vw - 2rem);
}

.heroPhotoDiv {
  width: 20%;
  height: auto;
}

.team h3 {
  font-size: 1.2rem;
  font-weight: 600;
  margin-top: 10%;
  margin-bottom: 5%;
  color: var(--primary-color-5);
}

.team p {
  margin: 0%;
  text-align: center;
  color: var(--primary-color-3);
}

.teamContainer {
  display: flex;
  align-items: center;
  justify-content: center;
  flex-wrap: wrap;
  gap: 30px;
}

.teamMember {
  display: flex;
  flex-direction: column;
  align-items: center;
  justify-content: center;
}

.teamPhoto {
  width: 150px;
  height: 150px;
  border-width: 3px;
  border-color: var(--primary-color-4);
  border-style: solid;
  border-radius: 50%;
  margin-top: 10%;
  overflow: hidden;
}

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

.headerLogo {
  margin-left: 2rem;
  height: 5.5rem;
}

.assignment-grid {
  display: grid;
  grid-template-columns: repeat(auto-fill, minmax(12rem, 1fr));
  max-width: 80%;
  gap: 2rem;
  padding: 2rem;
  margin: 0 auto;
}

h3 {
  font-size: 1.2rem;
  font-weight: 600;
  color: var(--primary-color-5);
}

.assignment-grid > div {
  background-color: var(--primary-color-1);
  padding: 1rem;
  border-radius: 10px;
  display: flex;
  flex-direction: column;
}

.links {
  display: flex;
  flex-direction: column;
  gap: 0.25rem;
}

body {
  margin: 0;
  padding: 0;
  box-sizing: border-box;
  overflow-x: hidden; /* Prevent horizontal overflow */
}

.timeline-container {
  position: relative; /* For the pseudo-element positioning */
  width: 100%; /* Ensure it spans full width */
}

.timeline-container::before {
  content: ""; /* Creates the line */
  position: absolute; /* Position it relative to the container */
  top: 0; /* Start at the top */
  left: 2rem; /* Position slightly away from the left edge */
  width: 2px; /* Line thickness */
  height: 100%; /* Extend the line through the container */
  background-color: var(--primary-color-5); /* Line color */
  z-index: -1; /* Place behind content */
}

.timeline-container > section {
  position: relative; /* Ensures padding doesn't interfere */
  padding-left: 3rem; /* Space the section content from the line */
}

.timeline-container,
section,
footer {
  width: 100vw; /* Full viewport width */
}

footer {
  align-self: stretch;
  background-color: var(--primary-color-5);
  color: var(--primary-color-bg);
  text-align: center;
  overflow: hidden; /* Ensures no internal overflow */
  padding: 2rem 0px;
}

.footer-copyright {
  font-size: 0.75rem;
}
