/* ==============================
   BASIC PAGE STYLING (Not part of Slider)
   ============================== */
* {
  box-sizing: border-box;
}

body {
  font-family: Arial, sans-serif;
  margin: 0;
  padding: 2rem;
  text-align: center;
  background-color: #f5f5f5;
}

h1 {
  font-size: 2rem;
  margin-bottom: 2rem;
}



/* ==============================
   SLIDER SECTION
   ============================== */
.slider {
  position: relative; /* allows you to position arrows on top */
  max-width: 600px; /* sets width of slider */
  margin: 0 auto; /* centers it on the page */
}


/* ==============================
   VIEWPORT + TRACK
   ============================== */

/*
  .viewport = the visible “window”
  - overflow: hidden hides off-screen slides
*/
.viewport {
  overflow: hidden;
  border-radius: 0.5rem;
  border: 4px solid white; /* border around image slider */
  background: white;
}

/*
  .track = a horizontal row of slides
  - We move it with transform in JS
  - transition makes the movement animate
*/
.track {
  display: flex;

  /* Smooth slide animation */
  transition: transform 0.35s ease;
}


/*
  Each slide takes up 100% of the viewport width
*/
.slide {
  flex: 0 0 100%;
}

/*
  Image sizing strategy:
  - We force a consistent “window height”
  - object-fit controls how images behave inside the window

  cover = fills the frame (crops)
  contain = shows whole image (may letterbox)
*/
.slide img {
  width: 100%;
  height: 350px; /* TRY THIS: change to 300px or 450px */
  object-fit: cover; /* TRY THIS: change to contain */
  display: block;
}


/* ==============================
   ARROW BUTTONS
   ============================== */
.nav {
  position: absolute;
  top: 50%;
  transform: translateY(-50%);

  width: 35px; /* arrow circle size */
  height: 35px; /* arrow circle size */

  display: flex;
  align-items: center;
  justify-content: center;

  border: none;
  border-radius: 50%;
  cursor: pointer;

  background-color: rgba(0, 0, 0, 0.3); /* color inside arrow circles */
  color: white; /* color of arrows */
  font-size: 1rem; /* size of arrows */

  opacity: 0.85;
  transition: opacity 0.75s ease, background-color 1s ease;
}

.nav:hover {
  opacity: 1;
  background-color: rgba(0, 0, 0, 0.8);
}

.nav:focus {
  outline: 2px solid black;
  outline-offset: 3px;
}

.prev {
  left: 10px;
}

.next {
  right: 10px;
}


/* ==============================
   DOT NAVIGATION
   ============================== */
.dots {
  margin-top: 1rem; /* space between image and dots */
  display: flex;
  justify-content: center;
  gap: 0.5rem; /* space between dots */
}

/* Each dot is a button styled as a circle */
.dot {
  width: 12px; /* size of dots */
  height: 12px; /* size of dots */
  border-radius: 50%; /* makes dots instead of squares */

  border: none;
  cursor: pointer;

  background-color: #bbbbbb; /* color of non-selected dots */
  opacity: 0.6;

  transition: background-color 0.2s ease, opacity 0.2s ease;
}

.dot:hover {
  background-color: #666666; /* color when hovering over a dot */
  opacity: 1;
}

/* Active dot = current slide indicator */
.dot.active {
  background-color: gray; /* color of selected dot */
  opacity: 1;
  outline: 1px solid gray; /* circle around selected dot */
  outline-offset: 2px;
}







/* ==============================
   LESSON NOTES STYLING (Not part of slider)
   ============================== */

.lesson-notes {
  max-width: 800px;
  margin: 8rem auto 0;
  text-align: left;
  background: white;
  padding: 1.25rem 1.5rem;
  border-radius: 1rem;
  border: 2px solid #ddd;
  line-height: 1.3;
  font-size: 1.25rem;
}

.lesson-notes code {
  font-family: ui-monospace, Consolas, "Liberation Mono", "Courier New", monospace;
  font-size: 1em;
  font-weight: bold;
}

.lesson-notes pre {
  overflow-x: auto;
  background: #f5f5f5;
  padding: 1.5rem;
  margin: 0.5rem 0 2.5rem 0;
  border-radius: 0.5rem;
  border: 1px solid #e5e5e5;
  font-size: 85%;
}

.lesson-notes h2 {
  font-size: 1.8rem;
  margin-top: 1.5rem;
  border-bottom: 1px solid silver;
  padding-bottom: 0.25rem;
  margin-bottom: 1rem;
}

.lesson-notes h2:first-of-type {
  margin-top: 0;
}

.lesson-notes h3 {
  font-size: 1.4rem;
  margin-top: 2rem;
}

.lesson-notes li {
  margin: 0.75rem 0 0.75rem 2.5rem;
}

.lesson-notes li li {
  margin: 0 0 0 2rem;
}
