/*
 * Custom code goes here.
 * A template should always ship with an empty custom.css
 */

/* ============================================================
   Pagecache dynhook : stopper l'animation si du contenu réel est présent
   (fallback CSS au cas où le JS ne se déclenche pas assez vite)
   ============================================================ */

/* Masque .loadingempty quand il n'est pas seul dans le bloc */
.dynhook .loadingempty:not(:only-child) {
  display: none !important;
}
/* Stoppe les animations shimmer/dots si du vrai contenu est présent */
.dynhook:has(> :not(.loadingempty))::before,
.dynhook:has(> :not(.loadingempty))::after {
  display: none !important;
  animation: none !important;
}

/* ============================================================
   Panier latéral (Cart Sidebar)
   ============================================================ */

.cart-overlay {
  display: none;
  position: fixed;
  inset: 0;
  background: rgba(0,0,0,.45);
  z-index: 1050;
  opacity: 0;
  transition: opacity .3s ease;
}
.cart-overlay.is-open {
  display: block;
  opacity: 1;
}

.cart-sidebar {
  position: fixed;
  top: 0;
  right: 0;
  width: 380px;
  max-width: 100vw;
  height: 100%;
  background: #fff;
  box-shadow: -4px 0 24px rgba(0,0,0,.18);
  z-index: 1051;
  display: flex;
  flex-direction: column;
  transform: translateX(100%);
  transition: transform .35s cubic-bezier(.4,0,.2,1);
  border-left: 3px solid #f7a923;
}
.cart-sidebar.is-open {
  transform: translateX(0);
}

/* Header */
.cart-sidebar-header {
  display: flex;
  align-items: center;
  justify-content: space-between;
  padding: 18px 20px 14px;
  border-bottom: 2px solid #f7a923;
  background: #fff9f0;
  flex-shrink: 0;
}
.cart-sidebar-title {
  font-size: 18px;
  font-weight: 700;
  color: #333;
  margin: 0;
  display: flex;
  align-items: center;
  gap: 8px;
  letter-spacing: .5px;
  text-transform: uppercase;
}
.cart-sidebar-title .material-icons {
  color: #f7a923;
  font-size: 22px;
}
.cart-sidebar-badge {
  background: #f7a923;
  color: #fff;
  font-size: 12px;
  font-weight: 700;
  min-width: 22px;
  height: 22px;
  border-radius: 11px;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  padding: 0 5px;
  margin-left: 4px;
}
.cart-sidebar-close {
  background: none;
  border: none;
  cursor: pointer;
  color: #888;
  padding: 4px;
  border-radius: 50%;
  display: flex;
  align-items: center;
  justify-content: center;
  transition: background .2s, color .2s;
}
.cart-sidebar-close:hover {
  background: #f7a923;
  color: #fff;
}
.cart-sidebar-close .material-icons {
  font-size: 22px;
}

/* Scroll area */
.cart-sidebar-scroll {
  flex: 1;
  overflow-y: auto;
  padding: 0;
}
.cart-sidebar-scroll::-webkit-scrollbar {
  width: 4px;
}
.cart-sidebar-scroll::-webkit-scrollbar-thumb {
  background: #f7a923;
  border-radius: 2px;
}

/* Items list */
.cart-sidebar-items {
  list-style: none;
  margin: 0;
  padding: 0;
}
.cart-sidebar-item {
  display: flex;
  align-items: flex-start;
  gap: 12px;
  padding: 14px 16px;
  border-bottom: 1px solid #f0e8d8;
  transition: background .2s;
}
.cart-sidebar-item:last-child {
  border-bottom: none;
}
.cart-sidebar-item:hover {
  background: #fffaf3;
}

/* Item image */
.cart-item-img {
  flex-shrink: 0;
  width: 72px;
  height: 72px;
  border-radius: 8px;
  overflow: hidden;
  border: 1px solid #e8dcc8;
  background: #fafafa;
}
.cart-item-img img {
  width: 100%;
  height: 100%;
  object-fit: cover;
  display: block;
}

/* Item info */
.cart-item-info {
  flex: 1;
  min-width: 0;
}
.cart-item-name {
  font-size: 14px;
  font-weight: 600;
  color: #333;
  text-decoration: none;
  display: block;
  margin-bottom: 4px;
  white-space: nowrap;
  overflow: hidden;
  text-overflow: ellipsis;
  line-height: 1.3;
}
.cart-item-name:hover {
  color: #f7a923;
}
.cart-item-price-row {
  font-size: 13px;
  color: #888;
  margin-bottom: 8px;
}
.cart-item-line-total {
  font-weight: 700;
  color: #f7a923;
  font-size: 14px;
}

/* Qty controls inside sidebar */
.cart-item-qty {
  display: inline-flex;
  align-items: center;
  border: 1.5px solid #f7a923;
  border-radius: 20px;
  overflow: hidden;
  background: #fff;
  height: 30px;
}
.cart-qty-btn {
  background: transparent;
  border: none;
  width: 30px;
  height: 30px;
  cursor: pointer;
  font-size: 16px;
  font-weight: 700;
  color: #f7a923;
  display: flex;
  align-items: center;
  justify-content: center;
  padding: 0;
  line-height: 1;
  transition: background .2s, color .2s;
  flex-shrink: 0;
}
.cart-qty-btn:hover {
  background: #f7a923;
  color: #fff;
}
.cart-qty-value,
.cart-qty-input {
  min-width: 42px;
  width: 42px;
  text-align: center;
  font-size: 14px;
  font-weight: 700;
  color: #333;
  border: none;
  border-left: 1px solid #f7a923;
  border-right: 1px solid #f7a923;
  height: 28px;
  line-height: 28px;
  padding: 0 2px;
  background: #fff;
  -moz-appearance: textfield;
  outline: none;
  cursor: text;
}
.cart-qty-input:focus {
  background: #fff9f0;
  color: #f7a923;
}
.cart-qty-input::-webkit-outer-spin-button,
.cart-qty-input::-webkit-inner-spin-button {
  -webkit-appearance: none;
  margin: 0;
}

/* Delete button */
.cart-item-remove {
  flex-shrink: 0;
  display: flex;
  align-items: center;
  justify-content: center;
  padding-top: 2px;
}
.cart-delete-btn {
  background: none;
  border: none;
  cursor: pointer;
  color: #ccc;
  width: 26px;
  height: 26px;
  border-radius: 50%;
  display: flex;
  align-items: center;
  justify-content: center;
  font-size: 14px;
  text-decoration: none;
  transition: background .2s, color .2s;
  padding: 0;
}
.cart-delete-btn:hover {
  background: #ffe8e8;
  color: #e74c3c;
}

/* Empty state */
.cart-sidebar-empty {
  display: flex;
  flex-direction: column;
  align-items: center;
  justify-content: center;
  padding: 60px 20px;
  color: #bbb;
  text-align: center;
}
.cart-sidebar-empty .material-icons {
  font-size: 56px;
  color: #e8dcc8;
  margin-bottom: 12px;
}
.cart-sidebar-empty p {
  font-size: 16px;
  color: #aaa;
  margin: 0;
}

/* Footer totals */
.cart-sidebar-footer {
  border-top: 2px solid #f7a923;
  padding: 16px 20px;
  background: #fff9f0;
  flex-shrink: 0;
}
.cart-sidebar-totals {
  margin-bottom: 14px;
}
.cart-total-line {
  display: flex;
  justify-content: space-between;
  align-items: center;
  font-size: 14px;
  color: #555;
  padding: 3px 0;
}
.cart-total-line.is-total {
  font-size: 17px;
  font-weight: 700;
  color: #333;
  border-top: 1px solid #e8dcc8;
  margin-top: 6px;
  padding-top: 8px;
}
.cart-total-line.is-total .cart-total-value {
  color: #f7a923;
  font-size: 18px;
}
.cart-total-line .cart-total-value {
  font-weight: 600;
}
.cart-sidebar-checkout {
  display: flex;
  align-items: center;
  justify-content: center;
  gap: 8px;
  width: 100%;
  text-align: center;
  font-size: 15px !important;
  padding: 12px 20px !important;
}
.cart-sidebar-checkout .material-icons {
  font-size: 18px;
  line-height: 1;
}

/* Loader */
.cart-sidebar-loader {
  position: absolute;
  inset: 0;
  background: rgba(255,255,255,.8);
  display: none;
  align-items: center;
  justify-content: center;
  z-index: 10;
}
.cart-sidebar-loader.is-loading {
  display: flex;
}
.cart-sidebar-loader .material-icons {
  font-size: 40px;
  color: #f7a923;
  animation: cart-spin 1s linear infinite;
}
@keyframes cart-spin {
  from { transform: rotate(0deg); }
  to   { transform: rotate(360deg); }
}

/* Body scroll lock */
body.cart-sidebar-open {
  overflow: hidden;
}

@media (max-width: 480px) {
  .cart-sidebar {
    width: 100vw;
    border-left: none;
    border-top: 3px solid #f7a923;
  }
}

/* ============================================================
   Sélecteur de quantité sur les cards produit (listing catégorie)
   ============================================================ */

.thumbnail-container .add .add-to-cart-row {
  display: flex;
  flex-direction: column;
  align-items: center;
  gap: 8px;
  width: 100%;
}

.thumbnail-container .add .qty-control {
  display: inline-flex;
  align-items: center;
  border: 2px solid #f7a923;
  border-radius: 30px;
  overflow: hidden;
  background: #fff;
  height: 38px;
}

.thumbnail-container .add .qty-btn {
  background: transparent;
  border: none;
  width: 38px;
  height: 38px;
  cursor: pointer;
  display: flex;
  align-items: center;
  justify-content: center;
  color: #f7a923;
  padding: 0;
  flex-shrink: 0;
  transition: background-color 0.2s, color 0.2s;
  line-height: 1;
}

.thumbnail-container .add .qty-btn:hover {
  background-color: #f7a923;
  color: #fff;
}

.thumbnail-container .add .qty-btn .material-icons {
  font-size: 16px;
  line-height: 1;
}

.thumbnail-container .add .qty-input {
  width: 44px;
  text-align: center;
  border: none;
  border-left: 1px solid #f7a923;
  border-right: 1px solid #f7a923;
  height: 34px;
  font-size: 15px;
  font-weight: 700;
  color: #333;
  padding: 0;
  -moz-appearance: textfield;
  background: #fff;
}

.thumbnail-container .add .qty-input::-webkit-outer-spin-button,
.thumbnail-container .add .qty-input::-webkit-inner-spin-button {
  -webkit-appearance: none;
  margin: 0;
}

.thumbnail-container .add .qty-input:focus {
  outline: none;
  background: #fff9f0;
}

.thumbnail-container .add .add-to-cart-row .add-to-cart {
  width: 75%;
}

@media (min-width: 1400px) {
	.carousel .carousel-inner {
		width: 1400px;
	}
}
@media (min-width: 1025px) {

	#carousel {
	    height: 353px;
	}
	.carousel .carousel-inner {
	    height: 353px;
	    margin-bottom: 0;
	    display: inline-block;
	    margin: 0 auto;
	}
	.carousel-inner {
	    width: 100%;
	    overflow: hidden;
	}
}
@media (max-width: 1024px) {
	#carousel {
	    height: 398px;
	}
    .carousel .carousel-inner {
        height: 398px;
    }
	#header .links.top ul {
	    margin: 1rem auto;
	}
	#header .layout_layout1:not(.ybc_vertical_menu) .mm_menus_li > div > a {
		font-size: 14px !important;
		letter-spacing: 0;
	}
	.mm_menu_content_title {
	    padding: 16px 15px;
	}
	.product-accessories .product-miniature {
		margin-bottom: 1rem;
	}
	#product .product-accessories>h3 {
		margin-bottom: 0;
	}
	#checkout h1 {
		padding: 0;
	}
	body#checkout section.checkout-step .content {
    	padding: 0 3rem 1rem 3rem;
	}
	#_desktop_logo img.logo {
		max-width: 100%;
	}
	#order-items .border-bottom {
	    border-bottom: 0px solid #cecece;
	}
	.page-my-account #content .links a {
		font-size: 15px;
	}
}
@media (max-width: 1024px) and (min-width: 992px) {

}
@media (max-width: 991px) {

}

@media (max-width: 992px) and (min-width: 768px) {
	#header .header-nav .right-nav {
	    padding-right: 15px;
	}
    #header .logo {
        width: 100%;
    }
	#_desktop_cart .blockcart .header {
	    font-size: 14px;
	    padding: 4px 15px;
	}
	#_desktop_user_info {
	    margin-top: 0px;
	}
	#search_widget form input[type=text], #search_widget_error form input[type=text],
	#search_widget form button[type=submit], #search_widget_error form button[type=submit] {
	    height: 32px;
	    font-size: 16px;
		padding-top: 7px;
	}
	#header .links.top ul {
	    margin: 1rem auto;
	}
	#header .layout_layout1:not(.ybc_vertical_menu) .mm_menus_li > div > a {
		font-size: 12px !important;
		letter-spacing: 0;
	}
	.mm_menu_content_title {
	    padding: 16px 10px;
	}
	#carousel {
		height: 300px;
	}
    .carousel .carousel-inner {
        height: 300px;
    }
	#index #wrapper .container {
	    padding-left: 15px;
	    padding-right: 15px;
	}
	#products .product-title, .featured-products .product-title, .product-accessories .product-title, .product-miniature .product-title {
	    min-height: 64px;
	}
	.custom-text-image img {
		padding-top: 1.5rem;
	}
	.footer-container .links {
	    margin-bottom: 0rem;
	}
	.block_newsletter p.intro {
	    margin-bottom: 10px;
	    margin-top: 10px;
	}
	#footer .footerRS-blog {
	    margin-top: 1rem;
	    margin-bottom: 1rem;
	}

	#blogpage .product-item{
		flex-direction: column;
	}

	#blogpage .product-item .product-thumbnail{
		min-height: 195px;
	}

	#blogpage .product-item .product-thumbnail img{
		width: 100%;
	}

	.block_newsletter {
		margin-left: 16.66667%;
	}
	h1, #cms h2, #index h1, #prices-drop h1, .page-product h1, #product .tabs h2, #product .product-accessories h3, .modal-dialog .modal-body h1.h1, .block-category .h1, #htmlBlock_displayHomeCustomText h2, .secondary-blog h2 {
		font-size: 26px;
	}
	#prices-drop h1:before, #prices-drop h1:after, h1:before, h1:after, #cms h2:before, #cms h2:after, #product .product-accessories h3:before, #product .product-accessories h3:after, #product .tabs h2:before, #product .tabs h2:after, #index h1:before, #index h1:after, .page-product h1:before, .page-product h1:after, .modal-dialog .modal-body h1.h1:before, .modal-dialog .modal-body h1.h1:after, .block-category .h1:before, .block-category .h1:after, #htmlBlock_displayHomeCustomText h2:before, #htmlBlock_displayHomeCustomText h2:after, .secondary-blog h2:before, .secondary-blog h2:after {
		display: none;
	}
    .breadcrumb li a,
    .breadcrumb li:after {
	    font-size: 14px;
	}
	.product-accessories .product-miniature {
		margin-bottom: 1rem;
	}
	#product .product-accessories>h3 {
		margin-bottom: 0;
	}
	#checkout h1 {
		padding: 0;
	}
	body#checkout section.checkout-step .content {
    	padding: 0 3rem 1rem 3rem;
	}
	#_desktop_logo img.logo {
		max-width: 100%;
	}
	#order-items .border-bottom {
	    border-bottom: 0px solid #cecece;
	}
	.page-my-account #content .links a {
		font-size: 15px;
	}
}

@media (max-width: 767px) {
	}
  
	#header .main-nav {
		background-color: transparent;
	}
	h1, .block-category .h1, #prices-drop h1, #product .tabs h2, #product .product-accessories h3, .page-product h1, .modal-dialog .modal-body h1.h1, #index h1 {
    	padding: 1rem 0;
	}
	h1, #cms h2, #index h1, #prices-drop h1, .page-product h1, #product .tabs h2, #product .product-accessories h3, .modal-dialog .modal-body h1.h1, .block-category .h1, #htmlBlock_displayHomeCustomText h2, .secondary-blog h2 {
		font-size: 26px;
	}
	#prices-drop h1:before, #prices-drop h1:after, h1:before, h1:after, #cms h2:before, #cms h2:after, #product .product-accessories h3:before, #product .product-accessories h3:after, #product .tabs h2:before, #product .tabs h2:after, #index h1:before, #index h1:after, .page-product h1:before, .page-product h1:after, .modal-dialog .modal-body h1.h1:before, .modal-dialog .modal-body h1.h1:after, .block-category .h1:before, .block-category .h1:after, #htmlBlock_displayHomeCustomText h2:before, #htmlBlock_displayHomeCustomText h2:after, .secondary-blog h2:before, .secondary-blog h2:after {
		display: none;
	}
	#index #wrapper .container {
    	padding-left: 15px;
    	padding-right: 15px;
	}
	#htmlBlock_displayFooter {
		text-align: center;
	}
	.footer-container .links .h3, .footer-container .block_newsletter .h3 {
		color: #FFF;
	}
	.block_newsletter {
		padding-top: 10px;
	}
	.block_newsletter p.intro {
	    margin-bottom: 10px;
	    margin-top: 10px;
	}
	p.copyright {
	    font-size: 11px;
	}
	.mm_menus_li > div > a:after {
		display: none;
	}
	body#category #content-wrapper {
		padding-top: 0;
	}
	#category-description {
		padding-top: 1.5rem;
	}
	.block-category #category-description p {
		text-align: center;
	}
	.products-selection .sort {
    	width: 100%;
    	margin-left: 0;
	}
	.products-selection,
	.products-selection .sort-by-row {
		display: block;
	}
	#search_filter_toggler {
		display: none;
	}
    #product .product-accessories .product-miniature {
        max-width: 100%;
        padding-left: 0;
        padding-right: 0;
        margin-bottom: 1rem;
    }
    #idTab360 img {
	    max-width: 100%;
    }
    #blockcart-modal .modal-title i.material-icons {
    	font-size: 20px;
    	margin-right: .875rem;
	}
	#blockcart-modal .modal-title {
    	font-size: 18px;
	}
	#blockcart-modal p .label {
    	text-align: right;
    	margin-right: 1rem;
	}
	#blockcart-modal .product-infos {
	    padding-top: 1rem;
	}
	#blockcart-modal .product-name {
	    font-size: 2.125rem;
	    text-align: center;
	}
	#blockcart-modal .product-price {
	    font-size: 32px;
	    display: block;
	    text-align: center;
	    margin: 0;
	}
	#blockcart-modal .cart-products-count {
		text-align: center
	}
	#blockcart-modal .cart-content .cart-content-btn button {
    	margin-right: 0rem;
    	margin-bottom: 1rem;
	}
	#blockcart-modal .cart-content .cart-content-btn button,
	#blockcart-modal .cart-content .cart-content-btn a {
		width: 100%;
	}
	#blockcart-modal .cart-content .cart-content-btn {
		display: block;
	}
	.cart-grid {
    	margin-top: 1rem;
	}
	.product-line-grid-body .product-line-info.product-price {
	    display: block;
	    text-align: center;
	}
	.product-line-grid-body .product-line-info.product-price .current-price {
		display: block;
	}
	.cart-preview .cart-action .btn-primary, .cart-detailed-actions .btn-primary {
		width: 100%;
	}
	body#checkout section.checkout-step .step-title {
	    font-size: 20px;
	}
	body#checkout section.checkout-step.-reachable.-complete h3 .step-edit {
	    margin: 0;
	    margin-top: 10px;
	    display: block;
	    float: none;
	}
	body#checkout section.checkout-step .content {
	    padding: 1rem 1.6rem;
	}
	body#checkout section.checkout-step .delivery-option label .row {
		display: flex;
	}
	body#checkout section.checkout-step .delivery-option label .row > div {
		text-align: left;
	}
	body#checkout section.checkout-step .carrier-price {
    	font-weight: 700;
    	font-size: 24px;
	}
	body#checkout #order-summary-content h4.h4.card-title {
		display: none;
	}
	body#checkout .container {
    	padding-left: 15px;
	    padding-right: 15px;
	}
	#content-hook_order_confirmation .fa-4x.done {
    	font-size: 3em;
	}
	#content-hook_order_confirmation .card-title {
    	font-size: 24px;
	}
	#content-hook_order_confirmation p {
	    font-size: 20px;
	}
	#content-hook_order_confirmation .card-block {
    	min-height: 236px;
	}
	#order-items .order-confirmation-table .order-line {
	    border-top: 1px solid #cecece;
	    padding-top: 1rem;
	}
	#order-items .order-confirmation-table .order-line:first-child {
	    margin-top: 0rem;
	    border-top: 0;
	    padding-top: 0rem;
	}
	#content-hook_payment_return .card-block {
	    padding: 15px 0;
	}
	#cms #images img.vc_box_border_grey {
		margin-bottom: 1rem;
	}
	.page-my-account #content .links a {
		font-size: 20px;
	}
	body#checkout .tab-content {
	    padding: 3rem 0rem 0;
	}
	body#checkout .nav-item .nav-link {
	    font-size: 16px;
	}
	.payment-options img {
		max-width: 100%;
	}
	.g-recaptcha {
		margin-left: 0 !important;
	}


@media (max-width: 450px) {
	div.products-grid.col-xs-12.col-sm-12.col-md-12{
		display: flex;
		flex-direction: column;
		align-content: center;
		justify-content: space-between;
	}
    .carousel .carousel-inner,
    #carousel {
        height: 158px;
    }
    #header #search_widget {
		min-width: 56%;
		margin-left: 4%;
		margin-right: 4%;
    }
	#blockcart-modal .modal-title {
    	font-size: 18px;
	}
	#content-hook_order_confirmation .card-title {
    	font-size: 24px;
	}
	#content-hook_order_confirmation p {
	    font-size: 20px;
	}
	#content-hook_order_confirmation .card-block {
    	min-height: 236px;
	}
}

@media (max-width: 375px) {
    .carousel .carousel-inner,
    #carousel {
        height: 142px;
    }
    #header #search_widget {
		margin-left: 2%;
		margin-right: 2%;
    }
	.ybc-menu-toggle {
		min-width: 36px;
		height: 36px;
	}
	.ybc-menu-toggle span {
	  width: 26px;
	  top: 5px;
	  left: 5px;
	  margin: 5px 0;
	}
	#header #search_widget {
	    min-width: 60%;
	}
	.block-social li:first-child {
		margin-left: .8rem;
		margin-right: .8rem;
	}
	#header .header-nav #_mobile_cart {
    	margin-left: .6rem;
	}
	#blockcart-modal .modal-title {
    	font-size: 15px;
	}
	#content-hook_order_confirmation .card-title {
    	font-size: 22px;
	}
	#content-hook_order_confirmation p {
	    font-size: 20px;
	}
	#content-hook_order_confirmation .card-block {
    	min-height: 236px;
	}
}

@media (max-width: 360px) {
    .carousel .carousel-inner,
    #carousel {
        height: 130px;
    }
}

@media (max-width: 320px) {
    .carousel .carousel-inner,
    #carousel {
        height: 120px;
    }
	#header .links.top ul li a,
	#header .links.top ul li a:hover {
		font-size: 10px;
	}
	h1, #cms h2, #index h1, #prices-drop h1, .page-product h1, #product .tabs h2, #product .product-accessories h3, .modal-dialog .modal-body h1.h1, .block-category .h1, #htmlBlock_displayHomeCustomText h2, .secondary-blog h2 {
		font-size: 22px;
	}
	#header #search_widget {
	    min-width: 57%;
	}
	.block-social li:first-child {
		margin-left: .2rem;
		margin-right: .6rem;
	}
	#header .links.top ul {
	    display: flex;
	}
	#header .header-nav #_mobile_cart {
    	margin-left: .6rem;
	}
	#header .header-top .outter-list {
		padding-left: 0px;
		padding-right: 0px;
	}
	#footer_contact_infos p.red.lite {
    	letter-spacing: 1px;
	}
    #blockcart-modal .modal-title i.material-icons {
    	margin-right: .275rem;
	}
	#blockcart-modal .modal-title {
    	font-size: 13px;
	}
	#content-hook_order_confirmation .card-title {
    	font-size: 19px;
	}
	#content-hook_order_confirmation p {
	    font-size: 17px;
	}
	#content-hook_order_confirmation .text {
	    top: 26px;
	}
	.pagination .page-list li {
	    margin: 0 7px;
	}
	body#checkout section.checkout-step .add-address a {
    	font-size: 12px !important;
	}
	body#checkout section.checkout-step .delivery-option {
	    padding: 18px 0px 20px;
	}
	#main .page-content.card-block {
	    padding: 0rem;
	}
	.contact-form {
		padding: 0;
	}
}
.header-nav #_desktop_user_info{
    display:none !important;
}

.header-nav #_desktop_cart{
    display:none !important;
    
}