/* =========================================================================
   Astrion — videos flotantes (sin marco) + sistema mobile (360–860px).
   Se carga SOLO en Home y páginas de Sample Record / Library / Map.
   ========================================================================= */

/* ---- Videos fundidos con el fondo: sin borde, sin caja, sin sombra ---- */
.product-reel .player-frame,
.reel .player-frame {
  border: 0;
  border-radius: 0;
  background: transparent;
  box-shadow: none;
  overflow: visible;
}
.reel::before { display: none; }

.product-reel .player-frame video.reel-video,
.reel .player-frame video.reel-video {
  background: transparent;
  object-fit: contain;
  mix-blend-mode: screen; /* el negro del render se funde con la página */
  -webkit-mask-image:
    linear-gradient(90deg, transparent 0, #000 9%, #000 91%, transparent 100%),
    linear-gradient(180deg, transparent 0, #000 11%, #000 89%, transparent 100%);
  -webkit-mask-composite: source-in;
  mask-image:
    linear-gradient(90deg, transparent 0, #000 9%, #000 91%, transparent 100%),
    linear-gradient(180deg, transparent 0, #000 11%, #000 89%, transparent 100%);
  mask-composite: intersect;
}

.player-tools { opacity: 0; transition: opacity .3s; }
.player-frame:hover .player-tools,
.player-frame:focus-within .player-tools { opacity: 1; }
@media (hover: none) { .player-tools { opacity: .75; } }

/* ---- Base mobile ---- */
html, body { overflow-x: hidden; -webkit-text-size-adjust: 100%; }
img, video, canvas, svg { max-width: 100%; }
.btn, .pbtn, summary, .nav a, .mobile-nav a { -webkit-tap-highlight-color: transparent; }

/* =========================================================================
   TABLET / MOBILE  (<= 860px)
   ========================================================================= */
@media (max-width: 860px) {
  /* ---------- Hero Home: texto arriba, órbita animada abajo ---------- */
  .hero-cinema { flex-direction: column; align-items: stretch; min-height: 0; }
  .hero-cinema .hero-inner { order: 1; padding-block: 88px 0; }
  .hero-cinema .hero-media { order: 2; position: relative; inset: auto; height: min(100vw, 460px); min-height: 330px; }
  .hero-cinema .hero-shade { display: none; }
  .hero-copy { align-items: center; text-align: center; gap: 14px; }
  .hero-copy .eyebrow { font-size: .64rem; letter-spacing: .2em; line-height: 1.7; }
  .hero-copy h1 { font-size: clamp(1.5rem, 7.2vw, 2.1rem); letter-spacing: .04em; line-height: 1.22; }
  .hero-copy .lede { font-size: 1rem; line-height: 1.6; max-width: 34ch; }
  .hero-copy .micro { display: none; }
  .hero-copy .cta-row { flex-direction: column; width: 100%; max-width: 360px; gap: 10px; margin-top: 6px; }
  .hero-copy .cta-row .btn { width: 100%; justify-content: center; }

  /* ---------- Secciones ---------- */
  .block { padding-block: clamp(44px, 11vw, 72px); }
  .sec-head .num { display: none; }
  .sec-head { gap: 8px; margin-bottom: 20px; }
  .sec-head h2, .big-claim { font-size: clamp(1.45rem, 6.6vw, 2rem); letter-spacing: .04em; line-height: 1.2; }
  .big-claim { margin-bottom: 26px; }
  .eyebrow { font-size: .64rem; letter-spacing: .2em; }

  /* ---------- Flujo (4 herramientas): filas compactas ---------- */
  .flow-section { padding-block: 40px 8px; }
  .flow { grid-template-columns: 1fr; gap: 10px; }
  .flow a {
    display: grid; grid-template-columns: 60px 1fr; column-gap: 16px; row-gap: 1px;
    align-items: center; text-align: left; padding: 14px 16px;
  }
  .flow a:hover { transform: none; }
  .flow img { grid-column: 1; grid-row: 1 / span 4; width: 60px; height: 60px; border-radius: 14px; margin: 0; }
  .flow a > *:not(img) { grid-column: 2; }
  .flow .n { font-size: .58rem; }
  .flow b { font-size: .86rem; letter-spacing: .12em; }
  .flow em { font-size: .84rem; }
  .flow span:not(.n) { font-size: .82rem; line-height: 1.4; }

  /* ---------- Producto en Home ---------- */
  .product-showcase { padding-block: 44px; scroll-margin-top: 70px; }
  .product-showcase-header { gap: 10px; margin-bottom: 12px; }
  .product-showcase-header h2 { font-size: clamp(1.6rem, 8vw, 2.1rem); letter-spacing: .04em; }
  .product-showcase-header p { font-size: .98rem; line-height: 1.62; }
  .product-footer-row { flex-direction: column; align-items: stretch; gap: 16px; margin-top: 6px; }
  .product-footer-row .cta-row { flex-direction: column; width: 100%; gap: 10px; }
  .product-footer-row .btn, .product-footer-row > .btn { width: 100%; justify-content: center; }
  .product-tags { gap: 6px; }
  .product-tags .tag, .tag { font-size: .62rem; letter-spacing: .08em; padding: 6px 10px; }

  /* "Cuatro pilares" repite el flujo: se oculta en mobile */
  [aria-label="La suite en pocas palabras"],
  [aria-label="Datos clave"] { display: none; }

  /* ---------- Videos a ancho completo, flotando ---------- */
  .product-reel, .reel {
    width: 100vw; max-width: 100vw;
    margin-inline: calc(50% - 50vw);
    margin-block: 6px;
  }

  /* ---------- Hero de páginas de producto ---------- */
  .p-hero { padding-top: 92px; }
  .p-icon img { width: 96px; height: 96px; }
  .p-hero h1 { font-size: clamp(1.45rem, 7vw, 2rem); letter-spacing: .04em; line-height: 1.22; }
  .p-hero .lede { font-size: 1rem; line-height: 1.6; }
  .p-hero .micro { font-size: .8rem; }
  .p-hero .cta-row { flex-direction: column; width: 100%; max-width: 360px; margin-inline: auto; gap: 10px; }
  .p-hero .cta-row .btn { width: 100%; max-width: none; justify-content: center; }

  /* ---------- Datos clave / cualidades ---------- */
  .spec-grid { grid-template-columns: 1fr 1fr; gap: 10px; }
  .spec { padding: 16px 14px; gap: 6px; }
  .spec h3 { font-size: .6rem; letter-spacing: .18em; }
  .spec b { font-size: .92rem; line-height: 1.3; }
  .spec p { font-size: .8rem; line-height: 1.45; }
  .qual { padding: 20px 18px; }
  .qual h3 { font-size: .9rem; letter-spacing: .08em; }
  .qual p { font-size: .9rem; }
  .qual.lead h3 { font-size: 1.1rem; }
  .qual.lead p { font-size: .95rem; }

  /* ---------- Pasos / FAQ / sinergia / final ---------- */
  .steps li { grid-template-columns: 38px 1fr; gap: 14px; }
  .steps li::before { width: 38px; height: 38px; font-size: .8rem; }
  .steps b { font-size: .74rem; }
  .steps span { font-size: .9rem; }
  .faq { gap: 8px; }
  .faq-item summary { padding: 16px 16px; font-size: .98rem; line-height: 1.35; gap: 12px; min-height: 56px; }
  .faq-item p { padding: 0 16px 18px; font-size: .94rem; }
  .syn { gap: 12px; }
  .syn a { padding: 16px; gap: 14px; }
  .dl-center .cta-row, .final .cta-row { flex-direction: column; align-items: stretch; gap: 10px; }
  .dl-center .btn, .final .btn { width: 100%; max-width: none; justify-content: center; }
  .final { padding-block: 64px 0; }
  .final h2 { font-size: clamp(1.4rem, 7vw, 2rem); letter-spacing: .06em; }
  .req { gap: 8px; }
  .req span { font-size: .78rem; }
  .table-wrap { overflow-x: auto; -webkit-overflow-scrolling: touch; }
  table.avail { font-size: .8rem; min-width: 460px; }
  .about { grid-template-columns: 1fr; gap: 22px; }
  .about img { width: min(220px, 60%); margin-inline: auto; }

  /* ---------- Botones: tacto cómodo ---------- */
  .btn { min-height: 52px; font-size: .7rem; letter-spacing: .14em; padding-inline: 20px; }
  .btn.small { min-height: 40px; }
  .btn > span { display: flex; flex-direction: column; align-items: flex-start; gap: 3px; text-align: left; }
  .btn small { display: block; font-size: .56rem; letter-spacing: .12em; opacity: .7; }
  .site-header .btn.small { white-space: nowrap; padding: 8px 10px; font-size: .56rem; letter-spacing: .1em; }
  .site-header .brand span { letter-spacing: .12em; }

  /* ---------- Footer ---------- */
  footer .wrap { flex-direction: column; gap: 14px; text-align: center; padding-block: 28px; }
  footer nav { flex-wrap: wrap; justify-content: center; gap: 10px 20px; }
}

/* =========================================================================
   MOBILE CHICO  (<= 600px): videos verticales
   ========================================================================= */
@media (max-width: 600px) {
  .product-reel .player-frame,
  .reel .player-frame {
    aspect-ratio: 9 / 16;
    width: 100%;
    max-height: 82svh;
    margin-inline: auto;
  }
  .player-tools { right: 16px; bottom: 28px; }
  .pbtn { font-size: .56rem; padding: 8px 12px; min-height: 36px; }
}

/* =========================================================================
   380px y menos
   ========================================================================= */
@media (max-width: 400px) {
  .hero-cinema .hero-inner { padding-top: 80px; }
  .spec-grid { grid-template-columns: 1fr; }
  .flow a { grid-template-columns: 52px 1fr; column-gap: 14px; padding: 12px 14px; }
  .flow img { width: 52px; height: 52px; }
  .product-tags .tag, .tag { font-size: .58rem; padding: 5px 8px; }
  .btn { font-size: .66rem; letter-spacing: .12em; }
  .faq-item summary { font-size: .94rem; }
  .site-header .brand span { font-size: .85rem; letter-spacing: .14em; }
}
