/*
  0 - 600px:       Phone
  600 - 900px:     Table portrait
  900 - 1200px:    Table landscape
  [1200 - 1800] is where our normal styles apply
  1800px + :       Big desktop
*/
@import url("https://fonts.googleapis.com/css?family=Cabin:400,400i,500,500i,600,600i,700,700i|Crimson+Text:400,400i,600,600i,700,700i|Playfair+Display:400,400i,700,700i,900,900i&display=swap");
.separator {
  border-bottom: 1px solid #CCCCCC;
  width: 15rem; }

*,
*::after,
*::before {
  margin: 0;
  padding: 0;
  box-sizing: inherit;
  /* === Best Practice === */ }

html {
  /* Allows us to use rem ((x)rem * root-font-size) */
  /* Default browser font-size 16px */
  /* Need to put in percentage to allows the scale browser user settings */
  font-size: 62.5%; }
  @media only screen and (max-width: 75em) {
    html {
      font-size: 56.25%; } }
  @media only screen and (max-width: 56.25em) {
    html {
      font-size: 50%; } }
  @media only screen and (min-width: 112.5em) {
    html {
      font-size: 75%; } }

body {
  font-family: "Crimson Text", sans-serif;
  font-weight: 400;
  line-height: 1.7;
  color: #3a3931;
  padding: 1rem;
  box-sizing: border-box;
  /* === Best Practice === */
  position: absolute;
  max-width: 140rem;
  width: 100%;
  left: 50%;
  transform: translateX(-50%); }

a {
  color: #3a3931;
  text-decoration: none; }
  @media only screen and (max-width: 75em) {
    a {
      -webkit-tap-highlight-color: transparent; }
      a:focus {
        -webkit-tap-highlight-color: transparent; } }

button {
  margin: 0;
  border: none;
  background: none; }

.text__body {
  font-family: "Crimson Text";
  font-size: 2rem;
  line-height: 2.75rem;
  letter-spacing: 0.182rem; }

.text__body--sub {
  font-family: "Crimson Text";
  font-size: 1.5rem;
  line-height: 2rem;
  letter-spacing: 0.15rem; }

.text__quote, .contact__form input, .contact__form textarea, .contact__form input::placeholder, .contact__form textarea::placeholder {
  font-family: "Cabin";
  font-size: 1.75rem;
  letter-spacing: .35rem;
  line-height: 2.75rem;
  text-transform: uppercase;
  text-align: center;
  font-weight: 400; }

.text__title {
  font-family: "Playfair Display";
  font-size: 3.5rem;
  font-weight: 400;
  letter-spacing: .4rem;
  text-align: center;
  line-height: 3.3rem; }
  @media only screen and (max-width: 56.25em) {
    .text__title {
      font-size: 3rem; } }

.text--uppercase {
  text-transform: uppercase; }

.text--italic {
  font-style: italic; }

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

.text--warning {
  color: #ed213a; }

.header {
  height: 5rem;
  width: 100rem;
  position: relative;
  left: 50%;
  transform: translateX(-50%);
  margin-top: 1rem;
  display: flex;
  justify-content: space-between;
  align-items: center;
  font-size: 1.6rem;
  margin-bottom: 5rem; }
  @media only screen and (max-width: 56.25em) {
    .header {
      width: 100%; } }
  @media only screen and (max-width: 37.5em) {
    .header {
      margin-bottom: 3rem; } }
  .header > p {
    cursor: pointer; }
  @media only screen and (max-width: 37.5em) {
    .header__link {
      display: none; } }
  .header__link:hover {
    text-decoration: underline; }
  .header__logo {
    height: 7rem;
    user-select: none; }
  .header__phone-menu {
    display: none;
    user-select: none;
    width: 6rem;
    height: 6rem;
    fill: #3a3931;
    margin-right: .5rem;
    padding: 1.5rem;
    border-radius: 50%;
    box-shadow: 0 10px 15px -3px rgba(0, 0, 0, 0.1), 0 4px 6px -2px rgba(0, 0, 0, 0.05); }
    @media only screen and (max-width: 37.5em) {
      .header__phone-menu {
        display: block; } }
    .header__phone-menu svg {
      width: 100%;
      height: 100%; }

.menu-mobile {
  display: none;
  position: absolute;
  box-shadow: 0 4px 6px -1px rgba(0, 0, 0, 0.1), 0 2px 4px -1px rgba(0, 0, 0, 0.06);
  top: 0;
  left: 0;
  border-radius: 2rem;
  margin: 1rem;
  background-color: #FFFFFF;
  padding-bottom: 2rem;
  padding-top: 3.5rem;
  /* === Transition === */
  transition: transform 0.6s cubic-bezier(0.68, -0.55, 0.265, 1.55);
  overflow: hidden;
  transform: translateX(105%);
  width: 0;
  /* ================== */
  z-index: 99; }
  @media only screen and (max-width: 37.5em) {
    .menu-mobile {
      display: block; } }
  .menu-mobile__visible {
    width: calc(100% - 1rem * 2);
    transform: translateX(0);
    transition: transform 0.6s cubic-bezier(0.68, -0.55, 0.265, 1.55); }
  .menu-mobile > ul {
    list-style: none; }
  .menu-mobile__close {
    top: 0;
    right: 0;
    position: absolute;
    width: 2.5rem;
    height: 2.5rem;
    fill: #3a3931;
    margin-top: 2rem;
    margin-right: 2rem;
    cursor: pointer; }
  .menu-mobile__item {
    font-size: 2.5rem;
    font-family: "Crimson Text";
    text-transform: uppercase;
    text-align: center;
    padding-top: 1rem;
    padding-bottom: 1rem;
    margin-left: 5rem;
    margin-right: 5rem;
    cursor: pointer; }
    .menu-mobile__item:not(:last-child) {
      border-bottom: 1px solid #CCCCCC; }

footer {
  position: relative;
  width: calc(100% - 1rem * 2);
  bottom: -1.5rem;
  transform: translateY(100%);
  text-align: center; }
  @media only screen and (max-width: 37.5em) {
    footer {
      bottom: auto;
      transform: translateY(0); } }
  footer a:hover {
    text-decoration: underline; }

.accueil {
  margin-top: 4rem; }
  @media only screen and (max-width: 37.5em) {
    .accueil {
      margin-top: 2rem; } }
  .accueil__text {
    text-align: center; }
    .accueil__text > *:not(:last-child) {
      margin-bottom: 3.5rem; }
    .accueil__text p {
      font-size: 2.4rem; }
      @media only screen and (max-width: 56.25em) {
        .accueil__text p {
          font-size: 2rem; } }
    .accueil__text p + .text__quote, .accueil__text .contact__form p + input, .contact__form .accueil__text p + input, .accueil__text .contact__form p + textarea, .contact__form .accueil__text p + textarea, .accueil__text .contact__form p + input::placeholder, .contact__form .accueil__text p + input::placeholder, .accueil__text .contact__form p + textarea::placeholder, .contact__form .accueil__text p + textarea::placeholder {
      width: 35rem;
      position: relative;
      left: 50%;
      transform: translateX(-50%); }
  .accueil > .separator {
    position: relative;
    left: 50%;
    transform: translateX(-50%);
    margin: 5rem 0 5rem 0; }
    @media only screen and (max-width: 37.5em) {
      .accueil > .separator {
        margin: 3rem 0 3rem 0; } }
  .accueil .text__title {
    padding-top: 1rem; }

.section-1 {
  display: flex;
  align-items: center;
  justify-content: space-around; }
  @media only screen and (max-width: 37.5em) {
    .section-1 {
      flex-direction: column-reverse; } }
  .section-1__picture {
    width: 40rem;
    box-shadow: 0 2px 4px 0 rgba(0, 0, 0, 0.5); }
    @media only screen and (max-width: 37.5em) {
      .section-1__picture {
        width: 50vw; } }
  .section-1 div {
    height: 100%;
    position: relative; }
  .section-1__text {
    max-width: 52.5rem; }
    @media only screen and (max-width: 56.25em) {
      .section-1__text {
        margin: 0 2rem 0 2rem; } }
    @media only screen and (max-width: 37.5em) {
      .section-1__text {
        margin: 0 0 2rem 0; } }

.section-2 {
  margin: 0 2rem 0 2rem; }

.section-3 {
  margin-bottom: 2rem; }
  .section-3 h2 {
    font-size: 2rem;
    margin: 4rem 0 3rem 0; }
    @media only screen and (max-width: 37.5em) {
      .section-3 h2 {
        margin: 1rem 0 1rem 0; } }
  .section-3__pictures {
    height: 55vw;
    max-height: 55rem;
    overflow: hidden;
    color: #d9d9d9;
    position: relative; }
    .section-3__pictures div {
      display: flex;
      flex-direction: row;
      overflow-x: scroll;
      height: calc(100% + 17px);
      margin-bottom: 17px; }
      .section-3__pictures div img {
        height: 100%; }
      .section-3__pictures div > *:not(:last-child) {
        margin-right: 1rem; }
    .section-3__pictures--btn {
      position: absolute;
      width: 4.5rem;
      height: 4.5rem;
      fill: currentColor;
      top: 50%;
      transform: translateY(-50%);
      cursor: pointer;
      z-index: 1;
      user-select: none; }
      .section-3__pictures--btn--next {
        right: 0;
        transform: rotateZ(180deg) translateY(50%); }
      @media only screen and (max-width: 37.5em) {
        .section-3__pictures--btn {
          display: none; } }
    .section-3__pictures--finger-touch {
      display: none; }
      @media only screen and (max-width: 56.25em) {
        .section-3__pictures--finger-touch {
          display: block;
          position: absolute;
          width: 7.5rem;
          height: 7.5rem;
          top: 50%;
          left: 50%;
          transform: translate(-50%, -50%);
          fill: currentColor;
          animation: left-right 1.5s infinite; } }

.voir-plus {
  display: flex;
  flex-direction: column;
  align-items: center;
  position: sticky;
  bottom: 1rem;
  width: 100%; }
  .voir-plus button {
    font-size: 1.5rem;
    margin: 1rem 0 1rem 0;
    line-height: 1.5rem;
    cursor: pointer;
    user-select: none; }
    .voir-plus button:hover ~ .voir-plus__btn {
      animation: pulsate .65s infinite; }
    @media only screen and (max-width: 75em) {
      .voir-plus button {
        -webkit-tap-highlight-color: transparent; }
        .voir-plus button:focus {
          -webkit-tap-highlight-color: transparent; } }
  .voir-plus__btn {
    transform: translateX(-25%) rotateZ(-90deg);
    width: 1.5rem;
    height: 1rem; }

@keyframes pulsate {
  0% {
    transform: translateX(-25%) rotateZ(-90deg); }
  50% {
    transform: translateX(-25%) rotateZ(-90deg) translateX(-35%); }
  100% {
    transform: translateX(-25%) rotateZ(-90deg); } }

@keyframes left-right {
  0% {
    left: 47.5%; }
  50% {
    left: 52.5%; }
  100% {
    left: 47.5%; } }

.prestations {
  width: 100rem;
  position: relative;
  left: 50%;
  transform: translateX(-50%); }
  @media only screen and (max-width: 56.25em) {
    .prestations {
      width: 100%;
      padding: .5rem; } }
  .prestations__introduction {
    margin-left: 2.5rem;
    margin-top: 2.5rem; }
    .prestations__introduction a {
      border-bottom: 1px solid #8c8b85;
      outline: 0; }
    @media only screen and (max-width: 37.5em) {
      .prestations__introduction {
        margin-left: 0; } }
  .prestations__item {
    padding: 1rem;
    margin-top: 3rem;
    border-radius: 1rem;
    user-select: none;
    -webkit-tap-highlight-color: transparent; }
    @media only screen and (max-width: 37.5em) {
      .prestations__item {
        margin: 0 1rem 0 1rem; } }
    .prestations__item--can-be-open {
      transition-property: transform, box-shadow;
      transition-duration: .3s; }
      .prestations__item--can-be-open:hover:not(.prestations__item--open) {
        box-shadow: inset 0 1px 2px rgba(0, 0, 0, 0.39), 0 -1px 1px #FFF, 0 1px 0 #FFF;
        transform: scale(1.01);
        transition: .3s;
        cursor: pointer; }
      .prestations__item--can-be-open:hover .prestations__item__btn--to-open {
        visibility: visible !important;
        transform: translateX(-50%) scale(1);
        transition: all .3s; }
      @media only screen and (max-width: 37.5em) {
        .prestations__item--can-be-open {
          box-shadow: inset 0 1px 2px rgba(0, 0, 0, 0.39), 0 -1px 1px #FFF, 0 1px 0 #FFF; } }
    .prestations__item--open {
      cursor: default;
      transform: scale(1.01);
      box-shadow: inset 0 1px 2px rgba(0, 0, 0, 0.39), 0 -1px 1px #FFF, 0 1px 0 #FFF; }
      @media only screen and (max-width: 37.5em) {
        .prestations__item--open {
          padding: 1rem;
          transform: scale(1); } }
    .prestations__item--open .prestations__item__details {
      display: flex;
      height: 100%;
      overflow: visible; }
    @media only screen and (max-width: 37.5em) {
      .prestations__item--open .prestations__item--main {
        position: inherit;
        margin-top: 0;
        margin-right: 0; } }
    .prestations__item--main {
      display: flex;
      align-items: center; }
      @media only screen and (max-width: 37.5em) {
        .prestations__item--main {
          flex-direction: row-reverse;
          align-items: center;
          position: relative;
          margin-top: -2.5rem;
          margin-right: -2.5rem; } }
    .prestations__item--picture {
      min-width: 15rem;
      height: 15rem;
      overflow: hidden;
      border-radius: 50%;
      box-shadow: 0 2px 4px 0 rgba(0, 0, 0, 0.5);
      margin-right: 2rem; }
      @media only screen and (max-width: 37.5em) {
        .prestations__item--picture {
          margin-right: 0;
          margin-bottom: 0;
          height: 12rem;
          min-width: 12rem; } }
    .prestations__item--open .prestations__item--picture {
      display: none; }
    .prestations__item--title {
      font-family: "Playfair Display", sans-serif;
      font-size: 2rem;
      text-transform: uppercase;
      letter-spacing: .17rem;
      line-height: 2rem;
      font-weight: 400;
      margin-bottom: 1.5rem;
      color: #8F7D4B; }
      @media only screen and (max-width: 37.5em) {
        .prestations__item--title {
          font-size: 1.8rem; } }
    @media only screen and (max-width: 37.5em) {
      .prestations__item--sub-title {
        display: none; } }
    .prestations__item--open .prestations__item--content--before {
      visibility: hidden;
      display: none; }
    .prestations__item--open .prestations__item--content--after {
      visibility: visible;
      display: block; }
    .prestations__item--content {
      align-self: center; }
      .prestations__item--content--before {
        visibility: visible;
        display: block; }
        .prestations__item--content--before--desktop {
          display: block; }
          @media only screen and (max-width: 37.5em) {
            .prestations__item--content--before--desktop {
              display: none; } }
        .prestations__item--content--before--mobile {
          display: none; }
          @media only screen and (max-width: 37.5em) {
            .prestations__item--content--before--mobile {
              display: block; } }
      .prestations__item--content--after {
        visibility: hidden;
        display: none;
        margin-left: 1rem; }
    .prestations__item__details {
      width: 100%;
      margin-top: 2rem;
      height: 0;
      overflow: hidden;
      justify-content: space-around; }
      @media only screen and (max-width: 56.25em) {
        .prestations__item__details {
          flex-direction: column;
          align-items: center; } }
      .prestations__item__details--picture {
        width: 30rem;
        height: 30rem;
        overflow: hidden;
        box-shadow: 0 2px 4px 0 rgba(0, 0, 0, 0.5);
        border-radius: 0.5rem; }
        .prestations__item__details--picture img {
          width: 100%;
          overflow: hidden; }
      .prestations__item__details--content {
        position: relative;
        width: auto;
        display: flex;
        flex-direction: column;
        align-items: center;
        align-self: center; }
        .prestations__item__details--content--item {
          text-align: center;
          padding-top: 1rem;
          padding-bottom: 1rem; }
        .prestations__item__details--content--price {
          font-size: 3.5rem;
          line-height: 3.5rem;
          letter-spacing: .375rem;
          margin-bottom: .8rem; }
        .prestations__item__details--content--option {
          font-size: 1.5rem;
          font-style: italic;
          color: #CCCCCC;
          text-align: center; }
    .prestations__item--can-be-open .prestations__item__btn {
      display: block; }
    .prestations__item__btn {
      display: none;
      height: 2.5rem;
      width: 2.5rem;
      cursor: pointer;
      position: absolute;
      left: 50%;
      transform: translateX(-50%);
      transition: transform 1s; }
      .prestations__item__btn--to-open {
        visibility: hidden;
        transform: translateX(-50%) scale(0);
        transition: all .3s; }
        @media only screen and (max-width: 37.5em) {
          .prestations__item__btn--to-open {
            visibility: visible;
            transform: translateX(-50%) scale(1); } }
      .prestations__item__btn--to-close {
        transform: translateX(-50%) rotate(180deg); }

.ref {
  padding-top: 2rem;
  margin-bottom: 1.5rem; }

.deroulement {
  width: 100rem;
  position: relative;
  left: 50%;
  transform: translateX(-50%);
  display: flex;
  flex-direction: column;
  align-items: center; }
  @media only screen and (max-width: 56.25em) {
    .deroulement {
      width: 100%;
      padding: .5rem; } }
  @media only screen and (max-width: 56.25em) {
    .deroulement__block:nth-child(3n + 1) {
      flex-direction: column-reverse; } }
  .deroulement__block {
    display: flex;
    margin-top: 4rem;
    margin-bottom: 4rem;
    flex-direction: column;
    align-items: center; }
    @media only screen and (max-width: 56.25em) {
      .deroulement__block {
        margin-top: 2rem;
        margin-bottom: 2rem; } }
    .deroulement__block > *:nth-child(1) {
      margin-right: 2rem; }
      @media only screen and (max-width: 56.25em) {
        .deroulement__block > *:nth-child(1) {
          margin-right: 0; } }
    .deroulement__block--text h1 {
      font-family: "Playfair Display";
      font-size: 2.5rem;
      line-height: 2.5rem;
      font-weight: 400;
      color: #8F7D4B; }
    .deroulement__block--text > *:not(:last-child) {
      margin-bottom: 1rem; }
    .deroulement__block--picture {
      height: 30rem;
      box-shadow: 0 2px 4px 0 rgba(0, 0, 0, 0.5);
      margin-top: 2rem; }
      @media only screen and (max-width: 37.5em) {
        .deroulement__block--picture {
          height: auto;
          max-width: 100%; } }
    .deroulement__block figure {
      text-align: center; }

.contact {
  margin-top: .5rem; }
  .contact__block {
    margin-top: 1rem;
    display: flex;
    align-items: center; }
    @media only screen and (max-width: 37.5em) {
      .contact__block {
        margin-top: 0;
        flex-direction: column;
        align-items: stretch; } }
    .contact__block > * {
      padding: 4rem; }
      @media only screen and (max-width: 37.5em) {
        .contact__block > * {
          padding: 1rem !important; } }
  .contact__informations {
    flex: 1;
    padding-right: 4.25rem; }
    .contact__informations p {
      line-height: 4rem;
      text-align: center; }
  .contact__form {
    flex: 1;
    border-left: 1px solid #d9d9d9;
    padding-left: 4.25rem; }
    @media only screen and (max-width: 37.5em) {
      .contact__form {
        border-left: none; } }
    .contact__form--title {
      text-align: left;
      margin-bottom: 3rem; }
      @media only screen and (max-width: 37.5em) {
        .contact__form--title {
          text-align: center; } }
    .contact__form input, .contact__form textarea {
      border: none;
      box-shadow: inset 0 1px 2px rgba(0, 0, 0, 0.39), 0 -1px 1px #FFF, 0 1px 0 #FFF;
      padding: .7rem;
      text-align: left;
      color: #3a3931;
      margin-bottom: 1.2rem;
      text-transform: none; }
      .contact__form input::placeholder, .contact__form textarea::placeholder {
        text-align: left;
        color: #3a3931; }
      .contact__form input:invalid, .contact__form textarea:invalid {
        box-shadow: inset 0 1px 2px rgba(237, 33, 58, 0.39), 0 -1px 1px #FFF, 0 1px 0 #FFF; }
      .contact__form input[type="submit"], .contact__form textarea[type="submit"] {
        background-color: #3a3931;
        color: #FFFFFF;
        border: none;
        position: relative;
        left: 50%;
        transform: translateX(-50%);
        transition-property: transform, box-shadow;
        transition-duration: .6s;
        box-shadow: none; }
        .contact__form input[type="submit"]:hover, .contact__form textarea[type="submit"]:hover {
          box-shadow: 0 4px 6px -1px rgba(0, 0, 0, 0.1), 0 2px 4px -1px rgba(0, 0, 0, 0.06);
          transform: translateX(-50%) scale(1.05);
          transition-property: transform, box-shadow;
          transition-duration: .6s;
          cursor: pointer; }
    .contact__form textarea {
      resize: none;
      width: 100%; }
    .contact__form--sent-message {
      text-align: center;
      text-transform: uppercase;
      font-style: normal;
      margin-bottom: 1rem; }

.espace-client__block {
  margin: 1.5rem 0;
  padding: 0 1.5rem;
  width: 100%;
  min-height: calc(100vh - 17rem); }

.blog {
  max-width: 100rem;
  position: relative;
  left: 50%;
  transform: translateX(-50%);
  height: 100%;
  min-height: calc(100vh - 17rem); }
  .blog h2 {
    font-family: "Playfair Display";
    font-size: 2.5rem;
    line-height: 2.5rem;
    font-weight: 400;
    text-align: left;
    color: #8F7D4B;
    margin-top: 3rem; }
  .blog p {
    margin-top: 1rem; }
  .blog__articles {
    display: grid;
    grid-template-columns: 20rem 1fr;
    row-gap: 1.5rem;
    column-gap: 1.5rem;
    margin-top: 1rem; }
    .blog__articles img {
      box-shadow: 0 2px 4px 0 rgba(0, 0, 0, 0.5);
      width: 100%; }
    .blog__articles--details {
      text-align: left;
      display: flex;
      flex-direction: column;
      justify-content: space-around; }
      .blog__articles--details h3, .blog__articles--details h4 {
        text-align: left; }
      .blog__articles--details h3 {
        font-size: 3rem; }
      .blog__articles--details h4 {
        font-size: 1.5rem; }
      .blog__articles--details p {
        font-size: 1.5rem; }
      .blog__articles--details__top {
        display: flex;
        align-items: baseline; }
  .blog__link:hover {
    text-decoration: underline; }

.blog-post {
  max-width: 100rem;
  position: relative;
  left: 50%;
  transform: translateX(-50%); }
  .blog-post__head {
    margin-bottom: 1rem; }
    .blog-post__head--category {
      font-size: 1.25rem;
      color: #8c8b85; }
  .blog-post__picture {
    position: relative;
    left: 50%;
    transform: translateX(-50%);
    box-shadow: 0 2px 4px 0 rgba(0, 0, 0, 0.5);
    margin-top: 1.5rem; }
    .blog-post__picture--main {
      height: 55rem; }
      @media only screen and (max-width: 37.5em) {
        .blog-post__picture--main {
          height: auto;
          max-width: 100%; } }
    .blog-post__picture--section {
      height: 30rem; }
      @media only screen and (max-width: 37.5em) {
        .blog-post__picture--section {
          height: auto;
          max-width: 80%; } }
  .blog-post figcaption {
    text-align: center; }
  .blog-post article h1 {
    font-family: "Playfair Display";
    font-size: 2.5rem;
    line-height: 2.5rem;
    font-weight: 400;
    color: #8F7D4B;
    margin-top: 3rem; }
  .blog-post article p {
    margin-top: 1rem; }

.error {
  width: 100%;
  height: 100%;
  min-height: calc(100vh - 9rem - 1.5rem - 2rem); }
  .error div {
    position: absolute;
    left: 50%;
    top: 50%;
    transform: translate(-50%, -50%);
    text-align: center; }
