    /* EFFECT */

    .effect {
        overflow: hidden;
    }

    .zoom .effect.zoomin img, .effect.zoomin img {
        transform: scale(1, 1);
        transition-duration: 500ms;
        transition-timing-function: ease-out;
    }

    .zoom:hover .effect.zoomin img, .effect.zoomin img:hover {
        transform: scale(1.1, 1.1);
        transition-duration: 500ms;
        transition-timing-function: ease-out;
    }

    .effect.zoomout img {
        transform: scale(1.1, 1.1);
        transition-duration: 500ms;
        transition-timing-function: ease-out;
    }

    .effect.zoomout img:hover {
        transform: scale(1, 1);
        transition-duration: 500ms;
        transition-timing-function: ease-out;
    }

    @-webkit-keyframes custom-floatX {
      0% {
        -webkit-transform: translateX(0px); 
        -moz-transform: translateX(0px); 
        -o-transform: translateX(0px); 
        -ms-transform: translateX(0px);
            transform: translateX(0px);
      }
      50% {
        -webkit-transform: translateX(-30px); 
        -moz-transform: translateX(-30px); 
        -o-transform: translateX(-30px); 
        -ms-transform: translateX(-30px); 
            transform: translateX(-30px); 
      }
      100% {
        -webkit-transform: translateX(0px); 
        -moz-transform: translateX(0px); 
        -o-transform: translateX(0px); 
        -ms-transform: translateX(0px);
            transform: translateX(0px);
      }
    }

    @keyframes custom-floatX {
      0% {
        -webkit-transform: translateX(0px); 
        -moz-transform: translateX(0px); 
        -o-transform: translateX(0px); 
        -ms-transform: translateX(0px);
            transform: translateX(0px);
      }
      50% {
        -webkit-transform: translateX(-30px); 
        -moz-transform: translateX(-30px); 
        -o-transform: translateX(-30px); 
        -ms-transform: translateX(-30px); 
            transform: translateX(-30px); 
      }
      100% {
        -webkit-transform: translateX(0px); 
        -moz-transform: translateX(0px); 
        -o-transform: translateX(0px); 
        -ms-transform: translateX(0px);
            transform: translateX(0px);
      }
    }

    .custom-floatX {
        -webkit-transform: translateX(0px); 
        -moz-transform: translateX(0px); 
        -o-transform: translateX(0px); 
        -ms-transform: translateX(0px);
            transform: translateX(0px);
        -webkit-animation: custom-floatX 3s ease-in-out infinite; /* Safari 4+ */
        -moz-animation: custom-floatX 3s ease-in-out infinite; /* Fx 5+ */
        -o-animation: custom-floatX 3s ease-in-out infinite; /* Opera 12+ */
        -ms-animation: custom-floatX 3s ease-in-out infinite; /* IE */
        animation: custom-floatX 3s ease-in-out infinite;

    }

    @-webkit-keyframes custom-floatX-negative {
      0% {
        -webkit-transform: translateX(-30px); 
        -moz-transform: translateX(-30px); 
        -o-transform: translateX(-30px); 
        -ms-transform: translateX(-30px); 
            transform: translateX(-30px); 
      }
      50% {
        -webkit-transform: translateX(0px); 
        -moz-transform: translateX(0px); 
        -o-transform: translateX(0px); 
        -ms-transform: translateX(0px);
            transform: translateX(0px);
      }
      100% {
        -webkit-transform: translateX(-30px); 
        -moz-transform: translateX(-30px); 
        -o-transform: translateX(-30px); 
        -ms-transform: translateX(-30px); 
            transform: translateX(-30px); 
      }
    }

    @keyframes custom-floatX-negative {
      0% {
        -webkit-transform: translateX(-30px); 
        -moz-transform: translateX(-30px); 
        -o-transform: translateX(-30px); 
        -ms-transform: translateX(-30px); 
            transform: translateX(-30px); 
      }
      50% {
        -webkit-transform: translateX(0px); 
        -moz-transform: translateX(0px); 
        -o-transform: translateX(0px); 
        -ms-transform: translateX(0px);
            transform: translateX(0px);
      }
      100% {
        -webkit-transform: translateX(-30px); 
        -moz-transform: translateX(-30px); 
        -o-transform: translateX(-30px); 
        -ms-transform: translateX(-30px); 
            transform: translateX(-30px); 
      }
    }

    .custom-floatX-negative {
        -webkit-transform: translateX(-30px); 
        -moz-transform: translateX(-30px); 
        -o-transform: translateX(-30px); 
        -ms-transform: translateX(-30px); 
            transform: translateX(-30px); 
        -webkit-animation: custom-floatX-negative 3s ease-in-out infinite; /* Safari 4+ */
        -moz-animation: custom-floatX-negative 3s ease-in-out infinite; /* Fx 5+ */
        -o-animation: custom-floatX-negative 3s ease-in-out infinite; /* Opera 12+ */
        -ms-animation: custom-floatX-negative 3s ease-in-out infinite; /* IE */
        animation: custom-floatX-negative 3s ease-in-out infinite;

    }


    @-webkit-keyframes custom-floatY {
      0% {
        -webkit-transform: translateY(0px); 
        -moz-transform: translateY(0px); 
        -o-transform: translateY(0px); 
        -ms-transform: translateY(0px);
            transform: translateY(0px);
      }
      50% {
        -webkit-transform: translateY(-30px); 
        -moz-transform: translateY(-30px); 
        -o-transform: translateY(-30px); 
        -ms-transform: translateY(-30px); 
            transform: translateY(-30px); 
      }
      100% {
        -webkit-transform: translateY(0px); 
        -moz-transform: translateY(0px); 
        -o-transform: translateY(0px); 
        -ms-transform: translateY(0px);
            transform: translateY(0px);
      }
    }

    @keyframes custom-floatY {
      0% {
        -webkit-transform: translateY(0px); 
        -moz-transform: translateY(0px); 
        -o-transform: translateY(0px); 
        -ms-transform: translateY(0px);
            transform: translateY(0px);
      }
      50% {
        -webkit-transform: translateY(-30px); 
        -moz-transform: translateY(-30px); 
        -o-transform: translateY(-30px); 
        -ms-transform: translateY(-30px); 
            transform: translateY(-30px); 
      }
      100% {
        -webkit-transform: translateY(0px); 
        -moz-transform: translateY(0px); 
        -o-transform: translateY(0px); 
        -ms-transform: translateY(0px);
            transform: translateY(0px);
      }
    }

    .custom-floatY {
        -webkit-transform: translateY(0px); /* Chrome, iOS, Safari e Android */
        -moz-transform: translateY(0px); /* Firefox */
        -o-transform: translateY(0px); /* Opera */
        -ms-transform: translateY(0px); /* IE 9 */
            transform: translateY(0px);
        -webkit-animation: custom-floatY 3s ease-in-out infinite; /* Safari 4+ */
        -moz-animation: custom-floatY 3s ease-in-out infinite; /* Fx 5+ */
        -o-animation: custom-floatY 3s ease-in-out infinite; /* Opera 12+ */
        -ms-animation: custom-floatY 3s ease-in-out infinite; /* IE */
        animation: custom-floatY 3s ease-in-out infinite;

    }



    @-webkit-keyframes custom-floatY-negative {
      0% {
        -webkit-transform: translateY(-30px); 
        -moz-transform: translateY(-30px); 
        -o-transform: translateY(-30px); 
        -ms-transform: translateY(-30px); 
            transform: translateY(-30px); 
      }
      50% {
        -webkit-transform: translateY(0px); 
        -moz-transform: translateY(0px); 
        -o-transform: translateY(0px); 
        -ms-transform: translateY(0px);
            transform: translateY(0px);
      }
      100% {
        -webkit-transform: translateY(-30px); 
        -moz-transform: translateY(-30px); 
        -o-transform: translateY(-30px); 
        -ms-transform: translateY(-30px); 
            transform: translateY(-30px); 
      }
    }

    @keyframes custom-floatY-negative {
      0% {
        -webkit-transform: translateY(-30px); 
        -moz-transform: translateY(-30px); 
        -o-transform: translateY(-30px); 
        -ms-transform: translateY(-30px); 
            transform: translateY(-30px); 
      }
      50% {
        -webkit-transform: translateY(0px); 
        -moz-transform: translateY(0px); 
        -o-transform: translateY(0px); 
        -ms-transform: translateY(0px);
            transform: translateY(0px);
      }
      100% {
        -webkit-transform: translateY(-30px); 
        -moz-transform: translateY(-30px); 
        -o-transform: translateY(-30px); 
        -ms-transform: translateY(-30px); 
            transform: translateY(-30px); 
      }
    }

    .custom-floatY-negative {
        -webkit-transform: translateY(-30px); 
        -moz-transform: translateY(-30px); 
        -o-transform: translateY(-30px); 
        -ms-transform: translateY(-30px); 
            transform: translateY(-30px); 
        -webkit-animation: custom-floatY-negative 3s ease-in-out infinite; /* Safari 4+ */
        -moz-animation: custom-floatY-negative 3s ease-in-out infinite; /* Fx 5+ */
        -o-animation: custom-floatY-negative 3s ease-in-out infinite; /* Opera 12+ */
        -ms-animation: custom-floatY-negative 3s ease-in-out infinite; /* IE */
        animation: custom-floatY-negative 3s ease-in-out infinite;

    }



    @-webkit-keyframes zoom-circle {
      0% {
        transform: scale(1, 1);
        -ms-transform: scale(1, 1);
        -moz-transform: scale(1, 1);
        -o-transform: scale(1, 1);
        -webkit-transform: scale(1, 1);
        transform: scale(1, 1);
      }
      100% {
        transform: scale(2, 2);
        -ms-transform: scale(2, 2);
        -moz-transform: scale(2, 2);
        -o-transform: scale(2, 2);
        -webkit-transform: scale(2, 2);
        transform: scale(2, 2);
      }
    }

    @keyframes zoom-circle {
      0% {
        transform: scale(1, 1);
        -ms-transform: scale(1, 1);
        -moz-transform: scale(1, 1);
        -o-transform: scale(1, 1);
        -webkit-transform: scale(1, 1);
        transform: scale(1, 1);
      }
      100% {
        transform: scale(2, 2);
        -ms-transform: scale(2, 2);
        -moz-transform: scale(2, 2);
        -o-transform: scale(2, 2);
        -webkit-transform: scale(2, 2);
        transform: scale(2, 2);
      }
    }

    .zoom-circle {
        transform: scale(2, 2);
        transform-origin: left top;
        -ms-transform: scale(2, 2);
        -ms-transform-origin: left top;
        -moz-transform: scale(2, 2);
        -moz-transform-origin: left top;
        -o-transform: scale(2, 2);
        -o-transform-origin: left top;
        -webkit-transform: scale(2, 2);
        -webkit-transform-origin: left top;
        transform: scale(2, 2);
        transform-origin: left top;

       -webkit-transition: all 0.25s 0s ease-in-out;
        -moz-transition: all 0.25s 0s ease-in-out;
        -o-transition: all 0.25s 0s ease-in-out;
        -ms-transition: all 0.25s 0s ease-in-out;
        transition: all 0.25s 0s ease-in-out;

        --ms--animation-name: zoom-circle;
        -moz-animation-name: zoom-circle;
        -o-animation-name: zoom-circle;
        -webkit-animation-name: zoom-circle;
        animation-name: zoom-circle;
    }

    @-webkit-keyframes zoom-circle-small {
      0% {
        transform: scale(1, 1);
        -ms-transform: scale(1, 1);
        -moz-transform: scale(1, 1);
        -o-transform: scale(1, 1);
        -webkit-transform: scale(1, 1);
        transform: scale(1, 1);
      }
      100% {
        transform: scale(1.3, 1.3);
        -ms-transform: scale(1.3, 1.3);
        -moz-transform: scale(1.3, 1.3);
        -o-transform: scale(1.3, 1.3);
        -webkit-transform: scale(1.3, 1.3);
        transform: scale(1.3, 1.3);
      }
    }

    @keyframes zoom-circle-small {
      0% {
        transform: scale(1, 1);
        -ms-transform: scale(1, 1);
        -moz-transform: scale(1, 1);
        -o-transform: scale(1, 1);
        -webkit-transform: scale(1, 1);
        transform: scale(1, 1);
      }
      100% {
        transform: scale(1.3, 1.3);
        -ms-transform: scale(1.3, 1.3);
        -moz-transform: scale(1.3, 1.3);
        -o-transform: scale(1.3, 1.3);
        -webkit-transform: scale(1.3, 1.3);
        transform: scale(1.3, 1.3);
      }
    }

    .zoom-circle-small {
        transform: scale(1.3, 1.3);
        transform-origin: left top;
        -ms-transform: scale(1.3, 1.3);
        -ms-transform-origin: left top;
        -moz-transform: scale(1.3, 1.3);
        -moz-transform-origin: left top;
        -o-transform: scale(1.3, 1.3);
        -o-transform-origin: left top;
        -webkit-transform: scale(1.3, 1.3);
        -webkit-transform-origin: left top;
        transform: scale(1.3, 1.3);
        transform-origin: left top;

       -webkit-transition: all 0.25s 0s ease-in-out;
        -moz-transition: all 0.25s 0s ease-in-out;
        -o-transition: all 0.25s 0s ease-in-out;
        -ms-transition: all 0.25s 0s ease-in-out;
        transition: all 0.25s 0s ease-in-out;

        --ms--animation-name: zoom-circle-small;
        -moz-animation-name: zoom-circle-small;
        -o-animation-name: zoom-circle-small;
        -webkit-animation-name: zoom-circle-small;
        animation-name: zoom-circle-small;
    }


    @-webkit-keyframes zoom-circle-big {
      0% {
        transform: scale(1, 1);
        -ms-transform: scale(1, 1);
        -moz-transform: scale(1, 1);
        -o-transform: scale(1, 1);
        -webkit-transform: scale(1, 1);
        transform: scale(1, 1);
        opacity: 1;

      }
      100% {
        transform: scale(3, 3);
        -ms-transform: scale(3, 3);
        -moz-transform: scale(3, 3);
        -o-transform: scale(3, 3);
        -webkit-transform: scale(3, 3);
        transform: scale(3, 3);
        opacity: 0.5;
      }
    }

    @keyframes zoom-circle-big {
      0% {
        transform: scale(1, 1);
        -ms-transform: scale(1, 1);
        -moz-transform: scale(1, 1);
        -o-transform: scale(1, 1);
        -webkit-transform: scale(1, 1);
        transform: scale(1, 1);
        opacity: 1;
      }
      100% {
        transform: scale(3, 3);
        -ms-transform: scale(3, 3);
        -moz-transform: scale(3, 3);
        -o-transform: scale(3, 3);
        -webkit-transform: scale(3, 3);
        transform: scale(3, 3);
        opacity: 0.5;
      }
    }

    .zoom-circle-big {
        transform: scale(3, 3);
        transform-origin: left top;
        -ms-transform: scale(3, 3);
        -ms-transform-origin: left top;
        -moz-transform: scale(3, 3);
        -moz-transform-origin: left top;
        -o-transform: scale(3, 3);
        -o-transform-origin: left top;
        -webkit-transform: scale(3, 3);
        -webkit-transform-origin: left top;
        transform: scale(3, 3);
        transform-origin: left top;

        opacity: 0.5;

       -webkit-transition: all 0.25s 0s ease-in-out;
        -moz-transition: all 0.25s 0s ease-in-out;
        -o-transition: all 0.25s 0s ease-in-out;
        -ms-transition: all 0.25s 0s ease-in-out;
        transition: all 0.25s 0s ease-in-out;

        --ms--animation-name: zoom-circle-big;
        -moz-animation-name: zoom-circle-big;
        -o-animation-name: zoom-circle-big;
        -webkit-animation-name: zoom-circle-big;
        animation-name: zoom-circle-big;
    }


    @-webkit-keyframes rotate-icon {
      from {
       -webkit-transition: all 0.25s 0s ease-in-out;
        -moz-transition: all 0.25s 0s ease-in-out;
        -o-transition: all 0.25s 0s ease-in-out;
        -ms-transition: all 0.25s 0s ease-in-out;
        transition: all 0.25s 0s ease-in-out;
        opacity: 1;
      }

      to {
	      -webkit-transform:rotate(90deg); /* Chrome, iOS, Safari e Android */
	      -moz-transform:rotate(90deg); /* Firefox */
	      -o-transform:rotate(90deg); /* Opera */
	      -ms-transform:rotate(90deg); /* IE 9 */
	      transform:rotate(90deg); /* tutti i nuovi browser */
        opacity: 1;
      }
    }

    @keyframes rotate-icon {
      from {
       -webkit-transition: all 0.25s 0s ease-in-out;
        -moz-transition: all 0.25s 0s ease-in-out;
        -o-transition: all 0.25s 0s ease-in-out;
        -ms-transition: all 0.25s 0s ease-in-out;
        transition: all 0.25s 0s ease-in-out;
        opacity: 1;
      }

      to {
	      -webkit-transform:rotate(90deg); /* Chrome, iOS, Safari e Android */
	      -moz-transform:rotate(90deg); /* Firefox */
	      -o-transform:rotate(90deg); /* Opera */
	      -ms-transform:rotate(90deg); /* IE 9 */
	      transform:rotate(90deg); /* tutti i nuovi browser */
        opacity: 1;
      }
    }

    .rotate-icon {
      -webkit-animation-name: rotate-icon;
      animation-name: rotate-icon;
    }

    .rotate-icon:before {
	    -webkit-transform:rotate(0deg); /* Chrome, iOS, Safari e Android */
	    -moz-transform:rotate(0deg); /* Firefox */
	    -o-transform:rotate(0deg); /* Opera */
	    -ms-transform:rotate(0deg); /* IE 9 */
	    transform:rotate(0deg); /* tutti i nuovi browser */
       -webkit-transition: all 0.25s 0s ease-in-out;
        -moz-transition: all 0.25s 0s ease-in-out;
        -o-transition: all 0.25s 0s ease-in-out;
        -ms-transition: all 0.25s 0s ease-in-out;
        transition: all 0.25s 0s ease-in-out;
    }

    .box-legend .chiudi:hover,
    .box-legend.active .chiudi,
    .bottone .rotate-icon:hover,
    .btn-collapse.active .bottone .rotate-icon,
    .btn-collapse.active .bottone .rotate-icon:hover,
    .btn-plus.rotate-icon.active,
    .rotate-icon:hover:before,
    .btn:hover .rotate-icon:before,
    .btn-actions:hover .rotate-icon:before,
    .active .rotate-icon:before {
	    -webkit-transform:rotate(90deg); /* Chrome, iOS, Safari e Android */
	    -moz-transform:rotate(90deg); /* Firefox */
	    -o-transform:rotate(90deg); /* Opera */
	    -ms-transform:rotate(90deg); /* IE 9 */
	    transform:rotate(90deg); /* tutti i nuovi browser */
    }

