/* Luxurious Hero Banner Animation */

.luxury-tagline {
    margin-bottom: 30px;
    opacity: 0;
    animation: fadeInDown 1.2s ease-out 0.3s forwards;
}

.luxury-text {
    display: inline-block;
    font-family: 'Georgia', 'Times New Roman', serif;
    font-size: 24px;
    font-weight: 300;
    letter-spacing: 10px;
    text-transform: uppercase;
    color: #ffffff;
    position: relative;
    padding: 0 20px;
    opacity: 0;
    animation: 
        luxuryRevealRefined 2.2s ease-out 0.5s forwards,
        subtleGlow 4s ease-in-out 3s infinite;
    text-shadow: 
        0 2px 12px rgba(0, 0, 0, 0.4),
        0 0 15px rgba(212, 175, 55, 0.15);
}

.luxury-text::before,
.luxury-text::after {
    content: '';
    position: absolute;
    top: 50%;
    width: 60px;
    height: 1px;
    background: linear-gradient(90deg, transparent, #d4af37, transparent);
    transform: translateY(-50%);
    opacity: 0;
    box-shadow: 0 0 6px rgba(212, 175, 55, 0.4);
}

.luxury-text::before {
    left: -80px;
    animation: lineSlideIn 1.5s ease-out 1s forwards;
}

.luxury-text::after {
    right: -80px;
    animation: lineSlideIn 1.5s ease-out 1s forwards;
}

.hero-heading {
    opacity: 0;
    transform: translateY(20px);
    animation: fadeInUp 1s ease-out 0.8s forwards;
    font-family: 'Playfair Display', Georgia, serif !important;
    font-weight: 600 !important;
    letter-spacing: 1px !important;
    font-size: 3.5rem !important;
    line-height: 1.2 !important;
}

@media (max-width: 768px) {
    .hero-heading {
        font-size: 2.2rem !important;
        letter-spacing: 0.5px !important;
    }
}

.hero-subheading {
    opacity: 0;
    transform: translateY(20px);
    animation: fadeInUp 1s ease-out 1.2s forwards;
}

.hero-cta {
    opacity: 0;
    transform: translateY(20px);
    animation: fadeInUp 1s ease-out 1.6s forwards;
}

/* Keyframe Animations */

@keyframes luxuryRevealRefined {
    0% {
        opacity: 0;
        letter-spacing: 18px;
        transform: translateY(-20px) scale(0.95);
    }
    50% {
        opacity: 0.6;
    }
    100% {
        opacity: 1;
        letter-spacing: 10px;
        transform: translateY(0) scale(1);
    }
}

@keyframes luxuryRevealSmooth {
    0% {
        opacity: 0;
        letter-spacing: 18px;
        transform: translateY(-20px) scale(0.95);
    }
    50% {
        opacity: 0.6;
    }
    100% {
        opacity: 1;
        letter-spacing: 10px;
        transform: translateY(0) scale(1);
    }
}

@keyframes luxuryReveal {
    0% {
        opacity: 0;
        letter-spacing: 15px;
        transform: translateY(-15px);
    }
    60% {
        opacity: 0.7;
    }
    100% {
        opacity: 1;
        letter-spacing: 8px;
        transform: translateY(0);
    }
}

@keyframes fadeInDown {
    from {
        opacity: 0;
        transform: translateY(-30px);
    }
    to {
        opacity: 1;
        transform: translateY(0);
    }
}

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

@keyframes lineSlideIn {
    0% {
        opacity: 0;
        width: 0;
    }
    50% {
        opacity: 1;
    }
    100% {
        opacity: 0.8;
        width: 60px;
    }
}

/* Luxurious Floating Effect */
@keyframes luxuryFloat {
    0%, 100% {
        transform: translateY(0) scale(1);
    }
    50% {
        transform: translateY(-8px) scale(1.02);
    }
}

/* Subtle Luxury Glow */
@keyframes subtleGlow {
    0%, 100% {
        text-shadow: 
            0 2px 12px rgba(0, 0, 0, 0.4),
            0 0 15px rgba(212, 175, 55, 0.15);
    }
    50% {
        text-shadow: 
            0 2px 12px rgba(0, 0, 0, 0.4),
            0 0 20px rgba(212, 175, 55, 0.3),
            0 0 35px rgba(212, 175, 55, 0.15);
    }
}

/* Luxurious Glow Pulsation */
@keyframes luxuryGlow {
    0%, 100% {
        text-shadow: 
            0 2px 12px rgba(0, 0, 0, 0.4),
            0 0 15px rgba(212, 175, 55, 0.15);
    }
    50% {
        text-shadow: 
            0 2px 12px rgba(0, 0, 0, 0.4),
            0 0 20px rgba(212, 175, 55, 0.3),
            0 0 35px rgba(212, 175, 55, 0.15);
    }
}

/* Gold Line Pulse */
@keyframes linePulse {
    0%, 100% {
        opacity: 0.6;
        box-shadow: 
            0 0 8px rgba(212, 175, 55, 0.4),
            0 0 16px rgba(212, 175, 55, 0.2);
    }
    50% {
        opacity: 1;
        box-shadow: 
            0 0 12px rgba(212, 175, 55, 0.8),
            0 0 24px rgba(212, 175, 55, 0.4),
            0 0 36px rgba(212, 175, 55, 0.2);
    }
}

/* Shimmer Effect on Text */
.luxury-text::after {
    content: attr(data-text);
    position: absolute;
    left: 0;
    top: 0;
    width: 100%;
    height: 100%;
    background: linear-gradient(90deg, 
        transparent 0%, 
        rgba(255, 255, 255, 0.3) 50%, 
        transparent 100%);
    background-size: 200% 100%;
    -webkit-background-clip: text;
    background-clip: text;
    animation: shimmer 3s ease-in-out infinite;
    animation-delay: 2s;
}

@keyframes shimmer {
    0% {
        background-position: -200% 0;
    }
    100% {
        background-position: 200% 0;
    }
}

/* Mobile Responsiveness */
@media (max-width: 768px) {
    .luxury-text {
        font-size: 17px;
        letter-spacing: 6px;
    }
    
    .luxury-text::before,
    .luxury-text::after {
        width: 30px;
    }
    
    .luxury-text::before {
        left: -40px;
    }
    
    .luxury-text::after {
        right: -40px;
    }
    
    @keyframes luxuryRevealRefined {
        0% {
            opacity: 0;
            letter-spacing: 12px;
            transform: translateY(-15px) scale(0.95);
        }
        50% {
            opacity: 0.6;
        }
        100% {
            opacity: 1;
            letter-spacing: 6px;
            transform: translateY(0) scale(1);
        }
    }
    
    @keyframes luxuryRevealSmooth {
        0% {
            opacity: 0;
            letter-spacing: 12px;
            transform: translateY(-15px) scale(0.95);
        }
        50% {
            opacity: 0.6;
        }
        100% {
            opacity: 1;
            letter-spacing: 6px;
            transform: translateY(0) scale(1);
        }
    }
    
    @keyframes luxuryReveal {
        0% {
            opacity: 0;
            letter-spacing: 12px;
            transform: translateY(-15px) scale(0.95);
        }
        50% {
            opacity: 0.6;
        }
        100% {
            opacity: 1;
            letter-spacing: 6px;
            transform: translateY(0) scale(1);
        }
    }
}

@media (max-width: 480px) {
    .luxury-text {
        font-size: 15px;
        letter-spacing: 4px;
        padding: 0 10px;
    }
    
    .luxury-text::before,
    .luxury-text::after {
        width: 20px;
    }
    
    .luxury-text::before {
        left: -30px;
    }
    
    .luxury-text::after {
        right: -30px;
    }
}
