
.image-favorites-wrapper {
    position: absolute;
    z-index: 10;
}

/* Position styles */
.image-favorites-wrapper.top-left {
    top: 10px;
    left: 10px;
}

.image-favorites-wrapper.top-right {
    top: 10px;
    right: 10px;
}

.image-favorites-wrapper.bottom-left {
    bottom: 10px;
    left: 10px;
}

.image-favorites-wrapper.bottom-right {
    bottom: 10px;
    right: 10px;
}

.image-favorites-button {
    background: var(--image-favorites-button-bg-inactive, rgba(255, 255, 255, 0.9));
    border: none;
    border-radius: var(--image-favorites-border-radius, 4px);
    padding: 8px 12px;
    cursor: pointer;
    display: flex;
    align-items: center;
    gap: 5px;
    box-shadow: 0 2px 4px rgba(0, 0, 0, 0.1);
    transition: all 0.3s ease;
    overflow: hidden;
    text-decoration: none !important;
}

.image-favorites-button * {
    text-decoration: none !important;
}

.image-favorites-button:hover {
    background: rgba(255, 255, 255, 1);
    transform: scale(1.05);
    text-decoration: none !important;
}

.image-favorites-button:hover * {
    text-decoration: none !important;
}

.image-favorites-button.favorited {
    background: var(--image-favorites-button-bg, rgba(255, 255, 255, 0.95));
}

/* Icon styles */
.image-favorites-button .dashicons {
    color: var(--image-favorites-heart, #95a5a6);
    transition: color 0.3s ease;
    text-decoration: none;
    font-size: var(--image-favorites-element-size, 24px);
    width: var(--image-favorites-element-size, 24px);
    height: var(--image-favorites-element-size, 24px);
    border-radius: var(--image-favorites-border-radius, 4px);
}

.image-favorites-button.favorited .dashicons {
    color: var(--image-favorites-heart-active, #e74c3c);
}

/* Specific icon adjustments */
.image-favorites-button .dashicons-star-filled {
    font-size: calc(var(--image-favorites-element-size, 24px) * 1.1);
    width: calc(var(--image-favorites-element-size, 24px) * 1.1);
    height: calc(var(--image-favorites-element-size, 24px) * 1.1);
}

.image-favorites-button .dashicons-thumbs-up {
    font-size: calc(var(--image-favorites-element-size, 24px) * 0.9);
    width: calc(var(--image-favorites-element-size, 24px) * 0.9);
    height: calc(var(--image-favorites-element-size, 24px) * 0.9);
}

/* Text styles */
.image-favorites-button .button-text {
    font-size: calc(var(--image-favorites-element-size, 24px) * 0.8);
    line-height: 1;
    color: var(--image-favorites-text-color, #333333);
    transition: all 0.3s ease;
}

.image-favorites-button.favorited .button-text {
    color: var(--image-favorites-text-color-active, #e74c3c) !important;
}

/* Count styles */
.image-favorites-button .favorites-count {
    font-size: calc(var(--image-favorites-element-size, 24px) * 0.8);
    line-height: 1;
    color: var(--image-favorites-count-color, #666666);
    font-weight: 600;
    text-decoration: none;
    margin-left: 2px;
    transition: all 0.3s ease;
}

.image-favorites-button.favorited .favorites-count {
    color: var(--image-favorites-count-color-active, #e74c3c) !important;
}

.image-favorites-button.loading {
    opacity: 0.7;
    cursor: wait;
}

/* Gallery specific styles */
.gallery .image-favorites-container {
    display: block;
    width: 100%;
    height: 100%;
}

.gallery .image-favorites-wrapper {
    bottom: 15px;
    right: 15px;
} 

.image-favorites-container {
    position: relative;
    display: inline-block; 
}

.wp-theme-Divi .image-favorites-container {
    position: relative;
    display: inline-block; 
}

.wp-theme-twentynineteen .image-favorites-container {
    position: relative;
    display: table; 
}

.wp-theme-twentytwenty .image-favorites-container {
    position: relative;
    display: block; 
}

.wp-theme-twentytwentyone .image-favorites-container {
    position: relative;
    display: table; 
}

.wp-theme-twentytwentyfive .image-favorites-container {
    position: relative;
    display: inline-block; 
}

