/**
 * @file
 * Modules styles
 *
 * Modules are reusables CSS objects (components).
 * They can be utilized
 */


/**
 * TNS slider
 */
.tns-controls,
.tns-nav {
  text-align: center;
}
.tns-controls button {
  font-weight: bold;
  font-size: 1.2em;
  color: #fff;
  background: rgba(0,0,0,0.25);
  border: none;
}
.tns-nav button {
  display: inline-block;
  margin: 0 2px;
  height: 12px;
  width: 12px;
  background: rgba(0,0,0,0.25);
  border-radius: 50%;
  border: none;
}


/**
 * Heading content
 */

 .content__heading{
  position: relative;
}
.content-heading__title{
  text-align: center;
}
.content-heading__title h1{
  font-size:2.3rem;
  font-weight: bold;
  line-height: 1.05em;
  text-align: center;
  color:#333;
}
@media only screen and (min-width: 1000px) {
  .content-heading__title h1{
    font-size:2.875rem;
  }
}


 /**
 * Simple text
 */

.simple-text-wrapper{
  padding:20px 0;
}
@media only screen and (min-width: 1000px) {
  .simple-text-wrapper{
    padding:50px 0;
  }
}

/**
 * Card list
 */
.card__list{
  margin:0;
  padding:0;
  list-style: none;
  align-items: stretch;
}
.card__item{
  margin:0 0 2rem;
}
.card-item__wrapper{
  background-color: #EEEEEE;
  height: 100%;
  display: block;
  color:#333333;
  max-width: 310px;
  margin:0 auto;
  transition: all 0.25s;
  -webkit-transition: all 0.25s;
  -moz-transition: all 0.25s;
  -ms-transition: all 0.25s;
  -o-transition: all 0.25s;
}
.card-item__wrapper:hover{
  box-shadow: 0px 5px 10px 0px rgb(0 0 0 / 40%);
  transform: translateY(-5px);
  -webkit-transform: translateY(-5px);
  -moz-transform: translateY(-5px);
  -ms-transform: translateY(-5px);
  -o-transform: translateY(-5px);
}
.card-item__content{
  background-color: #EEEEEE;
  padding:1.5rem;
  text-align: left;
}
.card-item__title{
  font-size: 1.5rem;
  margin-bottom:0.5rem;
}
.card-item__date{
  color:#888888;
}
.card-item__tag{
  display: inline-block;
  border-bottom:1px solid #D7BB09;
  margin:0.5rem 0;
}
.card-item__desc{
  font-size: 1.125rem;
}


/*
* Cookies module custom colors
*/
/* Small banner */
.cookiesjsr-banner, .cookiesjsr-btn{
  background-color: #3384ce;
}
.cookiesjsr-btn.important{
  color:#3384ce;
}
/* Popin */
.cookiesjsr-service-group.active .cookiesjsr-service-group--content,
.cookiesjsr-service-group.active .cookiesjsr-service-group--tab{
  background-color: #3384ce;
}
.cookiesjsr-btn.invert{
  border-color: #3384ce;
  color: #3384ce
}
.cookiesjsr-btn.important.invert{
  border-color: #3384ce;
  background-color: #3384ce;
}
.cookiesjsr-service--always-on span{
  padding:0.5rem 1rem;
  border:2px solid #fff;
  font-weight: 700;
}

/**
 * Bloc HP
 */
.blocs-hp__wrapper{
  display: flex;
  flex-direction: row;
  align-items: flex-start;
  justify-content: flex-start;
  flex-wrap:wrap;
}
.blocs-hp__wrapper > div{
  width: 100%;
  text-align: center;
}
.blocs-hp .menu{
  margin: 0;
  text-align: left;
}
.blocs-hp ul.menu .menu__item{
  /* display: inline-block; */
  /* margin-top: 10%; */
  padding: 0;
  margin:0 0 2px 0;
  position: relative;
  background-color: #ccc;
  background: linear-gradient(90deg, rgba(51,132,206,1) 0%, rgba(9,100,184,1) 100%);
  /* -webkit-backface-visibility: hidden; */
  z-index: 1;
}
/* Modifs */
.blocs-hp ul.menu .menu__item:after{
  position: absolute;
  content: '';
  top: 0;
  left: 0;
  width: 100%;
  height: 100%;
  /* border-radius: 0.3em; */
  background: linear-gradient(270deg, rgba(51,132,206,1) 0%, rgba(9,100,184,1) 100%);
  transition: opacity 0.5s ease-out;
  z-index: 2;
  opacity: 0;
}
.blocs-hp ul.menu .menu__item:hover:after{
  opacity: 1;
}
.blocs-hp ul.menu .menu__item a {
  position: relative;
  z-index: 3;
}
.blocs-hp ul.menu a{
  display: block;
  position: relative;
  padding: 0.25rem 1rem 0.25rem 3rem;
  font-weight: 400;
  color: white;
  min-height: 40px;
  font-size: 0.9em;
  line-height: 1.125em;
  display: flex;
  flex-direction: column;
  align-items: flex-start;
  justify-content: center;
  background-position: center left 1rem;
  background-repeat: no-repeat;
  background-size: 20px;
}
.blocs-hp ul.menu .num-utile{
  background-image:url('../images/icon-menu-1.svg')
}
.blocs-hp ul.menu .asso{
  background-image:url('../images/icon-menu-2.svg')
}
.blocs-hp ul.menu .demarches{
  background-image:url('../images/icon-menu-3.svg')
}
.blocs-hp ul.menu .rencontrer{
  background-image:url('../images/icon-menu-4.svg')
}
.blocs-hp ul.menu .commerces{
  background-image:url('../images/icon-menu-5.svg')
}
.blocs-hp ul.menu .hebergement{
  background-image:url('../images/icon-menu-6.svg')
}
.blocs-hp__wrapper > div:first-child{
  width: 310px;
  margin-bottom:2rem;
}
.blocs-hp__wrapper .title{
  margin-bottom:2rem;
}
@media screen and (min-width: 750px) {
  .blocs-hp__wrapper > div:first-child{
    width: 310px;
  }
  .blocs-hp__wrapper > div:last-child{
    width: calc(100% - 310px);
    padding:0 0 0 2rem;
  }
}

/*
Special style
*/
.title{
  position: relative;
  display: inline-block;
  color:#000;
  font-size: 2rem;
  font-weight: 700;
  line-height: 2.5rem;
  margin-bottom:0.5rem;
  width: 100%;
}
.title .double-title{
  position: absolute;
  bottom: 40%;
  left: 25px;
  color: #F0E5D6;
  width: 100%;
  line-height: 2.5rem;
  font-size: 1.125em;
  z-index: -1;
}
.line-left{
  margin:1.5rem 0;
  padding-left: 1rem;
  border-left:2px solid #D7BB09;
}
.subtitle{
  display: inline-block;
  width: 100%;
  font-size:1.5rem;
  line-height:1.25;
  color:#333333;
}
.bigger-text{
  font-size: 1.25rem;
}
@media screen and (min-width: 750px) {
  .title{
    font-size: 2.875rem;
  }
  .subtitle{
    font-size:2rem;
  }
  .bigger-text{
    font-size: 1.5rem;
  }
}

/**
 * Custom paragraph
*/
.custom-paragraph--alt-style{
  padding:2rem 0;
  position: relative;
}
.custom-paragraph--alt-style:before{
  content:'';
  width: 100%;
  height: 100%;
  z-index: -2;
  background-color: #F5EFE6;
  left:0;
  top:0;
  position: absolute;
}
.custom-paragraph--alt-style .title .double-title{
  color:#fff;
}
@media screen and (min-width: 750px) {
  .custom-paragraph--alt-style:after{
    content:'';
    width: 44%;
    right:0;
    top:0;
    background-color: #fff;
    height:100%;
    position: absolute;
    z-index:-1;
  }
  .custom-paragraph--alt-style .grid-list--2 > *:first-child{
    width: 42%;
  }
  .custom-paragraph--alt-style .grid-list--2 > *:last-child{
    width: 54%;
  }
  .custom-paragraph--alt-style{
    padding:6rem 0;
  }
  .custom-paragraph--alt-style .grid-list{
    align-items: center;
  }
}
@media screen and (min-width: 1000px) {
  .custom-paragraph--alt-style .grid-list--2 > *:first-child{
    padding-left: 5rem;
  }
}
@media screen and (min-width: 1250px) {
  .custom-paragraph--alt-style .grid-list--2 > *:first-child{
    padding-left: 10rem;
  }
}
@media screen and (min-width: 1500px) {
  .custom-paragraph--alt-style .grid-list--2 > *:first-child{
    padding-left: 13.25rem;
  }
}


/*
 * Images slider
*/
.images-slider__container{
  display: flex;
  flex-direction: row;
  flex-wrap: wrap;
  justify-content: space-between;
  align-items: center;
}
.images-slider__content, .images-slider__side{
  width: 100%;
}
.slide-results{
  font-weight: 700;
  font-size: 1.875rem;
  color:#000;
}
.slick-dots{
  display: flex;
  flex-direction: row;
  flex-wrap: nowrap;
  justify-content: flex-start;
  align-items: center;
  list-style: none;
  margin:0;
  padding:0 1rem;
}
.slick-dots button{
  margin:0;
  padding:0;
  width: 10px;
  height: 10px;
  overflow: hidden;
  text-indent: -999rem;
  border-radius: 50%;
  background-color: #F0E5D6;
  -webkit-border-radius: 50%;
  -moz-border-radius: 50%;
  -ms-border-radius: 50%;
  -o-border-radius: 50%;
  border: none;
  margin:0 0.5rem;
}
.slick-dots .slick-active button{
  background-color: #D7BB09;
}
.slick-prev, .slick-next{
  overflow: hidden;
  padding:0;
  margin:0;
  text-indent:-999rem;
  background-color: transparent;
  background-image: url('../images/arrow.svg');
  background-repeat: no-repeat;
  background-position: center;
  background-size: contain;
  width: 25px;
  height: 50px;
  position: absolute;
  top:50%;
  transform:translateY(-50%);
  -webkit-transform:translateY(-50%);
  -moz-transform:translateY(-50%);
  -ms-transform:translateY(-50%);
  -o-transform:translateY(-50%);
  border:none;
  z-index: 5;
}
.slick-prev{
  left:1rem;
}
.slick-next{
  right:1rem;
  transform:translateY(-50%) rotateZ(-180deg);
  -webkit-transform:translateY(-50%) rotateZ(-180deg);
  -moz-transform:translateY(-50%) rotateZ(-180deg);
  -ms-transform:translateY(-50%) rotateZ(-180deg);
  -o-transform:translateY(-50%) rotateZ(-180deg);
}

@media screen and (min-width: 750px) {
  .images-slider__content{
    width: 66%;
  }
  .images-slider__side{
    width: 31%;
  }
}



/*
 * FILES
*/
.file{
  background-image:url('../images/icon-dl.svg');
  background-size: 37px;
  background-position: center left 1rem;
  background-repeat: no-repeat;
  background-color:#EEEEEE;
  display: block;
  margin:1rem 0;
  color:#555555;
  line-height: 1.25;
  font-size: 1.25rem;
}
.file a{
  color:#555555;
  padding:1rem 1rem 1rem 3rem;
  display: block;
}


/*
* PUSH
*/
.push{
  padding:1rem;
  margin:0 0 2rem;
}
.push--background-grey{
  background-color:#eeeeee;
}
.paragraph--type--push .field--type-image{
  text-align: center;
}
.paragraph--type--push .field--type-text-long a:hover{
  text-decoration: underline;
}


.more-link{
  text-align: center;
}
.more-link a{
  display: inline-block;
  padding:1rem 3rem 1rem 1rem;
  border:2px solid #D7BB09;
  color:#222222;
  font-size: 1.25rem;
  background-position: center right 1rem;
  background-image: url('../images/arrow-small-right.svg');
  background-repeat: no-repeat;
  background-size: 8px 16px;
  transition: all 0.25s;
  -webkit-transition: all 0.25s;
  -moz-transition: all 0.25s;
  -ms-transition: all 0.25s;
  -o-transition: all 0.25s;
}
.more-link a:hover{
  background-color: #F5EFE6;
}

.content__date{
  color:#888888;
  padding:0.5rem 0;
}
.content__tag{
  display: inline-block;
  border-bottom: 1px solid #D7BB09;
}

.breadcrumb a{
  color:#555555;
}

/**
 * WebForm Style
 */

 .paragraph--type--form form {
  padding: 0 20px;
  display: -webkit-flex;
  display: -moz-flex;
  display: -ms-flex;
  display: -o-flex;
  display: flex;
  -webkit-flex-direction: column;
  -moz-flex-direction: column;
  -ms-flex-direction: column;
  -o-flex-direction: column;
  flex-direction: column;
  align-items: center;
  justify-content: flex-start;
}
.paragraph--type--form .ajax-wrapper,
.paragraph--type--form .form-item {
  width: 100%;
  display: flex;
  flex-direction: column;
  margin: 15px 0;
}
.paragraph--type--form .form-item .form-text,
.paragraph--type--form .form-item .form-email,
.paragraph--type--form .form-item .form-textarea,
.paragraph--type--form .form-item .form-select {
  padding: 12px 20px;
  margin: 0.5rem 0;
  display: inline-block;
  border: 1px solid #ccc;
  border-radius: 4px;
  box-sizing: border-box;
}
.paragraph--type--form .form-submit {
  padding: 10px 60px;
  margin: 8px 0;
  font-size: 1.3em;
  cursor: pointer;
  font-weight: 600;
  background-color: white;
  color: #333333;
  border: 2px solid #333333;
}
.paragraph--type--form .form-submit:hover {
  background-color: #333333;
  color: white;
}
@media screen and (min-width: 700px) {
  .paragraph--type--form #ajax-wrapper,
  .paragraph--type--form .form-item {
    max-width: 645px;
  }
}


/*
 * Images slider location
*/
.images-slider-location__container{
  display: flex;
  flex-direction: row;
  flex-wrap: wrap;
  justify-content: space-between;
  align-items: center;
}
.images-slider-location__content, .images-slider-location__side{
  width: 100%;
}

.images-slider-location__content .slick-prev, .slick-next {
  width: 55px;
  height: 70px;
}

@media screen and (min-width: 750px) {
  .images-slider-location__side{
    width: 31%;
  }
}


/**
 *  Slider + Texte
 */

 .blocs-slider-text__wrapper {
  display: flex;
  flex-direction: column;
  align-items: center;
}

.blocs-slider-text__slider,
.blocs-slider-text__text {
  width: 100%;
  box-sizing: border-box;
}


.blocs-slider-text__slider {

}

.blocs-slider-text__text {
  max-width: 590px;
}

.blocs-slider-text__title {
  font-size: 2.25rem;
  color: #333333;
}

.blocs-slider-text__description {
  color: #555;
}

.blocs-slider-text__book {
  border-top: 1px solid #d8d8d8;
  display: flex;
  flex-direction: row;
  align-items: center;
  gap: 1rem;
  padding-top: 2rem;
  justify-content: center;
}

.blocs-slider-text__price {

}

.blocs-slider-text__price--from {
  font-size: 0.8rem;
  color: #555;
  min-width: 60px;
}

.blocs-slider-text__price--euro{
  font-size: 1.2rem;
  font-weight: 700;
  color: #333;
}

.blocs-slider-text__price--night {
  font-size: 1rem;
  font-weight: 700;
}

.blocs-slider-text__link a {
  background-color: #D7BB09;
  color: #333333;
  font-weight: 700;
  font-size: 1rem;
  border-radius: 5px;
  border: 2px solid #D7BB09;
  padding: 10px 18px;
  text-align: center;
  text-decoration: none;
  cursor: pointer;
  transition: background-color 0.3s, border-color 0.3s;
  text-transform: uppercase;
}

.blocs-slider-text__link a:hover {
  background-color: white;
  border-color: #D7BB09;
  color: #333333;
}


@media screen and (min-width: 700px) {
  .blocs-slider-text__wrapper {
    flex-direction: row;
    gap: 2rem;
    align-items: unset;
  }
  .blocs-slider-text__title {
    font-size: 2.875rem;
  }
  .blocs-slider-text__price--from {
    font-size: 1rem;
  }
  .blocs-slider-text__book {
    gap: 4rem;
    justify-content: unset;
  }
  .blocs-slider-text__link a{
    font-size: 1.25rem;
    padding: 18px 25px;
  }
  .blocs-slider-text__price--euro{
    font-size: 1.875rem;
  }
  .blocs-slider-text__slider,
  .blocs-slider-text__text {
    width: 50%;
  }
}


/**
 *  Chalets information
 */

.chalet-information__wrapper {
  display: flex;
  gap: 3rem;
  flex-direction: column-reverse;
  align-items: center;
}

.chalet-information__left,
.chalet-information__right {
  width: 100%;
  box-sizing: border-box;
}

.chalet-information__right {
  background-color: #FBF7F1;
  padding: 2rem;
  gap: 1.5rem;
  display: flex;
  flex-direction: column;
}

.chalet-information__right--wrapper {
  display: flex;
  flex-direction:column;
  gap: 1rem;
}

.chalet-information__documents--title,
.chalet-information__description--title,
.chalet-information__equipment--title,
.chalet-information__services--title,
.chalet-information__prices--title,
.chalet-information__nearby--title {
  font-weight: 700;
  font-size: 1.5rem;
  color: #333;
}

.chalet-information__equipment--title,
.chalet-information__services--title,
.chalet-information__prices--title,
.chalet-information__nearby--title {
  display: flex;
}

.chalet-information__equipment--title::before,
.chalet-information__services--title::before,
.chalet-information__prices--title::before,
.chalet-information__nearby--title::before {
  display: inline-block;
  margin-right: 8px;
  vertical-align: middle;
}

.chalet-information__equipment--title::before {
  content: url('../images/icon-equipment.svg');
}
.chalet-information__services--title::before {
  content: url('../images/icon-services.svg');
}
.chalet-information__prices--title::before {
  content: url('../images/icon-prices.svg');
}
.chalet-information__nearby--title::before {
  content: url('../images/icon-nearby.svg');
}

.chalet-information__description--text {
  position: relative;
}

.read-more-btn {
  background-color: #D7BB09;
  color: #333333;
  font-weight: 700;
  font-size: 1rem;
  border-radius: 5px;
  border: none;
  padding: 5px 10px;
  cursor: pointer;
  margin-top: 10px;
}

.read-more-btn:hover {
  background-color: white;
  border: 2px solid #D7BB09;
}


.custom-icon-list {
  list-style: none;
  padding-left: 0;
}

.custom-icon-list li {
  position: relative;
  padding-left: 25px;
  margin-bottom: 8px;
}

.custom-icon-list li::before {
  content: url('../images/icon-list-custom.svg');
  position: absolute;
  left: 0;
  top: 50%;
  transform: translateY(-50%);
  width: 14px;
  height: 14px;
}

.chalet-information__documents--files .files__item {
  background-image: url(../images/icon-download-documents.svg);
  background-size: 24px;
  background-position: unset;
  background-repeat: no-repeat;
  background-color: unset;
  display: block;
  margin: unset;
  color: #555555;
  line-height: 1.25;
  font-size: 1rem;
  text-decoration: underline;
  width: fit-content;
  padding: 0;
}

.chalet-information__documents--files .files__item a {
  color: #555555;
  padding: 2px;
  display: block;
  margin-left: 2rem;
  margin-top: 1rem;
  margin-bottom: 1rem;
}

.chalet-information__description {
  margin-top: 2rem;
}


.chalet-information__description--text .description-short,
.chalet-information__description--text .description-full {
  opacity: 1;
  visibility: visible;
  transition: opacity 0.3s ease, visibility 0.3s ease;
}

.chalet-information__description--text .description-short.hidden,
.chalet-information__description--text .description-full.hidden {
  opacity: 0;
  visibility: hidden;
  display: none;
}

.chalet-information__description--text .description-full {
  display: block;
}

.chalet-information__description--text .description-short {
  display: block;
}

.chalet-information__description--text .description-short a.read-more,
.chalet-information__description--text .description-full a.read-less {
  display: block;
  margin-top: 10px;
  font-weight: 700;
  text-decoration: underline;
  color: black;
  cursor: pointer;
}

.chalet-information__description--text .description-short,
.chalet-information__description--text .description-full {
  overflow: hidden;
  height: auto;
  transition: height 0.3s ease, opacity 0.3s ease;
}

.chalet-information__description--text .description-short.hidden {
  height: 0;
  opacity: 0;
}

.chalet-information__description--text .description-full {
  height: auto;
  opacity: 1;
}


.chalet-information__prices--wrapper {
  display: flex;
  flex-direction: column;
  margin-right: 3.5rem;
  margin-bottom: 1.5rem;
  margin-top: 0.5rem;
}

.chalet-information__prices--season {
  display: flex;
  justify-content: space-between;
  border-top: 1px #D0D0D0 solid;
  padding: 0.7rem;
}

.chalet-information__prices--season:last-child {
  border-bottom: 1px #D0D0D0 solid;
}

.chalet-information__prices--season-text {
  display: flex;
  align-items: center;
  color: #555555;
  gap: 8px;
}

.chalet-information__prices--season-text::before {
  content: '';
  display: inline-block;
  width: 4px;
  height: 4px;
  background-color: #555555;
  border-radius: 50%;
  margin-right: 5px;
}


.chalet-information__prices--season-price {
  font-weight: 700;
}

.chalet-information__prices--text{
  font-size: 0.75rem;
}


@media screen and (min-width: 700px) {
  .chalet-information__wrapper {
    flex-direction: row;
    align-items: unset;
  }
  .chalet-information__left,
  .chalet-information__right {
    width: 50%;
    box-sizing: border-box;
  }
}

@media screen and (min-width: 1000px) {
  .chalet-information__description {
    margin-top: 6rem;
  }
}

@media screen and (min-width: 1100px) {
  .chalet-information__right--wrapper {
    flex-direction: row;
    gap: 7rem;
  }
}

@media screen and (min-width: 1500px) {
  .chalet-information__right {
    margin-top: -5rem;
  }
}


/**
 *  Chalets Booking
 */

.booking__title {
  font-size: 2.875rem;
  color: #333333;
  font-weight: bold;
  line-height: 1.05em;
  color: #333;
  text-align: center;
  padding-top: 2rem;
  padding-bottom: 2rem;
  border-bottom: 1px #E8E8E8 solid;
  margin-bottom: 2rem;
}


.booking__wrapper {
  display: flex;
  flex-direction: column;
}


.booking__availability--title,
.booking__form--title {
  font-size: 2rem;
  font-weight: bold;
  color: #333333;
}

.booking__availability--text,
.booking__form--text {
  max-width: 550px;
}


.booking__availability--text iframe{
  width: 250px;
}

.booking__wrapper {
  display: flex;
  justify-content: space-between;
  gap: 20px;
}

.booking__availability,
.booking__form {
  flex: 1;
  min-width: 0;
}

.booking__availability--title,
.booking__form--title {
  font-weight: bold;
  margin-bottom: 10px;
}

.booking__availability--text,
.booking__form--text {
  margin-bottom: 20px;
}

@media screen and (min-width: 700px) {
  .booking__wrapper {
    flex-direction: row;
  }
}
@media screen and (min-width: 1000px) {
  .booking__availability--text iframe{
    width: 400px;
  }
}

@media screen and (min-width: 1350px) {
  .booking__availability--text iframe{
    width: 600px;
  }
}


/**
 *  Booking - form
 */

.booking__form--form {

}

.booking__form--form .form-item {
  display: flex;
  flex-direction: column;
}

.booking__form--form .form-item label {
  font-size: 1rem;
  color: #555555;
}

.booking__form--form .form-item input {
  font-size: 1rem;
  background-color: #FBF7F1;
  padding: 10px;
  border: 1px #E2E2E2 solid;
  max-width: 315px;
}


.booking__form--form .form-submit {
  background-color: #D7BB09;
  color: #333333;
  font-weight: 700;
  font-size: 1rem;
  border-radius: 5px;
  border: 2px solid #D7BB09;
  padding: 10px 18px;
  text-align: center;
  text-decoration: none;
  cursor: pointer;
  transition: background-color 0.3s, border-color 0.3s;
  text-transform: uppercase;
}

.booking__form--form .form-submit:hover {
  background-color: white;
  border-color: #D7BB09;
  color: #333333;
}


@media screen and (min-width: 700px) {
  .booking__form--form .form-submit{
    font-size: 1.25rem;
    padding: 18px 25px;
  }
}
