@charset "UTF-8";
/*!
* Système de templating RougeVersBleu — V4.0.0 (Ocotober 2019) @author: Rodolphe Besnier
* Copyright © 2019 Rodolphe Besnier
*/
/* -----------------------------------------------------------------------------

        Custom Reset & Normalize = _rvb_base.scss

----------------------------------------------------------------------------- */
/* Inspired by https://github.com/necolas/normalize.css */
/*  1.1 - Document
========================================================================== */
*,
*::before,
*::after {
  box-sizing: border-box;
}

html {
  /* set base font-size to equiv "10px", which is adapted to rem unit */
  font-size: 62.5%;
  /* IE9-IE11 math fixing. See http://bit.ly/1g4X0bX */
  /* thanks to @guardian, @victorbritopro and @eQRoeil */
  font-size: 0.625em;
  font-family: sans-serif;
  line-height: 1.4;
  -ms-text-size-adjust: 100%;
  -webkit-text-size-adjust: 100%;
}

/*  1.2 - Sections
========================================================================== */
body {
  margin: 0;
  padding: 0;
}

article,
aside,
figcaption,
figure footer,
header,
main,
nav,
section {
  display: block;
}

hr {
  box-sizing: content-box;
  height: 0;
  overflow: visible;
}

/* max values */
blockquote,
code,
img,
input,
pre,
table,
td,
textarea,
svg,
video {
  max-width: 100%;
}

img {
  height: auto;
}

/* margins */
h1, h2, h3, h4, h5, h6,
.h1, .h2, .h3, .h4, .h5, .h6 {
  margin-top: 2rem;
  margin-bottom: 1.4rem;
  line-height: 1.1;
}

figure {
  margin: 0.45rem 0 0;
  padding: 0;
}

blockquote,
form,
p,
ul {
  margin-top: 0.45rem;
}

/* Styling for Table & Table display elements */
table,
.table {
  table-layout: fixed;
  border-collapse: collapse;
  width: 100%;
  max-width: 100%;
  margin: 0;
  vertical-align: top;
}

.row {
  display: table-row;
}

.cell {
  display: table-cell;
}

/*  1.3 - Layout (float + flexbox + inline-block)
========================================================================== */
/* floating elements */
.fl {
  float: left;
}

.fr {
  float: right;
}

/* blocks that needs to be placed under floats */
.clear {
  clear: both;
}

/* blocks that must contain floats */
.clearfix::after {
  content: "";
  display: table;
  clear: both;
  border-collapse: collapse;
}

/* flexbox layout */
[class*=flex],
.flex {
  display: flex;
  flex-wrap: wrap;
  flex-direction: row;
}

.flex-h {
  flex-direction: row;
}

.flex-v {
  flex-direction: column;
}

.space-around {
  justify-content: space-around;
}

.space-between {
  justify-content: space-between;
}

.space-center {
  justify-content: center;
}

.space-start {
  justify-content: flex-start;
}

.space-end {
  justify-content: flex-end;
}

.align-center {
  align-items: center;
}

.align-start {
  align-items: flex-start;
}

.align-end {
  align-items: flex-end;
}

.flex-item-center {
  margin: auto;
}

/* inline-block layout */
.inbl {
  display: inline-block;
}

/*  1.4 - Typography & Text-level semantics
========================================================================== */
body {
  font-family: "NeutraText-BookAlt", "Helvetica Neue", Helvetica, arial, sans-serif;
  font-weight: 400;
  color: rgba(0, 43, 61, 0.7);
  background: rgb(255, 255, 255);
}

@media screen and (min-width: 0px) {
  body {
    font-size: 1.6rem;
  }
}
@media screen and (min-width: 1440px) {
  body {
    font-size: 1.8rem;
  }
}
a,
a:visited {
  color: rgb(0, 43, 61);
  text-decoration: none;
  border-bottom: 1px solid rgb(0, 43, 61);
  transition: color 0.2s;
}

a:hover,
a:active {
  color: rgb(0, 43, 61);
  border-bottom: 1px solid rgb(0, 43, 61);
  transition: color 0.2s;
}

a[x-apple-data-detectors] {
  color: #fff !important;
  text-decoration: none !important;
  font-size: inherit !important;
  font-family: inherit !important;
  font-weight: inherit !important;
  line-height: inherit !important;
}

/* Titles font-sizing */
@media screen and (min-width: 0px) {
  h1,
  .h1 {
    font-size: 4.4rem;
  }
  h2,
  .h2 {
    font-size: 3.2rem;
  }
  h3,
  .h3 {
    font-size: 2.4rem;
  }
  h4,
  .h4 {
    font-size: 2rem;
  }
  h5,
  .h5 {
    font-size: 1.8rem;
  }
  h6,
  .h6 {
    font-size: 1.6rem;
  }
}
@media screen and (min-width: 720px) {
  h1,
  .h1 {
    font-size: 4.95rem;
  }
  h2,
  .h2 {
    font-size: 3.6rem;
  }
  h3,
  .h3 {
    font-size: 2.7rem;
  }
  h4,
  .h4 {
    font-size: 2.25rem;
  }
  h5,
  .h5 {
    font-size: 2.025rem;
  }
  h6,
  .h6 {
    font-size: 1.8rem;
  }
}
@media screen and (min-width: 1440px) {
  h1,
  .h1 {
    font-size: 5.5rem;
  }
  h2,
  .h2 {
    font-size: 4rem;
  }
  h3,
  .h3 {
    font-size: 3rem;
  }
  h4,
  .h4 {
    font-size: 2.5rem;
  }
  h5,
  .h5 {
    font-size: 2.25rem;
  }
  h6,
  .h6 {
    font-size: 2rem;
  }
}
@media screen and (min-width: 1920px) {
  h1,
  .h1 {
    font-size: 5.5rem;
  }
  h2,
  .h2 {
    font-size: 4rem;
  }
  h3,
  .h3 {
    font-size: 3rem;
  }
  h4,
  .h4 {
    font-size: 2.5rem;
  }
  h5,
  .h5 {
    font-size: 2.25rem;
  }
  h6,
  .h6 {
    font-size: 2rem;
  }
}
/**
* Prevent `sub` and `sup` elements from affecting the line height in all browsers.
*/
sub,
sup {
  font-size: 75%;
  line-height: 0;
  position: relative;
  vertical-align: baseline;
}

sub {
  bottom: -0.25em;
}

sup {
  top: -0.5em;
}

/* alternate font-sizing */
@media screen and (min-width: 0px) {
  .smallest {
    font-size: 1.066666672rem;
  }
  .smaller {
    font-size: 1.244444448rem;
  }
  .small {
    font-size: 1.422222224rem;
  }
  .big {
    font-size: 1.777777792rem;
  }
  .bigger {
    font-size: 1.955555568rem;
  }
  .biggest {
    font-size: 2.133333344rem;
  }
}
@media screen and (min-width: 720px) {
  .smallest {
    font-size: 1.200000006rem;
  }
  .smaller {
    font-size: 1.400000004rem;
  }
  .small {
    font-size: 1.600000002rem;
  }
  .big {
    font-size: 2.000000016rem;
  }
  .bigger {
    font-size: 2.200000014rem;
  }
  .biggest {
    font-size: 2.400000012rem;
  }
}
@media screen and (min-width: 1920px) {
  .smallest {
    font-size: 1.33333334rem;
  }
  .smaller {
    font-size: 1.55555556rem;
  }
  .small {
    font-size: 1.77777778rem;
  }
  .big {
    font-size: 2.22222224rem;
  }
  .bigger {
    font-size: 2.44444446rem;
  }
  .biggest {
    font-size: 2.66666668rem;
  }
}
/**
* Monospace style
*/
code,
pre,
samp,
kbd {
  /* IE fix */
  white-space: pre-line;
  white-space: pre-wrap;
  font-family: Consolas, "DejaVu Sans Mono", Courier, monospace;
  line-height: normal;
}

/**
* Italic style
*/
em,
.italic,
address,
cite,
dfn,
i,
var {
  font-style: italic;
}

/**
* Prevent the duplicate application of `bolder` by the next rule in Safari 6.
* Then, Add the correct font weight in Chrome, Edge, and Safari.
*/
b,
strong,
.strong {
  font-weight: 700;
}

/* alignment */
.aleft {
  text-align: left;
}

.acenter {
  text-align: center;
}

.aright {
  text-align: right;
}

/* text-transform */
.caps {
  text-transform: uppercase;
}

/* font-smoothing */
.fs {
  -webkit-font-smoothing: antialiased;
  -moz-osx-font-smoothing: grayscale;
}

/* 1.5 - Embedded content
========================================================================== */
/**
* Add the correct display in IE 9-.
*/
audio,
video {
  display: inline-block;
}

/**
* Add the correct display in iOS 4-7.
*/
audio:not([controls]) {
  display: none;
  height: 0;
}

/**
* Remove the border on images inside links in IE 10-.
*/
img {
  border-style: none;
}

/**
* Hide the overflow in IE.
*/
svg:not(:root) {
  overflow: hidden;
}

/* 1.6 - Forms
========================================================================== */
/**
* 1. Change the font styles in all browsers (opinionated).
* 2. Remove the margin in Firefox and Safari.
*/
button,
input,
optgroup,
select,
textarea {
  font-family: "NeutraText-BookAlt", "Helvetica Neue", Helvetica, arial, sans-serif; /* 1 */
  font-size: 100%; /* 1 */
  line-height: 1; /* 1 */
  margin: 0; /* 2 */
}

/**
* Show the overflow in IE.
* 1. Show the overflow in Edge.
*/
button,
input { /* 1 */
  overflow: visible;
}

/**
* Remove the inheritance of text transform in Edge, Firefox, and IE.
* 1. Remove the inheritance of text transform in Firefox.
*/
button,
select { /* 1 */
  text-transform: none;
}

/**
* 1. Prevent a WebKit bug where (2) destroys native `audio` and `video`
*    controls in Android 4.
* 2. Correct the inability to style clickable types in iOS and Safari.
*/
button,
html [type=button],
[type=reset],
[type=submit] {
  -webkit-appearance: button; /* 2 */
}

/**
* Remove the inner border and padding in Firefox.
*/
button::-moz-focus-inner,
[type=button]::-moz-focus-inner,
[type=reset]::-moz-focus-inner,
[type=submit]::-moz-focus-inner {
  border-style: none;
  padding: 0;
}

/**
* Restore the focus styles unset by the previous rule.
*/
button:-moz-focusring,
[type=button]:-moz-focusring,
[type=reset]:-moz-focusring,
[type=submit]:-moz-focusring {
  outline: 1px dotted #000;
}

/**
* Change the border, margin, and padding in all browsers (opinionated).
*/
fieldset {
  border: 1px solid #c0c0c0;
  margin: 0;
  padding: 0.35em 0.625em 0.75em;
}

/**
* 1. Correct the text wrapping in Edge and IE.
* 2. Correct the color inheritance from `fieldset` elements in IE.
* 3. Remove the padding so developers are not caught out when they zero out
*    `fieldset` elements in all browsers.
*/
legend {
  box-sizing: border-box; /* 1 */
  color: inherit; /* 2 */
  display: table; /* 1 */
  max-width: 100%; /* 1 */
  padding: 0; /* 3 */
  white-space: normal; /* 1 */
}

/**
* 1. Add the correct display in IE 9-.
* 2. Add the correct vertical alignment in Chrome, Firefox, and Opera.
*/
progress {
  display: inline-block; /* 1 */
  vertical-align: baseline; /* 2 */
}

/**
* Remove the default vertical scrollbar in IE.
*/
textarea {
  overflow: auto;
}

/**
* 1. Add the correct box sizing in IE 10-.
* 2. Remove the padding in IE 10-.
*/
[type=checkbox],
[type=radio] {
  box-sizing: border-box; /* 1 */
  padding: 0; /* 2 */
}

/**
* Correct the cursor style of increment and decrement buttons in Chrome.
*/
[type=number]::-webkit-inner-spin-button,
[type=number]::-webkit-outer-spin-button {
  height: auto;
}

/**
* 1. Correct the odd appearance in Chrome and Safari.
* 2. Correct the outline style in Safari.
*/
[type=search] {
  -webkit-appearance: textfield; /* 1 */
  outline-offset: -2px; /* 2 */
}

/**
* Remove the inner padding and cancel buttons in Chrome and Safari on macOS.
*/
[type=search]::-webkit-search-cancel-button,
[type=search]::-webkit-search-decoration {
  -webkit-appearance: none;
}

/**
* 1. Correct the inability to style clickable types in iOS and Safari.
* 2. Change font properties to `inherit` in Safari.
*/
::-webkit-file-upload-button {
  -webkit-appearance: button; /* 1 */
  font: inherit; /* 2 */
}

/* 1.7 - Interactive
========================================================================== */
/*
* Add the correct display in IE 9-.
* 1. Add the correct display in Edge, IE, and Firefox.
*/
details,
menu {
  display: block;
}

/*
* Add the correct display in all browsers.
*/
summary {
  display: list-item;
}

/* 1.8 - Scripting
========================================================================== */
/**
* Add the correct display in IE 9-.
*/
canvas {
  display: inline-block;
}

/**
* Add the correct display in IE.
*/
template {
  display: none;
}

/* 1.9 - Hidden
========================================================================== */
/**
* Add the correct display in IE 10-.
*/
[hidden] {
  display: none;
}

/* -----------------------------------------------------------------------------

Thème = _rvb_theme.scss

----------------------------------------------------------------------------- */
/*  Global
========================================================================== */
.body-home {
  background: #020202;
  background-size: cover;
}

@media screen and (min-width: 0px) {
  .home_wrapper {
    position: relative;
    width: 100%;
  }
  .home_content {
    background: #fff url(../img/pattern_ricepaper.png);
  }
  .home_content_inner {
    max-width: 800px;
    margin: 0;
    padding: 0 10%;
  }
  .home_content_inner h2 {
    margin: 3rem 0 0;
    font-size: 3rem;
    color: rgb(0, 159, 227);
  }
  .home_content_inner h2:first-child {
    margin-top: 0;
  }
  .home_content_inner h3 {
    margin: 3rem 0 0;
    font-size: 2.25rem;
    color: rgb(0, 43, 61);
  }
  .wp-caption  {
    width: 100% !important;
  }
  .wp-caption-text {
    display: none;
  }
}
@media screen and (min-width: 1280px) {
  .home_wrapper {
    height: 100vh;
  }
  .home_top {
    position: absolute;
    z-index: 1111;
    display: grid;
    width: 100%;
    height: 100vh;
    grid-template-columns: 1fr 2fr;
  }
  .home_content_inner {
    margin: 0 auto;
    padding: 0;
    padding: 6rem;
  }
}
@media screen and (min-width: 1440px) {
  .home_top {
    grid-template-columns: 1fr 2fr;
  }
}
strong,
.strong {
  font-family: "NeutraText-Bold", "Helvetica Neue", Helvetica, arial, sans-serif;
}

/*  Welcome
========================================================================== */
.poster {
  position: fixed;
  z-index: -2;
  top: 0;
  right: 0;
  bottom: 0;
  left: 0;
}

@media screen and (min-width: 0px) {
  .poster {
    display: none;
    visibility: hidden;
  }
}
@media screen and (min-width: 1280px) {
  .poster {
    display: block;
    visibility: visible;
  }
}
.poster {
  width: 100%;
  height: 100%;
}

.poster_img {
  width: 100%;
  height: 100%;
  -o-object-fit: cover;
     object-fit: cover;
}

.welcome_title {
  margin: 0;
  padding: 0;
}

@media screen and (min-width: 0px) {
  .welcome_title span {
    display: block;
    visibility: visible;
    margin: 0 0 2rem;
    font-size: 2.8rem;
    line-height: 1;
    color: rgb(0, 159, 227);
  }
  .welcome_title_img {
    display: none;
    visibility: hidden;
  }
  .footer_sfmr_img {
    margin-top: 1.5rem;
    max-width: 320px;
  }
}
@media screen and (min-width: 1280px) {
  .welcome_title span {
    display: none;
    visibility: hidden;
  }
  .welcome_title_img {
    display: block;
    visibility: visible;
  }
}
@media screen and (min-width: 0px) {
  .welcome {
    margin: 100px 0 0;
    padding: 10%;
    background: #fff url(../img/pattern_ricepaper.png);
  }
  .welcome_title {
    margin: 0 0 3rem;
  }
  .welcome_content {
    margin-top: 4%;
  }
}
@media screen and (min-width: 1280px) {
  .welcome {
    margin: 0;
  }
  .welcome_title {
    max-width: 160px;
  }
}
@media screen and (min-width: 1680px) {
  .welcome_content {
    margin-top: 8%;
  }
}
.welcome_chapo {
  font-family: "jaf-domus-titling-web", "Helvetica Neue", Helvetica, arial, sans-serif;
  font-weight: 600;
  color: rgb(0, 43, 61);
}

.welcome_footer {
  margin-top: 10%;
  padding-top: 10%;
  border-top: 1px solid rgba(0, 43, 61, 0.1);
}

@media screen and (min-width: 0px) {
  .welcome_chapo {
    font-size: 1.8rem;
  }
}
@media screen and (min-width: 1680px) {
  .welcome_chapo {
    font-size: 2rem;
  }
}
/*  Nav - Desktop
========================================================================== */
@media screen and (min-width: 0px) {
  .nav-desktop {
    display: none;
  }
}
@media screen and (min-width: 1280px) {
  .nav-desktop {
    display: grid;
    grid-template-columns: 1fr 1fr;
  }
}
@media screen and (min-width: 1440px) {
  .nav-desktop {
    grid-template-columns: 1fr 1fr;
  }
}
.page_nav {
  position: fixed;
  z-index: 8000;
  left: -900rem;
  height: 100vh;
  width: 66.6666666667%;
}

.page_nav.is-open {
  left: 128px;
  transition: 0.5s left ease-in-out;
}

.nav_categories {
  display: grid;
  grid-template-rows: 1fr 1fr;
  height: 100%;
  margin: 0;
  padding: 0;
  list-style-type: none;
}

.nav_category {
  position: relative;
  cursor: pointer;
}

.category_flooring::after {
  position: absolute;
  display: block;
  content: " ";
  bottom: 0;
  right: 0;
  left: 0;
  height: 1px;
  background: rgba(255, 255, 255, 0.1);
}

.category_bg {
  position: absolute;
  z-index: -1;
  width: 100%;
  height: 100%;
  overflow: hidden;
}

.category_bg_wrapper {
  position: relative;
  width: 100%;
  height: 100%;
}

.category_bg_wrapper::before {
  position: absolute;
  display: block;
  content: " ";
  width: 50px;
  height: 50px;
  top: 50%;
  right: -100px;
  margin-top: -25px;
  outline: 1000rem solid rgba(0, 43, 61, 0.9);
  transform: rotate(45deg);
}

.nav_category:hover .category_bg_wrapper::before {
  right: -25px;
  transition: all 0.2s;
}

.category_marking_bg .category_bg_wrapper::before {
  background: rgba(0, 159, 227, 0.9);
}

.category_flooring_bg .category_bg_wrapper::before {
  background: rgba(0, 169, 157, 0.9);
}

.nav_category_wrapper {
  height: 100%;
}

.nav_category.is-inactive .nav_category_wrapper {
  opacity: 0.3;
  transition: 0.2s opacity;
}

.nav_category.is-active .nav_category_wrapper {
  opacity: 1;
  transition: 0.2s opacity;
}

.nav_category_title {
  position: relative;
  margin: 0;
  padding: 0;
  font-family: "jaf-domus-titling-web", "Helvetica Neue", Helvetica, arial, sans-serif;
  font-weight: 500;
  color: #fff;
}

@media screen and (min-width: 0px) {
  .nav_category_title {
    width: 300px;
    font-size: 2.4rem;
  }
}
@media screen and (min-width: 1680px) {
  .nav_category_title {
    width: 480px;
    font-size: 2.8rem;
  }
}
@media screen and (min-width: 1920px) {
  .nav_category_title {
    width: 480px;
    font-size: 3.6rem;
  }
}
.page_nav .nav_category_title {
  opacity: 0;
}

.page_nav.is-open .category_marking .nav_category_title {
  opacity: 1;
  transition: 0.8s opacity ease-in-out 0.6s;
}

.page_nav.is-open .category_flooring .nav_category_title {
  opacity: 1;
  transition: 0.8s opacity ease-in-out 0.8s;
}

.nav_category_title span {
  font-weight: 300;
}

.nav_category_title::before {
  position: absolute;
  display: block;
  content: " ";
  width: 40px;
  height: 40px;
  top: -60px;
}

.category_marking .nav_category_title::before {
  background: url(../img/icn_marking.svg) no-repeat;
  background-size: contain;
}

.category_flooring .nav_category_title::before {
  background: url(../img/icn_flooring.svg) no-repeat;
  background-size: contain;
}

.nav_category_title::after {
  position: absolute;
  display: block;
  content: " ";
  width: 50px;
  height: 3px;
  bottom: -40px;
}

.nav_category:hover .nav_category_title::after {
  width: 200px;
  transition: 0.2s width;
}

.category_marking .nav_category_title::after {
  background: rgb(0, 159, 227);
}

.category_flooring .nav_category_title::after {
  background: rgb(0, 169, 157);
}

.nav_services {
  position: relative;
}

.nav_services_list {
  position: absolute;
  z-index: 1;
  display: none;
  top: 0;
  right: 0;
  left: 100%;
  bottom: 0;
  width: 100%;
  height: 100vh;
  margin: 0;
  padding: 0;
  list-style-type: none;
}

.page_nav .nav_services_list {
  right: auto;
  left: 73.3333333333%;
  margin-left: 128px;
}

.marking_list {
  top: -100%;
  grid-template-rows: 1fr 1fr 1fr;
  background: rgba(0, 159, 227, 0.9);
}

.flooring_list {
  background: rgba(0, 169, 157, 0.9);
}

.nav_category:hover .nav_services_list {
  display: grid;
}

.nav_services_item {
  position: relative;
}

.nav_services_item::after {
  position: absolute;
  display: block;
  content: " ";
  bottom: 0;
  right: 10%;
  left: 10%;
  height: 1px;
  background: rgba(0, 43, 61, 0.2);
}

.nav_services_title {
  margin: 0;
  padding: 0;
  height: 100%;
}

@media screen and (min-width: 0px) {
  .nav_services_title {
    font-size: 2rem;
  }
}
@media screen and (min-width: 1680px) {
  .nav_services_title {
    font-size: 3rem;
  }
}
.nav_services_item.is-inactive .nav_services_title {
  opacity: 0.3;
  transition: 0.2s opacity;
}

.nav_services_item.is-active .nav_services_title {
  opacity: 1;
  transition: 0.2s opacity;
}

.nav_services_link {
  text-decoration: none;
  height: 100%;
  font-weight: 300;
}

.nav_services_link,
.nav_services_link:hover,
.nav_services_link:visited {
  border: none;
  color: #fff;
}

.nav_services_link_inner {
  position: relative;
}

@media screen and (min-width: 0px) {
  .nav_services_link_inner {
    width: 300px;
  }
}
@media screen and (min-width: 1680px) {
  .nav_services_link_inner {
    width: 400px;
  }
}
.nav_services_link_inner::before {
  position: absolute;
  display: block;
  content: " ";
  width: 40px;
  height: 40px;
  top: -60px;
}

.marking_item_1 .nav_services_link_inner::before {
  background: url(../img/icn_marking_1.svg) no-repeat;
  background-size: contain;
}

.marking_item_2 .nav_services_link_inner::before {
  background: url(../img/icn_marking_2.svg) no-repeat;
  background-size: contain;
}

.marking_item_3 .nav_services_link_inner::before {
  background: url(../img/icn_marking_3.svg) no-repeat;
  background-size: contain;
}

.flooring_item_1 .nav_services_link_inner::before {
  background: url(../img/icn_flooring_1.svg) no-repeat;
  background-size: contain;
}

.flooring_item_2 .nav_services_link_inner::before {
  background: url(../img/icn_flooring_2.svg) no-repeat;
  background-size: contain;
}

.flooring_item_3 .nav_services_link_inner::before {
  background: url(../img/icn_flooring_3.svg) no-repeat;
  background-size: contain;
}

.nav_services_link_inner::after {
  position: absolute;
  display: block;
  content: " ";
  width: 50px;
  height: 1px;
  bottom: -20px;
  background: rgba(255, 255, 255, 0.5);
}

.nav_services_item:hover .nav_services_link_inner::after {
  width: 200px;
  transition: 0.2s width;
}

.nav_services_desc {
  color: rgb(0, 43, 61);
}

@media screen and (min-width: 0px) {
  .nav_services_desc {
    font-size: 1.5rem;
  }
}
@media screen and (min-width: 1680px) {
  .nav_services_desc {
    font-size: 2rem;
  }
}
/*  Nav - Mobile
========================================================================== */
@media screen and (min-width: 0px) {
  .nav-mobile {
    display: block;
    visibility: visible;
  }
}
@media screen and (min-width: 1280px) {
  .nav-mobile {
    display: none;
    visibility: hidden;
  }
}
.nav-mobile {
  position: absolute;
  z-index: 9999;
  top: 0;
  right: 0;
  left: 0;
  background: #fff url(../img/pattern_ricepaper.png);
  box-shadow: 0px 0px 3px 3px rgba(0, 0, 0, 0.2);
}

.nav-mobile.is-open {
  position: absolute;
}

.navmobile_header {
  height: 100px;
  padding: 0 2rem;
  justify-content: space-between;
  align-items: center;
}

.navmobile_header_left {
  max-width: 280px;
  height: 70%;
}

.navmobile_header_link,
.navmobile_header_link:hover {
  display: block;
  width: 100%;
  height: 100%;
  border: none;
}

.navmobile_header_logo {
  height: 100%;
}

.navmobile_header_btn {
  width: 48px;
  height: 48px;
  background: transparent;
  border: none;
  cursor: pointer;
  outline: none;
}

.nav-mobile .navmobile_content {
  display: none;
}

.nav-mobile.is-open .navmobile_content {
  display: block;
}

.navmobile_category_title {
  margin: 0;
  padding: 2rem;
  font-size: 2rem;
  color: #fff;
  background: rgb(0, 43, 61);
}

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

.navmobile_category_item {
  border-bottom: 1px solid rgb(0, 43, 61);
}

.navmobile_category_item:last-child {
  border-bottom: none;
}

.navmobile_item_link {
  display: block;
  padding: 2rem;
}

.navmobile_category_marking .navmobile_item_link {
  background: rgba(0, 159, 227, 0.9);
}

.navmobile_category_flooring .navmobile_item_link {
  background: rgba(0, 169, 157, 0.9);
}

.navmobile_item_link,
.navmobile_item_link:hover,
.navmobile_item_link:visited {
  color: #fff;
  border: none;
}

.navmobile_item_title {
  margin: 0;
  padding: 0;
  font-size: 1.8rem;
}

.navmobile_item_subtitle {
  font-size: 1.6rem;
  font-weight: 300;
  color: rgb(0, 43, 61);
}

.navmobile_title {
  margin: 0;
  padding: 0;
}

.navmobile_title_link {
  display: block;
  margin: 0;
  padding: 2rem;
  font-size: 2rem;
}

/*  Services
========================================================================== */
.body-services {
  background: #fff url(../img/pattern_ricepaper.png);
}

.body-services::after,
.body-references::after,
.body-contact::after {
  position: fixed;
  z-index: 7000;
  content: " ";
  top: 0;
  width: 0;
  height: 0;
  background: rgba(255, 255, 255, 0.95);
  opacity: 0;
}

.body-services.has-overlay::after,
.body-references.has-overlay::after,
.body-contact.has-overlay::after {
  width: 100%;
  height: 100%;
  background: rgba(255, 255, 255, 0.95);
  opacity: 1;
  transition: 0.3s opacity;
}

@media screen and (min-width: 0px) {
  .aside {
    display: none;
    visibility: hidden;
  }
}
@media screen and (min-width: 1280px) {
  .aside {
    display: flex;
    visibility: visible;
  }
}
.aside {
  position: fixed;
  z-index: 9000;
  width: 128px;
  top: 0;
  bottom: 0;
  background: #fff url(../img/pattern_ricepaper.png);
  box-shadow: 3px 3px 3px rgba(0, 0, 0, 0.1);
}

.aside_element {
  justify-content: center;
  align-items: center;
  width: 128px;
  height: 128px;
}

.aside_home,
.aside_home:hover {
  border: none;
}

.aside_home {
  text-indent: -999em;
  background: url(../img/icon_am_sols_techniques.svg) no-repeat;
  background-size: 60%;
  background-position: center;
}

.aside_menu {
  background: none;
  border: none;
  cursor: pointer;
  outline: none;
}

.burger {
  position: relative;
  width: 32px;
  height: 3px;
  background: rgb(0, 43, 61);
  transition: 0.1s opacity;
}

.burger::before {
  position: absolute;
  display: block;
  content: " ";
  width: 32px;
  height: 3px;
  margin-top: -8px;
  background: rgb(0, 43, 61);
  transition: 0.1s all;
}

.burger::after {
  position: absolute;
  display: block;
  content: " ";
  width: 32px;
  height: 3px;
  margin-top: 8px;
  background: rgb(0, 43, 61);
  transition: 0.1s all;
}

.burger.close {
  background: rgba(0, 43, 61, 0);
  transition: 0.1s opacity;
}

.burger.close::before {
  margin-top: 0;
  transform: rotate(45deg);
  transition: 0.1s all;
}

.burger.close::after {
  margin-top: 0;
  transform: rotate(-45deg);
  transition: 0.1s all;
}

.aside_contact {
  font-size: 5rem;
}

@media screen and (min-width: 0px) {
  .service {
    margin: 100px 0 0;
  }
}
@media screen and (min-width: 1280px) {
  .service {
    margin: 0 0 0 128px;
  }
}
.service {
  display: grid;
  grid-template-rows: 200px;
}

.service_header {
  position: relative;
}

.service_header::before {
  display: block;
  position: absolute;
  z-index: -2;
  top: 0;
  right: 0;
  bottom: 0;
  left: 0;
  content: " ";
  background: url(../img/fond-ama-01.jpg) no-repeat;
  background-size: cover;
}

.service_header::after {
  display: block;
  position: absolute;
  z-index: -1;
  top: 0;
  right: 0;
  bottom: 0;
  left: 0;
  content: " ";
  background: rgba(0, 43, 61, 0.8);
}

.service_header_title {
  position: relative;
  margin: 0;
  padding: 0 5% 20px;
  font-family: "jaf-domus-titling-web", "Helvetica Neue", Helvetica, arial, sans-serif;
  font-weight: 400;
  font-size: 3.8rem;
  color: #fff;
}

@media screen and (min-width: 0px) {
  .service_header_title {
    font-size: 1.6rem;
  }
}
@media screen and (min-width: 1280px) {
  .service_header_title {
    font-size: 3.2rem;
  }
}
.service_header_title::before {
  display: block;
  position: absolute;
  content: " ";
  bottom: 0;
  width: 100px;
  height: 3px;
}

.category-marking .service_header_title::before,
.category-default .service_header_title::before {
  background: rgb(0, 159, 227);
}

.category-flooring .service_header_title::before {
  background: rgb(0, 169, 157);
}

.service_header_title::after {
  position: absolute;
  display: block;
  content: " ";
  width: 40px;
  height: 40px;
  background-size: contain;
  background-repeat: no-repeat;
  background-position: center;
}

@media screen and (min-width: 0px) {
  .service_header_title::after {
    top: -56px;
    right: 50%;
    margin-right: -20px;
  }
}
@media screen and (min-width: 1280px) {
  .service_header_title::after {
    top: 6px;
    right: 0;
    margin-right: auto;
  }
}
/* Sécurité en industries */
.service-2 .service_header_title::after {
  background-image: url(../img/icn_marking_1_cyan.svg);
}

/* Accessibilités sur sites collectifs */
.service-8 .service_header_title::after {
  background-image: url(../img/icn_marking_2_cyan.svg);
}

/* Pédagogique et sportif */
.service-11 .service_header_title::after {
  background-image: url(../img/icn_marking_3_cyan.svg);
}

/* Sols industriels */
.service-13 .service_header_title::after {
  background-image: url(../img/icn_flooring_1_teal.svg);
}

/* Sols techniques et décoratifs */
.service-323 .service_header_title::after {
  background-image: url(../img/icn_flooring_2_teal.svg);
}

/* Étanchéité /Ouvrages d'art */
.service-16 .service_header_title::after {
  background-image: url(../img/icn_flooring_3_teal.svg);
}

/* Références */
.service-26 .service_header_title::after {
  background-image: url(../img/icn_references.svg);
}

/* Contact */
.service-28 .service_header_title::after {
  background-image: url(../img/icn_contact.svg);
}

/* Mentions légales & Crédits */
.service-30 .service_header_title::after {
  background-image: url(../img/icn_mentions.svg);
}

@media screen and (min-width: 0px) {
  .service_content {
    padding: 5%;
  }
  .category-flooring .service_content h2,
  .category-marking .service_content h2 {
    margin: 5rem 0 1rem;
    font-size: 3rem;
    line-height: 1;
  }
  .category-flooring .service_content h2:first-child {
    margin: 2rem 0 1rem;
  }
  .category-flooring .service_content h3,
  .category-marking .service_content h3 {
    margin: 3rem 0 0;
    font-size: 2.25rem;
    line-height: 1;
    color: rgb(0, 43, 61);
  }
  .category-flooring .service_content h2 {
    color: rgb(0, 169, 157);
  }
  .category-marking .service_content h2 {
    color: rgb(0, 159, 227);
  }
}
@media screen and (min-width: 1280px) {
  .service_content {
    display: grid;
    grid-template-columns: 1fr 1fr;
    grid-column-gap: 10%;
    padding: 5%;
  }
}
.category-marking .service_description_title,
.category-marking .service_gallery_title {
  color: rgb(0, 159, 227);
}

.category-flooring .service_description_title,
.category-flooring .service_gallery_title {
  color: rgb(0, 169, 157);
}

.service_gallery {
  position: relative;
}

.service_gallery::before {
  position: absolute;
  display: block;
  content: " ";
  left: -10%;
  top: 2rem;
  width: 1px;
  height: 100%;
  background: rgba(0, 43, 61, 0.1);
}

.thumbs {
  justify-content: flex-start;
  padding: 1rem 0 0;
}

@media screen and (min-width: 0px) {
  .thumb_link {
    width: 48%;
    margin: 0 2% 2% 0;
  }
}
@media screen and (min-width: 1280px) {
  .thumb_link {
    width: auto;
    margin: 0 20px 20px 0;
  }
}
.thumb_link,
.thumb_link:hover {
  display: block;
  line-height: 0;
  border: none;
}

.thumb_link:hover {
  box-shadow: 0 0 5px rgba(0, 43, 61, 0.75);
  transition: 0.2s all;
}

.thumb_img {
  line-height: 0;
}

/*  Services
========================================================================== */
.body-references {
  background: #fff url(../img/pattern_ricepaper.png);
}

@media screen and (min-width: 0px) {
  .references_content {
    padding: 5% 0 3%;
    margin: 0 5%;
    border-bottom: 1px solid rgba(0, 43, 61, 0.1);
  }
  .references_notes {
    padding: 5%;
    margin: 3% auto;
  }
}
@media screen and (min-width: 1280px) {
  .references_content {
    display: grid;
    grid-template-columns: 1fr 1fr 1fr;
    grid-column-gap: 10%;
    padding: 5% 0 3%;
    margin: 0 5%;
    border-bottom: 1px solid rgba(0, 43, 61, 0.1);
  }
  .references_notes {
    display: grid;
    max-width: 56rem;
    margin: 3% auto;
    padding: 0;
  }
}
.references_category_title {
  color: rgb(0, 159, 227);
}

/*  Contact
========================================================================== */
.body-contact {
  background: #fff url(../img/pattern_ricepaper.png);
}

@media screen and (min-width: 0px) {
  .contact_form {
    max-width: 56rem;
    margin: 3% auto;
    padding: 0 5%;
  }
  .contact_infos {
    max-width: 56rem;
    margin: 3% auto;
    padding: 0 5%;
  }
  .wpcf7-response-output {
    max-width: 56rem !important;
    margin: 0 auto !important;
    padding: 2rem !important;
  }
}
@media screen and (min-width: 1280px) {
  .contact_form {
    padding: 0;
  }
  .contact_infos {
    padding: 0;
  }
  .wpcf7-response-output {
    margin: 0 auto !important;
    padding: 2rem !important;
  }
}
input,
textarea {
  padding: 1rem;
  width: 100%;
}

textarea {
  resize: none;
  border: 1px solid #ddd;
}

input[type=submit] {
  cursor: pointer;
  color: rgb(0, 43, 61);
  background: rgba(0, 43, 61, 0.2);
  border-radius: 5px;
}

.wpcf7-mail-sent-ok {
  padding: 2rem;
  color: rgb(57, 143, 20);
}

div.wpcf7-validation-errors,
div.wpcf7-acceptance-missing {
  color: tomato;
  border-color: tomato !important;
}

span.wpcf7-not-valid-tip {
  color: tomato !important;
}

/*  Mentions
========================================================================== */
.body-mentions {
  background: #fff url(../img/pattern_ricepaper.png);
}

/*  Footer
========================================================================== */
.footer_contact {
  margin: 0 0 2rem;
}
