/* Compra siempre a mano (ui/buy-dock.js). Hereda de .btn el relleno que brota desde el puntero.
   Escritorio: píldora de contorno en la cabecera. Móvil: píldora sólida fija abajo, en la zona del pulgar. */
.btn--buy {
  flex: none;
  padding: 13px 20px;
  font-size: 11px;
  /* Siempre a la vista: sin backdrop-filter, que desenfocaría la tela WebGL de debajo en cada frame */
  background: rgb(10 2 3 / 0.4);
  -webkit-backdrop-filter: none;
  backdrop-filter: none;
}
.btn--buy .btn__inner { gap: 10px; }

@media (max-width: 760px) {
  .btn--buy {
    position: fixed;
    left: 16px;
    right: 16px;
    bottom: calc(16px + env(safe-area-inset-bottom, 0px));
    width: fit-content;
    max-width: calc(100% - 32px);
    margin: 0 auto;
    padding: 18px 30px;
    color: var(--ink-dark);
    background: var(--cream);
    -webkit-backdrop-filter: none;
    backdrop-filter: none;
    box-shadow: 0 14px 34px -10px rgb(0 0 0 / 0.75), 0 0 0 1px rgb(20 4 10 / 0.12);
    transition:
      color 0.5s var(--ease-out),
      transform 0.7s var(--ease-out),
      opacity 0.45s var(--ease-out),
      visibility 0s;
  }
  .btn--buy .btn__fill { background: var(--blood); }
  .btn--buy:active,
  .btn--buy:focus-visible { color: var(--cream); }

  /* Fuera de vista mientras el botón del hero o el del cierre están en pantalla. Arranca así desde el HTML
     (sin destello al cargar); sin JS no se esconde nunca. */
  .js .btn--buy.is-tucked {
    opacity: 0;
    visibility: hidden;
    transform: translateY(calc(100% + 16px + env(safe-area-inset-bottom, 0px)));
    transition:
      color 0.5s var(--ease-out),
      transform 0.6s var(--ease-in-out),
      opacity 0.4s var(--ease-out),
      visibility 0s 0.6s;
  }
}
