@import url(./custom.css);
html, body, div, span, applet, object, iframe, h1, h2, h3, h4, h5, h6, p, blockquote, pre, hr, a, abbr, address, cite, code, del, dfn, em, img, ins, kbd, q, s, samp, small, strong, sub, sup, tt, var, b, u, i, dl, dt, dd, ol, ul, li, fieldset, form, label, legend, table, caption, tbody, tfoot, thead, tr, th, td, article, aside, canvas, details, figcaption, figure, footer, header, hgroup, menu, nav, section, summary, time, mark, audio, video {
    margin: 0;
    padding:0
}

article, aside, details, figcaption, figure, footer, header, hgroup, menu, nav, section {
    display:block
}

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

table {
    border-collapse: collapse;
    border-spacing:0
}

strong, b, mark {
    font-weight: 700;
    font-style:inherit
}

em, i, cite, q, address, dfn, var {
    font-style: italic;
    font-weight:inherit
}

abbr[title], dfn[title] {
    cursor: help;
    border-bottom:1px dotted
}

ins {
    border-bottom:1px solid
}

a, u, ins {
    text-decoration:none
}

del, s {
    text-decoration:line-through
}

pre, code, samp, kbd {
    font-family:monospace
}

small {
    font-size:.75em
}

img {
    border: 0;
    font-style:italic
}

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

* {
    -moz-box-sizing: border-box;
    -webkit-box-sizing: border-box;
    box-sizing: border-box;
    margin: 0;
    padding:0
}

article, aside, details, figcaption, figure, footer, header, hgroup, nav, section {
    display:block
}

audio[controls], canvas, video {
    display: inline-block;
    * display:inline;
    * zoom:1
}

html {
    font-size: 100%;
    -webkit-overflow-scrolling: touch;
    -webkit-tap-highlight-color: transparent;
    -webkit-text-size-adjust: 100%;
    -ms-text-size-adjust:100%
}

body {
    margin: 0;
    text-rendering:optimizeLegibility
}

img {
    border: 0;
    -ms-interpolation-mode: bicubic;
    display:block
}

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

input {
    -webkit-appearance:none
}

header, footer, section {
    position: relative;
    float: left;
    clear: both;
    width:100%
}

@-webkit-keyframes a {
    0% {
        -webkit-transform: translate(-50%, -50%) rotateX(0) rotateY(0);
        transform:translate(-50%, -50%) rotateX(0) rotateY(0)
    }

    50% {
        -webkit-transform: translate(-50%, -50%) rotateX(-180deg) rotateY(0);
        transform:translate(-50%, -50%) rotateX(-180deg) rotateY(0)
    }

    to {
        -webkit-transform: translate(-50%, -50%) rotateX(-180deg) rotateY(-180deg);
        transform:translate(-50%, -50%) rotateX(-180deg) rotateY(-180deg)
    }
}

@keyframes a {
    0% {
        -webkit-transform: translate(-50%, -50%) rotateX(0) rotateY(0);
        transform:translate(-50%, -50%) rotateX(0) rotateY(0)
    }

    50% {
        -webkit-transform: translate(-50%, -50%) rotateX(-180deg) rotateY(0);
        transform:translate(-50%, -50%) rotateX(-180deg) rotateY(0)
    }

    to {
        -webkit-transform: translate(-50%, -50%) rotateX(-180deg) rotateY(-180deg);
        transform:translate(-50%, -50%) rotateX(-180deg) rotateY(-180deg)
    }
}

.fluidbox {
    outline:none
}

.fluidbox__overlay {
    background-color: rgba(255, 255, 255, 0.85);
    cursor: pointer;
    cursor: zoom-out;
    opacity: 0;
    pointer-events: none;
    position: fixed;
    top: -100%;
    left: 0;
    bottom: -100%;
    right: 0;
    -webkit-transition: all .25s ease-in-out;
    transition:all .25s ease-in-out
}

.fluidbox--opened .fluidbox__overlay {
    pointer-events:auto
}

.fluidbox__wrap {
    background-position: center center;
    background-size: cover;
    margin: 0 auto;
    position: relative;
    -webkit-transition: all .25s ease-in-out;
    transition:all .25s ease-in-out
}

.fluidbox--closed .fluidbox__thumb, .fluidbox__thumb {
    -webkit-transition: opacity 0s ease-in-out 0s;
    transition:opacity 0s ease-in-out 0s
}

.fluidbox__ghost {
    background-size: 100% 100%;
    background-position: center center;
    background-repeat: no-repeat;
    position: absolute;
    -webkit-transition: opacity 0s 0s, -webkit-transform .25s 0s;
    transition: opacity 0s 0s, -webkit-transform .25s 0s;
    transition: opacity 0s 0s, transform .25s 0s;
    transition:opacity 0s 0s, transform .25s 0s, -webkit-transform .25s 0s
}

.fluidbox--opened .fluidbox__ghost {
    cursor: pointer;
    cursor:zoom-out
}

.fluidbox--closed .fluidbox__ghost {
    -webkit-transition: opacity 0s .25s, -webkit-transform .25s 0s;
    transition: opacity 0s .25s, -webkit-transform .25s 0s;
    transition: opacity 0s .25s, transform .25s 0s;
    transition:opacity 0s .25s, transform .25s 0s, -webkit-transform .25s 0s
}

.fluidbox__loader {
    opacity: 0;
    -webkit-perspective: 200px;
    perspective: 200px;
    pointer-events: none;
    position: absolute;
    top: 0;
    left: 0;
    bottom: 0;
    right:0
}

.fluidbox__loader:before {
    background-color: rgba(255, 255, 255, 0.85);
    content: '';
    -webkit-transform-style: preserve-3d;
    transform-style: preserve-3d;
    position: absolute;
    top: 50%;
    left: 50%;
    width: 20%;
    padding-bottom: 20%;
    -webkit-transform: translate(-50%, -50%);
    transform: translate(-50%, -50%);
    -webkit-transition-property: -webkit-transform;
    transition-property: -webkit-transform;
    transition-property: transform;
    transition-property: transform, -webkit-transform;
    -webkit-transition-duration: .25s;
    transition-duration: .25s;
    -webkit-transition-delay: 0s;
    transition-delay:0s
}

.fluidbox--loading .fluidbox__loader {
    opacity: 1;
    -webkit-transition: opacity .25s ease-in-out .25s;
    transition:opacity .25s ease-in-out .25s
}

.fluidbox--loading .fluidbox__loader:before {
    -webkit-animation: a 1s 0s infinite ease-in-out forwards;
    animation:a 1s 0s infinite ease-in-out forwards
}

.owl-carousel {
    display: none;
    -webkit-tap-highlight-color: transparent;
    position: relative;
    z-index:1
}

.owl-carousel .owl-stage {
    position: relative;
    -ms-touch-action: pan-Y;
    -moz-backface-visibility:hidden
}

.owl-carousel .owl-stage:after {
    content: ".";
    display: block;
    clear: both;
    visibility: hidden;
    line-height: 0;
    height:0
}

.owl-carousel .owl-stage-outer {
    position: relative;
    overflow: hidden;
    -webkit-transform:translate3d(0px, 0px, 0px)
}

.owl-carousel .owl-wrapper, .owl-carousel .owl-item {
    -webkit-backface-visibility: hidden;
    -moz-backface-visibility: hidden;
    -ms-backface-visibility: hidden;
    -webkit-transform: translate3d(0, 0, 0);
    -moz-transform: translate3d(0, 0, 0);
    -ms-transform:translate3d(0, 0, 0)
}

.owl-carousel .owl-item {
    position: relative;
    min-height: 1px;
    float: left;
    -webkit-backface-visibility: hidden;
    -webkit-tap-highlight-color: transparent;
    -webkit-touch-callout:none
}

.owl-carousel .owl-item img {
    display: block;
    width:100%
}

.owl-carousel .owl-nav.disabled, .owl-carousel .owl-dots.disabled {
    display:none
}

.owl-carousel .owl-nav .owl-prev, .owl-carousel .owl-nav .owl-next, .owl-carousel .owl-dot {
    cursor: pointer;
    cursor: hand;
    -webkit-user-select: none;
    -khtml-user-select: none;
    -moz-user-select: none;
    -ms-user-select: none;
    user-select:none
}

.owl-carousel.owl-loaded {
    display:block
}

.owl-carousel.owl-loading {
    opacity: 0;
    display:block
}

.owl-carousel.owl-hidden {
    opacity:0
}

.owl-carousel.owl-refresh .owl-item {
    visibility:hidden
}

.owl-carousel.owl-drag .owl-item {
    -webkit-user-select: none;
    -moz-user-select: none;
    -ms-user-select: none;
    user-select:none
}

.owl-carousel.owl-grab {
    cursor: move;
    cursor:grab
}

.owl-carousel.owl-rtl {
    direction:rtl
}

.owl-carousel.owl-rtl .owl-item {
    float:right
}

.no-js .owl-carousel {
    display:block
}

.owl-carousel .animated {
    animation-duration: 500ms;
    animation-fill-mode:both
}

.owl-carousel .owl-animated-in {
    z-index:0
}

.owl-carousel .owl-animated-out {
    z-index:1
}

.owl-carousel .fadeOut {
    animation-name:fadeOut
}

@keyframes fadeOut {
    0% {
        opacity:1
    }

    100% {
        opacity:0
    }
}

.owl-height {
    transition:height 500ms ease-in-out
}

.owl-carousel .owl-item .owl-lazy {
    opacity: 0;
    transition:opacity 400ms ease
}

.owl-carousel .owl-item img.owl-lazy {
    transform-style:preserve-3d
}

.owl-carousel .owl-video-wrapper {
    position: relative;
    height: 100%;
    background:#000
}

.owl-carousel .owl-video-play-icon {
    position: absolute;
    height: 80px;
    width: 80px;
    left: 50%;
    top: 50%;
    margin-left: -40px;
    margin-top: -40px;
    background: url("owl.video.play.png") no-repeat;
    cursor: pointer;
    z-index: 1;
    -webkit-backface-visibility: hidden;
    transition:transform 100ms ease
}

.owl-carousel .owl-video-play-icon:hover {
    -ms-transform: scale(1.3, 1.3);
    transform:scale(1.3, 1.3)
}

.owl-carousel .owl-video-playing .owl-video-tn, .owl-carousel .owl-video-playing .owl-video-play-icon {
    display:none
}

.owl-carousel .owl-video-tn {
    opacity: 0;
    height: 100%;
    background-position: center center;
    background-repeat: no-repeat;
    background-size: contain;
    transition:opacity 400ms ease
}

.owl-carousel .owl-video-frame {
    position: relative;
    z-index: 1;
    height: 100%;
    width:100%
}

ol.bibliography li {
    list-style-type: none;
    font-size:18px
}

ol.bibliography li + li {
    margin-top:10px
}

ol.bibliography {
    counter-reset:item
}

ol.bibliography li:before {
    content: "[" counter(item) "] ";
    counter-increment: item;
    width: 3em;
    font-variant: small-caps;
    position: absolute;
    text-indent:-2em
}

html, body {
    height:100%
}

body {
    background: #fff;
    font-family: "Lato", sans-serif;
    font-weight: 300;
    font-style: normal;
    line-height: 1;
    color:#3c3c41
}

h1, h2, h3, h4, h5, h6 {
    font-family: "Lato", sans-serif;
    color:#2A2F36
}

h1:first-child, h2:first-child, h3:first-child, h4:first-child, h5:first-child, h6:first-child {
    margin-top:0
}

h1, .h1 {
    font-size: 25px;
    font-weight: 500;
    line-height: 1.2;
    letter-spacing:-.02em
}

@media only screen and (min-width: 768px) {
    h1, .h1 {
        font-size:35px
    }
}

@media only screen and (min-width: 1220px) {
    h1, .h1 {
        font-size:45px
    }
}

h2, .h2 {
    margin-top: 40px;
    font-size: 22px;
    font-weight: 500;
    line-height: 1.2;
    letter-spacing:-.02em
}

@media only screen and (min-width: 768px) {
    h2, .h2 {
        font-size:30px
    }
}

@media only screen and (min-width: 1220px) {
    h2, .h2 {
        font-size:35px
    }
}

h3, .h3 {
    margin-top: 40px;
    font-size: 22px;
    font-weight: 500;
    line-height: 1.3;
    letter-spacing:-.02em
}

@media only screen and (min-width: 768px) {
    h3, .h3 {
        font-size:25px
    }
}

@media only screen and (min-width: 1220px) {
    h3, .h3 {
        font-size:30px
    }
}

h4, .h4 {
    margin-top: 25px;
    font-size: 17px;
    font-weight: 500;
    line-height: 1.6;
    letter-spacing:0em
}

@media only screen and (min-width: 768px) {
    h4, .h4 {
        font-size:22px
    }
}

@media only screen and (min-width: 1220px) {
    h4, .h4 {
        font-size:22px
    }
}

h5, .h5 {
    margin-top: 15px;
    font-size: 17px;
    font-weight: 500;
    line-height: 1.6;
    letter-spacing:0em
}

@media only screen and (min-width: 768px) {
    h5, .h5 {
        font-size:20px
    }
}

@media only screen and (min-width: 1220px) {
    h5, .h5 {
        font-size:20px
    }
}

h6, .h6 {
    margin-top: 15px;
    font-size: 17px;
    font-weight: 500;
    line-height: 1.6;
    letter-spacing:0em
}

@media only screen and (min-width: 768px) {
    h6, .h6 {
        font-size:20px
    }
}

@media only screen and (min-width: 1220px) {
    h6, .h6 {
        font-size:20px
    }
}

p, ul, ol {
    margin-top: 15px;
    font-size: 16px;
    font-weight: 300;
    line-height: 1.6;
    letter-spacing:0em
}

@media only screen and (min-width: 768px) {
    p, ul, ol {
        font-size:18px
    }
}

@media only screen and (min-width: 1220px) {
    p, ul, ol {
        font-size:20px
    }
}

p strong, ul strong, ol strong {
    font-weight:500
}

p:first-child, ul:first-child, ol:first-child {
    margin-top:0
}

ul, ol {
    list-style-position:inside
}

blockquote {
    margin-top: 15px;
    padding: 10px 20px;
    font-size: 25px;
    font-weight: 300;
    letter-spacing: -.02em;
    line-height:1.6
}

@media only screen and (min-width: 768px) {
    blockquote {
        padding: 15px 30px;
        font-size:35px
    }
}

@media only screen and (min-width: 1220px) {
    blockquote {
        padding: 20px 40px;
        font-size:45px
    }
}

blockquote p {
    font-size: 25px;
    font-weight: 300;
    letter-spacing: -.02em;
    line-height:1.6
}

@media only screen and (min-width: 768px) {
    blockquote p {
        font-size:35px
    }
}

@media only screen and (min-width: 1220px) {
    blockquote p {
        font-size:45px
    }
}

a {
    text-decoration: none;
    color: #2A2F36;
    font-weight: 500;
    -webkit-transition: all 0.15s ease-in-out;
    -moz-transition: all 0.15s ease-in-out;
    -ms-transition: all 0.15s ease-in-out;
    -o-transition: all 0.15s ease-in-out;
    transition:all 0.15s ease-in-out
}

a:hover {
    color:#0C5DF2
}

.button {
    display: inline-block;
    padding: 9px 10px 10px;
    font-size: 13px;
    line-height: 1;
    border: 2px solid #0C5DF2;
    background: #0C5DF2;
    color: #fff;
    font-weight: 500;
    letter-spacing: 0em;
    cursor:pointer
}

@media only screen and (min-width: 768px) {
    .button {
        padding: 11px 20px 12px;
        font-size:15px
    }
}

.button:hover {
    background: #0c24f2;
    border-color: #0c24f2;
    color:#fff
}

.button svg {
    margin-right:5px
}

.button svg:last-child {
    margin-right: 0;
    margin-left:5px
}

@media only screen and (min-width: 768px) {
    .button svg {
        margin-right:8px
    }

    .button svg:last-child {
        margin-right: 0;
        margin-left:8px
    }
}

.button--large {
    padding: 15px 20px 16px;
    font-size:13px
}

@media only screen and (min-width: 768px) {
    .button--large {
        padding: 19px 40px 20px;
        font-size:17px
    }
}

.button--light {
    background: transparent;
    border-color: #2A2F36;
    color:#2A2F36
}

.button--light:hover {
    background: #0C5DF2;
    border-color: #0C5DF2;
    color:#fff
}

.button--overlay {
    background: transparent;
    border-color: #fff;
    color:#fff
}

.button--overlay:hover {
    background: #fff;
    border-color: #fff;
    color:#0C5DF2
}

hr {
    margin: 40px 0;
    border: 0;
    height: 2px;
    background:#ddd
}

::selection {
    background: #0C5DF2;
    color:#fff
}

::-moz-selection {
    background: #0C5DF2;
    color:#fff
}

.page-loader {
    display:none
}

.page {
    -webkit-transition: all 0.6s cubic-bezier(0.87, -0.41, 0.19, 1.44);
    -moz-transition: all 0.6s cubic-bezier(0.87, -0.41, 0.19, 1.44);
    -ms-transition: all 0.6s cubic-bezier(0.87, -0.41, 0.19, 1.44);
    -o-transition: all 0.6s cubic-bezier(0.87, -0.41, 0.19, 1.44);
    transition:all 0.6s cubic-bezier(0.87, -0.41, 0.19, 1.44)
}

body.loading .loader {
    opacity: 1;
    visibility: visible;
    -webkit-transition: all 0.4s ease-in-out 1s;
    -moz-transition: all 0.4s ease-in-out 1s;
    -ms-transition: all 0.4s ease-in-out 1s;
    -o-transition: all 0.4s ease-in-out 1s;
    transition:all 0.4s ease-in-out 1s
}

body.loading .page {
    opacity: 0;
    visibility: hidden;
    -webkit-transition: all 0.4s ease-in-out, transform 0s ease-in-out 0.4s;
    -moz-transition: all 0.4s ease-in-out, transform 0s ease-in-out 0.4s;
    -ms-transition: all 0.4s ease-in-out, transform 0s ease-in-out 0.4s;
    -o-transition: all 0.4s ease-in-out, transform 0s ease-in-out 0.4s;
    transition: all 0.4s ease-in-out, transform 0s ease-in-out 0.4s;
    -moz-transform: translate(0, 20px);
    -o-transform: translate(0, 20px);
    -ms-transform: translate(0, 20px);
    -webkit-transform: translate(0, 20px);
    transform:translate(0, 20px)
}

body.loading .footer {
    opacity: 0;
    visibility: hidden;
    -webkit-transition: all 0.4s ease-in-out;
    -moz-transition: all 0.4s ease-in-out;
    -ms-transition: all 0.4s ease-in-out;
    -o-transition: all 0.4s ease-in-out;
    transition:all 0.4s ease-in-out
}

.loader {
    position: fixed;
    top: 50%;
    left: 50%;
    -moz-transform: translate(-50%, -50%);
    -o-transform: translate(-50%, -50%);
    -ms-transform: translate(-50%, -50%);
    -webkit-transform: translate(-50%, -50%);
    transform: translate(-50%, -50%);
    width: 60px;
    height: 15px;
    opacity: 0;
    visibility: hidden;
    -webkit-transition: all 0.2s ease-in-out;
    -moz-transition: all 0.2s ease-in-out;
    -ms-transition: all 0.2s ease-in-out;
    -o-transition: all 0.2s ease-in-out;
    transition:all 0.2s ease-in-out
}

.loader svg {
    width: 100%;
    height: 100%;
    fill:rgba(42, 47, 54, 0.2)
}

.page, .page__content {
    float: left;
    clear: both;
    width:100%
}

@media only screen and (min-width: 1024px) {
    .page {
        padding-left:30%
    }
}

section {
    margin-top:40px
}

@media only screen and (min-width: 768px) {
    section {
        margin-top:50px
    }
}

@media only screen and (min-width: 1024px) {
    section {
        margin-top:60px
    }
}

@media only screen and (min-width: 1220px) {
    section {
        margin-top:80px
    }
}

.wrap {
    position: relative;
    margin: 0 auto;
    padding:0 20px
}

@media only screen and (min-width: 768px) {
    .wrap {
        padding:0 40px
    }
}

@media only screen and (min-width: 1024px) {
    .wrap {
        padding:0
    }
}

.header {
    padding:20px
}

@media only screen and (min-width: 768px) {
    .header {
        padding:40px
    }
}

@media only screen and (min-width: 1024px) {
    .header {
        position: fixed;
        overflow: auto;
        top: 0;
        left: 0;
        bottom: 0;
        width: 30%;
        padding:0
    }
}

@media only screen and (min-width: 1024px) {
    .header__content {
        position: relative;
        min-height: 100vh;
        padding:40px 40px 135px
    }
}

@media only screen and (min-width: 1220px) {
    .header__content {
        padding:60px 60px 145px
    }
}

.header__logo {
    display: block;
    width: 200px;
    max-width:80%
}

@media only screen and (min-width: 768px) {
    .header__logo {
        float: left;
        max-width:50%
    }
}

.header__logo__img {
    width: 100%;
    height:auto
}

.header__title {
    font-size: 25px;
    font-weight: 500;
    letter-spacing: -.02em;
    line-height: 1;
    color:#2A2F36
}

.header__title:hover {
    color:#0C5DF2
}

@media only screen and (min-width: 768px) {
    .header__title {
        font-size:35px
    }
}

@media only screen and (min-width: 1220px) {
    .header__title {
        font-size:45px
    }
}

.header__tagline {
    margin-top: 20px;
    font-size: 16px;
    font-weight: 300;
    letter-spacing: 0em;
    line-height: 1.5;
    color:#3c3c41
}

@media only screen and (min-width: 768px) {
    .header__tagline {
        font-size:18px
    }
}

@media only screen and (min-width: 1220px) {
    .header__tagline {
        margin-top: 30px;
        font-size:20px
    }
}

@media only screen and (min-width: 1024px) {
    .menu {
        margin-top:20px
    }
}

@media only screen and (min-width: 1220px) {
    .menu {
        margin-top:30px
    }
}

.menu__toggle {
    position: absolute;
    z-index: 100;
    top: 20px;
    right: 20px;
    cursor: pointer;
    font-size: 15px;
    line-height: 20px;
    color:#2A2F36
}

@media only screen and (min-width: 768px) {
    .menu__toggle {
        top: 40px;
        right:40px
    }
}

@media only screen and (min-width: 1024px) {
    .menu__toggle {
        display:none
    }
}

.menu__toggle__icon {
    float: right;
    position: relative;
    width: 24px;
    height: 20px;
    margin-left:8px
}

.menu__toggle__icon span, .menu__toggle__icon span:before, .menu__toggle__icon span:after {
    content: '';
    position: absolute;
    top: 8px;
    left: 0;
    width: 100%;
    height: 3px;
    -webkit-transition: all 0.1s;
    -moz-transition: all 0.1s;
    -ms-transition: all 0.1s;
    -o-transition: all 0.1s;
    transition: all 0.1s;
    background:#2A2F36
}

.menu__toggle__icon span:before {
    top:-8px
}

.menu__toggle__icon span:after {
    top:8px
}

.menu--open .menu__toggle__icon span:before, .menu--open .menu__toggle__icon span:after {
    background:#fff !important
}

.menu--open .menu__toggle__icon span {
    background-color:transparent !important
}

.menu--open .menu__toggle__icon span:before, .menu--open .menu__toggle__icon span:after {
    top:0
}

.menu--open .menu__toggle__icon span:before {
    -moz-transform: rotate(45deg);
    -o-transform: rotate(45deg);
    -ms-transform: rotate(45deg);
    -webkit-transform: rotate(45deg);
    transform:rotate(45deg)
}

.menu--open .menu__toggle__icon span:after {
    -moz-transform: rotate(-45deg);
    -o-transform: rotate(-45deg);
    -ms-transform: rotate(-45deg);
    -webkit-transform: rotate(-45deg);
    transform:rotate(-45deg)
}

.menu__wrap {
    position: fixed;
    z-index: 90;
    top: 0;
    right: 0;
    bottom: 0;
    left: 0;
    background: rgba(12, 93, 242, 0.95);
    overflow: auto;
    visibility: hidden;
    opacity: 0;
    -webkit-transition: all 0.2s ease-in-out;
    -moz-transition: all 0.2s ease-in-out;
    -ms-transition: all 0.2s ease-in-out;
    -o-transition: all 0.2s ease-in-out;
    transition:all 0.2s ease-in-out
}

@media only screen and (min-width: 1024px) {
    .menu__wrap {
        position: relative;
        background: transparent;
        visibility: visible;
        overflow: visible;
        opacity: 1;
        -webkit-transition: none;
        -moz-transition: none;
        -ms-transition: none;
        -o-transition: none;
        transition:none
    }
}

.menu--open .menu__wrap {
    visibility: visible;
    opacity:1
}

.menu__list {
    list-style: none;
    margin: 0 auto;
    padding:12px 20px
}

@media only screen and (min-width: 768px) {
    .menu__list {
        padding:30px 40px
    }
}

@media only screen and (min-width: 1024px) {
    .menu__list {
        margin: 0;
        padding:0
    }
}

.menu__list__item__link {
    font-size: 18px;
    font-weight: 500;
    color: #fff;
    padding:10px 0
}

.menu__list__item__link:hover {
    color:#2A2F36
}

@media only screen and (min-width: 1024px) {
    .menu__list__item__link {
        padding: 0;
        font-size: 20px;
        color:#2A2F36
    }

    .menu__list__item__link:hover {
        color:#0C5DF2
    }
}

@media only screen and (min-width: 1220px) {
    .menu__list__item__link {
        font-size:22px
    }
}

.menu__list__item__link.active-link {
    color:#2A2F36
}

@media only screen and (min-width: 1024px) {
    .menu__list__item__link.active-link {
        color:#0C5DF2
    }
}

.menu__button {
    margin-top: 15px;
    padding: 15px 20px 16px;
    font-size:13px
}

@media only screen and (min-width: 1024px) {
    .menu__button {
        margin-top: 0;
        padding: 11px 20px 12px;
        font-size:15px
    }
}

.projects-menu {
    display:none
}

@media only screen and (min-width: 1024px) {
    .projects-menu {
        display: block;
        margin-top:20px
    }
}

@media only screen and (min-width: 1220px) {
    .projects-menu {
        margin-top:30px
    }
}

.header__lower {
    display:none
}

@media only screen and (min-width: 1024px) {
    .header__lower {
        display: block;
        position: absolute;
        bottom: 30px;
        left:40px
    }
}

@media only screen and (min-width: 1220px) {
    .header__lower {
        bottom: 40px;
        left:60px
    }
}

.footer {
    -webkit-transition: all 0.4s ease-in-out 0.8s;
    -moz-transition: all 0.4s ease-in-out 0.8s;
    -ms-transition: all 0.4s ease-in-out 0.8s;
    -o-transition: all 0.4s ease-in-out 0.8s;
    transition: all 0.4s ease-in-out 0.8s;
    padding:20px
}

@media only screen and (min-width: 768px) {
    .footer {
        padding:40px
    }
}

@media only screen and (min-width: 1024px) {
    .footer {
        display:none
    }
}

.footer__copyright {
    display: block;
    margin-top: 15px;
    font-size: 13px;
    color:#ABB7B7
}

.footer__copyright a {
    margin-left: 10px;
    color: #ABB7B7;
    font-weight:300
}

.footer__copyright a:hover {
    color:#3c3c41
}

.intro {
    margin-top: 0;
    padding: 20px 0 0;
    background:#F5F7FA
}

@media only screen and (min-width: 768px) {
    .intro {
        padding:35px 0 0
    }
}

@media only screen and (min-width: 1024px) {
    .intro {
        padding:35px 20px 0
    }
}

@media only screen and (min-width: 1220px) {
    .intro {
        padding:53px 20px 0
    }
}

@media only screen and (min-width: 1024px) {
    .intro .wrap {
        max-width:70%
    }
}

@media only screen and (min-width: 1220px) {
    .intro .wrap {
        max-width:65%
    }
}

@media only screen and (min-width: 768px) {
    .intro h1 {
        white-space:pre-line
    }
}

.single {
    margin-top: 0;
    padding: 20px 0;
    background: #F5F7FA;
    min-height:100vh
}

@media only screen and (min-width: 768px) {
    .single {
        padding:40px 0
    }
}

@media only screen and (min-width: 1024px) {
    .single {
        padding:40px 20px
    }
}

@media only screen and (min-width: 1220px) {
    .single {
        padding:60px 20px
    }
}

.single h1, .single h2, .single h3, .single h4, .single h5, .single h6, .single p, .single ul, .single ol {
    margin-left: auto;
    margin-right:auto
}

@media only screen and (min-width: 1024px) {
    .single h1, .single h2, .single h3, .single h4, .single h5, .single h6, .single p, .single ul, .single ol {
        max-width:70%
    }
}

@media only screen and (min-width: 1220px) {
    .single h1, .single h2, .single h3, .single h4, .single h5, .single h6, .single p, .single ul, .single ol {
        max-width:65%
    }
}

.single hr {
    margin:20px auto
}

@media only screen and (min-width: 768px) {
    .single hr {
        margin-top: 40px;
        margin-bottom: 40px;
        width:auto
    }
}

@media only screen and (min-width: 1024px) {
    .single hr {
        max-width:70%
    }
}

@media only screen and (min-width: 1220px) {
    .single hr {
        max-width:65%
    }
}

.single blockquote, .single figure {
    margin:20px auto
}

@media only screen and (min-width: 768px) {
    .single blockquote, .single figure {
        margin:30px auto
    }
}

@media only screen and (min-width: 1220px) {
    .single blockquote, .single figure {
        margin:40px auto
    }
}

.single blockquote p {
    max-width: 100%;
    padding:0
}

.single p a {
    font-weight: 500;
    border-bottom:2px solid #0C5DF2
}

.single p .button {
    margin-top:10px
}

.single .highlighter-rouge, .single table {
    margin: 20px auto;
    width:100%
}

@media only screen and (min-width: 768px) {
    .single .highlighter-rouge, .single table {
        margin:30px auto
    }
}

@media only screen and (min-width: 1024px) {
    .single .highlighter-rouge, .single table {
        max-width:70%
    }
}

@media only screen and (min-width: 1220px) {
    .single .highlighter-rouge, .single table {
        margin: 40px auto;
        max-width:65%
    }
}

.single .highlight {
    display: block;
    padding: 0;
    line-height: 1.5;
    font-size: 13.6px;
    line-height: 1.6;
    overflow:auto
}

@media only screen and (min-width: 768px) {
    .single .highlight {
        font-size:15.3px
    }
}

@media only screen and (min-width: 1220px) {
    .single .highlight {
        font-size:17px
    }
}

.single .highlight .highlight {
    padding:20px
}

@media only screen and (min-width: 768px) {
    .single .highlight .highlight {
        padding:30px
    }
}

@media only screen and (min-width: 1220px) {
    .single .highlight .highlight {
        padding:40px
    }
}

.single table {
    border:2px solid #2A2F36
}

.single table thead {
    background: #2A2F36;
    color: #fff;
    text-align: left;
    font-weight:500
}

.single table thead th {
    font-weight:500
}

.single table th, .single table td {
    padding: 10px;
    font-size: 16px;
    font-weight:300
}

@media only screen and (min-width: 768px) {
    .single table th, .single table td {
        padding:15px
    }
}

@media only screen and (min-width: 1220px) {
    .single table th, .single table td {
        padding:20px
    }
}

.single table tbody tr {
    background:#fff
}

.single table tbody tr:nth-child(2n) {
    background:#F5F7FA
}

.image-wrap, .video-wrap {
    position: relative;
    margin:20px auto
}

@media only screen and (min-width: 768px) {
    .image-wrap, .video-wrap {
        margin:30px auto
    }
}

@media only screen and (min-width: 1220px) {
    .image-wrap, .video-wrap {
        margin:40px auto
    }
}

.image-wrap:first-child, .video-wrap:first-child {
    margin-top:0
}

.image-wrap img {
    margin:0 auto
}

.video {
    position: relative;
    width: 100%;
    height:0
}

.video iframe {
    position: absolute;
    top: 0;
    left: 0;
    width: 100%;
    height:100%
}

.socials {
    list-style: none;
    margin: 0;
    padding:0
}

.socials__item {
    display: inline-block;
    margin-left:2px
}

.socials__item:first-child {
    margin-left:0
}

.socials__item__link {
    position: relative;
    display: block;
    width: 30px;
    height: 30px;
    border-radius: 100%;
    background: #ABB7B7;
    font-size: 17px;
    line-height: 1;
    color:#fff
}

@media only screen and (min-width: 768px) {
    .socials__item__link {
        width: 40px;
        height: 40px;
        font-size:20px
    }
}

.socials__item__link svg {
    position: absolute;
    top: 50%;
    left: 50%;
    -moz-transform: translate(-50%, -52%);
    -o-transform: translate(-50%, -52%);
    -ms-transform: translate(-50%, -52%);
    -webkit-transform: translate(-50%, -52%);
    transform:translate(-50%, -52%)
}

.socials__item__link:hover {
    background: #0C5DF2;
    color:#fff
}

.gallery {
    visibility: hidden;
    position: relative;
    margin:20px auto
}

@media only screen and (min-width: 768px) {
    .gallery {
        margin:30px auto
    }
}

@media only screen and (min-width: 1220px) {
    .gallery {
        margin:40px auto
    }
}

.gallery:first-child {
    margin-top:0
}

.gallery--on {
    visibility:visible
}

.gallery__item {
    position:relative
}

.gallery__item img {
    width:100%
}

.gallery--carousel .gallery__item__link {
    display: block;
    pointer-events:none
}

.gallery--carousel .owl-nav {
    display:none
}

.gallery--carousel .owl-dots {
    margin-top: 20px;
    text-align:center
}

.gallery--carousel .owl-dots .owl-dot {
    display: inline-block;
    margin: 0 3px;
    width: 12px;
    height: 12px;
    border: 0;
    border-radius: 100%;
    background: #ABB7B7;
    -webkit-transition: all 0.2s ease-in-out;
    -moz-transition: all 0.2s ease-in-out;
    -ms-transition: all 0.2s ease-in-out;
    -o-transition: all 0.2s ease-in-out;
    transition: all 0.2s ease-in-out;
    cursor: pointer;
    outline:none
}

.gallery--carousel .owl-dots .owl-dot.active {
    background:#0C5DF2
}

.gallery--grid .gallery__wrap {
    margin-left: -10px;
    margin-right:-10px
}

.gallery--grid .gallery__item {
    float: left;
    width: 50%;
    padding:10px
}

.gallery--grid .gallery__item__link {
    display: block;
    cursor: zoom-in
}

.gallery--grid[data-columns="3"] .gallery__item {
    width: 33.33%
}

.gallery--grid[data-columns="4"] .gallery__item {
    width:33.33%
}

@media only screen and (min-width: 768px) {
    .gallery--grid[data-columns="4"] .gallery__item {
        width: 25%
    }
}

.gallery--grid[data-columns="5"] .gallery__item {
    width:33.33%
}

@media only screen and (min-width: 768px) {
    .gallery--grid[data-columns="5"] .gallery__item {
        width:25%
    }
}

@media only screen and (min-width: 1024px) {
    .gallery--grid[data-columns="5"] .gallery__item {
        width: 20%
    }
}

.gallery--grid[data-columns="6"] .gallery__item {
    width:33.33%
}

@media only screen and (min-width: 768px) {
    .gallery--grid[data-columns="6"] .gallery__item {
        width:25%
    }
}

@media only screen and (min-width: 1024px) {
    .gallery--grid[data-columns="6"] .gallery__item {
        width:20%
    }
}

@media only screen and (min-width: 1220px) {
    .gallery--grid[data-columns="6"] .gallery__item {
        width:16.66%
    }
}

.highlight .hll {
    background-color:#ffc
}

.highlight {
    background:#f0f0f0
}

.highlight .c {
    color: #60a0b0;
    font-style:italic
}

.highlight .err {
    border:1px solid red
}

.highlight .k {
    color: #007020;
    font-weight:bold
}

.highlight .o {
    color:#666
}

.highlight .ch {
    color: #60a0b0;
    font-style:italic
}

.highlight .cm {
    color: #60a0b0;
    font-style:italic
}

.highlight .cp {
    color:#007020
}

.highlight .cpf {
    color: #60a0b0;
    font-style:italic
}

.highlight .c1 {
    color: #60a0b0;
    font-style:italic
}

.highlight .cs {
    color: #60a0b0;
    background-color:#fff0f0
}

.highlight .gd {
    color:#A00000
}

.highlight .ge {
    font-style:italic
}

.highlight .gr {
    color:red
}

.highlight .gh {
    color: #000080;
    font-weight:bold
}

.highlight .gi {
    color:#00A000
}

.highlight .go {
    color:#888
}

.highlight .gp {
    color: #c65d09;
    font-weight:bold
}

.highlight .gs {
    font-weight:bold
}

.highlight .gu {
    color: #800080;
    font-weight:bold
}

.highlight .gt {
    color:#04d
}

.highlight .kc {
    color: #007020;
    font-weight:bold
}

.highlight .kd {
    color: #007020;
    font-weight:bold
}

.highlight .kn {
    color: #007020;
    font-weight:bold
}

.highlight .kp {
    color:#007020
}

.highlight .kr {
    color: #007020;
    font-weight:bold
}

.highlight .kt {
    color:#902000
}

.highlight .m {
    color:#40a070
}

.highlight .s {
    color:#4070a0
}

.highlight .na {
    color:#4070a0
}

.highlight .nb {
    color:#007020
}

.highlight .nc {
    color: #0e84b5;
    font-weight:bold
}

.highlight .no {
    color:#60add5
}

.highlight .nd {
    color: #555555;
    font-weight:bold
}

.highlight .ni {
    color: #d55537;
    font-weight:bold
}

.highlight .ne {
    color:#007020
}

.highlight .nf {
    color:#06287e
}

.highlight .nl {
    color: #002070;
    font-weight:bold
}

.highlight .nn {
    color: #0e84b5;
    font-weight:bold
}

.highlight .nt {
    color: #062873;
    font-weight:bold
}

.highlight .nv {
    color:#bb60d5
}

.highlight .ow {
    color: #007020;
    font-weight:bold
}

.highlight .w {
    color:#bbb
}

.highlight .mb {
    color:#40a070
}

.highlight .mf {
    color:#40a070
}

.highlight .mh {
    color:#40a070
}

.highlight .mi {
    color:#40a070
}

.highlight .mo {
    color:#40a070
}

.highlight .sa {
    color:#4070a0
}

.highlight .sb {
    color:#4070a0
}

.highlight .sc {
    color:#4070a0
}

.highlight .dl {
    color:#4070a0
}

.highlight .sd {
    color: #4070a0;
    font-style:italic
}

.highlight .s2 {
    color:#4070a0
}

.highlight .se {
    color: #4070a0;
    font-weight:bold
}

.highlight .sh {
    color:#4070a0
}

.highlight .si {
    color: #70a0d0;
    font-style:italic
}

.highlight .sx {
    color:#c65d09
}

.highlight .sr {
    color:#235388
}

.highlight .s1 {
    color:#4070a0
}

.highlight .ss {
    color:#517918
}

.highlight .bp {
    color:#007020
}

.highlight .fm {
    color:#06287e
}

.highlight .vc {
    color:#bb60d5
}

.highlight .vg {
    color:#bb60d5
}

.highlight .vi {
    color:#bb60d5
}

.highlight .vm {
    color:#bb60d5
}

.highlight .il {
    color:#40a070
}

.contact-form {
    background: #fff;
    margin: 20px auto;
    width: 100%;
    padding:20px
}

@media only screen and (min-width: 768px) {
    .contact-form {
        margin: 30px auto;
        padding:40px
    }
}

@media only screen and (min-width: 1024px) {
    .contact-form {
        max-width:calc(70% + 80px)
    }
}

@media only screen and (min-width: 1220px) {
    .contact-form {
        margin: 40px auto;
        max-width: calc(65% + 100px);
        padding:50px
    }
}

.contact-form:first-child {
    margin-top:0
}

.contact-form__item {
    margin-top:15px
}

@media only screen and (min-width: 768px) {
    .contact-form__item {
        margin-top:20px
    }
}

@media only screen and (min-width: 1220px) {
    .contact-form__item {
        margin-top:30px
    }
}

.contact-form__item:first-child {
    margin-top:0
}

.contact-form__item--error .contact-form__input, .contact-form__item--error .contact-form__textarea {
    border-color:#D64541
}

.contact-form__label {
    display: block;
    font-size: 16px;
    font-weight: 500;
    color:#3c3c41
}

@media only screen and (min-width: 768px) {
    .contact-form__label {
        font-size:18px
    }
}

@media only screen and (min-width: 1220px) {
    .contact-form__label {
        font-size:20px
    }
}

.contact-form__input, .contact-form__textarea {
    width: 100%;
    margin-top: 8px;
    border: 2px solid #ddd;
    border-radius: 2px;
    padding: 10px 12px;
    background: #fff;
    font-size: 16px;
    line-height: 1.4;
    color: #2A2F36;
    -webkit-transition: all 0.15s ease-in-out;
    -moz-transition: all 0.15s ease-in-out;
    -ms-transition: all 0.15s ease-in-out;
    -o-transition: all 0.15s ease-in-out;
    transition:all 0.15s ease-in-out
}

@media only screen and (min-width: 768px) {
    .contact-form__input, .contact-form__textarea {
        padding: 15px 18px;
        font-size:18px
    }
}

@media only screen and (min-width: 1220px) {
    .contact-form__input, .contact-form__textarea {
        font-size:20px
    }
}

.contact-form__input:focus, .contact-form__textarea:focus {
    outline: none;
    border-color:#0C5DF2
}

::-webkit-input-placeholder {
    color:#d4dada
}

::-moz-placeholder {
    color:#d4dada
}

:-ms-input-placeholder {
    color:#d4dada
}

:-moz-placeholder {
    color:#d4dada
}

.contact-form__textarea {
    min-height: 200px;
    resize:none
}

.portfolio {
    margin-top: 0;
    padding:10px
}

.portfolio-item {
    position: relative;
    padding: 10px;
    float: left;
    width:50%
}

.portfolio-item__link {
    position: relative;
    display:block
}

@media only screen and (min-width: 1024px) {
    .portfolio-item__link:hover .portfolio-item__content {
        opacity: 1;
        visibility:visible
    }
}

.portfolio-item__image {
    width:100%
}

.portfolio-item__content {
    position: absolute;
    top: 0;
    right: 0;
    bottom: 0;
    left: 0;
    display: flex;
    align-items: center;
    justify-content: center;
    background: rgba(12, 93, 242, 0.8);
    opacity: 0;
    visibility: hidden;
    -webkit-transition: all 0.2s ease-in-out;
    -moz-transition: all 0.2s ease-in-out;
    -ms-transition: all 0.2s ease-in-out;
    -o-transition: all 0.2s ease-in-out;
    transition:all 0.2s ease-in-out
}

.portfolio-item__info {
    text-align:center
}

.portfolio-item__title {
    color: #fff;
    font-size: 22px;
    font-weight: 500;
    letter-spacing:-.02em
}

@media only screen and (min-width: 768px) {
    .portfolio-item__title {
        font-size:26px
    }
}

@media only screen and (min-width: 1220px) {
    .portfolio-item__title {
        font-size:30px
    }
}

.portfolio-item__subtitle {
    margin-top: 5px;
    color: rgba(255, 255, 255, 0.7);
    font-size: 15px;
    font-weight: 300;
    letter-spacing:0em
}

@media only screen and (min-width: 768px) {
    .portfolio-item__subtitle {
        font-size:16px
    }
}

@media only screen and (min-width: 1220px) {
    .portfolio-item__subtitle {
        font-size:17px
    }
}

.blog {
    margin-top: 0;
    padding:10px
}

.blog-post {
    position: relative;
    padding: 10px;
    float: left;
    width:50%
}

.blog-post__link {
    position: relative;
    display:block
}

@media only screen and (min-width: 1024px) {
    .blog-post__link:hover .blog-post__content {
        opacity: 1;
        visibility:visible
    }
}

.blog-post__image {
    width:100%
}

.blog-post__content {
    position: absolute;
    top: 0;
    right: 0;
    bottom: 0;
    left: 0;
    display: flex;
    align-items: center;
    justify-content: center;
    background: rgba(12, 93, 242, 0.8);
    opacity: 0;
    visibility: hidden;
    -webkit-transition: all 0.2s ease-in-out;
    -moz-transition: all 0.2s ease-in-out;
    -ms-transition: all 0.2s ease-in-out;
    -o-transition: all 0.2s ease-in-out;
    transition:all 0.2s ease-in-out
}

.blog-post__info {
    text-align:center
}

.blog-post__title {
    color: #fff;
    font-size: 22px;
    font-weight: 500;
    letter-spacing:-.02em
}

@media only screen and (min-width: 768px) {
    .blog-post__title {
        font-size:26px
    }
}

@media only screen and (min-width: 1220px) {
    .blog-post__title {
        font-size:30px
    }
}

.blog-post__subtitle {
    margin-top: 5px;
    color: rgba(255, 255, 255, 0.7);
    font-size: 15px;
    font-weight: 300;
    letter-spacing:0em
}

@media only screen and (min-width: 768px) {
    .blog-post__subtitle {
        font-size:16px
    }
}

@media only screen and (min-width: 1220px) {
    .blog-post__subtitle {
        font-size:17px
    }
}

.pagination {
    margin-top: 0;
    padding:0 10px 20px
}

.pagination__prev, .pagination__next {
    width: 50%;
    padding:0 10px
}

.pagination__prev .button, .pagination__next .button {
    display: block;
    text-align:center
}

.pagination__prev {
    float:left
}

.pagination__next {
    float: right
}