/* Guía de bienvenida de Juan (public/js/guia.js) */
.gu { position: fixed; inset: 0; z-index: 9000; opacity: 0; transition: opacity .45s ease; pointer-events: none; }
.gu > * { pointer-events: auto; }
/* Bloqueo: cubre toda la app mientras Juan explica (no se toca ni se desliza nada; Juan lleva el recorrido) */
.gu-bloqueo { position: fixed; inset: 0; background: transparent; touch-action: none; }
.gu .gu-luz { pointer-events: none; }
.gu.visible { opacity: 1; }
.gu.fuera { opacity: 0; pointer-events: none; }


/* La "ventana de luz": un rectángulo transparente con una sombra gigante que oscurece todo lo demás. */
.gu-luz { position: fixed; border-radius: 18px; pointer-events: none;
  box-shadow: 0 0 0 200vmax rgba(28, 16, 52, .66), 0 0 0 3px rgba(255, 255, 255, .95), 0 0 26px 6px rgba(214, 36, 110, .55);
  transition: left .55s cubic-bezier(.22, .9, .25, 1), top .55s cubic-bezier(.22, .9, .25, 1), width .55s cubic-bezier(.22, .9, .25, 1), height .55s cubic-bezier(.22, .9, .25, 1), border-radius .55s; }
.gu-luz::after { content: ''; position: absolute; inset: -3px; border-radius: inherit; border: 2px solid var(--magenta, #D6246E); animation: gu-latido 1.8s ease-out infinite; }
.gu-luz[style*="width: 0px"]::after { display: none; }
@keyframes gu-latido { 0% { transform: scale(1); opacity: .9; } 100% { transform: scale(1.12); opacity: 0; } }

/* Burbuja de Juan */
.gu-burbuja { position: fixed; background: #fff; border-radius: 22px; padding: 16px 16px 12px; color: var(--navy, #1E1B4B);
  box-shadow: 0 18px 50px rgba(20, 10, 40, .35), 0 2px 6px rgba(20, 10, 40, .12);
  transition: left .5s cubic-bezier(.22, .9, .25, 1), top .5s cubic-bezier(.22, .9, .25, 1), opacity .25s; }
.gu-burbuja.sale { opacity: .0; }
.gu-burbuja.entra { animation: gu-entra .5s cubic-bezier(.2, .9, .3, 1.2) both; }
@keyframes gu-entra { from { opacity: 0; transform: translateY(12px) scale(.94); } to { opacity: 1; transform: none; } }
.gu-flecha { position: absolute; width: 18px; height: 18px; background: #fff; transform: translateX(-50%) rotate(45deg); border-radius: 3px; }
.gu-flecha.arriba { top: -7px; }
.gu-flecha.abajo { bottom: -7px; }
.gu-cab { display: flex; gap: 12px; align-items: flex-start; }
.gu-cab .juflor { flex: none; margin-top: 2px; }
.gu-texto { margin: 0; font-size: 16.5px; line-height: 1.45; font-weight: 500; }
.gu-texto span { display: inline-block; animation: gu-palabra .45s ease both; animation-delay: calc(var(--k) * 26ms + 120ms); }
@keyframes gu-palabra { from { opacity: 0; transform: translateY(5px); filter: blur(2px); } to { opacity: 1; transform: none; filter: none; } }
/* Título de la sección (arriba del texto) */
.gu-cuerpo { flex: 1; min-width: 0; }
.gu-titulo { display: inline-block; margin-bottom: 4px; padding: 2px 9px; border-radius: 99px; background: linear-gradient(90deg, rgba(242, 140, 40, .14), rgba(214, 36, 110, .14)); color: var(--magenta, #D6246E); font-size: 11.5px; font-weight: 700; letter-spacing: .04em; text-transform: uppercase; }
.gu.cargando .gu-texto { color: #8C87A0; animation: gu-respira 1.6s ease-in-out infinite; }

/* Repetir y Siguiente: solo aparecen cuando Juan termina de explicar la sección */
.gu-pie { display: flex; align-items: center; justify-content: space-between; gap: 10px; max-height: 0; margin-top: 0; opacity: 0; overflow: hidden; pointer-events: none; transform: translateY(6px);
  transition: max-height .4s cubic-bezier(.22, .9, .25, 1), margin-top .4s cubic-bezier(.22, .9, .25, 1), opacity .3s ease .08s, transform .4s cubic-bezier(.2, .9, .3, 1.2) .08s; }
.gu.fin .gu-pie { max-height: 64px; margin-top: 14px; opacity: 1; pointer-events: auto; transform: none; }
.gu-repetir { display: inline-flex; align-items: center; gap: 6px; height: 40px; padding: 0 14px 0 10px; border: 1.5px solid #EFE7F3; border-radius: 99px; background: #fff; color: #5E5878; font: inherit; font-size: 14.5px; font-weight: 600; transition: transform .2s, background .2s; }
.gu-repetir .ico { width: 17px; height: 17px; color: var(--magenta, #D6246E); }
.gu-repetir:active { transform: scale(.94); background: #FBF4F8; }
.gu-sig { flex: none; gap: 6px; }
.gu-sig .ico { width: 18px; height: 18px; }
.gu.fin .gu-sig { animation: gu-llama 1.6s ease-in-out .6s 2; }
@keyframes gu-llama { 50% { transform: scale(1.06); box-shadow: 0 0 0 6px rgba(214, 36, 110, .15); } }

/* Flor de Juan: respira quieta, se abre y late mientras habla */
.gu-flor svg { transition: transform .4s ease; }
.gu.habla .gu-flor svg, .ju-titulo.gu-habla .juflor svg { animation: gu-habla .9s ease-in-out infinite alternate; }
@keyframes gu-habla { from { transform: scale(1) rotate(0deg); } to { transform: scale(1.14) rotate(14deg); } }
.gu:not(.habla) .gu-flor svg { animation: gu-respira 3.2s ease-in-out infinite; }
@keyframes gu-respira { 50% { transform: scale(1.04); } }

/* Botón de volumen (arriba a la izquierda) y "Saltar guía" (arriba a la derecha) */
.gu-vol, .gu-saltar { position: fixed; top: calc(env(safe-area-inset-top, 0px) + 14px); z-index: 2; border: 0; font: inherit; transition: transform .2s, background .25s, color .25s; }
.gu-vol { width: 44px; height: 44px; border-radius: 50%; display: grid; place-items: center; background: #fff; color: var(--magenta, #D6246E); box-shadow: 0 6px 18px rgba(20, 10, 40, .3); }
.gu-vol .ico { width: 22px; height: 22px; }
.gu-vol.mudo { background: rgba(255, 255, 255, .82); color: #8C87A0; }
.gu-vol::after { content: ''; position: absolute; inset: 0; border-radius: 50%; border: 2px solid rgba(255, 255, 255, .9); opacity: 0; }
.gu.habla .gu-vol::after { animation: gu-onda 1.2s ease-out infinite; }
@keyframes gu-onda { from { transform: scale(1); opacity: .9; } to { transform: scale(1.55); opacity: 0; } }
.gu-vol:active, .gu-saltar:active { transform: scale(.92); }
.gu-saltar { padding: 10px 14px; border-radius: 99px; background: rgba(255, 255, 255, .16); color: #fff; font-size: 14px; font-weight: 600; backdrop-filter: blur(6px); -webkit-backdrop-filter: blur(6px); }

/* Cierre: solo queda el botón de volumen encima del chat de Juan */
.gu.cierra .gu-burbuja, .gu.cierra .gu-saltar { opacity: 0; transform: scale(.96); transition: opacity .3s, transform .3s; pointer-events: none; }
.gu.cierra .gu-luz { opacity: 0; transition: opacity .35s; }
.gu.solo-vol .gu-bloqueo, .gu.solo-vol .gu-luz, .gu.solo-vol .gu-burbuja, .gu.solo-vol .gu-saltar { display: none; }
.gu.solo-vol { pointer-events: none; }
.gu.solo-vol .gu-vol { pointer-events: auto; top: auto; bottom: calc(env(safe-area-inset-bottom, 0px) + 92px); }

/* Opciones del final en el chat de Juan */
.ju-opciones { display: flex; flex-direction: column; gap: 10px; padding: 4px 0 4px 36px; }
.ju-opc { display: flex; align-items: center; gap: 12px; width: 100%; padding: 10px 14px 10px 10px; border-radius: 18px; background: #fff; border: 1.5px solid #EFE7F3; color: var(--navy, #1E1B4B); font: inherit; font-size: 16px; text-align: left;
  box-shadow: 0 3px 10px rgba(30, 20, 60, .06); animation: gu-entra .5s cubic-bezier(.2, .9, .3, 1.2) both; animation-delay: calc(var(--i) * 90ms + 250ms); }
.ju-opc b { flex: 1; font-weight: 600; }
.ju-opc > .ico { width: 18px; height: 18px; color: #B0AAC2; }
.ju-opc:active { transform: scale(.98); }

@media (prefers-reduced-motion: reduce) {
  .gu-luz, .gu-burbuja { transition: none; }
  .gu-luz::after, .gu-texto span, .gu-flor svg, .gu.habla .gu-vol::after { animation: none !important; }
}

.gu-demo-toque { animation: gu-demo .6s ease; }
@keyframes gu-demo { 40% { transform: scale(.94); filter: brightness(1.1); } }

/* Si el teléfono no dejó sonar a Juan solo: botón para escucharlo */
.gu-toca { display: flex; align-items: center; justify-content: center; gap: 8px; width: 100%; margin-top: 12px; height: 40px; border-radius: 999px; background: var(--magenta-s, #FCE4EE); color: var(--magenta, #D6246E); font: inherit; font-size: 14.5px; font-weight: 700; border: 0; animation: gu-entra .4s both; }
.gu-toca[hidden] { display: none; }
.gu-toca .ico { width: 18px; height: 18px; }

.gu.siguiendo .gu-luz, .gu.siguiendo .gu-burbuja { transition: none !important; }
.gu-toca:not([hidden]) { animation: gu-toca-pulso 1.6s ease-in-out infinite; }
@keyframes gu-toca-pulso { 50% { box-shadow: 0 0 0 5px rgba(214, 36, 110, .16); background: #F9D3E3; } }
