/* HOME */
figure {
  margin: 0;
}

/* CAROUSEL */
.carousel-inside-wrapper {
    transition: opacity .3s;
}
.flex-row {
  display: flex;
}
.carousel .image-wrapper figcaption {
  display: none;
}


/* CAROUSELS */
.carousel {
    justify-content: center;
  }
  .image-wrapper {
    pointer-events: none;
  }
  .image-wrapper.en-avant, .image-wrapper.en-avant-gauche, .image-wrapper.en-avant-droite {
    cursor: pointer;
    pointer-events: all;
  }
  
  .fleches {
    position: absolute;
    width: calc(100% - 40px);
    justify-content: space-between;
    pointer-events: none;
  }
  .fleche {
    position: relative;
    opacity: 0;
    width: 40px;
    height: 40px;
    background-color: #fff;
    transition: opacity .5s;
    display: flex;
    justify-content: center;
    align-items: center;
    pointer-events: auto;
    cursor: pointer;
  }
  .carousel-long .carousel .fleche.gauche {
    left: -1rem;
  }
  .carousel-long .carousel .fleche.droite {
    left: 1rem;
  }
  .fleche .bars {
    width: 10px;
    height: 10px;
    border-top: solid 1px #000;
    border-right: solid 1px #000;
  }
  .gauche .bars {
    transform: translateX(2.5px) rotate(-135deg);
  }
  .droite .bars {
    transform: translateX(-2.5px) rotate(45deg);
  }
  .carousel:hover .fleche, .phone .fleche {
    opacity: .5;
  }
  .carousel:hover .fleche:hover {
    opacity: .8;
  }
  .carousel-long .carousel {
    position: relative;
    width: 100%;
    align-items: center;
    opacity: 0;
  }
  @keyframes appear {
    to {
      opacity: 1;
    }
  }
  .carousel-long .carousel.appear {
    animation: appear .5s .8s forwards;
  }
  .carousel-inside-wrapper {
    position: relative;
    height: 100%;
    width: 100%;
    align-items: center;
    justify-content: center;
  }
  .block-container {
    --h: 60vh;
    /*height: calc(var(--ratio) * 70vw);*/
    height: calc(var(--h) + 8px);
    transition: transform .8s cubic-bezier(.5,1,.47,.96);
    display: flex;
    align-items: center;
  }
  .block {
    position: absolute;
  }
  .block-container .block .image-wrapper {
    display: flex;
    align-items: center;
    justify-content: center;
    position: relative;
    margin: 0 1px;
    width: calc(var(--ratio) * var(--h));
    /*height: calc(var(--ratio) * 70vw);*/
    height: var(--h);
    overflow: hidden;
  }

  .largeur .block-container {
    --w: 80vw;
    height: calc(8px + var(--w) / var(--ratio))
  }
  .largeur .block-container .block .image-wrapper {
    width: var(--w);
    height: calc(var(--w) / var(--ratio))
  }

  .image-wrapper figure, .image-wrapper picture {
    height: 100%;
  }
  .image-wrapper img {
    object-fit: contain;
  }
  .phone .block-container {
    height: calc(4px + calc(350px / var(--ratio)));
  }
  .phone .block-container .block .image-wrapper {
    width: 350px;
    height: calc(350px / var(--ratio));
  }
  .block .image-wrapper .image-voile {
    position: absolute;
    top: 0;
    left: 0;
    width: 100%;
    height: 100%;
    background-color: rgba(255, 255, 255, .2);
    transition: background-color 1s;
  }
  .block .image-wrapper.en-avant .image-voile {
    background-color: rgba(255, 255, 255, 0)
  }


.conteneur-points {
    display: flex;
    justify-content: center;
    flex-wrap: wrap;
    margin-top: 10px;
}
.phone .conteneur-points {
  pointer-events: none;
}
.point {
    position: relative;
    height: 15px;
    width: 15px;
    margin: 7px;
    border: solid 2px;
    border-radius: 50%;
    cursor: pointer;
}
.point.actif {
    background-color: #000;
    pointer-events: none;
}


/* SWIPE CAROUSEL */
.swipable-carousel {
  position: absolute;
  top: -50%;
  left: 0;
  width: 100%;
  height: 200%;
  z-index: 5;
}


/* LIGHTBOX */
.lightbox {
    position: fixed;
    top: 0;
    left: 0;
    background-color: rgba(0, 0, 0, .95);
    display: flex;
    justify-content: center;
    align-items: center;
  }
  .lightbox.appear {
    width: 100%;
    height: 100%;
    z-index: 100;
  }
  .lightbox .image-wrapper, .lightbox figure, .lightbox picture {
    display: flex;
    justify-content: center;
  }
  .lightbox .image-wrapper {
    position: absolute;
    width: 94%;
    height: 92%;
    opacity: 0;
    transition: opacity 1s;
  }
  .lightbox .image-wrapper.en-avant {
    opacity: 1;
    z-index: 1;
  }
  .lightbox figure, .lightbox picture {
    flex-direction: column;
    justify-content: center;
    align-items: center;
    max-height: 100%;
    max-width: 100%;
  }
  .lightbox img {
    max-height: 100%;
    max-width: 100%;
  }
  .lightbox figcaption {
    width: 100%;
    color: #fff;
  }
  .lightbox figcaption span {
    display: inline-block;
    width: 100%;
    margin-top: 1rem;
    font-family: sans-serif;
  }
  .light-title {
    font-size: 16px;
  }
  .light-subtitle {
    font-size: 12px;
  }
  
  
  .lightbox .swipable {
    z-index: 1;
    position: absolute;
    width: 90%;
    height: 90%;
  }
  .lightbox .fleches, .lightbox .croix {
    z-index: 5;
  }
  .lightbox .fleche {
    opacity: 1;
    background: none;
    cursor: pointer;
  }
  .lightbox .fleche .bars {
    width: 15px;
    height: 15px;
    border-top: solid 2px #fff;
    border-right: solid 2px #fff;
  }
  .croix {
    width: 100%;
    height: 50px;
    cursor: pointer;
    position: absolute;
    top: 0;
    right: 0;
    display: -webkit-box;
    display: -ms-flexbox;
    display: flex;
    -webkit-box-align: center;
        -ms-flex-align: center;
            align-items: center;
  }
  .croix .bars {
    display: inline-block;
    position: absolute;
    right: 10px;
    width: 20px;
    height: 2px;
    background-color: #fff;
    border-radius: 1.5px;
  }
  .croix .bars:nth-of-type(1) {
    -webkit-transform: rotate(45deg);
        -ms-transform: rotate(45deg);
            transform: rotate(45deg);
  }
  .croix .bars:nth-of-type(2) {
    -webkit-transform: rotate(-45deg);
        -ms-transform: rotate(-45deg);
            transform: rotate(-45deg);
  }


/* TESTS */
@property --perc-left {
  syntax: "<percentage>";
  inherits: true;
  initial-value: 0%;
}
@property --col-left {
  syntax: "<number>";
  inherits: true;
  initial-value: 0;
}
@property --perc-right {
  syntax: "<percentage>";
  inherits: true;
  initial-value: 0%;
}
@property --col-right {
  syntax: "<number>";
  inherits: true;
  initial-value: 0;
}
@keyframes NoToLeft {
  0% {
    --perc-left: 100%;
    --perc-right: 100%;
    --col-left: 0;
    --col-right: 1;
  }
  20% {
    --perc-left: 100%;
    --perc-right: 100%;
    --col-left: 0;
    --col-right: 1;
  }
  100% {
    --perc-left: 50%;
    --perc-right: 100%;
    --col-left: 0;
    --col-right: 1;
  }
}
@keyframes NoToRight {
  0% {
    --perc-left: 0%;
    --perc-right: 0%;
    --col-left: 1;
    --col-right: 0;
  }
  20% {
    --perc-left: 0%;
    --perc-right: 0%;
    --col-left: 1;
    --col-right: 0;
  }
  100% {
    --perc-left: 0%;
    --perc-right: 50%;
    --col-left: 1;
    --col-right: 0;
  }
}
@keyframes LeftToCenter {
  0% {
    --perc-left: 50%;
    --perc-right: 100%;
    --col-left: 0;
    --col-right: 1;
  }
  100% {
    --perc-left: 0%;
    --perc-right: 100%;
    --col-left: 1;
    --col-right: 1;
  }
}
@keyframes RightToCenter {
  0% {
    --perc-left: 0%;
    --perc-right: 60%;
    --col-left: 1;
    --col-right: 0;
  }
  100% {
    --perc-left: 0%;
    --perc-right: 100%;
    --col-left: 1;
    --col-right: 1;
  }
}
@keyframes CenterToRight {
  from {
    --perc-left: 100%;
    --perc-right: 100%;
    --col-left: 1;
    --col-right: 0;
  }
  to {
    --perc-left: 0%;
    --perc-right: 50%;
    --col-left: 1;
    --col-right: 0;
  }
}
@keyframes CenterToLeft {
  from {
    --perc-left: 0%;
    --perc-right: 0%;
    --col-left: 0;
    --col-right: 1;
  }
  to {
    --perc-left: 50%;
    --perc-right: 100%;
    --col-left: 0;
    --col-right: 1;
  }
}
@keyframes RightToNo {
  from {
    --perc-left: 0%;
    --perc-right: 50%;
    --col-left: 1;
    --col-right: 0;
  }
  to {
    --perc-left: 0%;
    --perc-right: 0%;
    --col-left: 1;
    --col-right: 0;
  }
}
@keyframes LeftToNo {
  from {
    --perc-left: 50%;
    --perc-right: 100%;
    --col-left: 0;
    --col-right: 1;
  }
  to {
    --perc-left: 100%;
    --perc-right: 100%;
    --col-left: 0;
    --col-right: 1;
  }
}


.block .image-wrapper .image-voile {
  display: none;
}
