/* Custom styles that complement Tailwind */

/* Smooth transitions for all interactive elements */
a, button {
    transition: all 0.3s ease;
}

/* Enhanced focus states for accessibility */
*:focus-visible {
    outline: 3px solid #fbbf24;
    outline-offset: 2px;
}

/* Geometric pattern overlay for certain sections */
.geometric-pattern {
    background-image: 
        linear-gradient(45deg, rgba(251, 191, 36, 0.05) 25%, transparent 25%),
        linear-gradient(-45deg, rgba(251, 191, 36, 0.05) 25%, transparent 25%),
        linear-gradient(45deg, transparent 75%, rgba(251, 191, 36, 0.05) 75%),
        linear-gradient(-45deg, transparent 75%, rgba(251, 191, 36, 0.05) 75%);
    background-size: 60px 60px;
    background-position: 0 0, 0 30px, 30px -30px, -30px 0px;
}

/* Gradient text effect */
.gradient-text {
    background: linear-gradient(135deg, #be185d 0%, #fbbf24 100%);
    -webkit-background-clip: text;
    -webkit-text-fill-color: transparent;
    background-clip: text;
}

/* Subtle hover lift effect for cards */
.hover-lift {
    transition: transform 0.3s ease, box-shadow 0.3s ease;
}

.hover-lift:hover {
    transform: translateY(-8px);
    box-shadow: 0 20px 40px rgba(157, 23, 77, 0.15);
}

/* Animated gradient background */
@keyframes gradient-shift {
    0% { background-position: 0% 50%; }
    50% { background-position: 100% 50%; }
    100% { background-position: 0% 50%; }
}

.animated-gradient {
    background: linear-gradient(-45deg, #831443, #9d174d, #be185d, #db2777);
    background-size: 400% 400%;
    animation: gradient-shift 15s ease infinite;
}

/* Pulse animation for CTAs */
@keyframes pulse-border {
    0% { box-shadow: 0 0 0 0 rgba(251, 191, 36, 0.7); }
    70% { box-shadow: 0 0 0 10px rgba(251, 191, 36, 0); }
    100% { box-shadow: 0 0 0 0 rgba(251, 191, 36, 0); }
}

.pulse-cta {
    animation: pulse-border 2s infinite;
}

/* Custom selection color */
::selection {
    background-color: #fbbf24;
    color: #500724;
}

/* Smooth image loading */
img {
    opacity: 1;
    transition: opacity 0.3s ease;
}

img[loading="lazy"] {
    opacity: 0;
}

img[loading="lazy"].loaded {
    opacity: 1;
}

/* Print styles */
@media print {
    nav, .geometric-bg, footer {
        display: none;
    }
    
    body {
        color: #000;
        background: #fff;
    }
    
    a {
        text-decoration: underline;
    }
}

/* Reduced motion preferences */
@media (prefers-reduced-motion: reduce) {
    *,
    *::before,
    *::after {
        animation-duration: 0.01ms !important;
        animation-iteration-count: 1 !important;
        transition-duration: 0.01ms !important;
    }
    
    html {
        scroll-behavior: auto;
    }
}
