:root {
  --bg-black: #0a0a0a;
  --bg-linear-black: linear-gradient(180deg, #0a0a0a 0%, #1a1a1a 100%) no-repeat
    center center / cover;
  --light-black: #232323;
  --color-notification: #e91e8c;
  --transition-filter-transform: filter 0.3s ease, transform 0.15s ease;
  --sm: 40rem;
  --md: 48rem;
  --lg: 64rem;
  --xl: 80rem;
  --2xl: 96rem;
}

* {
  box-sizing: border-box;
}

body,
.montserrat,
.h1,
.h2,
.h3,
.h4,
.h5,
.h6,
.products-section-title,
h1,
h2,
h3,
h4,
h5,
h6,
.footer__title {
  font-family: "Montserrat", sans-serif;
}

.product-information,
body,
.card.cart-container + a.label,
.product-container .h1,
.cart-summary-products,
#cart-summary-product-list .label,
#cart-summary-product-list .value {
  color: #fff !important;
}

/* HEADER */
#search_widget {
  input {
    padding-right: 0 !important;
  }
}

.block-social {
  float: none;
  margin-left: auto;

  ul {
    display: flex;
    align-items: center;
    gap: 10px;
    margin-bottom: 0;

    li {
      width: 32px;
      height: 32px;
      background-color: var(--color-notification);
      border-radius: 50%;
      background-size: 16px 16px;
      background-position: center;
      margin-right: 0;
      margin-bottom: 0;
    }
  }
}

#header {
  background: var(--bg-black);
  color: #fff;

  @media (max-width: 768px) {
    position: sticky;
    top: 0;
  }

  a:not(.dropdown-item),
  .dropdown,
  .expand-more {
    color: #fff;
  }

  .header-nav {
    border-color: var(--light-black);
    padding-top: 0.75rem;
    padding-bottom: 0.5rem;

    .right-nav {
      font-size: 12px;
    }

    #contact_link {
      display: flex;
      gap: 32px;
      font-size: 12px;

      @media (max-width: 768px) {
        & {
          font-size: 10px;
        }

        .material-icons {
          font-size: 20px;
        }

        #contact-shipping {
          margin-left: auto;
        }
      }
    }

    #contact-link,
    #contact-shipping {
      margin-bottom: 0 !important;
      display: flex;
      gap: 0.5rem;
    }
  }

  .header-top-right {
    display: grid;
    align-items: center;
    gap: 15px;
    grid-template-columns: 1fr max-content max-content max-content;

    @media (max-width: 768px) {
      display: flex;
      justify-content: end;
      width: 33.33%;

      .block-social {
        display: none;
      }
    }
  }

  .header-top {
    padding: 1rem 0 0;

    @media (max-width: 768px) {
      padding: 0.5rem 0;
    }

    a[data-depth="0"] {
      color: #fff;
      filter: brightness(0.8);
    }
  }

  #_desktop_logo {
    @media (max-width: 768px) {
      margin: 0 auto;
    }
  }
}

:not(#header.is-open) .mobile {
  display: none;
}

#header.is-open .mobile {
  display: flex;
  justify-content: stretch;

  #_mobile_top_menu {
    float: none !important;
    display: flex;
    flex-basis: 100%;
    justify-content: stretch;

    .top-menu {
      display: flex;
      flex-direction: column;
      flex-basis: 100%;

      li {
        .float-xs-right {
          display: none;
        }

        a {
          font-size: 14px;
          padding: 0.3rem 1rem;
        }
      }
    }
  }
}

#_desktop_language_selector,
#_desktop_currency_selector {
  @media (max-width: 768px) {
    display: none;
  }

  .language-selector,
  .currency-selector {
    margin-top: 0 !important;
  }
}

#_desktop_user_info .user-info a {
  display: flex;
  gap: 8px;
  align-items: center;
}

#_desktop_cart {
  a {
    position: relative;
  }

  .hidden {
    display: none;
  }

  .cart-products-count {
    position: absolute;
    top: -8px;
    right: -8px;
    background-color: var(--color-notification);
    color: #fff;
    border-radius: 50%;
    font-size: 12px;
    font-weight: bold;
    width: 20px;
    height: auto;
    aspect-ratio: 1 / 1;
    display: flex;
    align-items: center;
    justify-content: center;
    font-size: 10px;
  }
}

#_desktop_top_menu {
  padding: 16px 0 0;

  li {
    position: relative;
  }

  .top-menu .sub-menu,
  .top-menu .sub-menu.collapse {
    top: auto !important;
    bottom: 0;
    left: -10px;
    transform: translateY(100%);
    width: max-content;
  }
}

.popover {
  background: linear-gradient(to right, #fff, #fffd);
}

.sub-menu > .top-menu {
  display: flex;
  flex-direction: column;
  padding: 0.5rem;

  li {
    margin: 0 !important;

    a {
      padding: 0.5rem;
    }
  }
}

/* HOME MAIN */
body.page-index {
  #wrapper {
    padding-top: 0;

    .container {
      width: calc(100% - 30px);
      padding: 0;
    }
  }

  #carousel {
    --wrapper-bg: var(--bg-linear-black);
    margin-bottom: 0;
    /* padding: 1.5rem 0; */
    width: 100%;
    height: auto;
    min-height: 244px;
    aspect-ratio: 22 / 7;

    /* @media (width <= 1024px) {
      height: 420px;
    } */

    /* @media (width <= 768px) {
      height: 274px;
    } */

    /* @media (width <= 640px) {
      min-height: 244px;
    } */

    .carousel-inner {
      height: 100%;
      margin-bottom: 0;

      .carousel-item {
        .slide-img {
          height: 100%;
          width: 100%;
          background-size: contain;
          background-position: center;
          background-repeat: no-repeat;
        }

        a {
          display: block;
          height: 100%;
        }

        figure {
          height: 100%;
          width: 100%;
        }
      }
    }

    @media (max-width: 991px) {
      margin-left: 0;
      left: 0;
    }
  }

  #block-reassurance {
    --wrapper-bg: var(--bg-black);
    padding: 48px 0;
    color: var(--color-notification);

    p {
      color: inherit;
      filter: brightness(1.2);
      font-size: small;
    }

    ul {
      display: grid;
      grid-template-columns: repeat(4, minmax(0, 1fr));
      gap: 32px;
      margin-bottom: 0;

      @media (max-width: 768px) {
        grid-template-columns: repeat(2, minmax(0, 1fr));
      }

      li {
        border-bottom: 0;

        article {
          justify-self: stretch;
          padding: 0 10px;
          display: flex;
          flex-direction: column;
          align-items: center;
          gap: 12px;
          text-align: center;

          h6,
          p {
            margin: 0;

            @media (max-width: 512px) {
              font-size: small;
            }
          }
        }

        .block-reassurance-item-image-wrapper {
          width: 64px;
          aspect-ratio: 1 / 1;
          border-radius: 50%;
          background-color: var(--color-notification);
          display: flex;
          justify-content: center;
          align-items: center;

          @media (max-width: 768px) {
            width: 48px;
            aspect-ratio: 1 / 1;
          }

          img {
            width: 60%;
            height: auto;
            margin-right: 0;
          }
        }
      }
    }
  }

  .block-categories {
    --wrapper-bg: var(--bg-black);
    margin-bottom: 0;

    .category-top-menu {
      & > li:first-child {
        display: none;
      }
    }

    .category-sub-menu {
      display: grid;
      flex-wrap: wrap;
      justify-content: space-evenly;
      align-items: stretch;
      gap: 16px;
      grid-template-columns: repeat(4, minmax(175px, 1fr));

      @media (max-width: 768px) {
        grid-template-columns: repeat(2, minmax(175px, 1fr));
      }

      @media (max-width: 420px) {
        grid-template-columns: repeat(1, minmax(175px, 1fr));
      }

      li {
        display: flex;
        align-items: center;
        justify-content: center;

        a {
          position: relative;
          max-height: 175px;
          text-align: center;
          aspect-ratio: 1 / 1;
          color: #fff;
          font-size: 20px;
          font-weight: 600;
          display: flex;
          flex-direction: column;
          align-items: center;
          justify-content: center;
          background-color: var(--color-notification);
          border-radius: 15px;
          transition:
            transform 0.3s ease,
            filter 0.3s ease;

          &::before {
            content: "";
            position: absolute;
            top: 0;
            left: 0;
            right: 0;
            bottom: 0;
            background-image: var(--category-bg, none);
            background-position: center;
            background-size: 135px;
            background-repeat: no-repeat;
            opacity: 0.2;
          }

          &:hover {
            filter: brightness(0.8);
            transform: translateY(-2px);
          }

          @media (max-width: 768px) {
            font-size: 16px;
          }
        }

        .navbar-toggler {
          display: none;
        }
      }
    }
  }

  .featured-products {
    --wrapper-bg: var(--bg-linear-black);
    padding: 48px 0;

    h2 {
      color: #fff;
      font-size: 42px;
      font-weight: 600;
      margin-top: 0;

      @media (max-width: 420px) {
        font-size: 28px;
      }
    }

    .all-product-link {
      border-radius: 30px;
      padding: 16px 24px 16px 32px;
      margin: 0 auto;
      text-align: center;
      background-color: var(--color-notification);
      color: #fff;
      display: flex;
      width: max-content;
      align-items: center;

      @media (max-width: 40rem) {
        font-size: 16px;
        padding: 10px 18px 10px 22px;
      }

      @media (max-width: 22rem) {
        font-size: 14px;
        padding: 8px 8px 8px 16px;
      }
    }

    &.mt-3 {
      margin-top: 0 !important;
    }

    .products {
      margin-bottom: 32px;
    }
  }

  .show-stores {
    --wrapper-bg: var(--bg-black);
    color: #fff;
    padding: 48px 16px;

    h3 {
      font-size: 42px;
      font-weight: 600;
      text-align: center;
    }

    .store {
      display: flex;
      gap: 24px;
      align-items: center;
      margin-bottom: 1rem;

      @media (max-width: 768px) {
        flex-direction: column-reverse;
      }

      .material-icons {
        display: flex;
        align-items: center;
        justify-content: center;
        flex: none;
        width: 48px;
        height: 48px;
        font-size: 24px;
        border-radius: 50%;
        background-color: var(--color-notification);
      }

      .store-image {
        margin: 0 auto;
        flex-basis: 50%;
        justify-content: center;
        align-items: center;
        align-self: stretch;
        display: flex;
        margin-bottom: 1rem;

        .homeslider-container {
          margin-bottom: 0;

          .homeslider_nav {
            top: 50%;
            transform: translateY(-50%);
            margin-top: 0;
          }
        }

        img {
          max-height: 400px;
          width: auto;
          max-width: 100%;
          border-radius: 30px;
          margin: auto;
        }

        .caption {
          display: inline-flex;
          flex-direction: column;
          justify-content: center;
          align-items: center;
          gap: 0.5rem;

          * {
            margin-bottom: 0;
          }
        }
      }

      .store-info {
        p {
          color: #ffffffcc;
        }

        & > p {
          margin-bottom: 24px;
        }

        address {
          display: flex;
          flex-direction: column;
          gap: 8px;

          & > [class*="store-"] {
            display: flex;
            gap: 24px;

            h4 {
              font-size: 24px;
              font-weight: 600;
            }
          }

          .btn-tendres {
            @media (max-width: 768px) {
              align-self: center;
            }
          }
        }
      }
    }
  }

  #content-wrapper {
    margin-bottom: -25px;
  }

  #carousel,
  #block-reassurance,
  .block-categories,
  .featured-products,
  .show-stores {
    position: relative;
    margin-top: 0;
    z-index: 1;

    &::before {
      content: "";
      position: absolute;
      top: 0;
      left: -15px;
      right: -15px;
      bottom: 0;
      background: var(--wrapper-bg, var(--bg-linear-black, #000));
      z-index: -1;
    }
  }
}

/* ALL */

#product-comments-list-header {
  color: #fff;
}

.product-features > dl.data-sheet dt.name,
.product-features > dl.data-sheet dd.value {
  color: var(--bg-black);
}

.blockreassurance_product {
  display: flex;
  flex-direction: column;
  gap: 0.5rem;

  .block-title,
  p {
    filter: invert() !important;
  }

  & > div {
    display: grid;
    gap: 0.25rem 0.5rem;
    grid-template-areas:
      "a b"
      "a c";
    grid-template-columns: auto 1fr;
    grid-template-rows: repeat(2, 1fr);
    align-items: center;

    & > :first-child {
      grid-area: a;

      svg {
        margin-left: 3px;
      }

      & + * {
        grid-area: b;
        align-self: end;

        & + * {
          grid-area: c;
          margin-bottom: 0;
          align-self: start;
        }
      }
    }
  }

  .item-product {
    width: 64px;
    height: 64px;
    border-radius: 50%;
    background-color: var(--color-notification);
    display: flex;
    justify-content: center;
    align-items: center;
    margin: 0;
    padding: 0;
    float: none;

    svg path {
      fill: none !important;
    }
  }
}

#wrapper {
  background-color: var(--bg-black);

  .breadcrumb li {
    a,
    &:last-child {
      color: #fff;
    }

    &:last-child {
      filter: brightness(0.8);
    }
  }

  .page-content.page-cms ul,
  .pagination,
  .sort-by,
  p {
    color: #fff;
    filter: brightness(0.8);
  }

  @media (max-width: 767px) {
    .card:has(.cart-overview),
    .cart-summary-line *,
    .cart-grid-body .card-block {
      color: #fff;
    }

    .product-line-grid {
      background-color: #f5f5f5;
      padding: 1rem;
      border-radius: 0.5rem;
    }
  }

  .card-block.checkout .btn-primary {
    padding: 8px 12px;
    background-color: var(--color-notification);
    color: #fff;
    border: none;
    border-radius: 4px;
    font-size: 14px;
    cursor: pointer;
    transition: var(--transition-filter-transform);

    &:hover,
    &:focus {
      color: #fff;
      text-decoration: none;
      filter: brightness(0.9);
      transform: translateY(-2px);
    }
  }
}

.block-categories,
#search_filters,
.product-comment-list-item,
.tabs,
.card,
#content {
  border-radius: 0.5rem;
  color: rgb(35, 35, 35);

  p,
  .h1 {
    color: inherit !important;
  }
}

#checkout-personal-information-step {
  border-top-left-radius: 0.5rem;
  border-top-right-radius: 0.5rem;
}

#checkout-payment-step {
  border-bottom-left-radius: 0.5rem;
  border-bottom-right-radius: 0.5rem;
}

.btn-tendres,
.btn-primary {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  border-radius: 30px;
  padding: 16px 32px;
  width: max-content;
  background: var(--color-notification);
  color: #fff;
  transition: var(--transition-filter-transform);

  &[disabled="disabled"] {
    filter: grayscale();
  }

  &.btn-tendres {
    display: flex;
  }

  &.hover {
    &:hover,
    &:focus {
      color: #fff;
      text-decoration: none;
      filter: brightness(0.9);
      transform: translateY(-2px);
    }
  }
}

#footer {
  background-color: var(--bg-black);
  padding: 2.5rem 1rem 0;

  #block_myaccount_infos .myaccount-title a,
  .links .h3,
  .links a,
  #copyright a,
  .block-contact,
  .block-contact p {
    color: #fff;
  }

  .links a,
  #copyright a {
    filter: brightness(0.8);
  }

  @media (width < 768px) {
    #block_myaccount_infos {
      display: none;
    }

    .links {
      margin-top: 1rem;

      ul {
        background-color: inherit;

        & > li {
          border-bottom: 0;
          padding: 0.25rem;
        }
      }
    }
  }

  #copyright {
    margin-top: 3rem;
    font-size: small;
  }
}

#blockEmailSubscription_displayFooterBefore {
  display: none;
}

.block-contact {
  header {
    display: flex;
    align-items: start;
    gap: 12px;
  }

  .contact-content,
  .payment-methods h4 {
    font-size: small;
    filter: brightness(0.8);
  }

  .material-icons {
    display: flex;
    align-items: center;
    justify-content: center;
    width: 48px;
    height: 48px;
    font-size: 24px;
    border-radius: 50%;
    background-color: var(--color-notification);
    color: #fff;
    flex: none;
  }

  .payment-methods {
    margin-top: 16px;

    h4 {
      font-weight: 400;
      font-style: normal;
    }

    ul {
      display: grid;
      grid-template-columns: repeat(4, 1fr);
      gap: 8px;

      li {
        background-color: var(--light-black);
        color: #fff;
        text-align: center;
        font-size: 10px;
        padding: 0.25rem 0.5rem;
        border-radius: 4px;

        &:hover {
          filter: brightness(0.9);
        }
      }
    }
  }
}

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

  .products-section-title {
    margin: 0 0 32px;
  }

  .thumbnail-container {
    display: flex;
    flex-direction: column;
    justify-content: stretch;
    border-radius: 15px;
    background: transparent;
    max-width: 250px;

    thumbnail-top {
      flex: none;
    }

    .product-description {
      flex: 1;
      padding: 0.5rem;
      max-width: 100%;

      .product-title {
        /* text-align: justify; */
        text-overflow: ellipsis;
        overflow: hidden;
        white-space: nowrap;

        a {
          color: var(--bg-black);
          font-size: 20px;
          font-weight: 600;
        }
      }

      .product-add-to-cart {
        form {
          display: flex;
          gap: 8px;
          align-items: center;
          margin-top: 6px;

          input[type="number"] {
            width: 45px;
            padding: 6px 8px;
            border: 1px solid #ccc;
            border-radius: 4px;
            font-size: 16px;
            text-align: center;
          }

          button {
            flex-grow: 1;
            padding: 8px 12px;
            background-color: var(--color-notification);
            color: #fff;
            border: none;
            border-radius: 4px;
            font-size: 14px;
            cursor: pointer;
            transition: var(--transition-filter-transform);

            @media (width <= 305px) {
              font-size: 12px;
            }

            &:hover {
              filter: brightness(0.9);
              transform: translateY(-2px);
            }
          }
        }
      }
    }
  }
}

#js-product-list-header,
#subcategories {
  display: none;
}

.product-add-to-cart {
  .product-quantity {
    display: flex;
    gap: 8px;
    align-items: center;
    margin-top: 6px;

    .add,
    .qty,
    .wishlist-button-product {
      margin: 0;
    }

    .bootstrap-touchspin {
      display: flex;
    }

    input[type="number"] {
      width: 45px;
      padding: 6px 8px;
      border: 1px solid #ccc;
      border-radius: 4px;
      font-size: 16px;
      text-align: center;
    }

    button.add-to-cart {
      flex-grow: 1;
      padding: 8px 12px;
      background-color: var(--color-notification);
      color: #fff;
      border: none;
      border-radius: 4px;
      font-size: 16px;
      cursor: pointer;
      transition: var(--transition-filter-transform);

      @media (max-width: 22rem) {
        font-size: 12px;
      }

      &:hover {
        filter: brightness(0.9);
        transform: translateY(-2px);
      }
    }
  }
}

body:not(.page-index) {
  .product .product-add-to-cart button {
    @media (width <= 991px) {
      font-size: 11px !important;
    }
  }
}

.price {
  color: var(--color-notification);
}

body#checkout #footer {
  background-color: var(--bg-black);
}

#order-confirmation #content-wrapper {
  background-color: #fff;
  color: #0a0a0a;
  padding: 1rem;
  border-radius: 0.5rem;
}

@media (max-width: 768px) {
  .cart-content-btn {
    display: flex !important;
    flex-direction: column;
    gap: 8px;

    .btn {
      padding: 12px 16px;
      font-size: 14px;
      width: 100%;
      max-width: 100%;
      margin-right: 0 !important;
      margin-bottom: 0 !important;
    }
  }
}
