@font-face {
    font-family: 'iconfont';
    src: url('font/iconfont.eot'); /* IE9*/
    src: url('font/iconfont.eot?#iefix') format('embedded-opentype'), /* IE6-IE8 */
    url('font/iconfont.woff') format('woff'), /* chrome、firefox */
    url('font/iconfont.ttf') format('truetype'), /* chrome、firefox、opera、Safari, Android, iOS 4.2+*/
    url('font/iconfont.svg#iconfont') format('svg'); /* iOS 4.1- */
}

.iconfont {
    font-family: "iconfont" !important;
    speak: none;
    font-style: normal;
    font-weight: normal;
    font-variant: normal;
    text-transform: none;
    -webkit-font-smoothing: antialiased;
    -moz-osx-font-smoothing: grayscale;
}

@font-face {
    font-family: 'Open Sans';
    font-style: normal;
    font-weight: 400;
    src: url(font/OpenSans-Regular.ttf) format('truetype');
}

@font-face {
    font-family: 'Open Sans';
    font-style: bold;
    font-weight: 800;
    src: url(font/OpenSans-Bold.ttf) format('truetype');
}

@mixin clearfix() {
    &:before,
    &:after {
        display: table;
        line-height: 0;
        content: "";
    }
    &:after {
        clear: both;
    }
    *zoom: 1;
}
html {
    height: 100%;
}
body {
    font-family: 'Open Sans', "PingFang SC", Helvetica, Arial, sans-serif;
}

#lowie-main {
    display: none;
}
.lower-ie {
    #main {
        display: none;
    }
    #lowie-main {
        display: block;
        height: 100%;
        width: 100%;
        padding: 200px 0 100px;
        background-color: #2a3c54;
        img {
            display: block;
            width: 60%;
            margin: 0 auto;
        }
    }
}

#v4-link {
    position: fixed;
    bottom: 0;
    left: 50%;
    width: 200px;
    margin-left: -100px;
    text-align: center;
    z-index: 1000;
    padding: 5px 30px;
}

// settings contains declaration of variables only
@import 'settings.colors';

// components are the styles of _jade/components
@import 'components.nav';

// general setting for all pages
@import 'components.page';
@import 'components.slider';

// styles only used in certain pages like index or examples
@import 'pages.index';
@import 'pages.index.feature';
@import 'pages.examples';
@import 'pages.doc';

@import 'components.reset';
@import 'pages.download';
@import 'pages.builder';
@import 'pages.about';
@import 'pages.notfound';
@import 'pages.map';
@import 'pages.theme';
@import 'pages.changelog';
@import 'pages.api';
@import 'pages.extension';
@import 'pages.faq';
@import 'pages.maillist';
@import 'pages.cheatsheet';
@import 'pages.events';
@import 'pages.spa';


#apache-banner {
    position: fixed;
    left: 0;
    right: 0;
    bottom: 0;
    padding: 20px 40px 0;
    z-index: 10000;
    background-color: rgba(0, 0, 0, 0.6);
    color: #fff;
    display: none;

    .txt {
        width: 80%;
        height: 100%;
        display: inline-block;
    }

        p {
            margin: 5px 0;

            a {
                color: #fff;
                text-decoration: underline;
            }
        }

    .btn {
        position: relative;
        bottom: 20px;
        width: 20%;
        height: 100%;
        display: inline-block;
        background-color: $clr-secondary;
        border-radius: 6px;
        color: #fff;
        padding: 10px;

        &:hover {
            box-shadow: none;
        }
    }

    .close-btn {
        position: absolute;
        padding: 5px;
        right: 15px;
        top: 15px;
        color: #fff;

        &:hover {
            text-decoration: none;
        }
    }
}

@media (max-width: 768px) {
    #apache-banner {
        padding: 15px;

        .txt {
            width: 100%;
            height: auto;
            display: block;
            margin-top: 20px;
        }

        .btn {
            width: 100%;
            height: auto;
            display: block;
            top: 0;
        }

        .close-btn {
            top: 10px;
        }
    }
}

// pace
.pace {
  -webkit-pointer-events: none;
  pointer-events: none;

  -webkit-user-select: none;
  -moz-user-select: none;
  user-select: none;
}

.pace-inactive {
  display: none;
}

.pace .pace-progress {
  background: $clr-contrast;
  position: fixed;
  z-index: 100000;
  top: 0;
  right: 100%;
  width: 100%;
  height: 2px;
}

.pace .pace-progress-inner {
  display: block;
  position: absolute;
  right: 0px;
  width: 100px;
  height: 100%;
  box-shadow: 0 0 10px $clr-contrast, 0 0 5px $clr-contrast;
  opacity: 1.0;
  -webkit-transform: rotate(3deg) translate(0px, -4px);
  -moz-transform: rotate(3deg) translate(0px, -4px);
  -ms-transform: rotate(3deg) translate(0px, -4px);
  -o-transform: rotate(3deg) translate(0px, -4px);
  transform: rotate(3deg) translate(0px, -4px);
}


.btn-main {
    border-radius: 20px;
    padding: 8px 50px;

    transition-duration: 0.5s;

    & + .btn {
        margin-left: 15px;
    }

    img {
        width: 20px;
        margin-right: 10px;
        margin-top: -2px;
        margin-left: -5px;
    }

    &:hover {
        box-shadow: 1px 4px 12px 0 rgba(25, 119, 173, 0.5);
    }

    &:focus, &:active {
        box-shadow: 1px 4px 12px 0 rgba(25, 119, 173, 0.5);
    }
}

.btn-thirdary {
    width: 180px;
    box-shadow: 1px 3px 8px 0 rgba(25, 119, 173, 0.4);
    background-color: #3FA5DC;

    padding: 9px 10px;
    color: white;
    transition: 0.5s;

    &:hover {
        color: white;
        background-color: #45B4E8;
    }

    &:focus, &:active {
        color: white;
        background-color: #2997D6;
    }
}

.btn-blue {
    background-color: #47ACE3;
    color: white;
    box-shadow: 1px 4px 8px 0 rgba(25, 119, 173, 0.4);

    &:hover {
        background-color: #46B5F1;
        color: white;
        box-shadow: 1px 4px 11px 0 rgba(25, 119, 173, 0.5);
    }

    &:focus {
        background-color: #2E9FDC;
        color: white;
        box-shadow: 1px 4px 11px 0 rgba(25, 119, 173, 0.5);
    }
}

.btn-red {
    background-color: #FF424F;
    color: white;
    box-shadow: 1px 4px 8px 0 rgba(174, 44, 53, 0.4);

    &:hover {
        background-color: #FF4F4B;
        color: white;
        box-shadow: 1px 4px 11px 0 rgba(174, 44, 53, 0.5);
    }

    &:focus {
        background-color: #EE2A38;
        color: white;
        box-shadow: 1px 4px 11px 0 rgba(174, 44, 53, 0.5);
    }
}

.btn-green {
    background-color: #80BB6A;
    color: white;

    &:hover, &:focus {
        background-color: #95CC81;
        color: white;
        box-shadow: 1px 3px 8px 0 rgba(76, 151, 47, 0.4);
    }
}

.btn-default {
    background-color: white;
    color: $clr-thirdary;
    border: 1px solid $clr-thirdary;

    &:hover, &:focus {
        background-color: $clr-thirdary;
        color: white;
        border: 1px solid $clr-thirdary;
    }
}

.btn-group {
    margin: 0 5px;

    .caret {
        margin-left: 5px;
    }
}


::-webkit-scrollbar {
    height: 8px;
    width: 8px;
    -webkit-transition: all 0.3s ease-in-out;
    transition: all 0.3s ease-in-out;
    border-radius: 2px
}

::-webkit-scrollbar-button {
    display: none
}

::-webkit-scrollbar-thumb {
    width: 8px;
    min-height: 15px;
    background: rgba(50, 50, 50, 0.3) !important;
    -webkit-transition: all 0.3s ease-in-out;
    transition: all 0.3s ease-in-out;
    border-radius: 2px
}

::-webkit-scrollbar-thumb:hover {
    background: rgba(0, 0, 0, 0.5) !important
}
