/* ─────────────────────────────────────────────────────────────
   Estilos propios de la página "index".

   Declarada en build/pages.php → 'styles'. Se carga DESPUÉS de
   styles.css, así que lo de aquí gana. Los tokens (--brand, --surface…)
   vienen de allí.
   ───────────────────────────────────────────────────────────── */

/* ── Hero con vídeo ─────────────────────────────────────────── */
/* El poster ocupa el hueco y el vídeo se superpone cuando (y si) carga,
   así no hay salto de maquetación al aparecer. */
.hero-media {
  position: relative; margin: clamp(36px, 5vw, 64px) 0 0;
  aspect-ratio: 16 / 9; overflow: hidden;
  border-top: 1px solid var(--line); border-bottom: 1px solid var(--line);
}
.hero-img, .hero-video { position: absolute; inset: 0; width: 100%; height: 100%; object-fit: cover; }
.hero-video { z-index: 1; }
/* Degradado para que el hero funda con la marquesina que viene debajo. */
.hero-media::after {
  content: ''; position: absolute; inset: 0; z-index: 2; pointer-events: none;
  background: linear-gradient(to bottom, rgba(13,16,24,.35) 0%, transparent 28%, transparent 70%, rgba(13,16,24,.9) 100%);
}

/* ── Marquesina ─────────────────────────────────────────────── */
/* La banda naranja con texto en negro: es la pieza más reconocible de la
   identidad actual. Los valores son los de la web en vivo. */
.marquee { overflow: hidden; padding: 13px 0; background: var(--brand); }
.marquee-track { display: flex; width: max-content; animation: marquee 34s linear infinite; }
.marquee-item {
  font-family: 'Big Shoulders', sans-serif; font-size: 17px; font-weight: 800;
  letter-spacing: 3px; text-transform: uppercase; color: var(--ground-deep);
  white-space: nowrap; padding: 0 30px; display: flex; align-items: center;
}
/* El punto separador se dibuja en CSS: es decoración, no contenido. */
.marquee-item::after {
  content: ''; width: 5px; height: 5px; background: var(--ground-deep);
  border-radius: 50%; margin-left: 30px; flex-shrink: 0;
}
@keyframes marquee { from { transform: translateX(0); } to { transform: translateX(-50%); } }
@media (prefers-reduced-motion: reduce) { .marquee-track { animation: none; } }

/* ── Accesos a otras páginas ────────────────────────────────── */
.teaser-grid { display: grid; grid-template-columns: repeat(auto-fit, minmax(270px, 1fr)); gap: 26px; margin-top: 40px; }
.teaser { padding: 0; overflow: hidden; display: flex; flex-direction: column; }
.teaser-img { width: 100%; aspect-ratio: 3 / 2; object-fit: cover; }
.teaser-title { font-size: 26px; margin: 22px 24px 10px; }
.teaser-title a { text-decoration: none; transition: color .18s; }
.teaser-title a:hover { color: var(--brand); }
.teaser-body { margin: 0 24px 18px; color: var(--muted); font-size: 15px; }
.teaser-more { margin: auto 24px 24px; }
.teaser-more a {
  font-size: 11px; font-weight: 600; letter-spacing: 2px; text-transform: uppercase;
  color: var(--brand); text-decoration: none;
}
.teaser-more a::after { content: ' →'; }

/* ── Testimonios ────────────────────────────────────────────── */
.tst-grid { display: grid; grid-template-columns: repeat(auto-fit, minmax(270px, 1fr)); gap: 26px; margin-top: 40px; }
.tst figure { margin: 0; height: 100%; display: flex; flex-direction: column; }
.tst-quote { margin: 0 0 22px; }
.tst-quote p { margin: 0; color: var(--muted-2); font-size: 15px; }
/* La comilla grande es decorativa; el texto ya está en el blockquote. */
.tst-quote::before {
  content: '“'; display: block; font-family: 'Big Shoulders', sans-serif;
  font-size: 56px; line-height: .6; color: var(--brand); margin-bottom: 10px;
}
.tst-who { margin-top: auto; display: grid; grid-template-columns: auto 1fr; grid-template-rows: auto auto; column-gap: 12px; align-items: center; }
.tst-ini {
  grid-row: 1 / 3; width: 42px; height: 42px; border-radius: 50%;
  background: var(--tint); border: 1px solid var(--line);
  display: inline-flex; align-items: center; justify-content: center;
  font-family: 'Big Shoulders', sans-serif; font-weight: 900; font-size: 15px; color: var(--brand);
}
.tst-name { font-weight: 600; font-size: 14px; color: var(--text); }
.tst-role { font-size: 12px; color: var(--muted); }

/* ── Hero de la portada ─────────────────────────────────────── */
/* El vídeo es el FONDO y el texto va encima, como en la web actual, con
   la tarjeta de la calculadora al lado. */
.hero-home {
  position: relative; overflow: hidden;
  min-height: min(86vh, 780px);
  display: flex; align-items: center;
  padding: clamp(72px, 10vw, 120px) 0;
  border-bottom: 1px solid var(--line);
}
.hero-bg { position: absolute; inset: 0; z-index: 0; }
.hero-img, .hero-video { position: absolute; inset: 0; width: 100%; height: 100%; object-fit: cover; }
.hero-video { z-index: 1; }

/* Oscurecido: a la izquierda casi opaco para que el titular se lea, y
   fundido abajo para enlazar con la marquesina naranja. */
.hero-mask {
  position: absolute; inset: 0; z-index: 2;
  background:
    linear-gradient(90deg, rgba(6,8,12,.94) 0%, rgba(6,8,12,.78) 42%, rgba(6,8,12,.40) 100%),
    linear-gradient(to bottom, rgba(6,8,12,.75) 0%, transparent 26%, transparent 72%, rgba(13,16,24,.92) 100%);
}

/* Arcos concéntricos abajo a la izquierda. No son todos naranjas: en la
   web publicada se alternan un aro naranja, uno blanco y dos grises muy
   tenues entre medias, todos de un píxel o dos. Un solo
   repeating-radial-gradient con ese patrón como periodo lo reproduce
   sin una sola imagen. */
.hero-rings {
  /* El centro queda FUERA del encuadre, por debajo de la esquina: así
     sólo entran los arcos grandes y no se ve la diana entera. */
  position: absolute; z-index: 3; left: -480px; bottom: -660px;
  width: 960px; height: 960px; border-radius: 50%;
  background: repeating-radial-gradient(circle at 50% 50%,
              transparent 0 36px,
              rgba(213, 104, 32, .55) 36px 38px,      /* naranja */
              transparent 38px 74px,
              rgba(255, 255, 255, .09) 74px 75px,     /* gris    */
              transparent 75px 111px,
              rgba(255, 255, 255, .38) 111px 113px,   /* blanco  */
              transparent 113px 149px,
              rgba(255, 255, 255, .09) 149px 150px);  /* gris    */
  /* Se desvanecen hacia fuera para que no acaben en un corte seco. */
  -webkit-mask-image: radial-gradient(circle at 50% 50%, #000 62%, transparent 92%);
          mask-image: radial-gradient(circle at 50% 50%, #000 62%, transparent 92%);
}

/* El filete de láser que recorre el hero de arriba abajo. En la web actual
   lo movía un requestAnimationFrame; aquí basta una animación CSS, que no
   cuesta JS y se detiene sola si se pide menos movimiento. */
.hero-laser {
  position: absolute; z-index: 4; left: 0; right: 0; top: 0; height: 2px;
  background: linear-gradient(to right, transparent 0%, #FBB91F 40%, #FDD06A 50%, #FBB91F 60%, transparent 100%);
  opacity: 0; animation: laser-sweep 6s linear infinite;
}
@keyframes laser-sweep {
  0%   { top: 4%;  opacity: 0; }
  6%   { opacity: .8; }
  48%  { top: 92%; opacity: .55; }
  58%  { top: 92%; opacity: 0; }
  100% { top: 92%; opacity: 0; }
}
@media (prefers-reduced-motion: reduce) { .hero-laser { animation: none; opacity: 0; } }

.hero-home-grid {
  position: relative; z-index: 5;
  display: grid; grid-template-columns: 1.4fr .8fr; gap: clamp(32px, 5vw, 64px);
  align-items: center;
}
.hero-home .hero-title { font-size: clamp(38px, 7.2vw, 92px); margin-bottom: .25em; }
/* "LÁSER" va hueco con filete naranja, como el .outline-gold del original.
   Sale del *asterisco* de content/ vía rich(). */
.hero-home .hero-title .em {
  color: transparent;
  -webkit-text-stroke: 2px var(--brand);
          text-stroke: 2px var(--brand);
}
.hero-home .hero-sub { color: var(--muted-2); }

/* Tarjeta de la calculadora. El titular va en Inter y en caja normal: en
   el original no es un titular condensado en mayúsculas. */
.hero-card {
  background: rgba(13, 16, 24, .78);
  -webkit-backdrop-filter: blur(10px); backdrop-filter: blur(10px);
  border: 1px solid var(--line); border-radius: var(--radius);
  padding: clamp(24px, 3vw, 34px);
}
.hero-card-title {
  font-family: 'Inter', sans-serif; font-weight: 600;
  font-size: clamp(22px, 2.2vw, 28px); line-height: 1.25;
  text-transform: none; letter-spacing: 0; color: var(--text); margin-bottom: 10px;
}
.hero-card-body { font-size: 14px; color: var(--muted); margin-bottom: 20px; }
.hero-card .btn { width: 100%; }

@media (max-width: 900px) {
  .hero-home-grid { grid-template-columns: 1fr; }
  .hero-rings { left: -350px; bottom: -470px; width: 700px; height: 700px; }
}

/* ── "Velocidad y precisión": dos columnas ──────────────────── */
/* La máquina a la izquierda y el texto con las cifras a la derecha, como
   en la web publicada. */
.intro-grid {
  display: grid; grid-template-columns: 1fr 1fr;
  gap: clamp(32px, 5vw, 72px); align-items: center;
}
.intro-media { margin: 0; }
.intro-media img { width: 100%; height: auto; }
.intro-copy .sec-body { max-width: 52ch; }

/* Rejilla 2x2 con filetes internos, como una tabla sin fondo. */
.intro-stats {
  display: grid; grid-template-columns: 1fr 1fr;
  margin: clamp(28px, 3vw, 40px) 0 0;
  border: 1px solid var(--line-soft);
}
.intro-stats .stat {
  padding: clamp(20px, 2.4vw, 28px);
  border-right: 1px solid var(--line-soft);
  border-bottom: 1px solid var(--line-soft);
}
.intro-stats .stat:nth-child(2n) { border-right: 0; }
.intro-stats .stat:nth-last-child(-n+2) { border-bottom: 0; }

@media (max-width: 900px) {
  .intro-grid { grid-template-columns: 1fr; }
  .intro-media { order: 2; }
}
