/**
 * Kitchenaire — Premium motion & hover effects
 */

:root {
    --ka-ease-out: cubic-bezier(0.22, 1, 0.36, 1);
    --ka-ease-in-out: cubic-bezier(0.45, 0, 0.15, 1);
    --ka-duration-fast: 0.25s;
    --ka-duration: 0.45s;
    --ka-duration-slow: 0.7s;
    --ka-lift: -6px;
    --ka-shadow-soft: 0 14px 40px rgba(0, 0, 0, 0.08);
    --ka-shadow-hover: 0 20px 50px rgba(0, 0, 0, 0.12);
}

/* === Header scroll state === */

#masthead {
    transition: box-shadow var(--ka-duration) var(--ka-ease-out),
                background-color var(--ka-duration) var(--ka-ease-out);
}

#masthead.ka-header-scrolled {
    box-shadow: 0 8px 30px rgba(0, 0, 0, 0.06);
}

#masthead .site-logo-link,
#masthead .custom-logo-link {
    transition: transform var(--ka-duration) var(--ka-ease-out),
                letter-spacing var(--ka-duration) var(--ka-ease-out),
                opacity var(--ka-duration-fast) var(--ka-ease-out);
}

#masthead .site-logo-link:hover,
#masthead .custom-logo-link:hover {
    transform: translateY(-1px);
    opacity: 0.82;
}

#masthead .site-logo-text {
    transition: letter-spacing var(--ka-duration) var(--ka-ease-out);
}

#masthead .site-logo-link:hover .site-logo-text {
    letter-spacing: 0.18em;
}

/* Nav underline animation */
#masthead .main-navigation > ul > li > a {
    position: relative;
    transition: color var(--ka-duration-fast) var(--ka-ease-out),
                opacity var(--ka-duration-fast) var(--ka-ease-out);
}

#masthead .main-navigation > ul > li > a::before {
    content: '';
    position: absolute;
    left: 20px;
    right: 20px;
    bottom: 14px;
    height: 1px;
    background: currentColor;
    transform: scaleX(0);
    transform-origin: center;
    transition: transform var(--ka-duration) var(--ka-ease-out);
}

#masthead .main-navigation > ul > li > a:hover::before,
#masthead .main-navigation > ul > li.current-menu-item > a::before,
#masthead .main-navigation > ul > li.current-menu-ancestor > a::before {
    transform: scaleX(1);
}

#masthead .main-navigation .sub-menu {
    transform: translateY(8px);
    transition: opacity var(--ka-duration-fast) var(--ka-ease-out),
                visibility var(--ka-duration-fast) var(--ka-ease-out),
                transform var(--ka-duration) var(--ka-ease-out);
}

#masthead .main-navigation > ul > li:hover > .sub-menu {
    transform: translateY(0);
}

#masthead button.header-search-toggle,
#masthead .header-cart {
    transition: transform var(--ka-duration-fast) var(--ka-ease-out),
                opacity var(--ka-duration-fast) var(--ka-ease-out);
}

#masthead button.header-search-toggle:hover,
#masthead .header-cart:hover {
    transform: translateY(-2px) scale(1.05);
    opacity: 0.7;
}

#masthead .cart-count {
    transition: transform var(--ka-duration-fast) var(--ka-ease-out);
}

#masthead .header-cart:hover .cart-count {
    transform: scale(1.1);
}

/* === Buttons (global) === */

.button,
button,
input[type="submit"],
.woocommerce a.button,
.woocommerce button.button,
.woocommerce input.button,
.woocommerce #respond input#submit {
    transition: transform var(--ka-duration-fast) var(--ka-ease-out);
}

.button:hover,
button:hover:not(:disabled):not(.elementor-button),
input[type="submit"]:hover {
    transform: translateY(-2px);
    box-shadow: var(--ka-shadow-soft);
}

/* Sweep buttons — no lift; handled in button-hover.css */
.elementor-button,
a.elementor-button,
.elementor-widget-button .elementor-button,
.jeg-elementor-kit .jkit-button .jkit-button-wrapper,
.jeg-elementor-kit .jkit-button-wrapper,
.jkit-banner .jkit-button-wrapper,
.jkit-icon-box .icon-box-button,
.woocommerce a.button,
.woocommerce button.button,
.woocommerce input.button,
.woocommerce #respond input#submit,
.woocommerce a.checkout-button,
.single-product div.product form.cart .single_add_to_cart_button,
.single-product .kitchenaire-buy-now {
    transition: color var(--ka-btn-hover-duration, 0.75s) ease,
        border-color var(--ka-btn-hover-duration, 0.75s) ease !important;
}

.elementor-button:hover,
.elementor-widget-button .elementor-button:hover,
.jeg-elementor-kit .jkit-button .jkit-button-wrapper:hover,
.jeg-elementor-kit .jkit-button-wrapper:hover,
.jkit-banner .jkit-button-wrapper:hover,
.jkit-icon-box .icon-box-button:hover,
.woocommerce a.button:hover,
.woocommerce button.button:hover,
.woocommerce input.button:hover,
.woocommerce #respond input#submit:hover,
.single-product div.product form.cart .single_add_to_cart_button:hover,
.single-product .kitchenaire-buy-now:hover {
    transform: none !important;
    box-shadow: none !important;
}

.button:active,
.elementor-button:active,
.woocommerce a.button:active,
.woocommerce button.button:active {
    transform: translateY(0);
    box-shadow: none;
}

/* === Links & text hovers === */

#colophon .footer-links a,
.read-more-link,
.post-card-title a,
.pagination .page-numbers,
.tags-links a {
    transition: color var(--ka-duration-fast) var(--ka-ease-out),
                transform var(--ka-duration-fast) var(--ka-ease-out),
                background-color var(--ka-duration-fast) var(--ka-ease-out),
                gap var(--ka-duration) var(--ka-ease-out);
}

#colophon .footer-links a {
    display: inline-block;
}

#colophon .footer-links a:hover {
    transform: translateX(4px);
    opacity: 0.65;
}

#colophon .footer-subscribe-form button:hover {
    background: #ffffff !important;
    color: #000000 !important;
    transform: translateY(-2px);
    box-shadow: var(--ka-shadow-soft);
}

/* === Cards & product tiles === */

.post-card,
.woocommerce ul.products li.product,
.jkit-product-block .product,
.jkit-product-carousel .product,
.elementor-widget-jkit_product_grid .product,
.elementor-widget-jkit_product_carousel .product {
    transition: transform var(--ka-duration) var(--ka-ease-out),
                box-shadow var(--ka-duration) var(--ka-ease-out);
}

.post-card:hover,
.woocommerce ul.products li.product:hover,
.jkit-product-block .product:hover,
.jkit-product-carousel .product:hover,
.elementor-widget-jkit_product_grid .product:hover,
.elementor-widget-jkit_product_carousel .product:hover {
    transform: translateY(var(--ka-lift));
    box-shadow: var(--ka-shadow-hover);
}

/* Image zoom on hover */
.post-card-image,
.woocommerce ul.products li.product a img,
.elementor-widget-image a,
.elementor-widget-image figure,
.jkit-product-block .product-image,
.jkit-product-carousel .product-image {
    overflow: hidden;
}

.post-card-image img,
.woocommerce ul.products li.product a img,
.elementor-widget-image img,
.jkit-product-block .product-image img,
.jkit-product-carousel .product-image img {
    transition: transform var(--ka-duration-slow) var(--ka-ease-out);
}

.post-card:hover .post-card-image img,
.woocommerce ul.products li.product:hover a img,
.elementor-widget-image:hover img,
.jkit-product-block .product:hover .product-image img,
.jkit-product-carousel .product:hover .product-image img {
    transform: scale(1.05);
}

/* === Icon boxes & feature blocks === */

.elementor-widget-icon-box,
.elementor-widget-jkit_icon_box .icon-box,
.elementor-widget-icon-list .elementor-icon-list-item {
    transition: transform var(--ka-duration) var(--ka-ease-out);
}

.elementor-widget-icon-box:hover,
.elementor-widget-jkit_icon_box .icon-box:hover {
    transform: translateY(-4px);
}

.elementor-widget-icon-box .elementor-icon,
.elementor-widget-jkit_icon_box .icon-box-icon {
    transition: transform var(--ka-duration) var(--ka-ease-out);
}

.elementor-widget-icon-box:hover .elementor-icon,
.elementor-widget-jkit_icon_box .icon-box:hover .icon-box-icon {
    transform: scale(1.08);
}

/* === Forms === */

input[type="text"],
input[type="email"],
input[type="search"],
input[type="password"],
textarea,
select,
#colophon .footer-subscribe-form input[type="email"] {
    transition: border-color var(--ka-duration-fast) var(--ka-ease-out),
                box-shadow var(--ka-duration-fast) var(--ka-ease-out),
                transform var(--ka-duration-fast) var(--ka-ease-out);
}

input:focus,
textarea:focus,
select:focus {
    box-shadow: 0 0 0 1px rgba(0, 0, 0, 0.08);
}

/* === PDP accordions === */

.single-product .kitchenaire-accordion__trigger {
    transition: color var(--ka-duration-fast) var(--ka-ease-out),
                padding-left var(--ka-duration-fast) var(--ka-ease-out);
}

.single-product .kitchenaire-accordion__trigger:hover {
    padding-left: 6px;
    opacity: 0.7;
}

.single-product .kitchenaire-accordion__icon::before {
    transition: transform var(--ka-duration-fast) var(--ka-ease-out);
}

.single-product .kitchenaire-accordion__panel {
    transition: opacity var(--ka-duration) var(--ka-ease-out);
}

/* === Elementor sections subtle hover on CTAs === */

.elementor-widget-heading a,
.elementor-widget-text-editor a {
    transition: opacity var(--ka-duration-fast) var(--ka-ease-out);
}

.elementor-widget-heading a:hover,
.elementor-widget-text-editor a:hover {
    opacity: 0.65;
}

/* === Scroll reveal === */

@media (prefers-reduced-motion: no-preference) {
    .ka-reveal {
        opacity: 0;
        transform: translateY(32px);
        transition:
            opacity var(--ka-duration-slow) var(--ka-ease-out),
            transform var(--ka-duration-slow) var(--ka-ease-out);
        transition-delay: var(--ka-delay, 0s);
        will-change: opacity, transform;
    }

    .ka-reveal.ka-visible {
        opacity: 1;
        transform: translateY(0);
    }

    .ka-reveal-child {
        opacity: 0;
        transform: translateY(20px);
        transition:
            opacity var(--ka-duration) var(--ka-ease-out),
            transform var(--ka-duration) var(--ka-ease-out);
        transition-delay: var(--ka-delay, 0s);
    }

    .ka-reveal-child.ka-visible {
        opacity: 1;
        transform: translateY(0);
    }
}

@media (prefers-reduced-motion: reduce) {
    .ka-reveal,
    .ka-reveal-child {
        opacity: 1 !important;
        transform: none !important;
        transition: none !important;
    }

    *,
    *::before,
    *::after {
        animation-duration: 0.01ms !important;
        animation-iteration-count: 1 !important;
        transition-duration: 0.01ms !important;
    }
}
