.siteamawish-wishlist-btn,
.siteamawish-wishlist-products,
.siteamawish-empty-state,
.siteamawish-message,
.siteamawish-toast-container {
    font-family: var(--sw-font, inherit);
}

.siteamawish-wishlist-btn {
    appearance: none;
    -webkit-appearance: none;
    position: relative;
    cursor: pointer;
    background: var(--sw-heart-bg);
    border: var(--sw-heart-border-width) solid var(--sw-heart-border-color);
    border-radius: var(--sw-heart-radius);
    width: var(--sw-heart-width);
    height: var(--sw-heart-height);
    padding: var(--sw-heart-padding);
    display: inline-flex;
    align-items: center;
    justify-content: center;
    overflow: visible;
    transition: transform var(--sw-heart-transition) ease, background-color var(--sw-heart-transition) ease, border-color var(--sw-heart-transition) ease, opacity var(--sw-heart-transition) ease;
}

.siteamawish-wishlist-btn:hover {
    background: var(--sw-heart-bg-hover);
    transform: scale(var(--sw-heart-hover-scale));
}

.siteamawish-wishlist-btn:focus-visible,
.siteamawish-wishlist-remove-btn:focus-visible {
    outline: 2px solid currentColor;
    outline-offset: 2px;
}

.siteamawish-wishlist-btn.siteamawish-disabled,
.siteamawish-wishlist-remove-btn.siteamawish-disabled {
    cursor: not-allowed;
    opacity: var(--sw-disabled-opacity);
}

.siteamawish-heart-icon {
    display: block;
    width: var(--sw-heart-icon-size);
    height: var(--sw-heart-icon-size);
    flex: 0 0 auto;
}

.siteamawish-heart-icon path {
    stroke-width: var(--sw-heart-stroke-width);
}

.siteamawish-heart-empty path {
    fill: transparent;
    stroke: var(--sw-heart-empty-color);
}

.siteamawish-heart-filled path {
    fill: var(--sw-heart-filled-color);
    stroke: var(--sw-heart-filled-color);
}

.siteamawish-wishlist-btn::before,
.siteamawish-wishlist-btn::after {
    position: absolute;
    left: 50%;
    z-index: 99999;
    opacity: 0;
    visibility: hidden;
    pointer-events: none;
    transition: opacity 160ms ease, transform 160ms ease, visibility 160ms ease;
}

.siteamawish-wishlist-btn::before {
    content: attr(data-tooltip);
    bottom: calc(100% + var(--sw-tooltip-offset));
    width: max-content;
    max-width: var(--sw-tooltip-width);
    padding: var(--sw-tooltip-padding);
    border-radius: var(--sw-tooltip-radius);
    background: var(--sw-tooltip-bg);
    color: var(--sw-tooltip-color);
    font-family: var(--sw-tooltip-font);
    font-size: var(--sw-tooltip-size);
    font-weight: var(--sw-tooltip-weight);
    line-height: var(--sw-tooltip-line-height);
    text-align: center;
    white-space: normal;
    transform: translate(-50%, 5px);
}

.siteamawish-wishlist-btn::after {
    content: '';
    bottom: calc(100% + var(--sw-tooltip-offset) - 6px);
    width: 0;
    height: 0;
    border: 6px solid transparent;
    border-top-color: var(--sw-tooltip-bg);
    transform: translate(-50%, 5px);
}

.siteamawish-wishlist-btn:hover::before,
.siteamawish-wishlist-btn:hover::after,
.siteamawish-wishlist-btn:focus-visible::before,
.siteamawish-wishlist-btn:focus-visible::after {
    opacity: 1;
    visibility: visible;
    transform: translate(-50%, 0);
}

.siteamawish-wishlist-container,
.woocommerce ul.products li.product {
    position: relative;
}

.siteamawish-wishlist-products {
    margin: var(--sw-products-margin);
}

.siteamawish-wishlist-grid {
    display: grid;
    grid-template-columns: repeat(auto-fill, minmax(var(--sw-grid-min), 1fr));
    gap: var(--sw-grid-gap);
}

.siteamawish-wishlist-item {
    background: var(--sw-card-bg);
    border: var(--sw-card-border-width) solid var(--sw-card-border);
    border-radius: var(--sw-card-radius);
    padding: var(--sw-card-padding);
    box-shadow: var(--sw-card-shadow);
    text-align: center;
    transition: opacity var(--sw-card-transition) ease, transform var(--sw-card-transition) ease, box-shadow var(--sw-card-transition) ease, border-color var(--sw-card-transition) ease;
}

.siteamawish-wishlist-item:hover {
    border-color: var(--sw-card-border-hover);
    box-shadow: var(--sw-card-shadow-hover);
    transform: translateY(var(--sw-card-hover-translate));
}

.siteamawish-item-removing {
    opacity: 0;
    transform: scale(0.96) !important;
}

.siteamawish-wishlist-image img {
    display: block;
    width: var(--sw-image-width);
    max-width: var(--sw-image-max-width);
    height: auto;
    margin-inline: auto;
    border-radius: var(--sw-image-radius);
}

.siteamawish-wishlist-details h4 {
    margin: var(--sw-title-margin);
    min-height: var(--sw-title-min-height);
    font-family: var(--sw-title-font);
    font-size: var(--sw-title-size);
    font-weight: var(--sw-title-weight);
    line-height: var(--sw-title-line-height);
    text-align: var(--sw-title-align);
}

.siteamawish-wishlist-details h4 a {
    color: var(--sw-title-color);
    text-decoration: none;
    transition: color 180ms ease;
}

.siteamawish-wishlist-details h4 a:hover {
    color: var(--sw-title-hover-color);
}

.siteamawish-wishlist-price {
    margin: var(--sw-price-margin);
    display: flex;
    flex-direction: column;
    align-items: var(--sw-price-align);
    gap: 2px;
    color: var(--sw-regular-price-color);
    font-family: var(--sw-price-font);
    font-size: var(--sw-regular-price-size);
    font-weight: var(--sw-regular-price-weight);
}

.siteamawish-wishlist-price del {
    color: var(--sw-old-price-color);
    font-size: var(--sw-old-price-size);
    font-weight: var(--sw-old-price-weight);
    display: block;
    margin-bottom: 2px;
}

.siteamawish-wishlist-price ins {
    color: var(--sw-sale-price-color);
    font-size: var(--sw-sale-price-size);
    font-weight: var(--sw-sale-price-weight);
    text-decoration: none;
    display: block;
}

.siteamawish-wishlist-remove-btn {
    appearance: none;
    -webkit-appearance: none;
    background: var(--sw-remove-bg);
    color: var(--sw-remove-color);
    border: var(--sw-remove-border-width) solid var(--sw-remove-border);
    width: 100%;
    min-height: var(--sw-remove-height);
    padding: var(--sw-remove-padding);
    border-radius: var(--sw-remove-radius);
    box-shadow: var(--sw-remove-shadow);
    cursor: pointer;
    font-family: var(--sw-remove-font);
    font-size: var(--sw-remove-size);
    font-weight: var(--sw-remove-weight);
    transition: background-color 200ms ease, color 200ms ease, border-color 200ms ease, box-shadow 200ms ease, opacity 200ms ease;
}

.siteamawish-wishlist-remove-btn > span {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    gap: var(--sw-remove-icon-gap);
}

.siteamawish-trash-icon {
    width: var(--sw-remove-icon-size);
    height: var(--sw-remove-icon-size);
    flex: 0 0 auto;
}

.siteamawish-wishlist-remove-btn:hover {
    background: var(--sw-remove-bg-hover);
    color: var(--sw-remove-color-hover);
    border-color: var(--sw-remove-border-hover);
    box-shadow: var(--sw-remove-shadow-hover);
}

.siteamawish-empty-state {
    margin-top: var(--sw-empty-margin-top);
    color: var(--sw-empty-color);
    text-align: center;
    font-family: var(--sw-empty-font);
    font-size: var(--sw-empty-size);
    font-weight: var(--sw-empty-weight);
    line-height: var(--sw-empty-line-height);
}

.siteamawish-empty-state svg {
    display: block;
    margin: 0 auto 12px;
    color: var(--sw-empty-icon-color);
}

.siteamawish-message {
    color: var(--sw-message-color);
    font-family: var(--sw-message-font);
    font-size: var(--sw-message-size);
    font-weight: var(--sw-message-weight);
}

.siteamawish-toast-container {
    position: fixed;
    z-index: 999999;
    display: flex;
    flex-direction: column;
    gap: var(--sw-toast-gap);
    pointer-events: none;
    direction: rtl;
}

.siteamawish-toast-position-bottom-right { right: var(--sw-toast-offset-x); bottom: var(--sw-toast-offset-y); align-items: flex-end; }
.siteamawish-toast-position-bottom-left { left: var(--sw-toast-offset-x); bottom: var(--sw-toast-offset-y); align-items: flex-start; }
.siteamawish-toast-position-top-right { right: var(--sw-toast-offset-x); top: var(--sw-toast-offset-y); align-items: flex-end; }
.siteamawish-toast-position-top-left { left: var(--sw-toast-offset-x); top: var(--sw-toast-offset-y); align-items: flex-start; }
.siteamawish-toast-position-top-center { left: 50%; top: var(--sw-toast-offset-y); align-items: center; transform: translateX(-50%); }
.siteamawish-toast-position-bottom-center { left: 50%; bottom: var(--sw-toast-offset-y); align-items: center; transform: translateX(-50%); }

.siteamawish-toast {
    min-width: var(--sw-toast-min-width);
    max-width: min(var(--sw-toast-max-width), calc(100vw - 40px));
    padding: var(--sw-toast-padding);
    color: var(--sw-toast-color);
    border-radius: var(--sw-toast-radius);
    box-shadow: var(--sw-toast-shadow);
    font-family: var(--sw-toast-font);
    font-size: var(--sw-toast-size);
    font-weight: var(--sw-toast-weight);
    line-height: var(--sw-toast-line-height);
    opacity: 0;
    transform: translateY(12px);
    transition: opacity 250ms ease, transform 250ms ease;
    pointer-events: auto;
}

.siteamawish-toast-visible { opacity: 1; transform: translateY(0); }
.siteamawish-toast-success { background: var(--sw-toast-success); }
.siteamawish-toast-error { background: var(--sw-toast-error); }
.siteamawish-toast-info { background: var(--sw-toast-info); }

@media (max-width: 640px) {
    .siteamawish-toast-container {
        right: 12px !important;
        left: 12px !important;
        width: auto;
        transform: none !important;
        align-items: stretch !important;
    }

    .siteamawish-toast-position-top-right,
    .siteamawish-toast-position-top-left,
    .siteamawish-toast-position-top-center { top: 12px; bottom: auto; }

    .siteamawish-toast-position-bottom-right,
    .siteamawish-toast-position-bottom-left,
    .siteamawish-toast-position-bottom-center { bottom: 12px; top: auto; }

    .siteamawish-toast {
        width: 100%;
        min-width: 0;
        max-width: none;
    }
}

/* Elementor Loop Grid integration */
.siteamawish-loop-remove-btn {
    display: inline-flex;
    align-items: center;
    justify-content: center;
}

.e-loop-item.siteamawish-item-removing,
.elementor-loop-item.siteamawish-item-removing,
.elementor-grid-item.siteamawish-item-removing,
li.product.siteamawish-item-removing,
article.siteamawish-item-removing {
    opacity: 0 !important;
    transform: scale(0.96) !important;
    transition: opacity 250ms ease, transform 250ms ease !important;
}
