/**
 * Landing (/): hero con presencia y una tarjeta-boleta por modalidad con lo esencial de su ÚNICO
 * evento actual ("Ver evento" como CTA principal) y recuperación compacta.
 * Usa los tokens de brand.css (azul de marca, tipografías, elevación, movimiento); sin paleta nueva.
 * El detalle del evento (index.html) no carga este archivo.
 */

.lp-page main { display: block; }

/* ——— Hero ——— */
.lp-hero {
  position: relative;
  padding: clamp(1.25rem, 3.5vw, 2rem) 0 clamp(0.75rem, 2vw, 1.25rem);
  text-align: center;
  overflow-x: clip;
  isolation: isolate;
}

.lp-hero::before {
  content: "";
  position: absolute;
  inset: -40% -10% auto;
  height: 180%;
  background:
    radial-gradient(38% 50% at 18% 34%, rgba(23, 105, 224, 0.16), transparent 70%),
    radial-gradient(34% 46% at 84% 22%, rgba(91, 148, 230, 0.2), transparent 70%),
    radial-gradient(30% 30% at 50% 92%, rgba(23, 105, 224, 0.08), transparent 70%);
  z-index: -1;
  pointer-events: none;
}

.lp-hero-inner {
  display: flex;
  flex-direction: column;
  align-items: center;
}

.lp-hero-title {
  margin: 0;
  max-width: 22ch;
  font-family: var(--font-display);
  font-size: clamp(2rem, 4.2vw, 2.9rem);
  font-weight: 700;
  line-height: 1.04;
  letter-spacing: -0.035em;
  color: var(--text-primary);
  text-wrap: balance;
}

.lp-hero-title span { color: var(--brand-primary); }

.lp-hero-lead {
  margin: 0.45rem 0 0;
  font-size: clamp(1rem, 1.6vw, 1.1rem);
  color: var(--text-secondary);
}

.lp-sr-only {
  position: absolute;
  width: 1px;
  height: 1px;
  margin: -1px;
  padding: 0;
  overflow: hidden;
  clip: rect(0 0 0 0);
  white-space: nowrap;
  border: 0;
}

/* ——— Tarjetas-boleta de familia (mismo peso visual; misma altura) ———
   Cabecera de color y cuerpo blanco unidos por una perforación con muescas (máscaras);
   la sombra va en el contenedor (drop-shadow) para seguir el recorte. */
.lp-families { padding: 0.5rem 0 var(--space-5); scroll-margin-top: calc(var(--iad-header-block) - 0.5rem); }

.lp-family-grid {
  display: grid;
  grid-template-columns: minmax(0, 1fr);
  gap: var(--space-4);
  align-items: stretch;
}

@media (min-width: 820px) {
  .lp-family-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); gap: clamp(24px, 3vw, 40px); }
}

.lp-family {
  --notch: 12px;
  display: flex;
  flex-direction: column;
  min-width: 0;
  filter: drop-shadow(0 2px 3px rgba(14, 46, 99, 0.08)) drop-shadow(0 22px 32px rgba(14, 46, 99, 0.16));
  transition: transform var(--dur-fast) var(--ease-out);
}

@media (hover: hover) and (pointer: fine) {
  .lp-family:hover { transform: translateY(-4px); }
}

.lp-family-visual {
  position: relative;
  display: flex;
  flex-direction: column;
  gap: 0.4rem;
  padding: 1.35rem 1.4rem 1.5rem;
  color: #fff;
  border-radius: 20px 20px 0 0;
  overflow: hidden;
  isolation: isolate;
  -webkit-mask: radial-gradient(circle var(--notch) at 0 100%, #0000 98%, #000) left / 51% 100% no-repeat,
    radial-gradient(circle var(--notch) at 100% 100%, #0000 98%, #000) right / 51% 100% no-repeat;
  mask: radial-gradient(circle var(--notch) at 0 100%, #0000 98%, #000) left / 51% 100% no-repeat,
    radial-gradient(circle var(--notch) at 100% 100%, #0000 98%, #000) right / 51% 100% no-repeat;
}

/* Textura del propio mundo: 2 cifras = retícula del tablero 00–99; 3–6 = anillos del sorteo. */
.lp-family-visual::before {
  content: "";
  position: absolute;
  inset: 0;
  z-index: -1;
  pointer-events: none;
}

.lp-family--manual .lp-family-visual {
  background:
    radial-gradient(120% 140% at 100% 0%, rgba(255, 255, 255, 0.2) 0%, rgba(255, 255, 255, 0) 55%),
    linear-gradient(135deg, var(--brand-primary), var(--brand-primary-hover));
}

.lp-family--manual .lp-family-visual::before {
  background-image: radial-gradient(circle, rgba(255, 255, 255, 0.34) 1.2px, transparent 1.7px);
  background-size: 14px 14px;
  -webkit-mask-image: linear-gradient(105deg, transparent 38%, #000 100%);
  mask-image: linear-gradient(105deg, transparent 38%, #000 100%);
}

.lp-family--random .lp-family-visual {
  background:
    radial-gradient(120% 140% at 0% 0%, rgba(255, 255, 255, 0.16) 0%, rgba(255, 255, 255, 0) 55%),
    linear-gradient(135deg, var(--brand-primary-hover), var(--brand-primary-active));
}

.lp-family--random .lp-family-visual::before {
  background: repeating-radial-gradient(circle at 108% 50%, rgba(255, 255, 255, 0.2) 0 1px, transparent 1.5px 18px);
  -webkit-mask-image: linear-gradient(90deg, transparent 30%, #000 100%);
  mask-image: linear-gradient(90deg, transparent 30%, #000 100%);
}

.lp-family-tag {
  align-self: flex-start;
  display: inline-flex;
  align-items: center;
  padding: 0.3rem 0.8rem;
  border-radius: 999px;
  background: rgba(255, 255, 255, 0.16);
  box-shadow: inset 0 0 0 1px rgba(255, 255, 255, 0.28), inset 0 1px 0 rgba(255, 255, 255, 0.3);
  color: #fff;
  font-family: var(--font-display);
  font-size: 0.85rem;
  font-weight: 700;
  letter-spacing: 0.02em;
  font-variant-numeric: tabular-nums;
}

.lp-family-visual .lp-family-tag { margin-bottom: 0.35rem; }

.lp-family-visual .lp-family-title {
  margin: 0;
  color: #fff;
  font-family: var(--font-display);
  font-size: clamp(1.75rem, 4.2vw, 2.4rem);
  font-weight: 700;
  letter-spacing: -0.03em;
  line-height: 1.02;
  text-wrap: balance;
}

.lp-family-sub {
  margin: 0;
  color: rgba(255, 255, 255, 0.9);
  font-size: 0.98rem;
  font-weight: 600;
}

.lp-family-body {
  display: flex;
  flex: 1;
  flex-direction: column;
  gap: 0.85rem;
  padding: 1.4rem;
  border-radius: 0 0 20px 20px;
  background:
    repeating-linear-gradient(90deg, rgba(23, 105, 224, 0.28) 0 6px, transparent 6px 12px) 50% 0 / calc(100% - 2 * var(--notch) - 16px) 2px no-repeat,
    var(--surface);
  -webkit-mask: radial-gradient(circle var(--notch) at 0 0, #0000 98%, #000) left / 51% 100% no-repeat,
    radial-gradient(circle var(--notch) at 100% 0, #0000 98%, #000) right / 51% 100% no-repeat;
  mask: radial-gradient(circle var(--notch) at 0 0, #0000 98%, #000) left / 51% 100% no-repeat,
    radial-gradient(circle var(--notch) at 100% 0, #0000 98%, #000) right / 51% 100% no-repeat;
}

/* Evento actual: solo nombre + una línea de datos; el detalle vive en /evento/{public_id}. */
.lp-current { display: grid; gap: 0.3rem; min-width: 0; }

.lp-current-name {
  margin: 0 0 0.15rem;
  font-family: var(--font-display);
  font-size: clamp(1.3rem, 2.6vw, 1.55rem);
  font-weight: 700;
  letter-spacing: -0.02em;
  line-height: 1.15;
  color: var(--text-primary);
  overflow-wrap: anywhere;
}

.lp-current-prize {
  margin: 0;
  color: var(--text-primary);
  font-size: 1rem;
  font-weight: 700;
  overflow-wrap: anywhere;
}

.lp-current-prize span { color: var(--text-secondary); font-weight: 600; }

.lp-current-meta {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  gap: 0.25rem 0.5rem;
  margin: 0;
  color: var(--text-secondary);
  font-size: 0.9rem;
  font-weight: 600;
  font-variant-numeric: tabular-nums;
}

.lp-current-meta > span + span:not(.lp-family-state)::before {
  content: "·";
  margin-right: 0.5rem;
  color: var(--text-muted);
}

.lp-family-state {
  display: inline-flex;
  align-items: center;
  gap: 0.35rem;
  color: var(--text-muted);
  font-weight: 800;
}

.lp-family-state.is-live { color: var(--status-success); }
.lp-family-state.is-live .iad-dot { box-shadow: 0 0 0 3px rgba(22, 101, 52, 0.16); }

.lp-current.is-empty {
  padding: 1rem 1.1rem;
  border-radius: var(--radius-lg);
  background: var(--brand-50);
  border: 1px dashed rgba(23, 105, 224, 0.3);
}

/* Sin evento: el aviso se centra verticalmente en el cuerpo blanco (el body es flex column y
   en desktop se estira a la altura de la tarjeta vecina). En móvil el body mide su contenido,
   así que el margen automático es 0 y el aspecto no cambia. */
.lp-family-body > .lp-current.is-empty { margin-block: auto; }

/* Jerarquía: "Ver evento" domina; la compra es una acción secundaria compacta. */
.lp-family-actions {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  gap: 0.5rem 0.75rem;
  margin-top: auto;
}

.lp-family-main { flex: 1 1 12rem; min-height: 50px; white-space: nowrap; }

.lp-family-buy {
  flex: 0 0 auto;
  min-height: 44px;
  padding-inline: 1rem;
  font-size: 0.9rem;
  white-space: nowrap;
}

/* Móvil: ambas acciones al 100% y del mismo tamaño; la jerarquía la da el color (relleno vs outline). */
@media (max-width: 559px) {
  .lp-family-actions { flex-direction: column; align-items: stretch; }
  .lp-family-main,
  .lp-family-buy {
    flex: 0 0 auto;
    width: 100%;
    min-height: 50px;
    padding-inline: 1.35rem;
    font-size: 0.97rem;
  }
}

/* ——— Recuperación: el diseño vive en verification.css (mismo partial que el evento). ——— */
.lp-recovery #mis-numeros { padding: var(--space-3) 0 var(--space-2); }

.lp-recovery + .iad-section-tight { padding: var(--space-2) 0 var(--space-4); }

/* ——— Accesibilidad ——— */
.lp-page a:focus-visible { outline: 2px solid var(--brand-focus); outline-offset: 3px; border-radius: 6px; }

@media (prefers-reduced-motion: reduce) {
  .lp-family { transition: none; }
  .lp-family:hover { transform: none; }
}

/* Safe area (iPhone): el último bloque no queda bajo la barra de Safari. */
.lp-page .iad-footer { padding-bottom: max(0.6rem, env(safe-area-inset-bottom)); }
