/**
 * Estilos personalizados de la aplicacion
 * Agrega aqui tus estilos CSS custom
 */

/* Ejemplo: animaciones personalizadas */
@keyframes fadeIn {
    from { opacity: 0; transform: translateY(10px); }
    to { opacity: 1; transform: translateY(0); }
}

.animate-fade-in {
    animation: fadeIn 0.3s ease-out;
}

.home-hero-copy {
    animation: homeHeroEnter 0.75s ease-out both;
}

.home-hero-image {
    animation: homeHeroImageEnter 0.85s ease-out both, homeHeroFloat 6s ease-in-out 0.85s infinite;
    filter: drop-shadow(0 24px 38px rgba(0, 18, 71, 0.22));
}

.home-speed-neon {
    display: inline-block;
    animation: homeSpeedNeon 3.6s ease-in-out infinite;
    text-shadow:
        0 0 5px rgba(246, 184, 0, 0.34),
        0 0 12px rgba(246, 184, 0, 0.22),
        0 0 24px rgba(0, 166, 214, 0.14);
}

.about-card {
    animation: aboutCardEnter 0.72s ease-out both;
}

.about-card:nth-child(2) {
    animation-delay: 0.12s;
}

.about-card:nth-child(3) {
    animation-delay: 0.24s;
}

.plans-card {
    animation: plansCardEnter 0.58s ease-out backwards;
}

.plans-card:nth-child(2) {
    animation-delay: 0.08s;
}

.plans-card:nth-child(3) {
    animation-delay: 0.16s;
}

.plans-card:nth-child(4) {
    animation-delay: 0.24s;
}

.plan-whatsapp-button {
    gap: 0;
}

.plan-whatsapp-button.text-white,
.plan-whatsapp-button.text-white:hover,
.plan-whatsapp-button.text-white:focus-visible {
    color: #fff;
}

.plan-whatsapp-button.text-foreground,
.plan-whatsapp-button.text-foreground:hover,
.plan-whatsapp-button.text-foreground:focus-visible {
    color: var(--color-foreground);
}

.contrast-link,
.contrast-link:hover,
.contrast-link:focus-visible {
    color: #fff;
}

.plan-whatsapp-icon {
    width: 0;
    opacity: 0;
    transform: translateX(-8px) scale(0.9);
    overflow: hidden;
    font-size: 1.15rem;
    transition: width var(--transition-base), opacity var(--transition-base), transform var(--transition-base), margin-right var(--transition-base);
}

.plan-whatsapp-button:hover .plan-whatsapp-icon,
.plan-whatsapp-button:focus-visible .plan-whatsapp-icon {
    width: 1.15rem;
    opacity: 1;
    margin-right: 0.5rem;
    transform: translateX(0) scale(1);
}

@keyframes homeHeroEnter {
    from {
        opacity: 0;
        transform: translateY(18px);
    }
    to {
        opacity: 1;
        transform: translateY(0);
    }
}

@keyframes homeHeroImageEnter {
    from {
        opacity: 0;
        transform: translateY(22px) scale(0.98);
    }
    to {
        opacity: 1;
        transform: translateY(0) scale(1);
    }
}

@keyframes homeHeroFloat {
    0%, 100% {
        transform: translate3d(0, 0, 0);
    }
    50% {
        transform: translate3d(0, -12px, 0);
    }
}

@keyframes homeSpeedNeon {
    0%, 100% {
        filter: brightness(1);
        text-shadow:
            0 0 5px rgba(246, 184, 0, 0.32),
            0 0 12px rgba(246, 184, 0, 0.2),
            0 0 22px rgba(0, 166, 214, 0.12);
    }
    45% {
        filter: brightness(1.06);
        text-shadow:
            0 0 7px rgba(255, 221, 99, 0.5),
            0 0 16px rgba(246, 184, 0, 0.34),
            0 0 30px rgba(0, 166, 214, 0.18);
    }
    52% {
        filter: brightness(0.98);
        text-shadow:
            0 0 4px rgba(246, 184, 0, 0.24),
            0 0 10px rgba(246, 184, 0, 0.16),
            0 0 20px rgba(0, 166, 214, 0.1);
    }
    58% {
        filter: brightness(1.08);
        text-shadow:
            0 0 8px rgba(255, 236, 153, 0.56),
            0 0 18px rgba(246, 184, 0, 0.38),
            0 0 34px rgba(0, 166, 214, 0.2);
    }
}

@keyframes aboutCardEnter {
    from {
        opacity: 0;
        transform: translateY(24px);
    }
    to {
        opacity: 1;
        transform: translateY(0);
    }
}

@keyframes plansCardEnter {
    from {
        opacity: 0;
        transform: translateY(22px) scale(0.98);
    }
    to {
        opacity: 1;
        transform: translateY(0) scale(1);
    }
}

@keyframes plansPopularCardEnter {
    from {
        opacity: 0;
        transform: translateY(14px) scale(1.03);
    }
    to {
        opacity: 1;
        transform: translateY(-0.5rem) scale(1.05);
    }
}

@media (min-width: 1024px) {
    .plans-card-popular {
        animation-name: plansPopularCardEnter;
    }
}

.plans-section {
    isolation: isolate;
}

.plans-background {
    position: absolute;
    inset: 0;
    z-index: 0;
    pointer-events: none;
    overflow: hidden;
}

.plans-background::before {
    content: "";
    position: absolute;
    inset: 0;
    background-image:
        radial-gradient(circle, rgba(0, 166, 214, 0.28) 1px, transparent 1.5px),
        radial-gradient(circle, rgba(246, 184, 0, 0.22) 1px, transparent 1.5px);
    background-position: 0 0, 28px 34px;
    background-size: 72px 72px, 96px 96px;
    opacity: 0.45;
    animation: plansParticleDrift 22s linear infinite;
}

.plans-glow,
.plans-particle,
.plans-float {
    position: absolute;
    display: block;
}

.plans-glow {
    border-radius: 9999px;
    filter: blur(4px);
}

.plans-glow-1 {
    width: 360px;
    height: 360px;
    top: -110px;
    left: -130px;
    background: radial-gradient(circle, rgba(0, 166, 214, 0.24), transparent 68%);
}

.plans-glow-2 {
    width: 420px;
    height: 420px;
    right: -150px;
    bottom: -170px;
    background: radial-gradient(circle, rgba(246, 184, 0, 0.18), transparent 66%);
}

.plans-particle {
    width: 8px;
    height: 8px;
    border-radius: 9999px;
    background: var(--color-secondary);
    box-shadow: 0 0 18px rgba(0, 166, 214, 0.45);
    opacity: 0.46;
    animation: plansFloat 9s ease-in-out infinite;
}

.plans-particle-1 { top: 18%; left: 8%; animation-delay: -1s; }
.plans-particle-2 { top: 34%; left: 92%; width: 11px; height: 11px; background: var(--color-accent); animation-delay: -3s; }
.plans-particle-3 { top: 76%; left: 14%; width: 6px; height: 6px; animation-delay: -5s; }
.plans-particle-4 { top: 14%; left: 72%; width: 7px; height: 7px; background: var(--color-primary-light); animation-delay: -2s; }
.plans-particle-5 { top: 62%; left: 83%; width: 9px; height: 9px; animation-delay: -6s; }
.plans-particle-6 { top: 88%; left: 48%; width: 7px; height: 7px; background: var(--color-accent); animation-delay: -4s; }

.plans-float {
    color: rgba(0, 31, 115, 0.12);
    width: clamp(56px, 8vw, 112px);
    height: auto;
    animation: plansFloat 10s ease-in-out infinite;
}

.plans-float-wifi {
    top: 12%;
    right: 10%;
    color: rgba(0, 166, 214, 0.22);
    animation-delay: -2s;
}

.plans-float-spark {
    top: 22%;
    left: 5%;
    color: rgba(246, 184, 0, 0.24);
    width: clamp(42px, 6vw, 82px);
    animation-delay: -5s;
}

.plans-float-bolt {
    right: 4%;
    bottom: 16%;
    color: rgba(246, 184, 0, 0.23);
    width: clamp(48px, 7vw, 92px);
    animation-delay: -7s;
}

.plans-float-ring {
    left: 7%;
    bottom: 10%;
    color: rgba(0, 166, 214, 0.18);
    animation-delay: -4s;
}

@keyframes plansParticleDrift {
    from { transform: translate3d(0, 0, 0); }
    to { transform: translate3d(-96px, -72px, 0); }
}

@keyframes plansFloat {
    0%, 100% { transform: translate3d(0, 0, 0) rotate(0deg); }
    50% { transform: translate3d(12px, -18px, 0) rotate(5deg); }
}

@media (prefers-reduced-motion: reduce) {
    .home-hero-copy,
    .home-hero-image,
    .home-speed-neon,
    .about-card,
    .plans-card,
    .plans-background::before,
    .plans-particle,
    .plans-float {
        animation: none;
    }
}

.legal-doc-tile {
    min-height: 230px;
    display: flex;
    flex-direction: column;
    align-items: center;
    gap: 1rem;
    padding: 1.75rem 1.25rem;
    text-align: center;
    border: 1px solid rgba(31, 41, 55, 0.1);
    border-radius: 0.75rem;
    background: #F2F6FE;
    box-shadow: 0 4px 15px rgba(0, 0, 0, 0.05);
    transition: transform var(--transition-slow), border-color var(--transition-slow), box-shadow var(--transition-slow);
}

.legal-doc-tile:hover {
    transform: translateY(-5px);
    border-color: var(--color-primary);
    box-shadow: 0 8px 25px rgba(0, 31, 115, 0.15);
}

.legal-doc-icon {
    width: 5.5rem;
    height: 5.5rem;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    border: 2px solid transparent;
    border-radius: 9999px;
    box-shadow: 0 6px 16px rgba(0, 0, 0, 0.1);
    transition: transform var(--transition-slow), background-color var(--transition-slow), color var(--transition-slow), border-color var(--transition-slow);
}

.legal-doc-tile:hover .legal-doc-icon {
    transform: scale(1.08);
}
