::selection {
	color: #FFF;
	background: var(--e-global-color-accent); /* Safari */
}
 ::-moz-selection {
	color:  #FFF;
	background: var(--e-global-color-accent); /* Firefox */
}

select {
	color: black !important;
}

html {
    -moz-osx-font-smoothing: grayscale;
    -webkit-font-smoothing: antialiased;
    -font-smoothing: antialiased;
}

/* -------------------------------------------------
   FIXES & EFFECTS
   ------------------------------------------------- */

/* Remove Elementor Icon Gap */
.elementor-icon-wrapper {
    line-height: 0;}

/* Remove outline for non-keyboard :focus */
*:focus:not(.focus-visible) {
    outline: none;
}

/* Bounce Effect */
 .bounce {
     -moz-animation: bounce 2s infinite;
     -webkit-animation: bounce 2s infinite;
     animation: bounce 2s infinite;
}
 @keyframes bounce {
     0%, 20%, 50%, 80%, 100% {
         transform: translateY(0);
    }
     40% {
         transform: translateY(-30px);
    }
     60% {
         transform: translateY(-15px);
    }
}

/* =========================================
   TYPO SCALE (Elementor widget-level classes)
   Apply class to the WIDGET (Advanced > CSS Classes)
   Works for:
   - Elementor Heading (.elementor-heading-title)
   - Elementor Text Editor (p)
   ========================================= */

/* XXXL */
.xxxlarge :is(.elementor-heading-title, p){
  font-size: clamp(3.00rem, 2.48276rem + 2.20690vw, 4.00rem);
  line-height: 1.15;
}

/* XXL */
.xxlarge :is(.elementor-heading-title, p){
  font-size: clamp(2.50rem, 1.98276rem + 2.20690vw, 3.50rem);
  line-height: 1.18;
}

/* XL */
.xlarge :is(.elementor-heading-title, p){
  font-size: clamp(2.00rem, 1.48276rem + 2.20690vw, 3.00rem);
  line-height: 1.22;
}

/* L */
.large :is(.elementor-heading-title, p){
  font-size: clamp(1.50rem, 0.98276rem + 2.20690vw, 2.50rem);
  line-height: 1.28;
}

/* XM */
.xmedium :is(.elementor-heading-title, p){
  font-size: clamp(1.25rem, 0.86207rem + 1.65517vw, 2.00rem);
  line-height: 1.35;
}

/* M */
.medium :is(.elementor-heading-title, p){
  font-size: clamp(1.19rem, 1.02586rem + 0.68966vw, 1.50rem);
  line-height: 1.45;
}

/* S */
.small :is(.elementor-heading-title, p){
  font-size: clamp(1.13rem, 1.06034rem + 0.27586vw, 1.25rem);
  line-height: 1.5;
}

/* XS */
.xsmall :is(.elementor-heading-title, p){
  font-size: clamp(1.00rem, 0.93534rem + 0.27586vw, 1.13rem);
  line-height: 1.55;
}

/* XXS */
.xxsmall :is(.elementor-heading-title, p){
  font-size: clamp(0.82rem, 0.76681rem + 0.24828vw, 0.94rem);
  line-height: 1.6;
}

/* =========================================
   PADDING SCALE (Elementor widget-level classes)
   Apply class to the WIDGET (Advanced > CSS Classes)
   ========================================= */
div .full-width_responsive {
   padding-left: clamp(1.5rem, 6vw, 8.125rem);
   padding-right: clamp(1.5rem, 6vw, 8.125rem);
}

/* Padding all sides */
div .pad-s {
	padding: clamp(1rem, 0.7692rem + 1.0256vw, 1.5rem);
}
div .pad-m {
	padding: clamp(1.5rem, 1.2692rem + 1.0256vw, 2rem);
}
div .pad-l {
	padding: clamp(2rem, 1.5385rem + 2.0513vw, 3rem);
}

/* Padding Top & Bottom */
div .pad-tb-s {
	padding-top: clamp(1.5rem, 1.0385rem + 2.0513vw, 2.5rem);
    padding-bottom: clamp(1.5rem, 1.0385rem + 2.0513vw, 2.5rem);
}
div .pad-tb-m {
	padding-top: clamp(4rem, 3.5385rem + 2.0513vw, 5rem);
    padding-bottom: clamp(4rem, 3.5385rem + 2.0513vw, 5rem);
}
div .pad-tb-l {
	padding-top: clamp(7rem, 6.5385rem + 2.0513vw, 8rem);
    padding-bottom: clamp(7rem, 6.5385rem + 2.0513vw, 8rem);
}

/* Padding Top */
div .pad-t-s {
	padding-top: clamp(1.5rem, 1.0385rem + 2.0513vw, 2.5rem);
}
div .pad-t-m {
	padding-top: clamp(4rem, 3.5385rem + 2.0513vw, 5rem);
}
div .pad-t-l {
	padding-top: clamp(7rem, 6.5385rem + 2.0513vw, 8rem);
}

/* Padding Bottom */
div .pad-b-s {
	padding-bottom: clamp(1.5rem, 1.0385rem + 2.0513vw, 2.5rem);
}
div .pad-b-m {
	padding-bottom: clamp(4rem, 3.5385rem + 2.0513vw, 5rem);
}
div .pad-b-l {
	padding-bottom: clamp(7rem, 6.5385rem + 2.0513vw, 8rem);
}

/* Padding Left & Right */
div .pad-lr-s {
	padding: 0 clamp(1.5rem, 1.0385rem + 2.0513vw, 2.5rem);
}

div .pad-lr-m {
	padding: 0 clamp(4rem, 3.5385rem + 2.0513vw, 5rem);
}

div .pad-lr-l {
	padding: 0 clamp(7rem, 6.5385rem + 2.0513vw, 8rem);
}

/* =========================================
   HEADER
   ========================================= */

header .full-width_responsive {
   padding: 1.2rem clamp(1.5rem, 6vw, 8.125rem);
}

/* MOBILE - Hide specific icons only in header */

@media (max-width: 767px) {
  header .elementor-icon-list-items > li:nth-child(2),
  header .elementor-icon-list-items > li:nth-child(3) {
    display: none;
  }
}

/* =========================================
   SIDE MENU
   ========================================= */

#off-canvas-menu .elementor-nav-menu--main .elementor-nav-menu a {
    padding-left: 0px !important
}

#off-canvas-menu .elementor-icon-list-text {
    font-weight: 300;
}

#off-canvas-menu .elementor-icon-list-text:hover {
    color: var(--e-global-color-secondary);
}

/* =========================================
   SEACH POPUP
   ========================================= */

/* Hide Elementor SVG icon */
.search_popup .dialog-close-button svg {
    display: none !important;
}

/* Add Phosphor icon */
.search_popup .dialog-close-button::before {
    font-family: "Phosphor";
    content: "\e4f6";
    font-size: 30px;
    line-height: 1;
    display: block;
}

.search_popup .search-filter-label {
    font-size: 0.6rem;
    text-transform: uppercase;
    letter-spacing: 1px;
}

.search-filter-input-text {
    border-width: 0px 0px 1px !important;
    border-radius: 0px !important;
}

/* =========================================
   WOOCOMMERCE
   ========================================= */

/* -------------------------------------------------
   MINI CART
   ------------------------------------------------- */

.elementor-menu-cart__toggle .elementor-button:hover {
    border:none !important;
}

/* Side Cart Container */
.elementor-menu-cart__main {
    width: 320px !important;
}
@media (min-width: 48em) { 
    .elementor-menu-cart__main {
    width: 450px !important;
    } 
}
@media (min-width: 64.0625em) { 
    .elementor-menu-cart__main { 
    width: 700px !important;
    } 
}

/* -------------------------------------------------
   BADGES - SHARED STYLES (applies everywhere)
   ------------------------------------------------- */

.discount-percentage-badge{
  color: var(--e-global-color-accent);
  border: 2px solid var(--e-global-color-accent);
  background-color: #fff;
  padding: 5px 15px;
  line-height: 1;
  display: inline-block;
  font-weight: 600;
  white-space: nowrap;
}

.out-of-stock-badge{
  color: var(--e-global-color-secondary);
  border: 2px solid var(--e-global-color-secondary);
  background-color: #fff;
  padding: 5px 15px;
  line-height: 1;
  display: inline-block;
  font-weight: 600;
  white-space: nowrap;
}

/* Make multiple badges stack automatically */
.badge-widget{
  margin: 0;
  display: flex;
  flex-direction: column;
  gap: 8px;
}

/* -------------------------------------------------
   BADGES - LOOP / SHOP (Elementor Loop Item)
     Requirements:
   - Product card wrapper has class: .product-card
   - Shortcode widget is inside .product-card
   ------------------------------------------------- */

.product-card{
  position: relative;
}

/* Position the badge container over the card */
.product-card .badge-widget{
  position: absolute;
  top: 15px;
  left: 20px;
  z-index: 10;
}

/* -------------------------------------------------
   BADGES - SINGLE PRODUCT (Elementor Single Product template)
     Requirements:
   - A single Elementor container wraps BOTH:
       - Product Images widget
       - Shortcode widget
     and that container has class: .single-product-media
   - The shortcode widget has class: .single-product-badges
   ------------------------------------------------- */

.single-product-media{
  position: relative;
}

/* Take the shortcode widget out of flow and overlay it */
.single-product-media .single-product-badges{
  position: absolute;
  top: 15px;
  left: 20px;
  z-index: 20;
  /* Ensure it doesn't create a block that affects layout */
  width: auto;
  margin: 0 !important;
}

/* Ensure Elementor inner wrappers don't introduce spacing */
.single-product-media .single-product-badges .elementor-widget-container,
.single-product-media .single-product-badges .elementor-shortcode{
  margin: 0 !important;
  padding: 0 !important;
}

/* -------------------------------------------------
   PRICE BEHAVIOR (Loop Items)
   ------------------------------------------------- */

/* Only single price (no del/ins) */
.product-card .price:not(:has(del)) > .woocommerce-Price-amount{
  font-size: 1.125rem !important;
}

/* Prevent price from breaking onto multiple lines */
.product-card .price,
.product-card .woocommerce-Price-amount,
.product-card .woocommerce-Price-currencySymbol,
.product-card .price-decimals{
  white-space: nowrap;
}
.price-decimals{
  font-size: 60%;
  opacity: 0.7;
  position: relative;
  top: -0.5em;
  letter-spacing: -0.5px; 
}

.woocommerce-Price-currencySymbol{
  font-size: 60%;
  font-weight: 400;
  position: relative;
  top: -0.5em;
  letter-spacing: -0.5px;
  margin-left: -5px;
  transform: translateX(-1px);
}
/* -------------------------------------------------
   YITH WISHLIST
   ------------------------------------------------- */

.yith-wcwl-add-to-wishlist-button__label {
  display:none !important;
}

/* Wishlist block spacing */
.yith-add-to-wishlist-button-block {
    margin: 0 !important;
    padding: 10px;
}

/* Wishlist button layout */
.yith-wcwl-add-to-wishlist-button {
    display: inline-flex;
    align-items: center;
    gap: 8px;
    transition: color 0.25s ease;
}

/* Default icon style */
svg.yith-wcwl-add-to-wishlist-button-icon {
    color: var(--e-global-color-primary); /* default stroke color */
    fill: transparent; /* keep heart empty by default */
    transform-origin: center; /* scale from center */
    transform-box: fill-box; /* improves SVG transform behavior */
    transition: fill 0.25s ease, color 0.25s ease;
    will-change: transform;
}

/* Hover effect only when the product is not yet in the wishlist */
.yith-wcwl-add-to-wishlist-button:not(.yith-wcwl-add-to-wishlist-button--added):hover
svg.yith-wcwl-add-to-wishlist-button-icon {
    animation: wishlistHeartPulse 0.6s cubic-bezier(.17,.89,.32,1.49);
    fill: #000; /* fill heart in black on hover */
    color: #000; /* make stroke black on hover */
}

/* Optional: change button text color on hover when not added */
.yith-wcwl-add-to-wishlist-button:not(.yith-wcwl-add-to-wishlist-button--added):hover {
    color: #000;
}

/* Added state: solid accent heart with continuous pulse */
.yith-wcwl-add-to-wishlist-button--added
svg.yith-wcwl-add-to-wishlist-button-icon {
    color: var(--e-global-color-accent); /* sets SVG color */
    fill: var(--e-global-color-accent); /* ensures solid fill */
    animation: wishlistHeartLoop 1.2s ease-in-out infinite;
}

/* Optional: change button text color when product is already added */
.yith-wcwl-add-to-wishlist-button--added {
    color: var(--e-global-color-accent);
}

/* Single pulse animation for hover */
@keyframes wishlistHeartPulse {
    0% {
        transform: scale(1);
    }

    25% {
        transform: scale(1.25);
    }

    45% {
        transform: scale(0.9);
    }

    65% {
        transform: scale(1.1);
    }

    100% {
        transform: scale(1);
    }
}

/* Continuous pulse animation for added state */
@keyframes wishlistHeartLoop {
    0% {
        transform: scale(1);
    }

    20% {
        transform: scale(1.12);
    }

    40% {
        transform: scale(0.96);
    }

    60% {
        transform: scale(1.08);
    }

    80% {
        transform: scale(0.98);
    }

    100% {
        transform: scale(1);
    }
}

/* -------------------------------------------------
   PAGINATION
   ------------------------------------------------- */

.page-numbers.prev, .page-numbers.next {
    font-size: 0.8rem;
    text-transform: uppercase;
    letter-spacing: 0.04rem;
}

/* -------------------------------------------------
   WOOCOMMERCE SINGLE PRODUCT PAGE
   ------------------------------------------------- */
.brand-image img {
        width: 160px;
        height: auto;
    }
/* Nasconde il wrapper del selettore stato */
.variations tr:has(.desadd-hidden-stato) {
    display: none;
}

/* -----------------------------------------
   WOOCOMMERCE PRODUCT TABS – scoped styling
   ----------------------------------------- */

/* Tabs wrapper */
.product-tabs-custom .woocommerce-tabs{
  margin-top: 24px;
}

/* Tabs navigation */
.product-tabs-custom .woocommerce-tabs ul.tabs{
  margin: 0 0 18px;
  padding: 0;
  border: 0;
  border-bottom: 1px solid rgba(0,0,0,.12);
  display: flex;
  gap: 24px;
}

/* Single tab */
.product-tabs-custom .woocommerce-tabs ul.tabs li{
  list-style: none;
  margin: 0;
  padding: 0;
  border: 0;
  background: transparent;
}

/* Remove Woo pseudo elements */
.product-tabs-custom .woocommerce-tabs ul.tabs::before,
.product-tabs-custom .woocommerce-tabs ul.tabs li::before,
.product-tabs-custom .woocommerce-tabs ul.tabs li::after{
  display: none !important;
}

/* Tab link */
.product-tabs-custom .woocommerce-tabs ul.tabs li{
    border: none !important;
    background-color: transparent !important;
}
.product-tabs-custom .woocommerce-tabs ul.tabs li a{
  display: inline-block;
  padding: 10px 0 12px;
  text-decoration: none;
  font-weight: 600;
  opacity: .75;
  border-bottom: 2px solid transparent;
  transition: all .2s ease;
}

/* Hover */
.product-tabs-custom .woocommerce-tabs ul.tabs li a:hover{
  opacity: 1;
}

/* Active tab */
.product-tabs-custom .woocommerce-tabs ul.tabs li.active a{
  opacity: 1;
  border-bottom-color: rgba(0,0,0,.65);
}

/* Tab panel */
.product-tabs-custom .woocommerce-Tabs-panel{
  padding-top: 10px;
}

/* Hide panel title */
.product-tabs-custom .woocommerce-Tabs-panel > h2{
  display: none;
}

/* Attributes table */
.product-tabs-custom table.woocommerce-product-attributes{
  border: 0;
  margin: 0;
}

.product-tabs-custom table.woocommerce-product-attributes th,
.product-tabs-custom table.woocommerce-product-attributes td{
  padding: 10px 12px;
  border-bottom: 1px solid rgba(0,0,0,.08);
  vertical-align: top;
}

.product-tabs-custom table.woocommerce-product-attributes th{
  font-weight: 600;
  width: 35%;
}

.product-tabs-custom table.woocommerce-product-attributes td{
  font-style: normal;
}

/* Attributes table */
.product-tabs-custom table.woocommerce-product-attributes{
  width: 100%;
  border: 0;
  border-collapse: collapse;
  margin: 0;
}

/* Rows */
.product-tabs-custom .woocommerce-product-attributes-item{
  border-bottom: 1px solid rgba(0,0,0,.08);
}

/* Label column */
.product-tabs-custom .woocommerce-product-attributes-item__label{
  font-weight: 600;
  width: 35%;
  padding: 10px 12px;
  text-align: left;
}

/* Value column */
.product-tabs-custom .woocommerce-product-attributes-item__value{
  padding: 10px 12px;
}

/* Remove default italic WooCommerce sometimes adds */
.product-tabs-custom .woocommerce-product-attributes-item__value p{
  font-style: normal;
  margin: 0;
}

.product-tabs-custom table.woocommerce-product-attributes td,
.product-tabs-custom table.woocommerce-product-attributes th{
    background: transparent !important;
}

/* -------------------------------------------------
   WOOCOMMERCE PRODUCT TABS - Description "Read more" (scoped)
   ------------------------------------------------- */

/* Collapsed state (about 12 lines) */
.product-tabs-custom #tab-description.is-collapsed{
  max-height: calc(1.6em * 12); /* 12 lines */
  overflow: hidden;
  position: relative;
}

/* Expanded state */
.product-tabs-custom #tab-description.is-expanded{
  max-height: none;
  overflow: visible;
}

/* Optional: keep your previous H2 hidden */
.product-tabs-custom #tab-description > h2{
  display: none;
}

/* The toggle button */
.product-tabs-custom .tab-desc-toggle{
  display: inline-flex;
  align-items: center;
  gap: 6px;
  margin-top: 10px;
  padding: 0;
  border: 0;
  background: transparent;
  cursor: pointer;
  font-weight: 600;
  text-decoration: none;
}

/* Read more button hover override */
.product-tabs-custom .tab-desc-toggle:hover,
.product-tabs-custom .tab-desc-toggle:focus{
  background: transparent;
  color: inherit;
  text-decoration: underline;
  border: none;
}

/* Optional subtle fade at bottom only when collapsed */
.product-tabs-custom #tab-description.is-collapsed::after{
  content: "";
  position: absolute;
  left: 0;
  right: 0;
  bottom: 0;
  height: 3.2em;
  pointer-events: none;
  background: linear-gradient(to bottom, rgba(255,255,255,0), rgba(255,255,255,1));
}

/* =========================
   SEARCH & FILTER PRO
   ========================= */

.search_popup .search-filter-input-button.search-filter-field__input, .search-filter-input-button.search-filter-field__input:hover {
    border: none;
    padding: 0px;
}
.search-filter-component-range-slider__range-input-bar, .search-filter-component-range-slider__range-input-progress {
    height: 3px !important;
}
.search-filter-style--control-reset {
    border-width: 0px !important;
}

/* =========================
   YITH WISHLIST
   ========================= */
.wishlist_table .product-add-to-cart a.button {
    text-transform: uppercase;
    letter-spacing: 1px;
    line-height: 1 !important;
    border-radius: 0px !important;
    border-style: solid;
    border-width: 1px 1px 1px 1px;
    padding: 12px 24px !important;
}

a.remove_from_wishlist {
    border: none !important;
}