/* INICIO
   El año en el campo contado con el scroll.

   Dos capas, a propósito:
   1. El apilado de estaciones es `position:sticky` puro. Funciona en cualquier
      navegador, también en Firefox, y es lo que sostiene el recorrido.
   2. Las animaciones ligadas al scroll (`animation-timeline`) van dentro de un
      @supports y sólo añaden matiz. Donde no existan, la página se ve completa.
   Con `prefers-reduced-motion` se desactiva todo lo de la capa 2. */

/* ---------- Barra de progreso ---------- */
.progreso{
  position:fixed;left:0;top:0;height:3px;width:100%;transform-origin:0 50%;
  transform:scaleX(0);background:var(--acento-solido);z-index:60;pointer-events:none
}

/* ---------- Portada ---------- */
.portada{
  position:relative;min-height:88svh;display:grid;align-items:center;
  overflow:clip;isolation:isolate
}
.portada-fondo{
  position:absolute;inset:0;z-index:-1;
  background:
    linear-gradient(180deg,rgba(18,20,14,.25),rgba(18,20,14,.68)),
    linear-gradient(var(--tinte-foto),var(--tinte-foto)),
    url("../img/tractor-camino.webp") center 62%/cover,
    linear-gradient(150deg,var(--arena) 0 30%,#83955f 30% 40%,#64784a 40% 47%,
                    #aa7f58 47% 51%,#6e824f 51% 59%,#b68c63 59% 63%,#718651 63% 72%,
                    #a57858 72% 77%,#53653f 77% 100%);
  background-size:cover
}
.portada-texto{padding:96px 0 72px;max-width:none}
.portada-texto h1,.portada-texto .lead,.portada-texto .eyebrow span{color:#fff}
.portada-texto .eyebrow .dot{background:var(--sobre-acento-suave)}
.portada-texto .lead{max-width:34em;text-shadow:0 1px 24px rgba(0,0,0,.35)}
.portada-texto h1{text-shadow:0 2px 30px rgba(0,0,0,.35)}
.pista{
  display:inline-block;margin-top:34px;font-size:.86rem;font-weight:850;color:#fff;
  opacity:.85
}
.pista::after{content:" ↓"}

/* ---------- El año: estaciones apiladas ---------- */
.anio{position:relative}
.estacion{
  position:sticky;top:0;min-height:100svh;display:grid;align-items:center;
  overflow:clip;isolation:isolate;border-top:1px solid rgba(255,255,255,.10)
}
.estacion-fondo{position:absolute;inset:0;z-index:-1;background-size:cover;background-position:center}
.estacion-texto{padding:clamp(80px,12vh,140px) 0;max-width:none}
.estacion-texto h2,.estacion-texto .eyebrow span{color:#fff}
.estacion-texto .eyebrow .dot{background:#fff}
.estacion-texto p{
  color:#f2f4ea;max-width:32em;font-size:clamp(1.02rem,.5vw + .9rem,1.16rem);
  margin:0 0 26px;text-shadow:0 1px 20px rgba(0,0,0,.4)
}
.estacion-texto h2{text-shadow:0 2px 26px rgba(0,0,0,.4)}

/* Cada estación tiene su color mientras no haya foto. Al ponerla, basta con
   añadir background-image en esta misma regla. */
.estacion--siembra .estacion-fondo{
  /* La foto es vertical: encuadrada al centro sólo se vería cielo. */
  background-position:center 72%;
  background-image:
    linear-gradient(180deg,rgba(20,22,14,.20),rgba(20,22,14,.72)),
    linear-gradient(var(--tinte-foto),var(--tinte-foto)),
    url("../img/siembra-tractor.webp"),
    linear-gradient(160deg,#6b5a3f 0 42%,#7b6a4a 42% 58%,#4e5a35 58% 100%)
}
/* Las tres fotos nuevas siguen el orden indicado: 01, 02 y 03 en las tres
   estaciones que todavía tenían fondo provisional. */
.estacion--girasol .estacion-fondo{
  background-position:center 50%;
  background-image:
    linear-gradient(90deg,rgba(12,15,9,.72) 0%,rgba(12,15,9,.42) 42%,rgba(12,15,9,.10) 78%),
    linear-gradient(180deg,rgba(20,22,14,.12),rgba(20,22,14,.66)),
    linear-gradient(var(--tinte-foto),var(--tinte-foto)),
    url("../img/inicio-scroll-01-cosechadora-atardecer.webp"),
    linear-gradient(160deg,#c9a53f 0 38%,#d8bd57 38% 56%,#6f8244 56% 100%)
}
.estacion--almendra .estacion-fondo{
  background-position:center 58%;
  background-image:
    linear-gradient(90deg,rgba(12,15,9,.72) 0%,rgba(12,15,9,.40) 42%,rgba(12,15,9,.08) 78%),
    linear-gradient(180deg,rgba(20,22,14,.12),rgba(20,22,14,.68)),
    linear-gradient(var(--tinte-foto),var(--tinte-foto)),
    url("../img/inicio-scroll-02-tractor-atomizado.webp"),
    linear-gradient(160deg,#b08a5c 0 40%,#8d7047 40% 60%,#5d6a3c 60% 100%)
}
.estacion--aceituna .estacion-fondo{
  background-position:center 48%;
  background-image:
    linear-gradient(90deg,rgba(10,14,8,.74) 0%,rgba(10,14,8,.42) 42%,rgba(10,14,8,.10) 78%),
    linear-gradient(180deg,rgba(12,16,9,.16),rgba(12,16,9,.72)),
    linear-gradient(var(--tinte-foto),var(--tinte-foto)),
    url("../img/inicio-scroll-03-trigal.webp"),
    linear-gradient(160deg,#41552e 0 40%,#33452a 40% 62%,#25331d 62% 100%)
}

/* ---------- Equipo: una persona por fila, alternando lado ---------- */
.equipo{background:var(--fondo)}
.personas{display:grid;gap:clamp(34px,5vw,64px);margin-top:14px}
.persona{
  display:grid;grid-template-columns:minmax(0,.42fr) minmax(0,.58fr);
  gap:clamp(24px,4vw,54px);align-items:center
}
/* La segunda invierte el orden: la vista no se hace monótona al bajar. */
.persona:nth-child(even){direction:rtl}
.persona:nth-child(even) > *{direction:ltr}
.persona-rol{
  display:inline-block;font-size:.82rem;font-weight:900;letter-spacing:.1em;
  text-transform:uppercase;color:var(--acento)
}
.persona-nombre{
  font-family:Georgia,"Times New Roman",serif;font-size:clamp(1.7rem,3vw,2.5rem);
  line-height:1.1;letter-spacing:-.025em;color:var(--acento-texto);margin:10px 0 12px
}
.persona-texto p{margin:0;color:var(--texto-suave);max-width:38ch}
.persona-foto{display:grid}
.persona-foto img{width:100%;height:auto;border-radius:22px;box-shadow:var(--sombra);filter:var(--grado-foto)}

/* ---------- Presentación del año ---------- */
.anio-intro{
  position:relative;text-align:center;overflow:clip;isolation:isolate;
  background:var(--fondo-alt)
}
.anio-intro::before{
  content:"";position:absolute;inset:0;z-index:-1;
  background:
    linear-gradient(180deg,var(--velo-cereal),var(--velo-cereal)),
    url("../img/campo-cereal.webp") center/cover
}
.anio-intro .eyebrow{justify-content:center}
.anio-intro .lead{margin:0 auto;max-width:46ch}

/* ---------- Cierre ---------- */
.cierre{background:var(--fondo);position:relative;z-index:1}
.cierre-grid,.equipo-grid{
  display:grid;grid-template-columns:1.05fr .95fr;gap:54px;align-items:center
}
.cierre-foto{display:grid;place-items:center}
.cierre-foto img{max-width:100%;height:auto;max-height:460px;border-radius:16px;box-shadow:var(--sombra)}
/* Hueco del retrato: se sustituye por <img> cuando lleguen las fotos. */
.retrato{
  aspect-ratio:3/4;border-radius:22px;border:2px dashed var(--borde);
  background:linear-gradient(160deg,var(--acento-suave),var(--crema));
  display:grid;place-items:center
}
.retrato::after{
  content:"FOTO PENDIENTE";font-size:.74rem;font-weight:900;letter-spacing:.12em;
  color:var(--texto-suave);opacity:.7
}

/* ---------- Reseñas: carrusel continuo de izquierda a derecha ---------- */
.reviews-section{overflow:hidden}
.reviews-head{
  display:flex;align-items:flex-end;justify-content:space-between;
  gap:24px
}
.reviews-copy{max-width:760px}
.reviews-intro{margin:0;color:var(--sobre-acento-suave);max-width:58ch}
.reviews-sample{
  display:inline-flex;margin:18px 0 0;padding:7px 12px;border-radius:999px;
  color:var(--sobre-acento-suave);border:1px solid color-mix(in srgb,var(--sobre-acento) 22%,transparent);
  background:color-mix(in srgb,var(--sobre-acento) 8%,transparent);
  font-size:.76rem;font-weight:850;letter-spacing:.02em
}
.reviews-toggle{
  min-height:44px;padding:10px 16px;border-radius:999px;flex:0 0 auto;
  display:inline-flex;align-items:center;justify-content:center;gap:8px;
  border:1px solid color-mix(in srgb,var(--sobre-acento) 28%,transparent);
  background:color-mix(in srgb,var(--sobre-acento) 10%,transparent);
  color:var(--sobre-acento);font:inherit;font-size:.86rem;font-weight:900;cursor:pointer
}
.reviews-toggle[hidden]{display:none}
.reviews-toggle:hover{background:color-mix(in srgb,var(--sobre-acento) 16%,transparent)}
.reviews-toggle:focus-visible{outline:2px solid var(--sobre-acento);outline-offset:3px}
.reviews-toggle-icon{font-size:1rem;line-height:1}
.reviews-window{
  width:100%;margin-top:clamp(30px,4vw,46px);overflow-x:auto;
  overscroll-behavior-inline:contain;scrollbar-width:thin
}
.reviews-window.is-ready{overflow:hidden}
.reviews-window:focus-visible{outline:2px solid var(--sobre-acento);outline-offset:-4px}
.reviews-section[hidden]{display:none}
.reviews-track{display:flex;width:max-content}
.reviews-track.is-ready{
  animation:reviewsHaciaDerecha 68s linear infinite;
  animation-delay:-17s;will-change:transform
}
.reviews-track.is-paused{animation-play-state:paused}
.reviews-group{
  display:flex;align-items:stretch;gap:18px;padding-inline-end:18px;
  flex:0 0 auto
}
.review-card{
  flex:0 0 clamp(280px,29vw,370px);min-height:238px;padding:25px;
  display:flex;flex-direction:column;border-radius:24px;
  color:var(--sobre-acento);
  border:1px solid color-mix(in srgb,var(--sobre-acento) 18%,transparent);
  background:color-mix(in srgb,var(--sobre-acento) 9%,transparent)
}
.review-stars{
  color:var(--sobre-acento-suave);font-size:1.05rem;line-height:1;
  letter-spacing:.16em
}
.review-card blockquote{margin:20px 0 22px;flex:1}
.review-card blockquote p{
  margin:0;color:var(--sobre-acento);font-size:1rem;line-height:1.65
}
.review-card cite{
  color:var(--sobre-acento-suave);font-size:.82rem;font-style:normal;font-weight:900
}
@keyframes reviewsHaciaDerecha{
  from{transform:translate3d(-50%,0,0)}
  to{transform:translate3d(0,0,0)}
}

@media (prefers-reduced-motion:reduce){
  .reviews-toggle{display:none}
  .reviews-window.is-ready{overflow-x:auto;scroll-snap-type:x mandatory}
  .reviews-track.is-ready{animation:none;transform:none;will-change:auto}
  .reviews-group[aria-hidden="true"]{display:none}
  .review-card{scroll-snap-align:center}
}

/* ---------- Capa 2: sólo donde el navegador la soporte ---------- */
@supports (animation-timeline: view()) {
  @media (prefers-reduced-motion: no-preference) {
    @keyframes barraProgreso{to{transform:scaleX(1)}}
    .progreso{animation:barraProgreso linear;animation-timeline:scroll(root block)}

    /* El texto de cada estación entra al aparecer, no de golpe. */
    @keyframes entraTexto{
      from{opacity:0;transform:translateY(34px)}
      40%{opacity:1;transform:none}
      to{opacity:1;transform:none}
    }
    .estacion-texto{
      animation:entraTexto linear both;
      animation-timeline:view();
      animation-range:entry 10% cover 45%
    }

    /* Cada persona entra al aparecer. */
    @keyframes entraPersona{
      from{opacity:0;transform:translateY(40px)}
      60%{opacity:1;transform:none}
      to{opacity:1;transform:none}
    }
    .persona{
      animation:entraPersona linear both;
      animation-timeline:view();
      animation-range:entry 5% cover 40%
    }

    /* El fondo se acerca despacio: es el parallax. */
    @keyframes acercaFondo{from{transform:scale(1.14)}to{transform:scale(1)}}
    .estacion-fondo,.portada-fondo{
      animation:acercaFondo linear both;
      animation-timeline:view();
      animation-range:entry 0% exit 100%
    }
  }
}
