.nos-portada { padding-block: clamp(2.5rem, 5vw, 4rem) clamp(3rem, 6vw, 4.5rem); }
.nos-portada__rejilla {
  display: grid; grid-template-columns: minmax(0, 1fr) minmax(0, 1.05fr);
  gap: clamp(2rem, 5vw, 4rem); align-items: center;
}
.nos-portada h1 { font-size: clamp(2.4rem, 1.2rem + 3.6vw, 3.9rem); line-height: 1.04; text-wrap: balance; }
.nos-portada h1 em { display: block; }
.nos-cifras {
  list-style: none; margin: 1.8rem 0 0; padding: 0;
  display: grid; grid-template-columns: repeat(5, minmax(0, max-content)); gap: 1rem 1.5rem;
}
.nos-cifras li { display: grid; gap: .25rem; padding-top: .6rem; border-top: 2px solid transparent; border-image: var(--lazo) 1; }
.nos-cifras b {
  font-family: var(--mono); font-weight: 500; line-height: 1;
  font-size: clamp(1.5rem, 1rem + 1.2vw, 2rem); color: var(--morado);
}
.nos-cifras span { font-size: .78rem; line-height: 1.35; color: var(--tinta-media); }
.nos-portada__foto { position: relative; margin: 0 0 1.4rem; }
.nos-portada__foto img {
  display: block; width: 100%; height: auto;
  border-radius: var(--radio-g) 3rem var(--radio-g) 3rem; box-shadow: var(--sombra-alta);
}
.nos-portada__premio {
  position: absolute; left: -1.2rem; bottom: -1.4rem; display: flex; align-items: center; gap: .7rem;
  padding: .7rem 1rem .7rem .8rem; background: var(--nieve); border-radius: 14px; box-shadow: var(--sombra-alta);
  font-size: .82rem; line-height: 1.3; color: var(--tinta-media);
}
.nos-portada__premio .ico { width: 36px; height: 36px; }
.nos-portada__premio b { display: block; font-size: .92rem; color: var(--tinta); }
.nos-somos { display: grid; grid-template-columns: minmax(0, 1fr) minmax(0, 1fr); gap: clamp(2rem, 5vw, 4rem); align-items: center; }
.nos-mv { display: grid; gap: 1rem; }
.nos-mv__carta { padding: 1.4rem 1.5rem; border-radius: 18px; background: var(--nieve); border: 1px solid var(--linea); box-shadow: var(--sombra); }
.nos-mv__carta p { margin: 0; font-size: 1.05rem; line-height: 1.55; color: var(--tinta); }
.nos-mv__carta .nos-mv__rot {
  margin-bottom: .5rem; font-family: var(--mono); font-size: .72rem; font-weight: 500;
  letter-spacing: .14em; text-transform: uppercase; color: var(--morado);
}
.nos-mv__carta--vision { background: var(--morado-noche); border-color: var(--morado-noche); }
.nos-mv__carta--vision p { color: var(--sobre-oscuro-vivo); }
.nos-mv__carta--vision .nos-mv__rot { color: var(--sobre-oscuro); }
.nos-reglas { list-style: none; margin: 0; padding: 0; display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: 1.1rem; }
.nos-regla {
  display: flex; flex-direction: column; gap: .5rem; padding: 1.4rem 1.3rem;
  background: var(--nieve); border: 1px solid var(--linea); border-radius: 18px;
  transition: transform .25s ease, box-shadow .25s ease;
}
.nos-regla:hover { transform: translateY(-4px); box-shadow: var(--sombra); }
.nos-regla .ico { width: 44px; height: 44px; padding: 6px; border-radius: 14px; background: var(--niebla); }
.nos-regla h3 { margin: .3rem 0 0; font-size: 1.12rem; line-height: 1.25; }
.nos-regla p { margin: 0; font-size: .94rem; line-height: 1.5; color: var(--tinta-media); }
.nos-historia {
  list-style: none; margin: 0; padding: 0; position: relative;
  display: grid; grid-template-columns: repeat(5, minmax(0, 1fr)); gap: 1.4rem;
}
.nos-historia::before {
  content: ""; position: absolute; left: .5rem; right: 0; top: .52rem; height: 2px; background: var(--lazo);
}
.nos-historia li { position: relative; padding-top: 2.1rem; }
.nos-historia li::before {
  content: ""; position: absolute; top: 0; left: 0; width: 1.05rem; height: 1.05rem; border-radius: 50%;
  background: var(--nieve); border: 3px solid var(--morado);
}
.nos-historia li:last-child::before { background: var(--morado); }
.nos-historia b { font-family: var(--mono); font-weight: 500; font-size: 1.35rem; color: var(--morado-hondo); }
.nos-historia strong { font-weight: 600; color: var(--morado-hondo); }
.nos-historia h3 { margin: .35rem 0 .3rem; font-size: 1.05rem; line-height: 1.25; }
.nos-historia p { margin: 0; font-size: .9rem; line-height: 1.5; color: var(--tinta-media); }
.nos-equipo {
  list-style: none; margin: 0 auto; padding: 0; max-width: 60rem;
  display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: clamp(1rem, 3vw, 2rem);
}
.nos-persona { text-align: center; }
.nos-persona img {
  display: block; width: 100%; height: auto; aspect-ratio: 3 / 4; object-fit: cover; object-position: 50% 12%;
  border-radius: 20px; background: var(--niebla); box-shadow: var(--sombra);
  transition: transform .3s ease, box-shadow .3s ease;
}
.nos-persona:hover img { transform: translateY(-4px); box-shadow: var(--sombra-alta); }
.nos-persona h3 { margin: 1rem 0 .15rem; font-size: 1.18rem; }
.nos-persona p { margin: 0; font-family: var(--mono); font-size: .76rem; letter-spacing: .05em; color: var(--tinta-media); }
@media (max-width: 960px) {
  .nos-reglas { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .nos-historia { grid-template-columns: minmax(0, 1fr); gap: 1.3rem; }
  .nos-historia::before { left: .5rem; right: auto; top: .5rem; bottom: .5rem; width: 2px; height: auto; }
  .nos-historia li { padding: 0 0 0 2.2rem; }
}
@media (max-width: 900px) {
  .nos-portada__rejilla, .nos-somos { grid-template-columns: minmax(0, 1fr); }
  .nos-cifras { grid-template-columns: repeat(3, minmax(0, 1fr)); }
  .nos-portada__premio { left: .8rem; }
}
@media (max-width: 640px) {
  .nos-equipo {
    display: flex; gap: .85rem; max-width: none; overflow-x: auto; overscroll-behavior-x: contain;
    scroll-snap-type: x mandatory; scrollbar-width: none;
    margin-inline: calc(-1 * var(--canal)); padding: .3rem var(--canal) 1rem;
    scroll-padding-inline: var(--canal);
  }
  .nos-equipo::-webkit-scrollbar { display: none; }
  .nos-persona { flex: 0 0 min(15rem, 66%); scroll-snap-align: start; }
  .nos-persona h3 { margin-top: .75rem; font-size: 1.05rem; }
}
@media (max-width: 520px) {
  .nos-reglas { grid-template-columns: minmax(0, 1fr); }
  .nos-cifras { grid-template-columns: repeat(2, minmax(0, 1fr)); }
}
