    /*
    =====
    DEPENDENCES
    =====
    */
    
    /* The component will reset button browser styles */
    
    .r-button{
      padding-bottom: 3rem;
        --uirButtonBackgroundColor: var(--rButtonBackgroundColor, transparent);
        --uirButtonPadding: var(--rButtonPadding, var(--rButtonPaddingTop, 0) var(--rButtonPaddingRight, 0) var(--rButtonPaddingBottom, 0) var(--rButtonPaddingLeft, 0));
        --uirButtonBorderWidth: var(--rButtonBorderWidth, 0);
        --uirButtonBorderStyle: var(--rButtonBorderStyle, solid);
        --uirButtonBorderColor: var(--rButtonBorderColor, currentColor);
        --uirButtonFontFamily: var(--rButtonFontFamily, inherit);
        --uirButtonFontSize: var(--rButtonFontSize,  inherit);
        --uirButtonColor: var(--rButtonColor);
      
        background-color: var(--uirButtonBackgroundColor);
        padding: 0rem 0rem 0rem 0rem;
      
        border-width: var(--uirButtonBorderWidth);
        border-style: var(--uirButtonBorderStyle);
        border-color: var(--uirButtonBorderColor);
      
        cursor: pointer;
      
        font-family: var(--uirButtonFontFamily);
        font-size: var(--uirButtonFontSize);
      }
      
      .r-button::-moz-focus-inner,
      .r-button[type="button"]::-moz-focus-inner,
      .r-button[type="reset"]::-moz-focus-inner,
      .r-button[type="submit"]::-moz-focus-inner {
        
        /* Remove the inner border and padding in Firefox. */
        
        border-style: none;
        padding: 0;
      }
      
      /* The component will reset browser's styles of link */
      
      .r-link{
          --uirLinkDisplay: var(--rLinkDisplay, inline-flex);
          --uirLinkTextColor: var(--rLinkTextColor);
          --uirLinkTextDecoration: var(--rLinkTextDecoration, none);
      
          display: var(--uirLinkDisplay) !important;
          color: var(--uirLinkTextColor) !important;
          text-decoration: var(--uirLinkTextDecoration) !important;
      }
      
      /* The component will reset browser's styles of list */
      
      .r-list{
          --uirListPaddingLeft: var(--rListPaddingLeft, 0);
          --uirListMarginTop: var(--rListMarginTop, 0);
          --uirListMarginBottom: var(--rListMarginBottom, 0);
          --uirListListStyle: var(--rListListStyle, none);
      
          padding-left: var(--uirListPaddingLeft) !important;
          margin-top: var(--uirListMarginTop) !important;
          margin-bottom: var(--uirListMarginBottom) !important;
          list-style: var(--uirListListStyle) !important;
      }
      
      /* Basic styles of the hamburger component */
      
      .m-hamburger{  
        top: -1.2rem;
        --uiHamburgerThickness: var(--hamburgerThickness, 4px);
      
        display: var(--hamburgerDisplay, inline-flex);
        width: var(--hamburgerWidth, 28px);
        height: var(--hamburgerHeight, 20px);
      
        position: relative;
      }
      
      .m-hamburger::before, 
      .m-hamburger::after, 
      .m-hamburger__label{
        width: 100%;
        height: var(--uiHamburgerThickness);
        border-radius: var(--hamburgerBorderRadius, 5px);
        background-color: var(--hamburgerBackgroundColor, currentColor);
      
        position: absolute;
        left: 0;
      }
      
      .m-hamburger::before, 
      .m-hamburger::after{
        content:"";
      }
      
      .m-hamburger::before{
        top: 0;
      }
      
      .m-hamburger::after{
        bottom: 0;
      }
      
      .m-hamburger__label{
        /* The calculation of middle hamburger button line position */
        
        top: calc(50% - calc(var(--uiHamburgerThickness) / 2));
      }
      
      /* helper to hide elements that are available only for screen readers. */
      
      .screen-reader{
        width: var(--screenReaderWidth, 1px) !important;
        height: var(--screenReaderHeight, 1px) !important;
        padding: var(--screenReaderPadding, 0) !important;
        border: var(--screenReaderBorder, none) !important;
      
        position: var(--screenReaderPosition, absolute) !important;
        clip: var(--screenReaderClip, rect(1px, 1px, 1px, 1px)) !important;
        overflow: var(--screenReaderOverflow, hidden) !important;
      }
      
      /*
      =====
      MENU STYLES
      =====
      */
      
      .menu{
        --uiMenuCircleSize: var(--menuCircleSize, 6.25rem);
        --uiMenuCircleOffset: var(--menuCircleOffset, 1rem);
        --uiMenuCircleHeight: calc(var(--uiMenuCircleSize) / 2);  
        --uiMenuCircleBackgroundColor: var(--menuCircleBackgroundColor, currentColor);
      
        --uiMenuHamburgerWidth: var(--menuHamburgerWidth, 1.75rem);
        --uiMenuHamburgerHeight: var(--menuHamburgerHeight, 1.25rem);
        
        --rButtonPaddingTop: calc(var(--uiMenuCircleHeight) - var(--uiMenuHamburgerHeight) - var(--uiMenuCircleOffset));
        
        --hamburgerWidth: var(--uiMenuHamburgerWidth);
        --hamburgerHeight: var(--uiMenuHamburgerHeight);
        --hamburgerBackgroundColor: var(--menuHamburgerBackgroundColor, #fff);
      
        width: 100%;
        
        display: flex;
        flex-direction: column;
        align-items: flex-end;  
      
        position: fixed;
        top: 2.3rem;
        
        /* left: 0; */
        /* z-index: var(--menuZindex, 9998); */
        z-index: 99999999;
      }

      .mobile-nav-icon{
        color: #fff; 
        top:1.5rem; 
        right: 5rem;
        position: absolute;
      }
      
      .menu__nav{
        box-sizing: border-box;
        width: 100%;
        height: 0;
      
        transition: opacity .2s ease-out;
        opacity: 0;
      
        display: flex;
        align-items: flex-end;
        z-index: 2;
      }
      
      .menu__list{
        padding-bottom: 15rem;
        width: 100%;
        max-height: 100%;
      
        overflow-y: auto;
        -webkit-overflow-scrolling: touch;
      }
      
      .menu__toggle{
        box-sizing: border-box;
        width: var(--uiMenuCircleSize);
        height: var(--uiMenuCircleHeight);
        flex: none;
        right:-1.3rem;
        position: relative;
        z-index: 0;
      }

      .menu__toggle:focus{
        
      }
      
      .menu__toggle::before{
        /*
        1. The font-size property is used to simplify calculations of the element's sizes and position
        2. The negative value for the bottom property need for hiding half of circle. 
        */
      
        content: "";
        width: 1em;
        height: 1em;
        font-size: var(--uiMenuCircleSize); /* 1 */
      
        background-color: var(--uiMenuCircleBackgroundColor);
        border-radius: 50%;
      
        position: absolute;
        bottom: 0.3em; /* 2 */
        left: calc(50% - .5em);
        z-index: -1;
      
        will-change: width, height;
        transition: transform .25s cubic-bezier(0.04, -0.1, 0.29, 0.98),
                    width .25s cubic-bezier(0.04, -0.1, 0.29, 0.98),
                    height .25s cubic-bezier(0.04, -0.1, 0.29, 0.98);
      }
      
      /* styles of hamburger's animation */
      
      .m-hamburger::before, 
      .m-hamburger::after, 
      .m-hamburger__label{
        transition-timing-function: ease;
        transition-duration: .15s;  
      }
      
      .m-hamburger::before, 
      .m-hamburger::after{
        transition-property: transform;
      }
      
      .m-hamburger__label{
        transition-property: transform, opacity;
      }
      
      /*
      =====
      MENU STATES
      =====
      */
      
      .menu__toggle:focus{
        outline: 0;
        /* outline: var(--menuHaburgerOutlineOWidth, 2px) solid var(--menuHaburgerOutlineColor);
        outline-offset: var(--menuHaburgerOutlineOffset, 5px); */
      }
      
      .menu_activated{
        height: 100%;
      }
      
      .menu_activated .menu__nav{
        flex-grow: 1;
        opacity: 1;
      
        will-change: opacity;
        transition-duration: .2s;
        transition-delay: .3s;
      }
      
      .menu_activated .menu__toggle::before{
        width: 100vmax;
        height: 100vmax;
        transform: translate3d(-50vh, -50vh, 0) scale(5);
        transition-duration: 1s;
      }
      
      .menu:not(.menu_activated) .menu__list{
        display: none;
      }
      
      .menu_activated .m-hamburger::before{
        top: 50%;
        transform: translate3d(0, -50%, 0) rotate(45deg);
      }
      
      .menu_activated .m-hamburger::after{
        transform: translate3d(0, -50%, 0) rotate(135deg);
        top: 50%;
      }
      
      .menu_activated .m-hamburger__label{
        transform: rotate(-45deg) translate3d(-.285em,-.3em, 0);
        opacity: 0;
      }
      
      /*
      =====
      SETTINGS
      =====
      */
      
      :root{
        --colorWhite: #fff;
        --colorMain: #2e3192;
        --menuCircleBackgroundColor: var(--colorMain);
        --menuHamburgerBackgroundColor: var(--colorWhite);
        --menuHaburgerOutlineColor: var(--colorMain);
      }
      
      .menu_activated{
        --menuHaburgerOutlineColor: var(--colorWhite);
      }
      
      /*
      =====
      DEMO
      =====
      */
      
      
      .menu__group{
        --rLinkTextColor: var(--colorWhite);
      
        padding: .5rem 2rem; 
        font-size: 1.3rem;
        
        text-transform: uppercase;
      }
      
    