*,
*:after,
*:before {
    outline: none;
    padding: 0;
    margin: 0;
    -webkit-box-sizing: border-box;
    box-sizing: border-box;
}


/* ==========================================================================
   Base styles: opinionated defaults
   ========================================================================== */

html {
    color: #222;
    font-size: 1em;
    line-height: 1.4;
}


/*
 * Remove text-shadow in selection highlight:
 * https://twitter.com/miketaylr/status/12228805301
 *
 * These selection rule sets have to be separate.
 * Customize the background color to match your design.
 */

::-moz-selection {
    background: #b3d4fc;
    text-shadow: none;
}

::selection {
    background: #b3d4fc;
    text-shadow: none;
}


/*
 * A better looking default horizontal rule
 */

hr {
    display: block;
    height: 1px;
    border: 0;
    border-top: 1px solid #ccc;
    margin: 1em 0;
    padding: 0;
}


/*
 * Remove the gap between audio, canvas, iframes,
 * images, videos and the bottom of their containers:
 * https://github.com/h5bp/html5-boilerplate/issues/440
 */

audio,
canvas,
iframe,
img,
svg,
video {
    vertical-align: middle;
}


/*
 * Remove default fieldset styles.
 */

fieldset {
    border: 0;
    margin: 0;
    padding: 0;
}


/*
 * Allow only vertical resizing of textareas.
 */

textarea {
    resize: vertical;
}


/* ==========================================================================
   Browser Upgrade Prompt
   ========================================================================== */

.browserupgrade {
    margin: 0.2em 0;
    background: #ccc;
    color: #000;
    padding: 0.2em 0;
}


/* ==========================================================================
   Author's custom styles
   ========================================================================== */

:root {
    --blue-color: #00a5ed;
    --dark-blue-color: #282d34;
    --grey-color: #6e6f71;
    --grey-light-color: #ededed;
    --blue-gradient: linear-gradient(45deg, #0251ab 3%, #00d2f1 100%);
    --blue-gradient: -webkit-linear-gradient(45deg, #0251ab 3%, #00d2f1 100%);
    --blue-gradient: -moz-linear-gradient(45deg, #0251ab 3%, #00d2f1 100%);
}

body {
    font-family: 'Titillium Web', sans-serif;
    font-weight: 400;
    color: #282d34;
}

.flex {
    display: -webkit-box;
    display: -ms-flexbox;
    display: flex;
}

.flex.equal>* {
    -webkit-box-flex: 1;
    -ms-flex: 1;
    flex: 1
}

.flex.v-center {
    -webkit-box-align: center;
    -ms-flex-align: center;
    align-items: center;
}

.ease {
    -webkit-transition: all 600ms ease;
    transition: all 600ms ease;
}

.blue-color {
    color: #00a5ed;
}

.dark-blue-color {
    color: #282d34;
}

.uppercase {
    text-transform: uppercase;
}

.grey-color {
    color: #2c3137 !important;
}

.white-color {
    color: #fff !important;
}

.white-bgcolor {
    background-color: #fff !important;
}

.grey-bgcolor {
    background-color: #6e6f71 !important;
}

.blue-bgcolor {
    background-color: #00a5ed !important;
}

.grey-light-color {
    color: #ededed !important;
}

.grey-light-bgcolor {
    background-color: #ededed !important;
}

.gradient-color {
    background: linear-gradient(45deg, #0251ab 3%, #00d2f1 100%);
    background: -moz-linear-gradient(45deg, #0251ab 3%, #00d2f1 100%);
}

.gradient-color.reverse {
    background: linear-gradient(45deg, #00d2f1 3%, #0251ab 100%);
    background: -moz-linear-gradient(45deg, #00d2f1 3%, #0251ab 100%);
}

.block-shadow {
    -webkit-box-shadow: 0 0 35px rgba(0, 0, 0, .085);
    box-shadow: 0 0 35px rgba(0, 0, 0, .085);
}

.block-pattern {
    background-image: url(../img/bg-pattern-block.png);
    background-size: 280px;
    background-attachment: fixed;
}

.center940px {
    width: 100%;
    max-width: 940px;
    margin: 0 auto;
}

ul {
    margin-top: 2rem;
    margin-bottom: 2rem;
}

li {
    margin: .25rem;
    margin-left: 2.5rem;
    list-style-type: square;
    font-weight: bold;
}

a {
    position: relative;
}

.center {
    text-align: center;
}

h1.like {
    font-family: 'Russo One', sans-serif;
    color: #00a5ed;
    font-weight: 600;
    text-transform: uppercase;
    font-size: 1.65rem;
    line-height: 1.35;
    font-weight: normal;
}

.extra-bold {
    font-weight: 900;
}

.baseline-separator {
    min-height: 300px;
    -webkit-box-pack: center;
    -ms-flex-pack: center;
    justify-content: center;
    -webkit-box-align: center;
    -ms-flex-align: center;
    align-items: center;
    color: #fff;
    font-size: 2rem;
}

a.arrow:before {
    content: '';
    display: block;
    width: 6px;
    height: 10px;
    background-image: url(../img/icon-arrow-blue.svg);
    background-size: cover;
    background-repeat: no-repeat;
    background-position: center;
    position: absolute;
    left: -10px;
    top: 8px;
}

.pad0 {
    padding: 0!important;
}

.pad1 {
    padding: 1rem;
}

.pad2 {
    padding: 2rem;
}

.pad3 {
    padding: 3rem;
}

.pad5 {
    padding: 5rem;
}

.pad10 {
    padding: 10rem;
}

.pad20 {
    padding: 20rem;
}

.pad0-l {
    padding-left: 0rem;
}

.pad0-r {
    padding-right: 0rem;
}

.pad1-l {
    padding-left: 1rem;
}

.pad1-r {
    padding-right: 1rem;
}

.pad2-l {
    padding-left: 2rem;
}

.pad2-r {
    padding-right: 2rem;
}

.pad3-l {
    padding-left: 3rem;
}

.pad3-r {
    padding-right: 3rem;
}

.pad5-l {
    padding-left: 5rem;
}

.pad5-r {
    padding-right: 5rem;
}

.pad10-l {
    padding-left: 10rem;
}

.pad10-r {
    padding-right: 10rem;
}

.pad20-l {
    padding-left: 20rem;
}

.pad20-r {
    padding-right: 20rem;
}
a.backtop {
    position: fixed;
    bottom: 5%;
    right: 5%;
    z-index: 99999;
    visibility: hidden;
    opacity: 0;
}
a.backtop.active {
    visibility: visible;
    opacity: 1;
}
a.backtop svg {
    -webkit-transform: scale(0.7);
            transform: scale(0.7);
    -webkit-filter:drop-shadow(8px 8px 10px rgba(1,35,65, .45));
            filter:drop-shadow(8px 8px 10px rgba(1,35,65, .45));
}
header {
    text-align: center;
    padding-bottom: 0;
}

header .nav-block {
    padding: 1rem 0rem;
    background-color: #fff
}
header .nav-block .logo>a {
    display: block;
    position: relative;
}
header .nav-block .logo>a:after {
    content:'';
    display: block;
    position: absolute;
    width: 100%;
    height: 1px;
    background-color: #6e6f71;
    bottom: -20px;
    left: 0;
    opacity: .25;
    display: none;
}
header .social-block {
    position: fixed;
    top: .5%;
    right: .5%;
    z-index: 999;
    transform: scale(0.9);
}
header .social-block a {
    display: block;
    padding: .5rem;
    border: 1px solid #00a5ed;
    min-width: 45px;
    text-align: center;
    margin: 0 .1rem;
}
header .social-block a:hover {
    background-color: #00a5ed;
}
header .social-block a:hover path {
    fill:white;
}
nav {
    padding: 2rem 0rem;
    padding-bottom: 1rem;
    -webkit-box-pack: justify;
    -ms-flex-pack: justify;
    justify-content: space-between;
}

nav a {
    display: block;
    padding: .5rem 1rem;
    color: #000;
    text-decoration: none;
    text-transform: uppercase;
    letter-spacing: .1rem;
    font-size: .85rem;
    font-weight: 600;
    color: #282d34;
    position: relative;
    z-index: 1;
    overflow: hidden;
}

nav a:after {
    content: attr(data-titre);
    position: absolute;
    left: 1rem;
    top: .5rem;
    color: #fff;
    clip: rect(0px 0px 50px 0px);
    -webkit-transition: all 700ms ease;
    transition: all 700ms ease;
    -webkit-transition-delay: .12s;
    transition-delay: .12s;
    text-shadow: 0 0 5px rgba(255, 255, 255, .4);
}

nav a:before {
    content: '';
    display: block;
    background: linear-gradient(45deg, #2A66AB 3%, #00a5ed 100%);
    position: absolute;
    left: 0;
    top: 0;
    z-index: 0;
    width: 0%;
    height: 100%;
    z-index: -1;
    -webkit-transition: all 400ms ease;
    transition: all 400ms ease;
}

nav a:hover {
    color: #00a5ed!important;
}

nav a:hover:before,
nav a.active:before {
    color: #fff;
    width: 100%;
}

nav a:hover:after,
nav a.active:after {
    clip: rect(0px 150px 50px 0px);
}

p {
    margin-bottom: 1rem;
}

.hero-block {
    width: 100%;
    height: 350px;
    position: relative;
    overflow: hidden;
}

.hero-block:after {
    content: '';
    display: block;
    width: 100%;
    height: 400px;
    background: linear-gradient(45deg, #0251ab 3%, #00d2f1 100%);
    background: -moz-linear-gradient(45deg, #0251ab 3%, #00d2f1 100%);
    position: absolute;
    top: 0;
    left: 0;
    z-index: 2;
    opacity: .55;
}

.hero-block .baseline {
    position: absolute;
    z-index: 5;
    color: #fff;
    width: 100%;
    top: 50%;
    left: 0;
    -webkit-transform: translateY(-50%);
    transform: translateY(-50%);
    font-size: 3rem;
}

.hero-block video {
    width: 100%;
    height: 400px;
    -o-object-fit: cover;
    object-fit: cover;
    position: relative;
    z-index: 1;
}

section a {
    color: #00a5ed;
}

section a:hover {
    text-decoration: none;
}

section.homepage-block {
    position: relative;
    z-index: 5;
}

section.homepage-block .column-1 img {
    -webkit-transform: translateY(-80px);
    transform: translateY(-80px);
}

section.homepage-block [class*=column-] {
    padding: 2rem;
}

section.homepage-block .column-2 h1 {
    margin: 2rem 0;
}

section.dynamics-nav-block {
    padding: 2rem;
    background-color: white
}

section.dynamics-nav-block h2 {
    margin-bottom: .5rem;
}

section.dynamics-nav-block .flex {
    -ms-flex-wrap: wrap;
    flex-wrap: wrap;
    -ms-flex-pack: distribute;
        justify-content: space-around;
}

section.dynamics-nav-block .flex>div {
    margin-bottom: 5%;
}

section.dynamics-nav-block .flex>div:not(.flex-gap) {
    width: calc(50% - 2rem);
    padding: 2rem;
}

section.dynamics-nav-block .flex>div.flex-gap {
    width: 5%;
}

section.dynamics-nav-block article>div {
    visibility: hidden;
    -webkit-transform: scale(0.85);
    transform: scale(0.85);
}

section.cloud-video-block {
    width: 100%;
    overflow: hidden;
}

section.cloud-video-block>video {
    width: 100%;
    height: 100vh;
    position: fixed;
    top: 0;
    z-index: -1;
    -o-object-fit: cover;
    object-fit: cover;
}

section.dynamics-nav-block img {
    width: 100%;
    height: auto;
    margin-top: 1rem;
}

section.portfolio-block {
    padding: 5rem 0;
    background-color: white;
}

section.portfolio-block .slideshow-block {
    margin: 5rem 0px;
    margin-bottom: 0;
}

section.portfolio-block .slideshow-block>div {
    background-size: cover;
    background-repeat: no-repeat;
    background-position: center;
    min-height: 400px;
    position: relative;
    width: calc(100% / 3 - 1rem);
    margin: 0 .5rem;
    border: 10px solid white;
        cursor: pointer;
}

section.portfolio-block .slideshow-block_hover:after {
    content: '';
    display: block;
    position: absolute;
    left: 0;
    top: 0;
    width: 100%;
    height: 100%;
    background-color: rgba(0, 165, 240, .8);
    z-index: -1;
    border: 10px solid white;
    outline: rgba(0, 165, 240, .8) solid 2px;
}

section.portfolio-block .slideshow-block_hover {
    position: absolute;
    top: 0;
    left: 0;
    width: 100%;
    height: 100%;
    padding: 2rem;
    z-index: 2;
    color: white;
    opacity: 0;
    pointer-events: none
}

section.portfolio-block .slideshow-block_hover>div {
    position: absolute;
    top: 50%;
    left: 50%;
    width: 100%;
    -webkit-transform: translate(-50%, -50%);
    transform: translate(-50%, -50%);
    padding: 0 2rem;
}

section.portfolio-block .slideshow-block_hover h2 {
    text-transform: uppercase;
    text-align: center;
    font-family: 'Russo One', sans-serif;
    font-weight: 600;
}

section.portfolio-block .slideshow-block>div:hover .slideshow-block_hover {
    opacity: 1;
}

section.portfolio-block a {
    float: right;
    margin-right: 10px;
}

section.portfolio-block.rubrique .slideshow-block {
    -ms-flex-wrap: wrap;
        flex-wrap: wrap;
        margin: 0;
}

section.portfolio-block.rubrique .slideshow-block .block-shadow {
    margin-bottom: 1rem;
}

section.contact-block {
    padding: 5rem 0;
}

section.contact-block .flex img {
    width: 120%;
    height: auto;
    -webkit-transform: translate(-25%, -25%);
    transform: translate(-25%, -25%);
}

section.contact-block .flex-gap {
    width: 20%;
}

section.contact-block p>strong {
    padding-right: .5rem;
    display: inline-block;
    width: 2.8rem;
}

section.box-block .block-shadow {
    border: 1px solid rgba(255, 255, 255, .25);
}

section.box-block .block-shadow.flex {
    -webkit-box-orient: vertical;
    -webkit-box-direction: normal;
    -ms-flex-direction: column;
    flex-direction: column;
}

section.box-block .block-shadow.flex>div {
    height: 100%;
    position: relative;
}

section.box-block .block-shadow.flex div.description:before {
    content: '';
    display: block;
    width: 20%;
    height: 2px;
    background-color: #fff;
    position: absolute;
     z-index: 5;
    top: -15%;
    left: 50%;
    -webkit-transform: translateX(-50%);
            transform: translateX(-50%);
}

section.box-block .flex {
    -ms-flex-pack: distribute;
    justify-content: space-around;
    min-height: 180px;
    overflow: hidden;
}
section.box-block h2 {
    position: relative;
    z-index: 5;
}
section.box-block .box-block_picture {
    background-color: rgb(1,24,42);
    position: absolute;
    top: -35px;
    left: 0;
    width: 100%;
    z-index: 4;

}
section.box-block .box-block_picture img {
    opacity: .2;
    width: 100%;
    height: auto;
}
section.box-block .block-shadow:hover .box-block_picture img {
    opacity: .4;
}
section.blog-block .blog-block_item {
    border: 1px solid white;
    margin: 1rem 0px;
}

section.blog-block .blog-block_item a {
    text-decoration: none;
    color: #fff;
    padding: 1.5rem 1rem;
}

section.blog-block .blog-block_item a>h1 {
    font-size: 1.25rem;
    text-indent: 1rem;
    color: #374757;
}

section.blog-block .blog-block_item svg {
    -webkit-transform: scale(0.75);
            transform: scale(0.75);
}
section.blog-block .blog-block_item.active svg {
    -webkit-transform: rotate(.25turn) scale(0.75);
            transform: rotate(.25turn) scale(0.75);
    opacity: .65;
}

section.blog-block .blog-block_detail {
    background-color: hsl(0,0%,85%);
    border: 1px solid white;
    padding: 2rem;
    position: relative;
    top: calc(-1rem - 1px);
}
section.services-block .services-block_picture {
    margin-top: .35rem;
}
section.services-block .services-block_picture img {
    border: 10px solid white;
}
section.services-block .services-block_text {
    -webkit-box-flex: 2;
        -ms-flex: 2;
            flex: 2;
            padding-top: 0;
}
section.services-block hr {
    margin: 5rem 0;
}
section.services-block hr:last-child {
    display: none;
}
article p {
    font-size: .9rem;
}

footer {
    background-color: rgba(44, 49, 55, .9);
    color: #fff;
    font-size: .85rem;
}

footer .flex {
    padding: 3rem 0px;
    -webkit-box-align: center;
    -ms-flex-align: center;
    align-items: center;
}

footer .flex>p:last-child {
    -webkit-box-flex: 2;
    -ms-flex: 2;
    flex: 2;
    text-align: right;
}

footer .flex a {
    color: #fff;
    display: inline-block;
    margin: 0 .5rem;
    text-transform: uppercase;
    text-decoration: none;
}

footer .flex a:hover {
    text-decoration: underline;
}

footer code:last-child {
    display: none;
}


.featherlight:last-of-type {
    background-color: rgba(16,43,72,.9) !important;
}
.featherlight .featherlight-content {
    background-image: url(../../assets/img/bg-pattern-block.png)!important;
    background-size: 280px !important;
}

/*DEBUG*/

.debug .waypoint-test {
    height: 1px;
    background-color: red;
    position: relative;
    z-index: 99999;
}

.debug .waypoint-test:after {
    content: attr(data-waypoint-name);
    display: block;
    position: absolute;
    top: 0;
    left: 0;
    color: red;
    width: 100%;
    text-align: center;
}


/* ==========================================================================
   Helper classes
   ========================================================================== */


/*
 * Hide visually and from screen readers
 */

.hidden {
    display: none !important;
}


/*
 * Hide only visually, but have it available for screen readers:
 * http://snook.ca/archives/html_and_css/hiding-content-for-accessibility
 */

.visuallyhidden {
    border: 0;
    clip: rect(0 0 0 0);
    height: 1px;
    margin: -1px;
    overflow: hidden;
    padding: 0;
    position: absolute;
    width: 1px;
}


/*
 * Extends the .visuallyhidden class to allow the element
 * to be focusable when navigated to via the keyboard:
 * https://www.drupal.org/node/897638
 */

.visuallyhidden.focusable:active,
.visuallyhidden.focusable:focus {
    clip: auto;
    height: auto;
    margin: 0;
    overflow: visible;
    position: static;
    width: auto;
}


/*
 * Hide visually and from screen readers, but maintain layout
 */

.invisible {
    visibility: hidden;
}


/*
 * Clearfix: contain floats
 *
 * For modern browsers
 * 1. The space content is one way to avoid an Opera bug when the
 *    `contenteditable` attribute is included anywhere else in the document.
 *    Otherwise it causes space to appear at the top and bottom of elements
 *    that receive the `clearfix` class.
 * 2. The use of `table` rather than `block` is only necessary if using
 *    `:before` to contain the top-margins of child elements.
 */

.clearfix:before,
.clearfix:after {
    content: " ";
    /* 1 */
    display: table;
    /* 2 */
}

.clearfix:after {
    clear: both;
}


/* ==========================================================================
   EXAMPLE Media Queries for Responsive Design.
   These examples override the primary ('mobile first') styles.
   Modify as content requires.
   ========================================================================== */

@media only screen and (min-width: 35em) {
    /* Style adjustments for viewports that meet the condition */
}

@media print,
(-webkit-min-device-pixel-ratio: 1.25),
(min-resolution: 1.25dppx),
(min-resolution: 120dpi) {
    /* Style adjustments for high resolution devices */
}


/* ==========================================================================
   Print styles.
   Inlined to avoid the additional HTTP request:
   http://www.phpied.com/delay-loading-your-print-css/
   ========================================================================== */

@media print {
    *,
    *:before,
    *:after,
    *:first-letter,
    *:first-line {
        background: transparent !important;
        color: #000 !important;
        /* Black prints faster:
                                   http://www.sanbeiji.com/archives/953 */
        -webkit-box-shadow: none !important;
        box-shadow: none !important;
        text-shadow: none !important;
    }
    a,
    a:visited {
        text-decoration: underline;
    }
    a[href]:after {
        content: " (" attr(href) ")";
    }
    abbr[title]:after {
        content: " (" attr(title) ")";
    }
    /*
     * Don't show links that are fragment identifiers,
     * or use the `javascript:` pseudo protocol
     */
    a[href^="#"]:after,
    a[href^="javascript:"]:after {
        content: "";
    }
    pre,
    blockquote {
        border: 1px solid #999;
        page-break-inside: avoid;
    }
    /*
     * Printing Tables:
     * http://css-discuss.incutio.com/wiki/Printing_Tables
     */
    thead {
        display: table-header-group;
    }
    tr,
    img {
        page-break-inside: avoid;
    }
    img {
        max-width: 100% !important;
    }
    p,
    h2,
    h3 {
        orphans: 3;
        widows: 3;
    }
    h2,
    h3 {
        page-break-after: avoid;
    }
}
