/**
 * Icon Button Widget Styles
 */

.icon-button-wrapper {
    display: block;
}

.icon-button {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    text-decoration: none;
    transition: all 0.3s ease;
    cursor: pointer;
    box-sizing: border-box;
    font-weight: 500;
}

.icon-button__text {
    display: inline-block;
}

.icon-button__icon {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    transition: transform 0.3s ease, color 0.3s ease;
    --icon-offset-x: 5px;
    --icon-offset-y: 0px;
}

.icon-button:hover .icon-button__icon {
    transform: translate(var(--icon-offset-x), var(--icon-offset-y));
}

.icon-button__icon svg,
.icon-button__icon svg path,
.icon-button__icon i {
    transition: all 0.3s ease;
}

/* Focus state for accessibility */
.icon-button:focus {
    outline: 2px solid currentColor;
    outline-offset: 2px;
}

.icon-button:focus:not(:focus-visible) {
    outline: none;
}
