/**
 * Dima Shop - Animations Library
 * نسخه: 2.0.0
 * 
 * شامل:
 * - انیمیشن‌های ورود (Entrance)
 * - انیمیشن‌های خروج (Exit)
 * - انیمیشن‌های Hover
 * - انیمیشن‌های بارگذاری (Loading)
 * - انیمیشن‌های خاص (Special)
 * - انیمیشن‌های کارت محصول
 * - انیمیشن‌های دکمه‌ها
 * - انیمیشن‌های نوتیفیکیشن
 */

/* ═══════════════════════════════════════════════════════════
   متغیرهای انیمیشن
   ═══════════════════════════════════════════════════════════ */
:root {
    --dima-animation-duration: 0.5s;
    --dima-animation-duration-fast: 0.3s;
    --dima-animation-duration-slow: 0.8s;
    --dima-animation-timing: cubic-bezier(0.4, 0, 0.2, 1);
    --dima-animation-timing-bounce: cubic-bezier(0.68, -0.55, 0.265, 1.55);
}

/* ═══════════════════════════════════════════════════════════
   1. انیمیشن‌های ورود (Entrance Animations)
   ═══════════════════════════════════════════════════════════ */

/* Fade In */
@keyframes dimaFadeIn {
    from {
        opacity: 0;
    }
    to {
        opacity: 1;
    }
}

.dima-fade-in {
    animation: dimaFadeIn var(--dima-animation-duration) var(--dima-animation-timing);
}

/* Fade In Up */
@keyframes dimaFadeInUp {
    from {
        opacity: 0;
        transform: translateY(30px);
    }
    to {
        opacity: 1;
        transform: translateY(0);
    }
}

.dima-fade-in-up {
    animation: dimaFadeInUp var(--dima-animation-duration) var(--dima-animation-timing);
}

/* Fade In Down */
@keyframes dimaFadeInDown {
    from {
        opacity: 0;
        transform: translateY(-30px);
    }
    to {
        opacity: 1;
        transform: translateY(0);
    }
}

.dima-fade-in-down {
    animation: dimaFadeInDown var(--dima-animation-duration) var(--dima-animation-timing);
}

/* Fade In Left */
@keyframes dimaFadeInLeft {
    from {
        opacity: 0;
        transform: translateX(-30px);
    }
    to {
        opacity: 1;
        transform: translateX(0);
    }
}

.dima-fade-in-left {
    animation: dimaFadeInLeft var(--dima-animation-duration) var(--dima-animation-timing);
}

/* Fade In Right */
@keyframes dimaFadeInRight {
    from {
        opacity: 0;
        transform: translateX(30px);
    }
    to {
        opacity: 1;
        transform: translateX(0);
    }
}

.dima-fade-in-right {
    animation: dimaFadeInRight var(--dima-animation-duration) var(--dima-animation-timing);
}

/* Zoom In */
@keyframes dimaZoomIn {
    from {
        opacity: 0;
        transform: scale(0.8);
    }
    to {
        opacity: 1;
        transform: scale(1);
    }
}

.dima-zoom-in {
    animation: dimaZoomIn var(--dima-animation-duration) var(--dima-animation-timing);
}

/* Bounce In */
@keyframes dimaBounceIn {
    0% {
        opacity: 0;
        transform: scale(0.3);
    }
    50% {
        opacity: 1;
        transform: scale(1.1);
    }
    70% {
        transform: scale(0.9);
    }
    100% {
        transform: scale(1);
    }
}

.dima-bounce-in {
    animation: dimaBounceIn 0.6s var(--dima-animation-timing-bounce);
}

/* Slide In Up */
@keyframes dimaSlideInUp {
    from {
        transform: translateY(100%);
        opacity: 0;
    }
    to {
        transform: translateY(0);
        opacity: 1;
    }
}

.dima-slide-in-up {
    animation: dimaSlideInUp var(--dima-animation-duration) var(--dima-animation-timing);
}

/* Slide In Down */
@keyframes dimaSlideInDown {
    from {
        transform: translateY(-100%);
        opacity: 0;
    }
    to {
        transform: translateY(0);
        opacity: 1;
    }
}

.dima-slide-in-down {
    animation: dimaSlideInDown var(--dima-animation-duration) var(--dima-animation-timing);
}

/* ═══════════════════════════════════════════════════════════
   2. انیمیشن‌های خروج (Exit Animations)
   ═══════════════════════════════════════════════════════════ */

/* Fade Out */
@keyframes dimaFadeOut {
    from {
        opacity: 1;
    }
    to {
        opacity: 0;
    }
}

.dima-fade-out {
    animation: dimaFadeOut var(--dima-animation-duration) var(--dima-animation-timing);
}

/* Fade Out Up */
@keyframes dimaFadeOutUp {
    from {
        opacity: 1;
        transform: translateY(0);
    }
    to {
        opacity: 0;
        transform: translateY(-30px);
    }
}

.dima-fade-out-up {
    animation: dimaFadeOutUp var(--dima-animation-duration) var(--dima-animation-timing);
}

/* Slide Out Right */
@keyframes dimaSlideOutRight {
    from {
        transform: translateX(0);
        opacity: 1;
    }
    to {
        transform: translateX(100%);
        opacity: 0;
    }
}

.dima-slide-out-right {
    animation: dimaSlideOutRight var(--dima-animation-duration) var(--dima-animation-timing);
}

/* Zoom Out */
@keyframes dimaZoomOut {
    from {
        opacity: 1;
        transform: scale(1);
    }
    to {
        opacity: 0;
        transform: scale(0.8);
    }
}

.dima-zoom-out {
    animation: dimaZoomOut var(--dima-animation-duration) var(--dima-animation-timing);
}

/* ═══════════════════════════════════════════════════════════
   3. انیمیشن‌های Hover
   ═══════════════════════════════════════════════════════════ */

/* Hover Lift */
@keyframes dimaHoverLift {
    from {
        transform: translateY(0);
        box-shadow: 0 2px 8px rgba(0, 0, 0, 0.06);
    }
    to {
        transform: translateY(-5px);
        box-shadow: 0 8px 25px rgba(0, 0, 0, 0.12);
    }
}

.dima-hover-lift {
    transition: all 0.3s var(--dima-animation-timing);
}

.dima-hover-lift:hover {
    transform: translateY(-5px);
    box-shadow: 0 8px 25px rgba(0, 0, 0, 0.12);
}

/* Hover Scale */
.dima-hover-scale {
    transition: transform 0.3s var(--dima-animation-timing);
}

.dima-hover-scale:hover {
    transform: scale(1.05);
}

/* Hover Rotate */
.dima-hover-rotate {
    transition: transform 0.3s var(--dima-animation-timing);
}

.dima-hover-rotate:hover {
    transform: rotate(5deg) scale(1.05);
}

/* Hover Glow */
.dima-hover-glow {
    transition: all 0.3s var(--dima-animation-timing);
}

.dima-hover-glow:hover {
    box-shadow: 0 0 30px rgba(99, 102, 241, 0.4);
}

/* Hover Color */
.dima-hover-color {
    transition: all 0.3s var(--dima-animation-timing);
}

.dima-hover-color:hover {
    background: linear-gradient(135deg, #6366f1 0%, #a855f7 100%);
    color: white;
}

/* ═══════════════════════════════════════════════════════════
   4. انیمیشن‌های بارگذاری (Loading Animations)
   ═══════════════════════════════════════════════════════════ */

/* Spinner */
@keyframes dimaSpin {
    from {
        transform: rotate(0deg);
    }
    to {
        transform: rotate(360deg);
    }
}

.dima-spinner {
    width: 40px;
    height: 40px;
    border: 4px solid rgba(99, 102, 241, 0.2);
    border-top-color: #6366f1;
    border-radius: 50%;
    animation: dimaSpin 0.8s linear infinite;
}

.dima-spinner-small {
    width: 20px;
    height: 20px;
    border-width: 2px;
}

.dima-spinner-large {
    width: 60px;
    height: 60px;
    border-width: 6px;
}

/* Pulse Loading */
@keyframes dimaPulse {
    0%, 100% {
        transform: scale(1);
        opacity: 1;
    }
    50% {
        transform: scale(1.1);
        opacity: 0.7;
    }
}

.dima-pulse {
    animation: dimaPulse 1.5s ease-in-out infinite;
}

/* Skeleton Loading */
@keyframes dimaSkeleton {
    0% {
        background-position: -200px 0;
    }
    100% {
        background-position: calc(200px + 100%) 0;
    }
}

.dima-skeleton {
    background: linear-gradient(90deg, #f0f0f0 25%, #e0e0e0 50%, #f0f0f0 75%);
    background-size: 200px 100%;
    animation: dimaSkeleton 1.5s ease-in-out infinite;
    border-radius: 8px;
}

/* Dots Loading */
@keyframes dimaDots {
    0%, 20% {
        transform: scale(0);
        opacity: 0;
    }
    50% {
        transform: scale(1);
        opacity: 1;
    }
    100% {
        transform: scale(0);
        opacity: 0;
    }
}

.dima-dots {
    display: flex;
    gap: 8px;
    justify-content: center;
}

.dima-dots span {
    width: 12px;
    height: 12px;
    background: #6366f1;
    border-radius: 50%;
    animation: dimaDots 1.4s ease-in-out infinite;
}

.dima-dots span:nth-child(2) {
    animation-delay: 0.2s;
}

.dima-dots span:nth-child(3) {
    animation-delay: 0.4s;
}

/* ═══════════════════════════════════════════════════════════
   5. انیمیشن‌های خاص (Special Animations)
   ═══════════════════════════════════════════════════════════ */

/* Heartbeat */
@keyframes dimaHeartbeat {
    0%, 100% {
        transform: scale(1);
    }
    10%, 30% {
        transform: scale(1.1);
    }
    20%, 40% {
        transform: scale(1);
    }
}

.dima-heartbeat {
    animation: dimaHeartbeat 1.5s ease-in-out infinite;
}

/* Shake */
@keyframes dimaShake {
    0%, 100% {
        transform: translateX(0);
    }
    10%, 30%, 50%, 70%, 90% {
        transform: translateX(-5px);
    }
    20%, 40%, 60%, 80% {
        transform: translateX(5px);
    }
}

.dima-shake {
    animation: dimaShake 0.5s ease-in-out;
}

/* Wiggle */
@keyframes dimaWiggle {
    0%, 100% {
        transform: rotate(0deg);
    }
    25% {
        transform: rotate(-5deg);
    }
    75% {
        transform: rotate(5deg);
    }
}

.dima-wiggle {
    animation: dimaWiggle 0.5s ease-in-out;
}

/* Bounce */
@keyframes dimaBounce {
    0%, 20%, 50%, 80%, 100% {
        transform: translateY(0);
    }
    40% {
        transform: translateY(-15px);
    }
    60% {
        transform: translateY(-7px);
    }
}

.dima-bounce {
    animation: dimaBounce 1s ease-in-out;
}

/* Flash */
@keyframes dimaFlash {
    0%, 50%, 100% {
        opacity: 1;
    }
    25%, 75% {
        opacity: 0;
    }
}

.dima-flash {
    animation: dimaFlash 1s ease-in-out;
}

/* Swing */
@keyframes dimaSwing {
    20% {
        transform: rotate(15deg);
    }
    40% {
        transform: rotate(-10deg);
    }
    60% {
        transform: rotate(5deg);
    }
    80% {
        transform: rotate(-5deg);
    }
    100% {
        transform: rotate(0deg);
    }
}

.dima-swing {
    transform-origin: top center;
    animation: dimaSwing 1s ease-in-out;
}

/* Tada */
@keyframes dimaTada {
    0% {
        transform: scale(1) rotate(0deg);
    }
    10%, 20% {
        transform: scale(0.9) rotate(-3deg);
    }
    30%, 50%, 70%, 90% {
        transform: scale(1.1) rotate(3deg);
    }
    40%, 60%, 80% {
        transform: scale(1.1) rotate(-3deg);
    }
    100% {
        transform: scale(1) rotate(0deg);
    }
}

.dima-tada {
    animation: dimaTada 1s ease-in-out;
}

/* ═══════════════════════════════════════════════════════════
   6. انیمیشن‌های کارت محصول
   ═══════════════════════════════════════════════════════════ */

/* Product Card Entrance */
.dima-product-card {
    animation: dimaFadeInUp 0.5s var(--dima-animation-timing);
}

/* Stagger Animation */
.dima-product-card:nth-child(1) { animation-delay: 0.1s; }
.dima-product-card:nth-child(2) { animation-delay: 0.2s; }
.dima-product-card:nth-child(3) { animation-delay: 0.3s; }
.dima-product-card:nth-child(4) { animation-delay: 0.4s; }
.dima-product-card:nth-child(5) { animation-delay: 0.5s; }
.dima-product-card:nth-child(6) { animation-delay: 0.6s; }
.dima-product-card:nth-child(7) { animation-delay: 0.7s; }
.dima-product-card:nth-child(8) { animation-delay: 0.8s; }

/* Product Image Zoom */
.dima-product-image {
    overflow: hidden;
}

.dima-product-image img {
    transition: transform 0.5s var(--dima-animation-timing);
}

.dima-product-card:hover .dima-product-image img {
    transform: scale(1.08);
}

/* Product Badge Animation */
@keyframes dimaBadgePulse {
    0%, 100% {
        transform: scale(1);
        box-shadow: 0 2px 8px rgba(0, 0, 0, 0.15);
    }
    50% {
        transform: scale(1.05);
        box-shadow: 0 4px 12px rgba(0, 0, 0, 0.2);
    }
}

.dima-badge {
    animation: dimaBadgePulse 2s ease-in-out infinite;
}

/* ═══════════════════════════════════════════════════════════
   7. انیمیشن‌های دکمه‌ها
   ═══════════════════════════════════════════════════════════ */

/* Button Ripple */
.dima-btn {
    position: relative;
    overflow: hidden;
}

.dima-btn::after {
    content: '';
    position: absolute;
    top: 50%;
    left: 50%;
    width: 0;
    height: 0;
    border-radius: 50%;
    background: rgba(255, 255, 255, 0.5);
    transform: translate(-50%, -50%);
    transition: width 0.6s, height 0.6s;
}

.dima-btn:active::after {
    width: 300px;
    height: 300px;
}

/* Button Shake on Error */
@keyframes dimaButtonShake {
    0%, 100% {
        transform: translateX(0);
    }
    10%, 30%, 50%, 70%, 90% {
        transform: translateX(-5px);
    }
    20%, 40%, 60%, 80% {
        transform: translateX(5px);
    }
}

.dima-btn-error {
    animation: dimaButtonShake 0.5s ease-in-out;
}

/* Button Success */
@keyframes dimaButtonSuccess {
    0% {
        transform: scale(1);
    }
    50% {
        transform: scale(1.1);
    }
    100% {
        transform: scale(1);
    }
}

.dima-btn-success {
    animation: dimaButtonSuccess 0.3s ease-in-out;
}

/* ═══════════════════════════════════════════════════════════
   8. انیمیشن‌های نوتیفیکیشن
   ═══════════════════════════════════════════════════════════ */

/* Notification Slide In */
@keyframes dimaNotificationSlideIn {
    from {
        transform: translateX(100%);
        opacity: 0;
    }
    to {
        transform: translateX(0);
        opacity: 1;
    }
}

.dima-notification {
    animation: dimaNotificationSlideIn 0.4s var(--dima-animation-timing-bounce);
}

/* Notification Fade Out */
.dima-notification-hide {
    animation: dimaFadeOut 0.3s var(--dima-animation-timing) forwards;
}

/* Toast Animation */
@keyframes dimaToast {
    0% {
        transform: translateY(-20px);
        opacity: 0;
    }
    10% {
        transform: translateY(0);
        opacity: 1;
    }
    90% {
        transform: translateY(0);
        opacity: 1;
    }
    100% {
        transform: translateY(-20px);
        opacity: 0;
    }
}

.dima-toast {
    animation: dimaToast 3s var(--dima-animation-timing);
}

/* ═══════════════════════════════════════════════════════════
   9. انیمیشن‌های تایمر
   ═══════════════════════════════════════════════════════════ */

/* Timer Tick */
@keyframes dimaTimerTick {
    0%, 100% {
        transform: scale(1);
    }
    50% {
        transform: scale(1.1);
        color: #ef4444;
    }
}

.dima-timer-tick {
    animation: dimaTimerTick 1s ease-in-out infinite;
}

/* Timer Urgent */
@keyframes dimaTimerUrgent {
    0%, 100% {
        background: #ef4444;
        transform: scale(1);
    }
    50% {
        background: #dc2626;
        transform: scale(1.05);
    }
}

.dima-timer-urgent {
    animation: dimaTimerUrgent 0.5s ease-in-out infinite;
}

/* ═══════════════════════════════════════════════════════════
   10. انیمیشن‌های پیشرفت (Progress)
   ═══════════════════════════════════════════════════════════ */

/* Progress Bar Fill */
@keyframes dimaProgressFill {
    from {
        width: 0;
    }
}

.dima-progress-fill {
    animation: dimaProgressFill 1s var(--dima-animation-timing);
}

/* Progress Striped */
@keyframes dimaProgressStriped {
    from {
        background-position: 40px 0;
    }
    to {
        background-position: 0 0;
    }
}

.dima-progress-striped {
    background-image: linear-gradient(
        45deg,
        rgba(255, 255, 255, 0.15) 25%,
        transparent 25%,
        transparent 50%,
        rgba(255, 255, 255, 0.15) 50%,
        rgba(255, 255, 255, 0.15) 75%,
        transparent 75%,
        transparent
    );
    background-size: 40px 40px;
    animation: dimaProgressStriped 1s linear infinite;
}

/* ═══════════════════════════════════════════════════════════
   11. انیمیشن‌های سبد خرید
   ═══════════════════════════════════════════════════════════ */

/* Cart Bounce */
@keyframes dimaCartBounce {
    0%, 100% {
        transform: scale(1) rotate(0deg);
    }
    25% {
        transform: scale(1.3) rotate(-5deg);
    }
    50% {
        transform: scale(0.9) rotate(5deg);
    }
    75% {
        transform: scale(1.1);
    }
}

.dima-cart-bounce {
    animation: dimaCartBounce 0.6s ease-in-out;
}

/* Cart Count Pop */
@keyframes dimaCartCountPop {
    0% {
        transform: scale(0);
    }
    50% {
        transform: scale(1.3);
    }
    100% {
        transform: scale(1);
    }
}

.dima-cart-count-pop {
    animation: dimaCartCountPop 0.4s var(--dima-animation-timing-bounce);
}

/* Add to Cart Fly */
@keyframes dimaAddToCartFly {
    0% {
        transform: translate(0, 0) scale(1);
        opacity: 1;
    }
    100% {
        transform: translate(200px, -200px) scale(0.3);
        opacity: 0;
    }
}

.dima-add-to-cart-fly {
    animation: dimaAddToCartFly 0.8s var(--dima-animation-timing);
}

/* ═══════════════════════════════════════════════════════════
   12. انیمیشن‌های علاقه‌مندی
   ═══════════════════════════════════════════════════════════ */

/* Heart Fill */
@keyframes dimaHeartFill {
    0% {
        transform: scale(1);
        color: #d1d5db;
    }
    50% {
        transform: scale(1.3);
        color: #ef4444;
    }
    100% {
        transform: scale(1);
        color: #ef4444;
    }
}

.dima-heart-fill {
    animation: dimaHeartFill 0.5s var(--dima-animation-timing-bounce);
}

/* Heart Explosion */
@keyframes dimaHeartExplosion {
    0% {
        transform: scale(1);
    }
    50% {
        transform: scale(1.5);
    }
    100% {
        transform: scale(1);
    }
}

.dima-heart-explosion {
    animation: dimaHeartExplosion 0.4s ease-in-out;
}

/* ═══════════════════════════════════════════════════════════
   13. انیمیشن‌های مودال
   ═══════════════════════════════════════════════════════════ */

/* Modal Fade In */
@keyframes dimaModalFadeIn {
    from {
        opacity: 0;
    }
    to {
        opacity: 1;
    }
}

.dima-modal-fade-in {
    animation: dimaModalFadeIn 0.3s var(--dima-animation-timing);
}

/* Modal Slide Up */
@keyframes dimaModalSlideUp {
    from {
        transform: translateY(50px);
        opacity: 0;
    }
    to {
        transform: translateY(0);
        opacity: 1;
    }
}

.dima-modal-slide-up {
    animation: dimaModalSlideUp 0.4s var(--dima-animation-timing-bounce);
}

/* Modal Zoom In */
@keyframes dimaModalZoomIn {
    from {
        transform: scale(0.7);
        opacity: 0;
    }
    to {
        transform: scale(1);
        opacity: 1;
    }
}

.dima-modal-zoom-in {
    animation: dimaModalZoomIn 0.3s var(--dima-animation-timing-bounce);
}

/* ═══════════════════════════════════════════════════════════
   14. انیمیشن‌های جستجو
   ═══════════════════════════════════════════════════════════ */

/* Search Focus */
.dima-search-input {
    transition: all 0.3s var(--dima-animation-timing);
}

.dima-search-input:focus {
    transform: translateY(-2px);
    box-shadow: 0 4px 12px rgba(99, 102, 241, 0.2);
}

/* Search Results Fade In */
@keyframes dimaSearchResultsFadeIn {
    from {
        opacity: 0;
        transform: translateY(-10px);
    }
    to {
        opacity: 1;
        transform: translateY(0);
    }
}

.dima-search-results {
    animation: dimaSearchResultsFadeIn 0.3s var(--dima-animation-timing);
}

/* ═══════════════════════════════════════════════════════════
   15. انیمیشن‌های ستاره (Rating)
   ═══════════════════════════════════════════════════════════ */

/* Star Fill */
@keyframes dimaStarFill {
    0% {
        transform: scale(0) rotate(0deg);
        opacity: 0;
    }
    50% {
        transform: scale(1.3) rotate(180deg);
    }
    100% {
        transform: scale(1) rotate(360deg);
        opacity: 1;
    }
}

.dima-star-fill {
    animation: dimaStarFill 0.5s var(--dima-animation-timing-bounce);
}

/* Star Hover */
.dima-star {
    transition: all 0.2s var(--dima-animation-timing);
}

.dima-star:hover {
    transform: scale(1.2);
    color: #fbbf24;
}

/* ═══════════════════════════════════════════════════════════
   16. انیمیشن‌های Scroll
   ═══════════════════════════════════════════════════════════ */

/* Scroll Reveal */
.dima-scroll-reveal {
    opacity: 0;
    transform: translateY(30px);
    transition: all 0.6s var(--dima-animation-timing);
}

.dima-scroll-reveal.dima-visible {
    opacity: 1;
    transform: translateY(0);
}

/* Parallax */
.dima-parallax {
    transition: transform 0.3s ease-out;
}

/* ═══════════════════════════════════════════════════════════
   17. انیمیشن‌های Loader
   ═══════════════════════════════════════════════════════════ */

/* Full Page Loader */
@keyframes dimaPageLoader {
    0% {
        transform: rotate(0deg);
    }
    100% {
        transform: rotate(360deg);
    }
}

.dima-page-loader {
    position: fixed;
    top: 0;
    left: 0;
    width: 100%;
    height: 100%;
    background: rgba(255, 255, 255, 0.9);
    display: flex;
    align-items: center;
    justify-content: center;
    z-index: 9999;
}

.dima-page-loader::after {
    content: '';
    width: 60px;
    height: 60px;
    border: 6px solid rgba(99, 102, 241, 0.2);
    border-top-color: #6366f1;
    border-radius: 50%;
    animation: dimaPageLoader 0.8s linear infinite;
}

/* ═══════════════════════════════════════════════════════════
   18. انیمیشن‌های Tooltip
   ═══════════════════════════════════════════════════════════ */

/* Tooltip Fade In */
@keyframes dimaTooltipFadeIn {
    from {
        opacity: 0;
        transform: translateY(5px);
    }
    to {
        opacity: 1;
        transform: translateY(0);
    }
}

.dima-tooltip {
    animation: dimaTooltipFadeIn 0.2s var(--dima-animation-timing);
}

/* ═══════════════════════════════════════════════════════════
   19. انیمیشن‌های Badge
   ═══════════════════════════════════════════════════════════ */

/* Badge Pop */
@keyframes dimaBadgePop {
    0% {
        transform: scale(0);
    }
    50% {
        transform: scale(1.2);
    }
    100% {
        transform: scale(1);
    }
}

.dima-badge-pop {
    animation: dimaBadgePop 0.3s var(--dima-animation-timing-bounce);
}

/* Badge Shake */
.dima-badge-shake {
    animation: dimaShake 0.5s ease-in-out;
}

/* ═══════════════════════════════════════════════════════════
   20. انیمیشن‌های Responsive
   ═══════════════════════════════════════════════════════════ */

/* Reduce Motion */
@media (prefers-reduced-motion: reduce) {
    *,
    *::before,
    *::after {
        animation-duration: 0.01ms !important;
        animation-iteration-count: 1 !important;
        transition-duration: 0.01ms !important;
    }
}

/* Mobile Optimizations */
@media (max-width: 768px) {
    .dima-fade-in-up,
    .dima-fade-in-down,
    .dima-slide-in-up,
    .dima-slide-in-down {
        animation-duration: 0.3s;
    }
    
    .dima-product-card:nth-child(n) {
        animation-delay: 0s;
    }
}

/* ═══════════════════════════════════════════════════════════
   21. Utility Classes
   ═══════════════════════════════════════════════════════════ */

/* Animation Delays */
.dima-delay-100 { animation-delay: 0.1s; }
.dima-delay-200 { animation-delay: 0.2s; }
.dima-delay-300 { animation-delay: 0.3s; }
.dima-delay-400 { animation-delay: 0.4s; }
.dima-delay-500 { animation-delay: 0.5s; }
.dima-delay-600 { animation-delay: 0.6s; }
.dima-delay-700 { animation-delay: 0.7s; }
.dima-delay-800 { animation-delay: 0.8s; }
.dima-delay-900 { animation-delay: 0.9s; }
.dima-delay-1000 { animation-delay: 1s; }

/* Animation Durations */
.dima-duration-fast { animation-duration: 0.3s; }
.dima-duration-normal { animation-duration: 0.5s; }
.dima-duration-slow { animation-duration: 0.8s; }
.dima-duration-very-slow { animation-duration: 1.2s; }

/* Animation Iterations */
.dima-iteration-1 { animation-iteration-count: 1; }
.dima-iteration-2 { animation-iteration-count: 2; }
.dima-iteration-3 { animation-iteration-count: 3; }
.dima-iteration-infinite { animation-iteration-count: infinite; }

/* Animation Fill Mode */
.dima-fill-forwards { animation-fill-mode: forwards; }
.dima-fill-backwards { animation-fill-mode: backwards; }
.dima-fill-both { animation-fill-mode: both; }

/* ═══════════════════════════════════════════════════════════
   22. Print Styles
   ═══════════════════════════════════════════════════════════ */

@media print {
    *,
    *::before,
    *::after {
        animation: none !important;
        transition: none !important;
    }
}