/* 
  Estilos adicionales personalizados que no se pueden manejar solo con Tailwind.
  La mayoría del sistema visual está definido en index.html mediante Tailwind Custom Config.
*/

:root {
    --brand-primary: #FF6B00;
}

body {
    -webkit-font-smoothing: antialiased;
    -moz-osx-font-smoothing: grayscale;
}

/* Glassmorphism utility extra */
.glass-effect {
    background: rgba(255, 255, 255, 0.03);
    backdrop-filter: blur(10px);
    -webkit-backdrop-filter: blur(10px);
    border: 1px solid rgba(255, 255, 255, 0.05);
}

/* Custom premium animations */
@keyframes fadeInUp {
    from { opacity: 0; transform: translateY(30px); }
    to { opacity: 1; transform: translateY(0); }
}

@keyframes revealFromLeft {
    from { opacity: 0; transform: translateX(-50px); }
    to { opacity: 1; transform: translateX(0); }
}

@keyframes revealFromRight {
    from { opacity: 0; transform: translateX(50px); }
    to { opacity: 1; transform: translateX(0); }
}

@keyframes carDrift {
    0% { transform: translateX(100%) scale(1); opacity: 0; }
    10% { opacity: 0.15; }
    90% { opacity: 0.15; }
    100% { transform: translateX(-150%) scale(1.1); opacity: 0; }
}

@keyframes shineEffect {
    0% { transform: translateX(-100%) skewX(-30deg); }
    100% { transform: translateX(200%) skewX(-30deg); }
}

@keyframes carScaleIn {
    0% { opacity: 0; transform: scale(0) translateX(60px); }
    70% { opacity: 1; transform: scale(1.08) translateX(0); }
    100% { opacity: 1; transform: scale(1) translateX(0); }
}

.reveal { opacity: 0; transition: none; }
.reveal.active { animation: fadeInUp 1s cubic-bezier(0.22, 1, 0.36, 1) forwards; }

.reveal-left { opacity: 0; }
.reveal-left.active { animation: revealFromLeft 1.2s cubic-bezier(0.22, 1, 0.36, 1) forwards; }

.reveal-right { opacity: 0; }
.reveal-right.active { animation: revealFromRight 1.2s cubic-bezier(0.22, 1, 0.36, 1) forwards; }

.reveal-car-scale { opacity: 0; }
.reveal-car-scale.active { animation: carScaleIn 6s cubic-bezier(0.22, 1, 0.36, 1) forwards; }

.promo-shine::after {
    content: '';
    position: absolute;
    top: 0;
    left: 0;
    width: 100%;
    height: 100%;
    background: linear-gradient(
        90deg,
        transparent,
        rgba(255, 255, 255, 0.05),
        rgba(255, 255, 255, 0.15),
        rgba(255, 255, 255, 0.05),
        transparent
    );
    transform: translateX(-100%) skewX(-30deg);
}

.promo-shine.active::after {
    animation: shineEffect 2s ease-in-out 1s forwards;
}

@keyframes progressShimmer {
    0% { transform: translateX(-100%); }
    100% { transform: translateX(200%); }
}

.animate-progress-shimmer {
    animation: progressShimmer 3s infinite linear;
    width: 100%;
}

.animate-car-drift {
    animation: carDrift 20s linear infinite;
}

/* Staggered delays for a professional flow */
.delay-100 { animation-delay: 0.15s !important; }
.delay-200 { animation-delay: 0.3s !important; }
.delay-300 { animation-delay: 0.45s !important; }

/* Smooth transitions for FAQ Accordion */
.faq-answer {
    max-height: 0;
    overflow: hidden;
    transition: max-height 0.4s cubic-bezier(0.4, 0, 0.2, 1), opacity 0.4s ease;
    opacity: 0;
}

.faq-answer.open {
    max-height: 1000px;
    opacity: 1;
    padding-bottom: 1.5rem;
}

.faq-icon {
    transition: transform 0.4s cubic-bezier(0.4, 0, 0.2, 1);
}

.faq-item.open .faq-icon {
    transform: rotate(180deg);
}

.faq-item.open {
    border-color: rgba(255, 107, 0, 0.3);
    background: white;
}

/* Custom scrollbar for premium look */
::-webkit-scrollbar {
    width: 10px;
}

::-webkit-scrollbar-track {
    background: #050505;
}

::-webkit-scrollbar-thumb {
    background: #222;
    border-radius: 5px;
}

::-webkit-scrollbar-thumb:hover {
    background: #FF6B00;
}
