/* Custom Styles & Overrides */

/* Typography settings */
body {
    text-rendering: optimizeLegibility;
    -webkit-font-smoothing: antialiased;
    -moz-osx-font-smoothing: grayscale;
}

/* Custom Gradients */
.gradient-primary {
    background: linear-gradient(135deg, #4f46e5 0%, #312e81 100%);
}

.gradient-accent {
    background: linear-gradient(135deg, #818cf8 0%, #4f46e5 100%);
}

.gradient-light-indigo {
    background: linear-gradient(135deg, #f5f3ff 0%, #e0e7ff 100%);
}

/* Subtle background patterns */
.grid-bg {
    background-size: 20px 20px;
    background-image: 
        linear-gradient(to right, rgba(99, 102, 241, 0.04) 1px, transparent 1px),
        linear-gradient(to bottom, rgba(99, 102, 241, 0.04) 1px, transparent 1px);
}

/* Smooth transitions */
.transition-transform-ease {
    transition: transform 0.3s cubic-bezier(0.16, 1, 0.3, 1), opacity 0.3s ease;
}

/* Custom Highlight Border */
.featured-card-border {
    position: relative;
}
.featured-card-border::before {
    content: '';
    position: absolute;
    top: -2px;
    left: -2px;
    right: -2px;
    bottom: -2px;
    background: linear-gradient(135deg, #a78bfa, #6366f1, #4f46e5);
    z-index: -1;
    border-radius: 1.5rem; /* 24px */
}

/* Custom underline animation */
.hover-underline-animate {
    position: relative;
}
.hover-underline-animate::after {
    content: '';
    position: absolute;
    width: 100%;
    transform: scaleX(0);
    height: 2px;
    bottom: -4px;
    left: 0;
    background-color: #4f46e5;
    transform-origin: bottom right;
    transition: transform 0.25s ease-out;
}
.hover-underline-animate:hover::after {
    transform: scaleX(1);
    transform-origin: bottom left;
}

/* Keyframes for micro-interactions */
@keyframes pulse-subtle {
    0%, 100% {
        transform: scale(1);
    }
    50% {
        transform: scale(1.02);
    }
}

.pulse-hover:hover {
    animation: pulse-subtle 2s infinite ease-in-out;
}

@keyframes bounce-slow {
    0%, 100% {
        transform: translateY(0);
    }
    50% {
        transform: translateY(-4px);
    }
}

.bounce-slow {
    animation: bounce-slow 3s infinite ease-in-out;
}

/* Bullet list custom checkmarks */
.custom-checkmark-list li {
    position: relative;
    padding-left: 2rem;
}
.custom-checkmark-list li::before {
    content: "✓";
    position: absolute;
    left: 0.5rem;
    color: #10b981;
    font-weight: bold;
    font-size: 1.1rem;
}
