/* =====================================================================
   Presta Más Fácil — estilos y animaciones de la landing pública.
   Complementan a Tailwind (CDN). Todo lo continuo (blobs, flotado,
   marquesina, gradientes animados) vive aquí; el reveal al hacer scroll
   lo maneja AOS y los contadores landing.js.
   ===================================================================== */

:root {
    --brand: #0ac17d;
    --brand-600: #059669;
    --brand-700: #047857;
    --ink: #0f172a;
}

html {
    scroll-behavior: smooth;
}

body {
    font-family: 'Plus Jakarta Sans', 'Segoe UI', system-ui, sans-serif;
    color: var(--ink);
    background: #ffffff;
}

/* Los <section> del CSS viejo forzaban padding; aquí lo neutralizamos
   para controlar el espaciado con utilidades de Tailwind. */
section {
    padding: 0;
}

/* ---------------------------------------------------------------------
   Texto con degradado de marca
   ------------------------------------------------------------------- */
.text-gradient {
    background: linear-gradient(120deg, #0ac17d 0%, #14b8a6 50%, #0891b2 100%);
    -webkit-background-clip: text;
    background-clip: text;
    -webkit-text-fill-color: transparent;
    color: transparent;
}

/* ---------------------------------------------------------------------
   Malla de fondo del hero + blobs animados
   ------------------------------------------------------------------- */
.hero-mesh {
    position: relative;
    isolation: isolate;
    background:
        radial-gradient(60% 60% at 15% 10%, rgba(10, 193, 125, .16), transparent 60%),
        radial-gradient(50% 50% at 90% 20%, rgba(8, 145, 178, .14), transparent 60%),
        radial-gradient(60% 60% at 50% 100%, rgba(20, 184, 166, .12), transparent 60%);
}

.hero-grid {
    position: absolute;
    inset: 0;
    z-index: -1;
    background-image:
        linear-gradient(to right, rgba(15, 23, 42, .04) 1px, transparent 1px),
        linear-gradient(to bottom, rgba(15, 23, 42, .04) 1px, transparent 1px);
    background-size: 44px 44px;
    -webkit-mask-image: radial-gradient(ellipse 80% 60% at 50% 0%, #000 40%, transparent 75%);
    mask-image: radial-gradient(ellipse 80% 60% at 50% 0%, #000 40%, transparent 75%);
}

.blob {
    position: absolute;
    border-radius: 9999px;
    filter: blur(48px);
    opacity: .55;
    z-index: -1;
    animation: blob 18s ease-in-out infinite;
}

@keyframes blob {
    0%, 100% { transform: translate(0, 0) scale(1); }
    33% { transform: translate(24px, -32px) scale(1.12); }
    66% { transform: translate(-22px, 18px) scale(.92); }
}

/* ---------------------------------------------------------------------
   Flotado suave (tarjetas del mockup)
   ------------------------------------------------------------------- */
.animate-float { animation: float 6s ease-in-out infinite; }
.animate-float-slow { animation: float 9s ease-in-out infinite; }

@keyframes float {
    0%, 100% { transform: translateY(0); }
    50% { transform: translateY(-14px); }
}

/* ---------------------------------------------------------------------
   Vidrio (glassmorphism) para navbar y tarjetas flotantes
   ------------------------------------------------------------------- */
.glass {
    background: rgba(255, 255, 255, .72);
    backdrop-filter: saturate(180%) blur(12px);
    -webkit-backdrop-filter: saturate(180%) blur(12px);
}

/* Navbar: sombra que aparece al hacer scroll (la activa landing.js). */
.nav-shell {
    transition: background-color .3s ease, box-shadow .3s ease, border-color .3s ease;
}
.nav-shell.is-scrolled {
    background: rgba(255, 255, 255, .82);
    backdrop-filter: saturate(180%) blur(12px);
    -webkit-backdrop-filter: saturate(180%) blur(12px);
    box-shadow: 0 8px 30px rgba(15, 23, 42, .06);
    border-color: rgba(15, 23, 42, .06);
}

/* ---------------------------------------------------------------------
   Marquesina de sectores / integraciones
   ------------------------------------------------------------------- */
.marquee {
    display: flex;
    gap: 3rem;
    width: max-content;
    animation: marquee 32s linear infinite;
}
.marquee-mask {
    -webkit-mask-image: linear-gradient(to right, transparent, #000 12%, #000 88%, transparent);
    mask-image: linear-gradient(to right, transparent, #000 12%, #000 88%, transparent);
}
.marquee-track:hover .marquee { animation-play-state: paused; }

@keyframes marquee {
    from { transform: translateX(0); }
    to { transform: translateX(-50%); }
}

/* ---------------------------------------------------------------------
   Tarjetas: elevación al pasar el mouse
   ------------------------------------------------------------------- */
.card-lift {
    transition: transform .35s cubic-bezier(.2, .8, .2, 1), box-shadow .35s ease;
}
.card-lift:hover {
    transform: translateY(-6px);
    box-shadow: 0 24px 50px -20px rgba(15, 23, 42, .25);
}

/* Borde con degradado (para tarjetas destacadas) */
.gradient-ring {
    position: relative;
}
.gradient-ring::before {
    content: "";
    position: absolute;
    inset: 0;
    border-radius: inherit;
    padding: 1.5px;
    background: linear-gradient(135deg, #0ac17d, #14b8a6, #0891b2);
    -webkit-mask: linear-gradient(#000 0 0) content-box, linear-gradient(#000 0 0);
    -webkit-mask-composite: xor;
    mask-composite: exclude;
    pointer-events: none;
}

/* ---------------------------------------------------------------------
   Botón brillo (shimmer) para CTAs primarios
   ------------------------------------------------------------------- */
.btn-shine {
    position: relative;
    overflow: hidden;
}
.btn-shine::after {
    content: "";
    position: absolute;
    top: 0;
    left: -120%;
    width: 60%;
    height: 100%;
    background: linear-gradient(120deg, transparent, rgba(255, 255, 255, .35), transparent);
    transform: skewX(-20deg);
    transition: left .6s ease;
}
.btn-shine:hover::after { left: 130%; }

/* ---------------------------------------------------------------------
   FAQ nativo (<details>)
   ------------------------------------------------------------------- */
.faq-item[open] .faq-icon { transform: rotate(45deg); }
.faq-icon { transition: transform .25s ease; }
.faq-item summary { list-style: none; }
.faq-item summary::-webkit-details-marker { display: none; }

/* Botón volver arriba */
#toTopBtn {
    position: fixed;
    bottom: 26px;
    right: 26px;
    z-index: 60;
    width: 48px;
    height: 48px;
    display: none;
    align-items: center;
    justify-content: center;
    border-radius: 9999px;
    color: #fff;
    background: linear-gradient(135deg, #0ac17d, #059669);
    box-shadow: 0 12px 30px -8px rgba(10, 193, 125, .6);
    transition: transform .25s ease, opacity .3s ease;
}
#toTopBtn:hover { transform: translateY(-3px) scale(1.05); }

/* ---------------------------------------------------------------------
   Respeta a quien prefiere menos movimiento
   ------------------------------------------------------------------- */
@media (prefers-reduced-motion: reduce) {
    .blob, .animate-float, .animate-float-slow, .marquee { animation: none !important; }
    html { scroll-behavior: auto; }
}
