.sm-initializing {
    transition: none !important;
}
.sm-floating-menu-container {
    position: fixed;
    z-index: 10000;
    transition: transform 0.35s ease, opacity 0.3s ease;
    transform: var(--initial-transform, translate(0,0));
}
.sm-floating-menu-container.open {
    transform: var(--initial-transform, translate(0,0)) translate(var(--container-offset-x, 0), var(--container-offset-y, 0));
}
.sm-floating-menu-container.sm-hidden {
    transform: var(--initial-transform, translate(0,0)) scale(0)!important;
    opacity: 0;
    pointer-events: none;
}
.sm-floating-menu-container.sm-position-bottom-right { bottom: 25px; right: 25px; }
.sm-floating-menu-container.sm-position-bottom-left  { bottom: 25px; left: 25px; }
.sm-floating-menu-container.sm-position-top-right   { top: 25px; right: 25px; }
.sm-floating-menu-container.sm-position-top-left    { top: 25px; left: 25px; }
.sm-floating-menu-container.sm-position-middle-right {
    top: 50%;
    right: 25px;
    --initial-transform: translateY(-50%);
}
.sm-floating-menu-container.sm-position-middle-left {
    top: 50%;
    left: 25px;
    --initial-transform: translateY(-50%);
}

.sm-floating-menu-container .sm-main-button {
    border-radius: 50%;
    border: none;
    color: white;
    cursor: pointer;
    display: flex;
    justify-content: center;
    align-items: center;
    box-shadow: 0 4px 10px rgba(0, 0, 0, 0.25);
    transition: transform 0.3s ease, filter 0.2s ease;
    position: relative;
    z-index: 2;
}
.sm-floating-menu-container .sm-main-button:hover {
    filter: brightness(1.1);
}
.sm-floating-menu-container .sm-menu-items-wrapper {
    position: absolute;
    top: 0;
    left: 0;
    width: 100%;
    height: 100%;
    z-index: 1;
    pointer-events: none;
}
.sm-floating-menu-container .sm-menu-item {
    position: absolute;
    display: flex;
    justify-content: center;
    align-items: center;
    border-radius: 50%;
    box-shadow: 0 2px 5px rgba(0, 0, 0, 0.2);
    cursor: pointer;
    text-decoration: none;
    opacity: 0;
    transition: opacity 0.25s ease-out, transform 0.2s ease-out;
    pointer-events: auto;
}

.sm-floating-menu-container.open .sm-menu-item {
    opacity: 0.8;
}

.sm-floating-menu-container.open .sm-menu-item:hover {
    opacity: 1;
}

.sm-floating-menu-container.sm-style-circular .sm-menu-item {
    top: 0;
    left: 0;
    transform: none;
}
.sm-floating-menu-container.sm-style-circular.open .sm-menu-item {
    transform: translate(var(--x-pos, 0), var(--y-pos, 0));
}
.sm-floating-menu-container.sm-style-circular.open .sm-menu-item:hover {
    transform: translate(var(--x-pos, 0), var(--y-pos, 0)) scale(1.1);
}

/* --- Κανόνες για Κάθετη Λίστα (Διορθωμένο) --- */

.sm-floating-menu-container.sm-style-list .sm-menu-items-wrapper {
    bottom: 115%; top: auto; left: 50%; transform: translateX(-50%); width: auto; height: auto;
    display: flex;
    flex-direction: column-reverse; /* Αντιστροφή της σειράς για τα μενού που ανοίγουν προς τα πάνω */
    gap: 10px;
}
.sm-floating-menu-container.sm-style-list.sm-position-top-left .sm-menu-items-wrapper,
.sm-floating-menu-container.sm-style-list.sm-position-top-right .sm-menu-items-wrapper {
    top: 115%; bottom: auto;
    flex-direction: column; /* Επαναφορά της σειράς για τα μενού που ανοίγουν προς τα κάτω */
}
.sm-floating-menu-container.sm-style-list .sm-menu-item {
    position: relative;
    margin-bottom: 0; /* Το margin αντικαθίσταται από το gap του flex container */
    transform: none;
}
.sm-floating-menu-container.sm-style-list.open .sm-menu-item {
    transform: none;
}
.sm-floating-menu-container.sm-style-list.open .sm-menu-item:hover {
    transform: scale(1.1);
}

.sm-style-horizontal-list.sm-position-top-left .sm-menu-items-wrapper,
.sm-style-horizontal-list.sm-position-middle-left .sm-menu-items-wrapper,
.sm-style-horizontal-list.sm-position-bottom-left .sm-menu-items-wrapper {
    left: 115%;
    right: auto;
    top: 50%;
    transform: translateY(-50%);
    width: auto; height: auto;
    display: flex;
    gap: 10px;
}

.sm-style-horizontal-list.sm-position-top-right .sm-menu-items-wrapper,
.sm-style-horizontal-list.sm-position-middle-right .sm-menu-items-wrapper,
.sm-style-horizontal-list.sm-position-bottom-right .sm-menu-items-wrapper {
    right: 115%;
    left: auto;
    top: 50%;
    transform: translateY(-50%);
    width: auto; height: auto;
    display: flex;
    flex-direction: row-reverse;
    gap: 10px;
}

.sm-style-horizontal-list.sm-position-top-left .sm-menu-item,
.sm-style-horizontal-list.sm-position-middle-left .sm-menu-item,
.sm-style-horizontal-list.sm-position-bottom-left .sm-menu-item {
    position: relative;
    transform: translateX(-20px) scale(0.5);
}

.sm-style-horizontal-list.sm-position-top-right .sm-menu-item,
.sm-style-horizontal-list.sm-position-middle-right .sm-menu-item,
.sm-style-horizontal-list.sm-position-bottom-right .sm-menu-item {
    position: relative;
    transform: translateX(20px) scale(0.5);
}

.sm-style-horizontal-list.open .sm-menu-item {
    transform: translateX(0) scale(1);
}

.sm-style-horizontal-list.open .sm-menu-item:hover {
    transform: translateX(0) scale(1.1);
}