.floating-menu-container-547432b8 { position: fixed; z-index: 9999; display: flex; flex-direction: column; align-items: flex-end; }
.floating-menu-toggle-547432b8 { background: #000; color: #fff; border: none; border-radius: 50%; width: 60px; height: 60px; cursor: pointer; display: flex; align-items: center; justify-content: center; box-shadow: 0 4px 12px rgba(0,0,0,0.3); transition: transform 0.3s ease; position: relative; z-index: 2;}
.floating-menu-toggle-547432b8:hover { transform: scale(1.05); }
.floating-menu-toggle-547432b8 i { font-size: 24px; color: #fff; }
.floating-menu-toggle-547432b8 svg { width: 24px; height: 24px; fill: #fff; }

.floating-menu-window-547432b8 { position: absolute; background: #fff; border-radius: 12px; box-shadow: 0 10px 30px rgba(0,0,0,0.15); opacity: 0; visibility: hidden; transition: all 0.3s ease; padding: 25px; z-index: 1;}
.floating-menu-window-547432b8.is-active { opacity: 1; visibility: visible; transform: translateY(0) !important; }

/* Vertical Direction Up (Default) */
.fm-v-dir-547432b8-up .floating-menu-window-547432b8 { bottom: calc(100% + 20px); transform: translateY(20px); top: auto; }
/* Vertical Direction Down */
.fm-v-dir-547432b8-down .floating-menu-container-547432b8 { flex-direction: column-reverse; }
.fm-v-dir-547432b8-down .floating-menu-window-547432b8 { top: calc(100% + 20px); transform: translateY(-20px); bottom: auto; }

/* Button Position Relative to Window */
/* Right (Default) */
.fm-btn-pos-547432b8-right .floating-menu-container-547432b8 { align-items: flex-end; }
.fm-btn-pos-547432b8-right .floating-menu-window-547432b8 { right: 0; left: auto; }

/* Left */
.fm-btn-pos-547432b8-left .floating-menu-container-547432b8 { align-items: flex-start; }
.fm-btn-pos-547432b8-left .floating-menu-window-547432b8 { left: 0; right: auto; }


.floating-menu-close-547432b8 { position: absolute; top: 15px; right: 20px; font-size: 24px; cursor: pointer; color: #888; transition: color 0.2s; }
.floating-menu-close-547432b8:hover { color: #333; }
.fm-nav-547432b8 { list-style: none; padding: 0; margin: 15px 0 0 0; }
.fm-nav-547432b8 li { margin-bottom: 12px; border-bottom: 1px solid #f0f0f0; padding-bottom: 10px; }
.fm-nav-547432b8 li:last-child { border-bottom: none; margin-bottom: 0; padding-bottom: 0; }
.fm-nav-547432b8 a { text-decoration: none; color: #333; font-weight: 500; display: block; transition: color 0.2s; }
.fm-nav-547432b8 a:hover { color: #0073aa; }

@media (max-width: 768px) {
    .floating-menu-window-547432b8 { max-width: calc(100vw - 40px); }
}