#product #main, #product .before-footer {
  background : var(--color-grey-default);
}

.product__grid {
  width  : 100%;
  margin : 0 auto;
}

/********************
	Part - Product Images
********************/
.product__images__wrapper {
  position     : relative;
  padding      : 70px 20px 40px 30px;
  border-right : 1px solid #DFE4ED;
}

.product-cover img {
  width  : 100%;
  height : 100%;
}

/********************
	Part - Product flags
********************/
.product__images__wrapper .product-flags {
  position : absolute;
  top      : 0;
  right    : 0;
  z-index  : 5;
}

/********************
	Part - Product cover
********************/
.product-cover {
  position : relative;
}

/********************
	Part - Product thumbs Images
********************/
.product__thumbnails:not(.product__thumbnails__slider) {
  display  : grid;
  grid-gap : 15px;
}

.images-container .thumb-container {
  text-align : center;
}

.product__thumbnails .thumb {
  border     : 1px solid transparent;
  cursor     : pointer;
  margin     : 0 auto;
  padding    : 7px;
  max-width  : 70px;
  width      : 70px;
  height     : 70px;
  max-height : 70px;
  min-width  : 70px;
}

.product__thumbnails .thumb {
  border : 1px solid #DFE4ED;
}

.product__thumbnails .thumb.selected {
  border : 1px solid #6C7FA3;
}

/********************
	Part - Product description short
********************/
#product-description-short {
  color : var(--color-grey-font-default);
}

/********************
	Part - Product information
********************/
.product-information {
  font-size : var(--font-size-300);
  color     : var(--color-grey-font-default)
}

.product-information .manufacturer-logo {
  height : 35px
}

.product-information .product-description img {
  max-width : 100%;
  height    : auto
}

/********************
	Part - Product availability
********************/
#product-availability {
  margin-top  : .625rem;
  display     : inline-block;
  font-weight : 700;
}

#product-availability .material-icons {
  line-height : inherit;
}

#product-availability .product-available {
  color : #4cbb6c;
}

#product-availability .product-last-items,
#product-availability .product-unavailable {
  color : #ff9a52;
}

/********************
	Part - Product details
********************/
#product-details .label {
  font-size   : 1rem;
  color       : var(--color-black-default);
  font-weight : 700
}

/********************
	Part - Product features
********************/
.product-features {
  margin-top  : 1.25rem;
  margin-left : .3125rem
}

.product-features > dl.data-sheet {
  display     : flex;
  flex-wrap   : wrap;
  align-items : stretch
}

.product-features > dl.data-sheet dd.value,
.product-features > dl.data-sheet dt.name {
  flex           : 1 0 40%;
  font-weight    : 400;
  background     : var(--color-grey-default);
  padding        : .625rem;
  margin-right   : .625rem;
  min-height     : 2.5rem;
  word-break     : normal;
  text-transform : capitalize;
  margin-bottom  : .5rem
}

.product-features > dl.data-sheet dd.value:nth-of-type(2n),
.product-features > dl.data-sheet dt.name:nth-of-type(2n) {
  background : #f6f6f6
}

/********************
	Part - Product variants
********************/
.product-variants > .product-variants-item {
  margin : 1.25rem 0
}

.product-variants > .product-variants-item select {
  background-color : #fff;
  width            : auto;
  padding-right    : 1.875rem;
  box-shadow       : 2px 2px 4px 0 rgba(0, 0, 0, .2)
}

.product-variants > .product-variants-item ul li {
  margin-right : .625rem
}

.product-variants > .product-variants-item .color {
  margin-left : 0;
  margin-top  : 0
}

/********************
	Part - Product prices
********************/
.product-prices {
  padding        : 0.75rem 0;
  display        : flex;
  flex-direction : column;
  align-items    : flex-start;
}

/********************
	Part - Product price
********************/

.product__main-infos .product-price__current-price {
  display     : inline-block;
  color       : var(--color-primary);
  font-size   : var(--font-size-1000);
  line-height : normal;
  font-weight : 700;
}

/********************
	Part - Product unit price
********************/
.product-unit-price {
  font-size     : .8125rem;
  margin-bottom : 0
}

/********************
	Part - Product discount
********************/

.product-discount .discount {
  background     : var(--color-secondary);
  color          : var(--color-white-default);
  font-weight    : 600;
  padding        : .3125rem .625rem;
  font-size      : var(--font-size-300);
  text-transform : uppercase;
  display        : inline-block
}

.product-discount .regular-price {
  text-decoration : line-through;
}

.product-discount .discount-percentage {
  position      : absolute;
  z-index       : 2;
  top           : 35px;
  right         : 15px;
  display       : flex;
  align-items   : center;
  border-radius : 50%;
  width         : 3em;
  height        : 3em;
}

.images-container .discount-percentage-container {
  position        : absolute;
  z-index         : 3;
  left            : 0;
  top             : 0;
  border-radius   : 10px 0 10px 0;
  background      : var(--color-primary);
  display         : flex;
  justify-content : center;
  align-items     : center;
  font-weight     : 600;
  color           : var(--color-white-default);
  padding         : 3px 7px;
  font-size       : 13px;
  min-width       : 2.5rem;
  max-width       : 4.5rem;
  height          : 3em;
}

/********************
	Part - Product thumb-mask (pack product)
********************/
.thumb-mask > .mask {
  position : relative;
  width    : 3.438rem;
  height   : 3.438rem;
  overflow : hidden;
  border   : 1px solid var(--color-grey-default);
  margin   : .625rem 0
}

.thumb-mask > .mask img {
  width  : 55px;
  height : 55px
}

/********************
	Part - Product block reassurance
********************/

#block-reassurance {
  margin-top : 1rem
}

#block-reassurance ul {
  display         : flex;
  flex-direction  : column;
  align-items     : center;
  justify-content : space-between;
}

#block-reassurance img {
  width        : 1.563rem;
  margin-right : .625rem
}

#block-reassurance li .block-reassurance-item {
  padding : 1rem 1.5rem
}

#product #block-reassurance span {
  font-weight : 700
}

/********************
Product more info
********************/

.product__more-infos ul.nav-tabs {
  display       : flex;
  border-bottom : none;
  margin-bottom : 1em;
}

.product__more-infos .nav-item .nav-link {
  transition : all 0.35s ease-in-out;
}

.product__more-infos .nav-item .nav-link:hover {
  color : var(--color-primary);
}

.product__more-infos .nav-item .nav-link.active {
  background    : var(--color-primary);
  color         : #fff;
  border        : 1px solid var(--color-primary);
  border-radius : 5px;
  transition    : all 0.35s ease-in-out;
}

.product__more-infos .nav-item .nav-link.active:hover {
  background : var(--color-primary-50);
  border     : 1px solid var(--color-primary-50);
}

.product__more-infos .nav-tabs .nav-link:focus,
.product__more-infos .nav-tabs .nav-link:hover {
  border-color : transparent;
}

.product__more-infos .tab-content {
  background    : #fff;
  box-shadow    : rgba(149, 157, 165, 0.2) 0 3px 27px;
  border-radius : 10px;
  padding       : calc(16px + (32 - 16) * ((100vw - 320px) / (1920 - 320)));
}

.product__thumbnails .swiper-slide {
  height : auto !important;
  width  : auto !important;
}

.images-container.thumb--is-on-left .product__thumbnails:not(.swiper) .swiper-wrapper {
  flex-direction : column;
}

.product-thumbnails-slider__btns {
  display         : flex;
  justify-content : center;
  align-items     : center;
}

.product-thumbnails-slider__btn {
  padding     : 5px;
  margin      : 5px;
  display     : flex;
  align-items : center;
}

.images-container:not(.thumb--is-on-left) .product-thumbnails-button-prev {
  transform : rotate(180deg);
}

.images-container.thumb--is-on-left .product-thumbnails-button-prev {
  transform : rotate(-90deg);
}

.images-container.thumb--is-on-left .product-thumbnails-button-next {
  transform : rotate(90deg);
}

.slider-imgs-product__wrapper {
  display         : flex;
  justify-content : center;
  align-items     : center;
  flex-direction  : column;
  position        : relative;
}

.images-container.thumb--is-on-left .product__thumbnails {
  max-height : 350px;
}

.images-container:not(.thumb--is-on-left) .product__thumbnails {
  padding : 0 2px;
}

.images-container .product__thumbnails {
  overflow : hidden;
}


/*********************
  Part - Product left column
 *********************/

.product__grid-left {
  border-radius : 10px;
  background    : #FFF;
  box-shadow    : 0 4px 20px 0 rgba(0, 0, 0, 0.06);
  width         : 77%;
}

.product__grid-left__top {
  display               : grid;
  grid-template-columns : 1.2fr 0.8fr;
  border-bottom         : 1px solid #DFE4ED;
}

.product__thumbnails .swiper-wrapper .swiper-slide:first-child .thumb {
  border-radius : 6px 6px 0 0;
}

.product__thumbnails .swiper-wrapper .swiper-slide:first-child .thumb.selected {
  border-radius : 6px 6px 0 0;
  border        : 1px solid #6C7FA3;

}

.product__thumbnails .swiper-wrapper .swiper-slide:last-child .thumb {
  border-radius : 0 0 6px 6px;
}

.product__thumbnails .swiper-wrapper .swiper-slide:last-child .thumb.selected {
  border-radius : 0 0 6px 6px;
  border        : 1px solid #6C7FA3;
}

.product__grid-left .product-flag {
  margin : 20px 20px 0 0;
}


.product__main-infos__wrapper {
  padding : 30px 40px;
}

.product__main-infos .h1 {
  font-size      : 25px;
  font-style     : normal;
  font-weight    : 700;
  line-height    : normal;
  letter-spacing : 0.5px;
  margin         : 0 0 10px 0;
}

.product__grid-left__top .product-price-and-shipping {
  border-radius  : 10px;
  background     : var(--color-grey-default);
  min-height     : 60px;
  display        : flex;
  align-items    : center;
  padding        : 10px 20px;
  gap            : 20px;
  flex-direction : row;
}

.product__grid-left__top .product-price_detail {
  padding-left : 15px;
  border-left  : 1px solid #D2D7E1;
}

.product__grid-left__top .regular-price {
  font-size       : var(--font-size-400);
  color           : var(--color-primary);
  font-weight     : 600;
  text-decoration : line-through;
  opacity         : 0.65;
}

.product__grid-left__top .js-product-availability {
  padding-bottom : 20px;
}

.product__grid-left__top .product__reassurance {
  display         : flex;
  padding         : 25px 0;
  justify-content : space-around;
}

.product__grid-left__top .product__reassurance-item {
  display        : flex;
  align-items    : center;
  gap            : 10px;
  align-items    : center;
  color          : var(--color-primary);
  font-size      : 15px;
  font-style     : normal;
  font-weight    : 600;
  line-height    : 16px;
  letter-spacing : 0.3px;
}

.product__grid-left__top .product__reassurance-item_separator {
  border-right : 1px solid #DFE4ED;
}

.product-description__title__text {
  color          : var(--color-secondary);
  font-size      : 20px;
  font-style     : normal;
  font-weight    : 700;
  line-height    : normal;
  letter-spacing : 0.4px;
  margin-bottom  : 20px;
}

.product-description__content {
  color          : #29496F;
  font-size      : 15px;
  font-style     : normal;
  font-weight    : 400;
  line-height    : 25px;
  letter-spacing : 0.3px;
}

.product__more-infos__wrapper .product-description > * {
  padding-bottom : 10px;
}

.product-description__container .product-manufacturer {
  text-align : left;
  width      : 90px;
}

.product-description__container .product-reference {
  margin-top     : 1em;
  display        : flex;
  flex-direction : column;
}

.product-description__container .product-reference label {
  text-align : left;
}

.product-description__container .product-features {
  margin : 1em 0 0;
}

.product-description__container .product-features .h6 {
  font-size     : 1rem;
  color         : var(--color-black-default);
  font-weight   : 700;
  margin-bottom : .5rem;
}

/*******************
  Part - Product associated / Product compatible
 *******************/

.product__grid-right .product-associated, .product__grid-right .product-compatible {
  background    : var(--color-white-default);
  border-radius : 10px;
  box-shadow    : 0 4px 20px 0 rgba(0, 0, 0, 0.06);
  padding       : 30px;
  border        : 1px solid var(--color-primary);
  width         : 99%;
  position      : relative;
}

.product__grid-right .product-compatible svg {
  color : var(--color-primary);
}

.product__grid-right .product-associated .h5 {
  color          : var(--color-primary);
  font-style     : normal;
  font-weight    : 700;
  padding-bottom : 20px;
  font-size      : 22px;
  line-height    : 24px;
  letter-spacing : 0.44px;
  display        : flex;
  gap            : 10px;
}

.product__grid-right .product-compatible .h5 {
  color          : var(--color-secondary);
  font-style     : normal;
  font-weight    : 700;
  padding-bottom : 20px;
  font-size      : 22px;
  line-height    : 24px;
  letter-spacing : 0.44px;
  display        : flex;
  align-items    : center;
  gap            : 10px;
}

.product__grid-right .thumbnail-container {
  padding : 0;
}

/*******************
  Part - Product accessories
 *******************/

.product__grid-right {
  width : 23%;
}

.product-accessories {
  padding : 60px 0;
}

.product-accessories .h5 {
  color          : var(--color-secondary);
  text-align     : center;
  font-size      : 28px;
  font-style     : normal;
  font-weight    : 700;
  line-height    : normal;
  text-transform : uppercase;
  padding-bottom : 40px;
}

.product-accessories .products {
  display       : flex;
  background    : var(--color-white-default);
  padding       : 20px 30px 35px;
  box-shadow    : 0 4px 20px 0 rgba(0, 0, 0, 0.06);
  border-radius : 10px;
}

.product-accessories .products__left {
  width         : 27%;
  padding-right : 30px;
}

.products__left-title {
  color          : var(--color-primary);
  font-size      : 22px;
  font-style     : normal;
  font-weight    : 700;
  text-align     : center;
  line-height    : normal;
  padding-bottom : 20px;
}

.products__left-slider {
  height : calc(100% - 47px);
}

.products__left-slider .product-miniature {
  height : 100%;
}

.product-accessories .products__right {
  position : relative;
  width    : 73%;
}

.products__right-title {
  color          : #637589;
  font-size      : 22px;
  font-style     : normal;
  font-weight    : 700;
  text-align     : center;
  line-height    : normal;
  padding-bottom : 20px;
}

.products__right-slider {
  position    : relative;
  width       : 100%;
  margin      : 0 auto;
  display     : flex;
  align-items : center;
  overflow    : hidden;
  height      : calc(100% - 47px);
}

.products__right-slider.active-pagination {
  border-radius : 10px;
  background    : #CBD5E0;
}

.products__right-slider.active-pagination .swiper-wrapper {
  overflow : initial;
}

.products__right .swiper-wrapper {
  width         : initial;
  border-radius : 10px;
  overflow      : hidden;
}

.products__right .swiper-slide {
  padding    : 5px;
  background : #CBD5E0;
}

.product-accessories .products__left .thumbnail-container {
  border-radius : 10px;
  border        : 6px solid var(--color-primary);
  box-shadow    : 0 7px 20px 0 rgba(0, 0, 0, 0.10);
}

.product-accessories .products__right .thumbnail-container {
  border-radius : 10px;
  box-shadow    : 0 7px 20px 0 rgba(0, 0, 0, 0.10);
}

.swiper-horizontal > .swiper-pagination-bullets, .swiper-pagination-bullets.swiper-pagination-horizontal {
  bottom : 15px;
}

/********************
Part - Product thumbs Images
********************/
.product__thumbnails:not(.product__thumbnails__slider) {
  align-self : flex-start;
}

/********************
Part - Product thumbs on left
********************/
.images-container.thumb--is-on-left {
  display               : grid;
  grid-template-columns : 0.3fr 1fr;
}

.images-container.thumb--is-on-left .product-cover,
.images-container.thumb--is-on-left .product__thumbnails {
  grid-row : 1;
}

.images-container.thumb--is-on-left .product-cover {
  grid-column : 2;
}

.product-information .add-to-cart {
  padding : 0.44em 0.93em;
}

/********************
Part - Product more infos
********************/
.product__more-infos__wrapper {
  padding : 40px 60px;
}

/********************
Part - Product block reassurance
********************/
#block-reassurance ul {
  flex-direction : row;
}

#block-reassurance li + li {
  border-left : 1px solid rgba(0, 0, 0, .25)
}

.swiper-pagination.--accessories {
  bottom : -25px;
  right  : 50%;
}

.swiper-pagination.--accessories .swiper-pagination-bullet {
  margin : 0 2px;
}

.product-accessories.container-secondary .product-miniature .product-thumbnail.--lazyload {
  padding-bottom : 80%;
}

.product-accessories__swiper-button-next {
  position : absolute;
  right    : -15px;
  top      : 50%;
  z-index  : 1;
}

.product-add-to-cart .js-cart-line-product-quantity {
  border-radius : 10px 0 0 10px !important;
}

.product-add-to-cart .bootstrap-touchspin-up {
  border-radius : 0 10px 0 0 !important;
}

.product-add-to-cart .bootstrap-touchspin-down {
  border-radius : 0 0 10px 0 !important;
}

.product-add-to-cart .bootstrap-touchspin input.form-control {
  height : 42px;
  width  : 2.5rem;
}

.product-add-to-cart .bootstrap-touchspin .input-group-btn-vertical > .btn {
  height  : 22px !important;
  padding : 7px 10px;
}

/*************************
  Part - Stock Alert
*************************/

.js-product-availability .product-availability_out-of-stock_order, .js-product-availability .product-availability__last-stock, .js-product-availability .product-availability__out-of-stock {
  display : none;
}

.product-availability_out-of-stock_order {
  flex-direction : column;
  gap            : 5px;
}

.material-icons.product-warning {
  color : var(--color-primary);
}

/*************************
  Part - Product recommended
*************************/

.product-recommended_container {
  display         : flex;
  align-items     : center;
  justify-content : center;
  flex-direction  : column;
  width           : 70px;
  border-radius   : 10px;
  background      : linear-gradient(269deg, #E56A54 -3.27%, #CC5A46 95.63%);
  padding         : 8px 10px;
  position        : absolute;
  top             : 0;
  margin          : 20px 0 0 20px;
  z-index         : 1;
}

.product-recommended_title {
  color          : #FFF;
  text-align     : center;
  font-size      : 12.5px;
  font-style     : normal;
  font-weight    : 700;
  line-height    : 13px;
  letter-spacing : 0.25px;
}
