/* grid.125a.css -- contenedores, grilla modular y layout de header/footer. Mobile-first. */

.container {
  width: 100%;
  max-width: var(--container-w);
  margin-left: auto;
  margin-right: auto;
  padding-left: var(--container-pad);
  padding-right: var(--container-pad);
}

.section {
  position: relative;
  padding-top: var(--space-xl);
  padding-bottom: var(--space-xl);
}

.section--tight {
  padding-top: var(--space-lg);
  padding-bottom: var(--space-lg);
}

.section--roomy {
  padding-top: var(--space-2xl);
  padding-bottom: var(--space-2xl);
}

.section--dark {
  background: var(--c-graphite-deep);
  color: var(--c-text-on-dark);
}

.section__head {
  display: flex;
  flex-direction: column;
  gap: var(--space-2xs);
  margin-bottom: var(--space-lg);
  max-width: 46rem;
}

.section__num {
  font-family: var(--font-body);
  font-size: var(--fs-small);
  font-weight: 700;
  color: var(--c-terracotta);
  letter-spacing: 0.08em;
}

.section--dark .section__num {
  color: var(--c-terracotta);
}

.section__title {
  font-family: var(--font-display);
  font-size: var(--fs-display-md);
  font-weight: 500;
  line-height: 1.06;
  margin: 0;
}

.section__lead {
  font-family: var(--font-body);
  font-size: var(--fs-body-lg);
  color: var(--c-text-muted);
  margin: 0;
}

.section--dark .section__lead {
  color: var(--c-text-muted-dark);
}

/* header ------------------------------------------------------------- */

.site-top {
  position: static;
  z-index: var(--z-header);
  width: 100%;
  background: var(--c-bg);
  border-bottom: var(--border-hair) solid var(--c-bg-line);
}

.site-top__inner {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: var(--space-md);
  padding-top: var(--space-sm);
  padding-bottom: var(--space-sm);
}

.site-nav {
  display: none;
}

.site-nav__list {
  display: flex;
  align-items: center;
  gap: var(--space-md);
  margin: 0;
  padding: 0;
  list-style: none;
}

.site-top__actions {
  display: flex;
  align-items: center;
  gap: var(--space-sm);
}

/* el toggle desktop/mobile de .site-nav y .hamburger vive en banner.125a.css
   (se carga ultimo): atoms.css define .hamburger{display:inline-flex} sin
   media query y, por orden de cascada, esa regla le ganaba a esta si quedaba
   en este archivo, aunque el min-width se cumpliera. */

/* footer --------------------------------------------------------------- */

.site-foot {
  background: var(--c-graphite-deep);
  color: var(--c-text-on-dark);
  padding-top: var(--space-xl);
  padding-bottom: var(--space-lg);
}

.site-foot__grid {
  display: grid;
  grid-template-columns: 1fr;
  gap: var(--space-lg);
  padding-bottom: var(--space-lg);
  border-bottom: var(--border-hair) solid var(--c-graphite-line);
}

.site-foot__legal {
  display: flex;
  flex-direction: column;
  gap: var(--space-2xs);
  padding-top: var(--space-md);
  font-size: var(--fs-micro);
  color: var(--c-text-muted-dark);
}

.site-foot__legal p {
  margin: 0;
}

@media (min-width: 40rem) {
  .site-foot__grid {
    grid-template-columns: 1.3fr 1fr 1fr;
  }
}

@media (min-width: 61.25rem) {
  .site-foot__grid {
    grid-template-columns: 1.6fr 1fr 1fr 1fr;
  }
}

/* grillas de contenido -------------------------------------------------- */

.cards__grid {
  display: grid;
  grid-template-columns: 1fr;
  gap: var(--border-hair);
  background: var(--c-bg-line);
  border: var(--border-hair) solid var(--c-bg-line);
}

@media (min-width: 40rem) {
  .cards__grid--3 {
    grid-template-columns: repeat(3, 1fr);
  }

  .cards__grid--2 {
    grid-template-columns: repeat(2, 1fr);
  }
}

.split {
  display: grid;
  grid-template-columns: 1fr;
  gap: var(--space-lg);
  align-items: center;
}

@media (min-width: 55rem) {
  .split {
    grid-template-columns: 1fr 1fr;
    gap: var(--space-2xl);
  }

  .split--reverse .split__media {
    order: 2;
  }
}

.team__grid {
  display: grid;
  grid-template-columns: 1fr;
  gap: var(--space-xl);
}

@media (min-width: 40rem) {
  .team__grid {
    grid-template-columns: repeat(2, 1fr);
  }
}
