/* ==========================================================
   Animations & Transitions
   Page transitions, scroll reveal, hover effects
   ========================================================== */

/* ---- Page Fade Transition ---- */
body {
    opacity: 0;
    transition: opacity 0.4s ease;
}

body.page-visible { opacity: 1; }

body.page-exit {
    opacity: 0;
    transition: opacity 0.25s ease;
}

/* ---- Scroll Reveal ---- */
.reveal {
    opacity: 0;
    transform: translateY(28px);
    transition: opacity 0.55s cubic-bezier(0.25, 0.46, 0.45, 0.94),
                transform 0.55s cubic-bezier(0.25, 0.46, 0.45, 0.94);
}

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

/* ---- Button Hover Lift ---- */
.primary-btn,
.site-btn {
    transition: background 0.25s ease,
                transform 0.2s ease,
                box-shadow 0.2s ease !important;
}

.primary-btn:hover,
.site-btn:hover {
    transform: translateY(-2px) !important;
    box-shadow: 0 6px 18px rgba(45, 106, 79, 0.35) !important;
}

.checkout-btn,
.place-order-btn {
    transition: background 0.25s ease,
                transform 0.2s ease,
                box-shadow 0.2s ease;
}

.checkout-btn:hover,
.place-order-btn:hover {
    transform: translateY(-2px);
    box-shadow: 0 6px 18px rgba(45, 106, 79, 0.35);
}

/* ---- Featured Item Card Hover ---- */
.featured__item {
    border-radius: 8px;
    transition: transform 0.35s cubic-bezier(0.25, 0.46, 0.45, 0.94),
                box-shadow 0.35s cubic-bezier(0.25, 0.46, 0.45, 0.94);
}

.featured__item:hover {
    transform: translateY(-6px);
    box-shadow: 0 14px 32px rgba(0, 0, 0, 0.13);
}

.featured__item__pic__hover {
    transition: bottom 0.35s cubic-bezier(0.25, 0.46, 0.45, 0.94),
                opacity 0.35s cubic-bezier(0.25, 0.46, 0.45, 0.94) !important;
}

.featured__item__pic__hover li a {
    transition: all 0.35s cubic-bezier(0.25, 0.46, 0.45, 0.94) !important;
}

/* ---- Shop Product Card Hover ---- */
.product__item {
    border-radius: 8px;
    transition: transform 0.35s cubic-bezier(0.25, 0.46, 0.45, 0.94),
                box-shadow 0.35s cubic-bezier(0.25, 0.46, 0.45, 0.94);
}

.product__item:hover {
    transform: translateY(-6px);
    box-shadow: 0 14px 32px rgba(0, 0, 0, 0.13);
}

.product__item__pic img {
    transition: transform 0.45s cubic-bezier(0.25, 0.46, 0.45, 0.94);
}

.product__item:hover .product__item__pic img {
    transform: scale(1.06);
}

.product__item__pic img.img-contain:hover {
    transform: scale(1.04);
}

.product__item__pic__hover {
    transition: bottom 0.35s cubic-bezier(0.25, 0.46, 0.45, 0.94),
                opacity 0.35s cubic-bezier(0.25, 0.46, 0.45, 0.94) !important;
}

/* ---- Cart Modal Animation ---- */
.cart-modal {
    opacity: 0;
    transition: opacity 0.25s ease;
}

.cart-modal.open { opacity: 1; }

.cart-content {
    transform: scale(0.95) translateY(12px);
    opacity: 0;
    transition: transform 0.3s cubic-bezier(0.25, 0.46, 0.45, 0.94),
                opacity 0.3s ease;
}

.cart-modal.open .cart-content {
    transform: scale(1) translateY(0);
    opacity: 1;
}
