/* Tricosa custom stylesheet */


*{
  /*! pointer-events: none !important; */
}


/* ===============
   Fonts
   =============== */

@font-face {
  font-family: "Abril FatFace";
  src: url(../fonts/abril-fatface-latin-400-normal.woff2);
}


/* ===============
   Variables
   =============== */
:root {
  --color1: #009bb4;
  --color2: #3db2c4;
  --accent: #056a79;
  --accent2: #00899e;

  --header-block-spacing-x: 0.75rem;
  --header-block-spacing-y: 0.375rem;
}

:root,
[data-bs-theme=light] {
  --bs-primary: var(--color1);
  --bs-secondary: var(--color2);
  --bs-success: #198754;
  --bs-info: #0dcaf0;
  --bs-warning: #ffc107;
  --bs-danger: #dc3545;
  --bs-light: #f8f9fa;
  --bs-dark: #212529;
}

.header {
  --header-bg: #fff;
  --header-top-bg: #fff;
  --header-color: #fff;
  --header-top-color: #fff;
}
.btn-primary {
  --bs-btn-bg:#009bb4;
  --bs-btn-border-color:#009bb4;
  --bs-btn-hover-bg:#056a79;
  --bs-btn-hover-border-color:#056a79;
  --bs-btn-disabled-bg:#b4b4b4;
}

.btn-outline-primary {
  --bs-btn-color:#009bb4;
  --bs-btn-border-color:#009bb4;
  --bs-btn-hover-bg:#056a79;
  --bs-btn-hover-border-color:#056a79;
  --bs-btn-active-bg:#009bb4;
  --bs-btn-active-border-color:#009bb4;
  --bs-btn-disabled-color:#b4b4b4;
  --bs-btn-disabled-border-color:#b4b4b4;
}
/* ===============
   Base styles
   =============== */

::selection{
  background:slategray;
  color:#fff;
}

main {
  min-height: 80vh;
}

.new-products.mt-3 {
  margin-bottom: 60px;
}

#custom-text {
  padding: 80px 0;
}

h1{
  font-family: Abril Fatface;
  color:var(--color1) !important;
}

.breadcrumb {
  justify-content: right;
}

#wrapper {
  background-image: url("../images/decoration/bg.jpg");
  background-repeat: no-repeat;
  background-size: 100%;
}

.material-icons.search.js-search-icon {
  margin-top: 4px;
}
.material-icons.header-block__icon {
  color: #fff;
  font-size: 18px;
}

.badge.out_of_stock {
  background: tomato;
}

.badge.on-sale {
  background-color: salmon;
}

section.special-products {
  margin-bottom: 40px;
}


/* ===============
   Header / Navigation
   =============== */
#header {
  background-color: var(--color1);
  color: #fff !important;
  text-transform: uppercase;
}

.header-top {
  background-color: inherit;
  background-image: linear-gradient(90deg, transparent, rgba(0, 0, 0, 0.2));
  border-bottom: none;
  height: 40px;


  .user-info,
  .blockcart {
    height: 100%;
  }
}

.header-top a {
  font-size: 12px;
  font-weight: normal;
}

.header-top .container-md {
  height: 100%;
  place-content: center;
}

.header-bottom {
  border-bottom: none;
  font-family: "Abril FatFace", Helevetica, sans-serif;
}

nav a:hover {
  color: unset !important;
  /*! background: #666; */
}

#search_widget form input {
  background: #fff;
  font-size: 14px;
  padding: 6px 10px 6px 30px;
  letter-spacing: 1px;
  font-family: sans-serif;
  border: 2px solid transparent;
}

#search_widget form input:focus {
  outline-offset: 0px;
  outline: var(--accent) 2px solid;
}

#search_widget form i {
  color: var(--color1);
  padding: 6px;
  font-size: 20px;
}

#_desktop_language_selector select,
#_desktop_currency_selector select {
  font-size: 14px !important;
  padding: 0px 20px 0px 12px;
  border-radius: 2px;
}

.header-top-desktop {
  padding: 0;
  height: 100%;
}

#_desktop_user_info {
  /*! background-color: var(--accent); */
}

.dropdown-menu.show {
  display:block;
  background-color: var(--accent);
}

.header a:not(.dropdown-item):not(.btn):hover,
.header a:not(.dropdown-item):not(.btn):hover i {
  color:var(--accent)
}

.dropdown-item {
  color: #fff;
  font-size: 14px;
  font-weight: normal;
  font-family: Inter, sans-serif;
}
.payment__list {
  img{
    width: 200px !important;;
  }
}

#_desktop_user_info,
#_desktop_cart,
#_desktop_contact_link {

  height: 100%;

  
  :hover {
  background-color: var(--accent);
  }

  a {
    border-radius: 0;

  }
}

#contact-link {
  height: 100%;

  a {

    height: 100%;
    place-content: center;

    padding: var(--header-block-spacing-y) var(--header-block-spacing-x);
    display: block;
  }
}

.header-top__left.col-md-5 a {
  height: 100%;
  display: flex;
  flex-direction: column;
  justify-content: center;
  padding: 10px;
  &:hover{
    background:var(--accent);;
  }
}

.main-menu {
  justify-content: right;
}

.header-bottom__row > .logo {
  margin-top: -10px;
}

.navbar-brand {
  position: relative;
  width: 180px;
  height: 100%;

  max-height: unset !important;

  .logo {
    position: absolute;
    width: 100% !important;
    max-height: unset !important;
    bottom: -61px;
    opacity: 1;
    transition: 0.3s;
  }
  

  &::after {
    content: "";
    position: absolute;
    inset: 0;
    background-image: url(https://tricosa.ch/img/logo-1766136961.png);
    background-size: cover;
    opacity: 0;
    transition: 0.3s 0.1s;
  }
  
}

body.scrolled{
  .navbar-brand{
    
    .logo{
/*       opacity: 0; */
      transition: 0.5s 0.2s;
    }
    
    &::after {
      content: "";
/*       opacity: 1; */
    }
  }
}

.header-bottom__h1 {
  height: 100%;
}


#top-menu>li {

  position: relative;
  font-size: 18px;
  letter-spacing: 1px;

  >a {
    padding: 1.25rem 0.8rem;
  }

  &:hover {
    >a{
      color: #fff !important;
      background: var(--accent);
    }
  }
  
  .js-sub-menu{
    a{
      width: 100%;
      padding-right: 20px;
    }
  }

}
.main-menu__mobile .menu a,
.main-menu__mobile .menu li:not(.h5) {
  color:#fff;
}

.js-sub-menu {
  background-color: var(--accent2) !important;

  top: 100% !important;
  left: auto !important;
  padding: 0 !important;

  bottom: auto !important;

  a {
    color: #fff !important;
  }

  .container {

    width: 300px;
    padding: 0px;

    ul {
      display: block !important;

      margin: 0;

      a {
        padding: 10px 30px;
      }

    }
  }

  li {
    width: 100%;
    text-align: right;
    margin: 0;
    padding: 0;
    border-top: 1px solid var(--color2);

    a {
      font-weight: normal !important;
    }
  }

}

#_desktop_cart{
  
.header-block__badge {
    color: var(--accent);
    &:hover{
        color: #fff;
        background-color: var(--color1);
    }
  }
  
}
.product-miniature__brand {
  display: block;
  font-size: 0.75rem;
  font-weight: 600;
  text-transform: uppercase;
  letter-spacing: 0.05em;
  color: #666;
  text-decoration: none;
  margin-bottom: 0.25rem;
}

.product-miniature__brand:hover {
  color: #000;
  text-decoration: underline;
}
/* ===============
   Footer
   =============== */

.footer .copyright {
  font-size: 12px;
  position: absolute;
  background: var(--color1);
  padding: 30px;
  width: 100vw;
  left: 0;
  border-top: 1px solid #fff;
}

.footer__main {
  padding: 0 !important;
  background: var(--color2) !important;
  color:#fff;
  
  .container{
    padding: 0 !important;
  }
}

.email-subscription {
  flex: 2;
  background: none;
}

.block-social {
  flex: 0 100px;
  padding: 0 !important;
  a{
    font-size: 30px !important;
    color: #fff !important;
    svg{
      
  vertical-align: unset;
    }
  }
}

.footer__main__top.row {
  display: flex !important;
}

.footer-links {
  flex: 2;
  display: flex;
  a{
    display: flex;
    place-content: center;
    display: block;
    margin-right: 14px;
    color: #fff;
  }
  a:hover{
    text-decoration: underline;
  }
}
#block-newsletter-label-displayFooterBefore {
  display: none;
}
.email-subscription__content__left.col-md-5 {
  display: none;
}
.email-subscription__content__right.col-md-7 {
  flex: 1;
}
.brands-carousel{position:relative;overflow:hidden;max-width:100%;/*! height:80px; */display:block;flex: 1;}
.brands-carousel .brand-item{position:absolute;top:0;left:50%;transform:translateX(-50%);opacity:0;transition:opacity .8s ease-in-out;display:flex;align-items:center;justify-content:center;width:100%;height:100%}
.brands-carousel .brand-item.is-visible{opacity:1;z-index:2}
.brands-carousel .brand-item img{max-height:70px;max-width:100%;object-fit:contain;display:block}

.email-subscription .email-subscription__content__infos p{
  font-size: 14px;
}
.email-subscription  .btn.btn-primary {
  background: var(--color1);
  border: none;
}

.email-subscription  .btn.btn-primary:hover{
  background: var(--accent);
}
footer .form-control{
  color:#000 !important;;
}



/* ===============
   Banner
   =============== */

.banner > .wrap {

   transition:0.3s;

  &:hover{
    transform:scale(1.025);
    box-shadow: 0 0 20px #888;
  }
}

#content {
  max-width: 1200px;
  margin: auto;
}
.banner {
  height: 400px;
  margin-bottom: 40px;
}
.banner .wrap {
  height: 100%;
  position: relative;
  background-size: cover;
}
.banner h2 {
    font-family: Abril FatFace;
    font-weight: normal;
    position: absolute;
    color: #fff;
    line-height: 60px;
    font-size: 40px;
}
.banner.main h2 {
    text-align: left;
    top: 20%;
    left: 10%;
    color: var(--color2);
}

.categories-blocs {
  display: flex;
  margin-left: -40px;
  flex-wrap: wrap;
}
.category-bloc {
  flex: 1;
  margin-left: 40px;
  height: 300px;
}
.two-grid .category-bloc {
  height: 260px;
  min-width: 40%;
}
.banner.category-bloc h2 {
  top: 50%;
  left: 50%;
  transform: translate(-50%,-50%);
  text-shadow: 2px 2px 4px #000;
  z-index: 1;
}
.category-bloc.banner .wrap {
  position: relative;
  
  &::after {
    content:"";
    position: absolute;
    inset: 0;
    background:var(--color2);
    opacity: 0;
    transition: 0.3s;
  }
  
  &:hover{
    &::after{
      opacity:0.4;
    }
  }
  
}


/* ===============
   Image Blocks
   =============== */
.tricosa-imgblock {
    margin: 0 0 40px 0;
    position: relative;
  
  h2,h3,h4{
    color:var(--color1);
    font-family: Abril Fatface;
  }
  p{
    font-size: 18px;
  }
  
  
  &.background .wrap{
    padding: 60px 120px;
  }

    &.banner {
        width: 100%;
        /*! min-height: 400px; */
        cursor:pointer;
        height: auto;
        h2{
          top: 0;
          left: 0;
          position: relative;
        }
    }

    .wrap {
        display: flex;
        align-items: center;
        min-height: 400px;
        background-size: cover;
        background-position: center;
        background-repeat: no-repeat;

        color: initial;
            &.img-left {
            flex-direction: row;
        }

        &.img-right {
            flex-direction: row-reverse;
        }

        &.img-center {
            flex-direction: column;
            text-align: center;
        }
}

    .tricosa-imgblock-image-wrapper {
        flex: 1;
        padding: 0;
        max-width: 50%;
        /*! margin-right: 40px; */
            img{
          max-width: 100%;
        }
}

    .tricosa-imgblock-text {
        flex: 1;
        padding: 10px 10px 10px 40px;
        font-size: 16px;
        line-height: 1.5;
    }
}



/* ===============
   Page Category
   =============== */

.block-category {
  margin-bottom: 40px;
}
.block-category.banner {
  height: 300px;
  background-size: cover;
  margin-bottom: 40px;
  background-position: center;
  background-repeat: no-repeat;
}
.block-category.banner h1 {
  background-color: #fff !important;
  display: inline-block;
  padding: 10px;
  margin-bottom: 0 !important;
}


.subcategory {
  border-width: 2px;
  border-color: var(--color2);
  padding: 8px 14px;
  
  background: var(--color2);
  &:hover {
    background: #fff;
    
      .subcategory__name{
        color: var(--accent2);
      }
}
  
  .subcategory__image {
    display: none;
  }
  
  .subcategory__name {
    margin: 0;
    font-size: 18px;
    color: #fff;
  }
}

.product-miniature .product-miniature__title {
  color: var(--accent2);
}


#category-description {
  background: var(--color2);
  display: inline-block;
  padding: 10px;
  p{
    margin: 0;
    color: #fff;
  }
}

/* ===============
   Page Brands
   =============== */

#manufacturer .container {
  
  ul.row{
    background: none !important;
    justify-content: center;
  }
  
  .brand.card{
    max-width: 200px;

    .wrap a{
      padding:10px;
      display: flex;
      flex-direction: column;

      span{
        font-size: 20px;
        color: initial;
        min-height: 60px;
        margin-top: 10px;
        transition:0.3s;
      }
      
      &:hover{
        img{ filter: invert(1) hue-rotate(-184deg) saturate(2) }
        span{color:var(--color1);}
      }
    }
  }
}


.blockreassurance_product{
  .block-title{
    font-weight: bold;
  }
  p{
    padding-left: 40px;
  }
}



.cart-voucher.js-cart-voucher {
  display: none;
}

/* ==============================================================================================
   Tablet screen
   ============================================================================================== */
@media (max-width:1300px){
  

#top-menu>li {

  position: relative;
  font-size: 14px;
  letter-spacing: 1px;

  >a {
    padding: 1.25rem 0.8rem;
  }

  &:hover {
    >a{
      color: #fff !important;
      background: var(--accent);
    }
  }
  
  .js-sub-menu{
    a{
      width: 100%;
      padding-right: 20px;
    }
  }

}
  
  .brands-carousel{height:60px}.brands-carousel .brand-item img{max-height:50px}

  .header-block__badge {
    background: var(--color2);
    pointer-events: none;
  }

  .navbar-brand {
    width: 130px;
    .logo {
      bottom: -44px;
    }
  }
  
  #mobileMenu {
    background-color: var(--color1);


    padding: 0;
    box-sizing: border-box;
    .btn-close.text-reset {
      background: no-repeat;

      &::after{
        content:"x";
        font-family: monospace;
        font-size:32px;
        color:#fff;
        line-height: 0;
      }
    }

    .link, .category{
      font-size:22px;
      margin-bottom: 10px;
    }
    
    .main-menu__additionnals.offcanvas-body {
      background: var(--accent);
    }

    .main-menu__selects.row .col-auto{
      flex: 1;
    }
    #contact-link a {
      text-align: center;
    }
    
    
    .main-menu__title{
      color:#fff;
      margin-bottom:30px;
    }
    
    .main-menu__back-button *{
      color:#fff;
    }
  }
}

/* ==============================================================================================
   Mobile screen
   ============================================================================================== */
@media (max-width:576px){

  .header-top {
    display: none;
  }
  .header-bottom {
    height: 60px;
    .container-md.header-bottom__container {
      height: 100%;
      .row.gx-2.align-items-stretch.header-bottom__row {
        height: 100%;
      }
    }
  }
  
  .brands-carousel{height:60px}.brands-carousel .brand-item img{max-height:50px}

  .header-block__badge {
    background: var(--color2);
    pointer-events: none;
  }
  .dropdown-item{
    color:#fff;
  }
  .navbar-brand {
    width: 130px;
    .logo {
      bottom: -44px;
    }
  }
  
  #wrapper .container {
    padding-top: 60px;
  }
  
  
  body {
    padding-right: 0 !important;
  }
  
  #footer {
      .row {
        margin-right: 0 !important;
        margin-left: 0 !important;
      }
    .footer__main__top.row {
      flex-direction: column;
    }
    
    .footer-links {
      flex-direction: column;

      padding-top: 20px;
      a{
        display: block;
        text-align: center;
        padding: 10px 0;
        margin-right: 0;
      }

    }

      .email-subscription__content__inputs.inline-items {
        flex-direction: column;
      }
      .email-subscription {
        padding: 20px 40px !important;
      }
    
    form{
      input{
        margin-right: 0;
      }
      .btn {
        width: 100%;
        margin-top: 10px;
      }
    }
  }

  .category-bloc {
    flex: 100%;
    margin-bottom: 30px;
  }
  
  .tricosa-imgblock{

    .wrap.img-left {
      display: flex;
      flex-direction: column;
    }

    .tricosa-imgblock-image-wrapper {
      max-width: unset;
    }
    .tricosa-imgblock-text{
      padding: 30px 30px;
    }

  } 
  
  .page-footer {
    display: none;
  }
  #content-wrapper {
    padding-bottom: 30px;
  }

  .breadcrumb__wrapper {
    display: none;
  }
  
  h1 {
    font-size: 2rem !important;
  }
  h2 {
    word-break: break-word;
  }
  .banner.main h2{
    font-size: 32px;
    line-height: 50px;
  }
  .banner .wrap{
    background-position: center;  
  }
  .product-miniature{

    .product-miniature__infos__bottom {
      flex: 2;
    }
    .product-miniature__infos__top {
      flex: 0;
      min-height: 52px;
    }
    .quantity-button.js-quantity-button.w-100.w-sm-auto {
      display: none;
    }
     .btn.btn-outline-primary.mt-3 {
      width: 100%;
    }

  }
  
  #blockcart-modal .col-sm-4.col-md-5 {
    text-align: center;
  }
  .block-category.banner{
    background-size: cover;
    background-repeat: no-repeat;
    background-position: center;
    height: 200px;
  }
  
  #mobileMenu{
    
  }
}

/* ==============================================================================================
   Large screen
   ============================================================================================== */


.tricosa-imgblock:nth-of-type(2){
  .tricosa-imgblock-image-wrapper {
    max-width: 100% !important;
    width: 100%;
  }
}

@media (min-width: 1400px) {
  footer .container {
    max-width: 1220px;
  }
}

[title="Livraison gratuite"] {
  display: none !important;
}


@media (min-width: 900px) {
  .tricosa-imgblock:nth-of-type(2){
    display:none;
  }

  [title="Livraison gratuite"] {
    display: block !important;
  }
}

/* ==============================================================================================
   Maintenance page
   ============================================================================================== */
body{
  background: url("/themes/tricosa/assets/images/decoration/bg.jpg");
}
#layout-error {
    margin: 20px auto !important;
    padding: 0 !important;
    border-radius: 10px !important;
    overflow: hidden;
    box-shadow: 4px 4px 10px rgba(0,0,0,0.2) !important;
    
    .logo{
        position: relative;
    
        img {
            width: 100%;
            left: 50%;
            bottom: -73%;
        }
    }
    #content {
        padding: 30px 60px;
    }
}


/**
 * Product Carousel Styles
 * For PrestaShop 9 - Hummingbird Child Theme
 * Uses Swiper.js for carousel functionality
 */

/* Carousel Container */
.product-carousel-wrapper {
    position: relative;
    margin: 2rem 0;
    padding: 0 40px;
}

.product-carousel.swiper {
    overflow: hidden;
    padding: 10px 0 30px 0;
}

.product-carousel .swiper-wrapper {
    display: flex;
    align-items: stretch;
}

.product-carousel .swiper-slide {
    height: auto;
    display: flex;
}

.product-carousel .swiper-slide > * {
    width: 100%;
}

/* Navigation Buttons */
.product-carousel .swiper-button-next,
.product-carousel .swiper-button-prev {
    width: 44px;
    height: 44px;
    background-color: #fff;
    border: 1px solid #e0e0e0;
    border-radius: 50%;
    box-shadow: 0 2px 8px rgba(0, 0, 0, 0.1);
    transition: all 0.3s ease;
    color: #333;
}

.product-carousel .swiper-button-next:hover,
.product-carousel .swiper-button-prev:hover {
    background-color: var(--primary-color, #2fb5d2);
    border-color: var(--primary-color, #2fb5d2);
    color: #fff;
    box-shadow: 0 4px 12px rgba(0, 0, 0, 0.15);
}

.product-carousel .swiper-button-next::after,
.product-carousel .swiper-button-prev::after {
    content: '';
}

.product-carousel .swiper-button-next i,
.product-carousel .swiper-button-prev i {
    font-size: 24px;
    display: flex;
    align-items: center;
    justify-content: center;
}

.product-carousel .swiper-button-next {
    right: 0;
}

.product-carousel .swiper-button-prev {
    left: 0;
}

.product-carousel .swiper-button-disabled {
    opacity: 0.35;
    cursor: not-allowed;
}

/* Pagination Dots */
.product-carousel .swiper-pagination {
    bottom: 0;
    position: relative;
    margin-top: 15px;
}

.product-carousel .swiper-pagination-bullet {
    width: 10px;
    height: 10px;
    background-color: #d0d0d0;
    opacity: 1;
    margin: 0 5px;
    transition: all 0.3s ease;
}

.product-carousel .swiper-pagination-bullet-active {
    background-color: var(--primary-color, #2fb5d2);
    width: 24px;
    border-radius: 5px;
}

/* Product Card Adjustments */
.product-carousel .product-miniature {
    margin-bottom: 0;
}

/* Responsive Design */
@media (max-width: 991px) {
    .product-carousel-wrapper {
        padding: 0 35px;
    }
    
    .product-carousel .swiper-button-next,
    .product-carousel .swiper-button-prev {
        width: 36px;
        height: 36px;
    }
    
    .product-carousel .swiper-button-next i,
    .product-carousel .swiper-button-prev i {
        font-size: 20px;
    }
}

@media (max-width: 575px) {
    .product-carousel-wrapper {
        padding: 0 30px;
    }
    
    .product-carousel .swiper-button-next,
    .product-carousel .swiper-button-prev {
        width: 32px;
        height: 32px;
    }
    
    .product-carousel .swiper-button-next i,
    .product-carousel .swiper-button-prev i {
        font-size: 18px;
    }
    
    /* Hide navigation on very small screens, rely on swipe */
    .product-carousel .swiper-button-next,
    .product-carousel .swiper-button-prev {
        display: none;
    }
}

/* Loading State */
.product-carousel-wrapper.loading {
    opacity: 0.6;
    pointer-events: none;
}

/* RTL Support */
[dir="rtl"] .product-carousel .swiper-button-next {
    left: 0;
    right: auto;
}

[dir="rtl"] .product-carousel .swiper-button-prev {
    right: 0;
    left: auto;
}

/* Smooth transitions */
.product-carousel .swiper-slide {
    transition: transform 0.3s ease;
}

/* Product image aspect ratio preservation */
.product-carousel .product-thumbnail {
    position: relative;
    overflow: hidden;
}

.product-carousel .product-thumbnail img {
    transition: transform 0.3s ease;
}

.product-carousel .swiper-slide:hover .product-thumbnail img {
    transform: scale(1.05);
}




.contact-form > form > section > .mb-3:first-of-type {
  display: none;
}

nav .block-social{ 
  flex: 0 60px;
  a {
    font-size: 20px !important;
    line-height: 20px;
    margin: 2px;
  }
}