/*--------------------------------------------------------------
VARS
--------------------------------------------------------------*/
:root {
    --color-1c333e: #1C333E;
    --color-ffffff: #FFFFFF;
    --color-e2f2f2: #E2F2F2;
    --color-2c4767: #2C4767;
    --color-efefef: #EFEFEF;
    --color-f21616: #F21616;
    --color-717171: #717171;
    --color-959595: #959595;
    --color-343434: #343434;

    --text-shadow: 0 0 4px rgba(0, 0, 0, .15);
    --transition: .4s;
}

/*--------------------------------------------------------------
FLEXBOX
--------------------------------------------------------------*/
[class*=flexbox] {
    display: flex
}

.flexbox-center {
    align-items: center;
    justify-content: center
}

.flexbox-end {
    align-items: flex-end;
    justify-content: flex-end
}

.flexbox-start {
    align-items: flex-start;
    justify-content: flex-start
}

.flexbox-between, .flexbox-rev-between {
    align-items: center;
    justify-content: space-between;
}

.flexbox-around {
    align-items: center;
    justify-content: space-around
}

.flexbox-rev-between {
    flex-direction: column
}


/*--------------------------------------------------------------
Reset
--------------------------------------------------------------*/

html, body {
    background: var(--color-ffffff);
    overflow-x: hidden;
    font-family: 'Montserrat', serif;
    color: var(--color-717171)
}

body, html, div, ul, ol, li, h1, h2, h3, h4, h5, h6, form, fieldset, input, button, textarea, select, p, xmp {
    margin: 0;
    padding: 0
}

img, button, input, textarea, fieldset {
    border: 0
}

button, input, option, select, textarea {
    font: inherit
}

li {
    list-style: none
}

h1, h2, h3, h4, h5, h6 {
    font-size: 100%
}

button {
    cursor: pointer;
    background: transparent
}

button:focus, a:focus, input:focus, textarea:focus {
    outline: none
}

a, xmp {
    display: inline-block;
    text-decoration: none;
}

p, b, span, h1, h2, h3, h4, h5, h6, a, input, label {
    font-family: 'Montserrat', serif;
}

h1, h2, h3, h4, h5, h6 {
    font-weight: bold;
}

i {
    font-style: inherit
}

* {
    box-sizing: border-box
}

img {
    max-width: 100%;
    height: auto
}


/*--------------------------------------------------------------
ANIMATIONS
--------------------------------------------------------------*/
.floating {
    animation-name: floating;
    animation-duration: 3s;
    animation-iteration-count: infinite;
    animation-timing-function: ease-in-out
}

@keyframes floating {
    from {
        transform: translate(0, -15px);
    }
    65% {
        transform: translate(0, 15px);
    }
    to {
        transform: translate(0, -15px);
    }
}

@-webkit-keyframes floating {
    from {
        transform: translate(0, -15px);
    }
    65% {
        transform: translate(0, 15px);
    }
    to {
        transform: translate(0, -15px);
    }
}

.floating-v2 {
    animation-name: floating-v2;
    animation-duration: 6s;
    animation-iteration-count: infinite;
    animation-timing-function: ease-in-out
}

@keyframes floating-v2 {
    from {
        transform: translate(0, -30px);
    }
    65% {
        transform: translate(0, 30px);
    }
    to {
        transform: translate(0, -30px);
    }
}

@-webkit-keyframes floating-v2 {
    from {
        transform: translate(0, -30px);
    }
    65% {
        transform: translate(0, 30px);
    }
    to {
        transform: translate(0, -30px);
    }
}

.floating-small {
    animation-name: floating-small;
    animation-duration: 3s;
    animation-iteration-count: infinite;
    animation-timing-function: ease-in-out
}

@keyframes floating-small {
    from {
        transform: translate(0, -5px);
    }
    65% {
        transform: translate(0, 5px);
    }
    to {
        transform: translate(0, -5px);
    }
}

@-webkit-keyframes floating-small {
    from {
        transform: translate(0, -5px);
    }
    65% {
        transform: translate(0, 5px);
    }
    to {
        transform: translate(0, -5px);
    }
}

.shadow-pulse {
    -webkit-animation: shadow-pulse 1s infinite; /* Safari 4+ */
    -moz-animation: shadow-pulse 1s infinite; /* Fx 5+ */
    animation: shadow-pulse 1s infinite; /* IE 10+, Fx 29+ */
}

@keyframes shadow-pulse {
    0% {
        box-shadow: 0 0 0 0px rgba(0, 0, 0, 0.2)
    }
    100% {
        box-shadow: 0 0 0 25px rgba(0, 0, 0, 0)
    }
}

@-webkit-keyframes shadow-pulse {
    0% {
        box-shadow: 0 0 0 0px rgba(0, 0, 0, 0.2)
    }
    100% {
        box-shadow: 0 0 0 25px rgba(0, 0, 0, 0)
    }
}

.arrow-jump {
    -webkit-animation: arrow-jump 1s infinite; /* Safari 4+ */
    -moz-animation: arrow-jump 1s infinite; /* Fx 5+ */
    animation: arrow-jump 1s infinite; /* IE 10+, Fx 29+ */
}

@keyframes arrow-jump {
    0% {
        opacity: 0;
    }
    100% {
        opacity: 1;
        -webkit-transform: translateX(10px);
        -moz-transform: translateX(10px);
        transform: translateX(10px);
    }
}

@-webkit-keyframes arrow-jump {
    0% {
        opacity: 0;
    }
    100% {
        opacity: 1;
        -webkit-transform: translateX(10px);
        -moz-transform: translateX(10px);
        transform: translateX(10px);
    }
}


/*--------------------------------------------------------------
GENERAL
--------------------------------------------------------------*/
.global-container {
    display: flex;
    flex-direction: column;
    justify-content: space-between;
}

.fluid-container {
    max-width: 1366px;
    width: 100%;
    margin: 0 auto;
    display: flex;
    justify-content: space-between;
    padding: 0 15px;
}

.fluid-container-padding {
    max-width: 95%;
    width: 100%;
    margin: 0 auto;
    display: flex;
    justify-content: space-between;
}

section[class*='section-dots-'] {
    position: relative;
}

.section-dots-bottom:after,
.section-dots-top:before {
    content: '';
    width: 480px;
    height: 400px;
    position: absolute;
    background: url(../images/dots.svg) no-repeat;
}

.section-dots-bottom:after {
    bottom: 0;
    left: 0;
}

.section-dots-top:before {
    top: 0;
    right: 0;
}
