/* ==========================================================================
   LAYOUT — estruturas de página reutilizáveis: contêiner, seção, pilhas e grades.
   ========================================================================== */

.container {
  width: 100%;
  max-width: var(--container);
  margin-inline: auto;
  padding-inline: var(--space-md);
}

.container--narrow {
  max-width: var(--container-narrow);
}

.section {
  padding-block: var(--space-xl);
  background: var(--color-surface);
}

.section--tinted {
  background: var(--color-surface-tint);
}

.section--dark {
  background: var(--color-dark);
  color: var(--color-on-dark);
}

/* Pilha vertical com espaçamento uniforme */
.stack {
  display: flex;
  flex-direction: column;
}

.stack--md { gap: 32px; }
.stack--lg { gap: var(--space-lg); }

/* Cabeçalho de seção */
.section-head {
  display: flex;
  flex-direction: column;
  gap: 12px;
  max-width: 720px;
}

.section-head--split {
  flex-direction: row;
  flex-wrap: wrap;
  align-items: flex-end;
  justify-content: space-between;
  gap: var(--space-md) 48px;
  max-width: none;
}

/* Grades */
.card-grid {
  display: grid;
  grid-template-columns: repeat(auto-fill, minmax(220px, 1fr));
  gap: var(--space-sm);
}

.card-grid > li {
  display: flex;
}

.photo-grid {
  display: grid;
  grid-template-columns: repeat(auto-fill, minmax(300px, 1fr));
  gap: var(--space-sm);
}

/* Flex para centralizar a última linha quando ela não fecha */
.teacher-grid {
  display: flex;
  flex-wrap: wrap;
  justify-content: center;
  gap: 24px;
}

.teacher-grid > li {
  flex: 0 1 calc((100% - 48px) / 3);
  perspective: 1200px;
}

@media (max-width: 900px) {
  .teacher-grid > li {
    flex-basis: calc((100% - 24px) / 2);
  }
}

.proof-strip {
  display: grid;
  grid-template-columns: repeat(auto-fit, minmax(220px, 1fr));
  gap: var(--space-sm);
}

.steps {
  display: grid;
  grid-template-columns: repeat(auto-fit, minmax(240px, 1fr));
  gap: 32px var(--space-lg);
}

@media (max-width: 640px) {
  :root {
    --space-xl: 64px;
  }

  .container {
    padding-inline: 20px;
  }

  .photo-grid {
    grid-template-columns: 1fr;
  }

  /* Professores viram um carrossel deslizável que encosta nas bordas */
  .teacher-grid {
    display: grid;
    justify-content: start;
    grid-auto-flow: column;
    grid-auto-columns: 78%;
    gap: 14px;
    margin-inline: -20px;
    padding: 8px 20px 16px;
    overflow-x: auto;
    scroll-snap-type: x mandatory;
    scroll-padding-inline: 20px;
    overscroll-behavior-x: contain;
    scrollbar-width: none;
  }

  .teacher-grid::-webkit-scrollbar {
    display: none;
  }

  .teacher-grid > li {
    scroll-snap-align: start;
  }
}
