/* 
Theme Name: Hello Elementor Child
Theme URI: https://github.com/elementor/hello-theme-child/
Description: Hello Elementor Child is a child theme of Hello Elementor, created by Elementor team
Author: Elementor Team
Author URI: https://elementor.com/
Template: hello-elementor
Version: 2.0.0
Text Domain: hello-elementor-child
License: GNU General Public License v3 or later.
License URI: https://www.gnu.org/licenses/gpl-3.0.html
Tags: flexible-header, custom-colors, custom-menu, custom-logo, editor-style, featured-images, rtl-language-support, threaded-comments, translation-ready
*/

/* Add your custom styles here */

.wc-block-components-button.wp-element-button.wc-block-cart__submit-button.contained{
    background-color: green !important;
    color: white !important;
}

.wc-block-components-button__text{
    color: white !important;
    opacity: 1 !important;
}

.elementor-menu-cart__toggle_button.elementor-button.elementor-size-sm{
    padding-left: 5px !important;
}

.elementor-element.elementor-element-dac9688.e-flex.e-con-boxed.e-con.e-parent.e-lazyloaded{
    height: 100px !important;
}

.elementor-menu-cart__toggle_button.elementor-button.elementor-size-sm:focus{
    background-color: rgba(255, 0, 0, 0) !important;
}

.woocommerce-ordering{
    display: none !important;
}

.price{
    color: red !important;
    font-weight: 700 !important;
    font-size: 14px !important;
}

@media screen and (max-width: 768px) {
    .search-field{
        width: 50% !important;
    }
    
    .elementor-70672 .elementor-element.elementor-element-3229ee0 .tf-widget-search .search-field:focus {
        height: 70px !important;
        padding-left: 30px !important;
        padding-right: 30px !important;
        color: #ffffff !important;
        border-width: 2px !important;
        border-color: #ffffff !important;
        border-radius: 50px !important;
        outline: none !important;
        background-color: transparent !important;
        box-shadow: none !important;
    }
    
    .elementor-menu-cart__toggle_button{
        padding-right: 0px !important;
    }
    
    .elementor-element.elementor-element-dac9688.e-flex.e-con-boxed.e-con.e-parent.e-lazyloaded{
        height: auto !important;
    }
}

.wp-block-button__link.add_to_cart_button{
    color: white !important;
    border-radius: 5px !important;
    background-color: #0B77C4 !important;
    text-transform: uppercase !important;
    font-weight: 700 !important;
    font-family: "DM Sans", sans-serif !important;
    font-size: 14px !important;
    letter-spacing: 1px !important;
}

/* Layout due colonne */
.cf7-row {
    display: flex;
    flex-wrap: wrap;
    gap: 20px;
    margin-bottom: 20px;
}

.cf7-col {
    flex: 1 1 48%;
}

.cf7-col-full {
    flex: 1 1 100%;
}

/* Stile input coerente */
.wpcf7 input[type="text"],
.wpcf7 input[type="email"],
.wpcf7 input[type="tel"],
.wpcf7 textarea {
    width: 100%;
    padding: 12px 15px;
    border: 1px solid #ccc;
    border-radius: 8px;
    font-size: 15px;
    background: #fff;
    font-family: 'Open Sans', sans-serif;
    transition: border-color 0.3s ease;
}

.wpcf7 input[type="submit"] {
    background-color: #007bff;
    color: #fff;
    border: none;
    padding: 12px 30px;
    font-size: 16px;
    font-weight: 600;
    border-radius: 8px;
    cursor: pointer;
    letter-spacing: 2px;
    text-transform: uppercase;
}

.wpcf7 input[type="submit"]:hover {
    background-color: #0056b3;
}

.wpcf7-form label {
    font-weight: 600;
    display: block;
    margin-bottom: 5px;
    color: #000;
    font-family: 'Open Sans', sans-serif;
}

.woocommerce-Button.button {
    margin-top: 20px !important;
    margin-bottom: 20px !important;
}

.woocommerce-account .addresses .title .edit {
    float: none !important;
}

/* Responsive */
@media screen and (max-width: 768px) {
    .cf7-col {
        flex: 1 1 100%;
    }
}


@media screen and (max-width: 768px) {
    .owl-prev{
        display: none !important;
    }
    .owl-next{
        display: none !important;
    }
}

.wpcf7-list-item{
    margin-left: 0px !important;
}

@media (min-width: 1025px) {
    .site-main.post-11.page.type-page.status-publish.hentry {
        min-height: 55vh;
    }
}


/* Card layout */
.categoria-card {
    overflow: hidden;
    text-align: center;
    background: #fff;
    box-shadow: 0 0 15px rgba(0,0,0,0.05);
    display: flex;
    flex-direction: column;
    justify-content: space-between;
    height: 100%;
}

/* Immagine */
.categoria-img {
    width: 100%;
    height: 220px;
    object-fit: cover;
}

/* Contenuto */
.categoria-content {
    padding: 15px;
}

/* Titolo */
.categoria-title {
    font-size: 18px;
    font-weight: 600;
    margin-bottom: 10px;
    text-transform: uppercase;
    font-family: 'DM Sans', sans-serif !important;
    color: black !important;
}

/* Pulsante visibile e leggibile */
.categoria-btn {
    display: inline-block;
    background: #000;
    color: #fff !important;
    font-size: 14px;
    font-weight: 500;
    text-decoration: none;
    padding: 8px 20px;
    border-radius: 6px;
    transition: background 0.3s;
}

.categoria-btn:hover {
    background: #333;
}

/* --- CSS PER CAROSELLO SOTTOCATEGORIE CON PULSANTI IN ALTO A DESTRA --- */

/* 1. Contenitore principale del carosello
Assicuriamoci che abbia 'position: relative' per contenere i pulsanti posizionati in modo assoluto.
Il padding-bottom non è più necessario qui, poiché i pulsanti non sono in basso.
*/
.swiper.sottocategorie-carousel {
    position: relative;
    padding-top: 60px; /* Aggiunge spazio sopra il carosello per ospitare i pulsanti */
}

/* 2. Stile unificato per entrambi i pulsanti (Prev e Next)
Utilizziamo le classi 'custom' che hai già nel tuo HTML.
*/
.sottocategorie-carousel .custom-swiper-btn {
    position: absolute;
    top: 20px;         /* Posiziona i pulsanti all'inizio del contenitore */
    bottom: auto;   /* Rimuove la precedente regola 'bottom' */
    left: auto;     /* Rimuove la precedente regola 'left' */
    z-index: 9;
    
    /* Stile visuale */
    width: 40px;
    height: 40px;
    background-color: #000;
    color: #fff;
    box-shadow: 0 2px 6px rgba(0, 0, 0, 0.15);
    
    /* Allineamento icone (già presente e corretto) */
    display: flex;
    align-items: center;
    justify-content: center;
    cursor: pointer;
}

/* 3. Posizionamento specifico per ciascun pulsante */

/* Pulsante NEXT (freccia destra) */
.sottocategorie-carousel .custom-swiper-next {
    right: 15px; /* Distanza dal bordo destro */
}

/* Pulsante PREV (freccia sinistra) */
.sottocategorie-carousel .custom-swiper-prev {
    /* Si posiziona a destra, accanto al pulsante 'next'
    Calcolo: (distanza dal bordo del 'next' + larghezza del 'next' + spazio tra i pulsanti)
    Esempio: 15px + 40px + 10px = 65px
    */
    right: 65px; 
}


/* 4. Stile per le icone interne (le frecce '::after') */
.sottocategorie-carousel .custom-swiper-btn::after {
    font-size: 16px;
    color: #fff; /* Assicura che l'icona sia bianca */
}


/* --- GESTIONE RESPONSIVE --- */
/* Le regole qui sotto rimangono valide per definire quante card mostrare */

@media (min-width: 1200px) {
    .sottocategorie-carousel .swiper-slide {
        width: calc(25% - 20px) !important;
    }
}

@media (min-width: 768px) and (max-width: 1199px) {
    .sottocategorie-carousel .swiper-slide {
        width: calc(50% - 15px) !important;
    }
}

@media (max-width: 767px) {
    .categoria-card {
        margin: 0;
    }
    
    /* Su mobile, se vuoi, puoi ridurre la distanza dei pulsanti dal bordo */
    .sottocategorie-carousel .custom-swiper-next {
        right: 10px;
    }
    .sottocategorie-carousel .custom-swiper-prev {
        right: 60px; /* 10px + 40px + 10px */
    }
}

.shortcode-footer{
    margin-top: -10px !important;
    margin-left: 2px !important;
}

.categoria-img-link {
    display: block;
    position: relative;
    width: 100%;
}

.categoria-img {
    display: block;
    width: 100%;
    height: 220px;
    object-fit: cover;
    /* Nessun effetto zoom o filter all'hover */
    transition: none;
}

.categoria-img-link:hover .categoria-overlay,
.categoria-img-link:focus .categoria-overlay {
    opacity: 1;
}

.categoria-overlay {
    position: absolute;
    top: 0; left: 0; right: 0; bottom: 0;
    background: rgba(0,0,0,0.50);
    display: flex;
    align-items: flex-end;      /* Allinea in basso */
    justify-content: center;    /* Centra orizzontalmente */
    opacity: 0;
    transition: opacity 0.28s cubic-bezier(.55,0,.1,1);
    pointer-events: none;
    padding-bottom: 38px; /* Distanza dal bordo basso, regola a piacere */
}

.categoria-btn {
    background: #0082e6;
    color: #fff !important;
    font-size: 13px;
    font-family: 'Oswald', sans-serif;
    font-weight: 700;
    letter-spacing: 2px;
    text-transform: uppercase;
    border-radius: 0;
    padding: 10px 40px;
    box-shadow: 0 2px 8px rgba(0,0,0,0.10);
    opacity: 0;
    transform: translateY(10px);
    transition: opacity 0.22s, transform 0.22s, background 0.15s;
    pointer-events: auto;
    margin-bottom: 20px;
}

.categoria-img-link:hover .categoria-btn,
.categoria-img-link:focus .categoria-btn {
    opacity: 1;
    transform: translateY(0);
}

.categoria-btn:hover,
.categoria-btn:focus {
    background: #FA593F !important;
}

@media (max-width: 520px) {
    .categoria-img { height: 150px; }
    .categoria-btn { padding: 10px 18px; font-size: 13px; }
}

/* Contenitore principale */
.wpfMainWrapper {
    background: #f9f9f9 !important;
    border-radius: 16px !important;
    padding: 20px !important;
    box-shadow: 0 0 10px rgba(0, 0, 0, 0.05) !important;
    font-family: "DM Sans", sans-serif !important;
    font-size: 15px !important;
}

/* Select dropdown */
.wpfMainWrapper select {
    width: 100% !important;
    padding: 10px 12px !important;
    border: 1px solid #ccc !important;
    border-radius: 10px !important;
    font-size: 14px !important;
    margin-bottom: 16px !important;
    appearance: none !important;
    background: white url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='16' height='16' fill='gray' class='bi bi-caret-down-fill' viewBox='0 0 16 16'%3E%3Cpath d='M7.247 11.14 2.451 5.658c-.566-.65-.106-1.658.753-1.658h9.592c.86 0 1.32 1.008.753 1.658L8.753 11.14a1 1 0 0 1-1.506 0z'/%3E%3C/svg%3E") no-repeat right 10px center !important;
    background-size: 12px !important;
}

/* Range slider */
.wpf_slider_range {
    margin: 20px 0 !important;
}

.wpf_price_label {
    font-size: 14px !important;
    color: #444 !important;
}

/* Pulsante Filtro */
.wpf_button {
    background: #111 !important;
    color: #fff !important;
    border: none !important;
    padding: 12px 20px !important;
    border-radius: 8px !important;
    font-size: 14px !important;
    font-weight: 600 !important;
    letter-spacing: 1px !important;
    cursor: pointer !important;
    width: 100% !important;
    transition: background 0.3s ease !important;
}

.wpf_button:hover {
    background: #333 !important;
}

ul.products li.product a.button.product_type_variable {
    display: inline-block !important;
    width: 100% !important;
    padding: 10px 20px;
    margin-top: 10px;
    font-weight: 700;
    text-transform: uppercase;
    background-color: red;
    color: white;
    border: none;
    border-radius: 3px;
    text-align: center;
}

.wc-block-components-product-name{
    font-size: 16px !important;
}

.personalizza-prodotti-table-responsive {
    width: 100% !important;
    overflow-x: auto !important;
    -webkit-overflow-scrolling: touch !important;
}
.personalizza-prodotti-table {
    font-family: 'DM Sans', Arial, sans-serif !important;
    width: 100% !important;
    border-collapse: separate !important;
    border-spacing: 0 !important;
    border-radius: 18px !important;
    overflow: hidden !important;
    background: #fff !important;
    box-shadow: 0 6px 32px 0 rgba(34, 34, 68, 0.09) !important;
    margin-bottom: 32px !important;
    min-width: 900px !important;
    box-sizing: border-box !important;
}
@media (max-width: 1024px) {
    .personalizza-prodotti-table {
        min-width: 720px !important;
        font-size: 15px !important;
    }
}
@media (max-width: 768px) {
    .personalizza-prodotti-table {
        min-width: 650px !important;
        font-size: 14px !important;
    }
}
@media (max-width: 520px) {
    .personalizza-prodotti-table {
        min-width: 500px !important;
        font-size: 13px !important;
    }
}
.personalizza-prodotti-table th {
    background: #fafbfc !important;
    font-weight: 700 !important;
    color: #212529 !important;
    padding: 14px 12px !important;
    border-bottom: 1px solid #ececec !important;
    text-align: left !important;
    font-size: 18px !important;
}
.personalizza-prodotti-table td {
    background: #fff !important;
    color: #212529 !important;
    font-size: 16px !important;
    padding: 12px !important;
    border-bottom: 1px solid #ececec !important;
    vertical-align: middle !important;
    transition: none !important;
}
.personalizza-prodotti-table tr:first-child th:first-child {
    border-top-left-radius: 18px !important;
}
.personalizza-prodotti-table tr:first-child th:last-child {
    border-top-right-radius: 18px !important;
}
.personalizza-prodotti-table tr:last-child td:first-child {
    border-bottom-left-radius: 18px !important;
}
.personalizza-prodotti-table tr:last-child td:last-child {
    border-bottom-right-radius: 18px !important;
}
.personalizza-prodotti-table tr,
.personalizza-prodotti-table th,
.personalizza-prodotti-table td,
.personalizza-prodotti-table tr:hover,
.personalizza-prodotti-table td:hover,
.personalizza-prodotti-table th:hover,
.personalizza-prodotti-table tr:hover td,
.personalizza-prodotti-table tr:hover th,
.personalizza-prodotti-table tr:active,
.personalizza-prodotti-table td:active,
.personalizza-prodotti-table th:active,
.personalizza-prodotti-table tr:focus,
.personalizza-prodotti-table td:focus,
.personalizza-prodotti-table th:focus {
    background: #fff !important;
    color: #212529 !important;
    box-shadow: none !important;
    outline: none !important;
    transition: none !important;
    pointer-events: auto !important;
}
.personalizza-prodotti-table input[type="checkbox"] {
    width: 22px !important;
    height: 22px !important;
    accent-color: #222244 !important;
    vertical-align: middle !important;
}
.personalizza-prodotti-table select,
.personalizza-prodotti-table input[type="file"] {
    font-family: inherit !important;
    font-size: 16px !important;
    padding: 6px 10px !important;
    border-radius: 8px !important;
    border: 1px solid #ececec !important;
    background: #fafbfc !important;
}
.note-aggiuntive-label {
    font-family: 'DM Sans', Arial, sans-serif !important;
    font-weight: 700 !important;
    font-size: 19px !important;
    margin-bottom: 10px !important;
    margin-top: 20px !important;
    display: none !important;
}
.note-aggiuntive-label textarea {
    font-family: 'DM Sans', Arial, sans-serif !important;
    font-size: 16px !important;
    background: #fafbfc !important;
    border-radius: 14px !important;
    border: 1px solid #ececec !important;
    width: 100% !important;
    padding: 18px 16px !important;
    min-height: 100px !important;
    resize: vertical !important;
    box-sizing: border-box !important;
}
.custom-file-upload {
    display: flex !important;
    align-items: center !important;
    gap: 8px !important;
    min-height: 44px !important;
}
.custom-file-upload .file-name {
    font-size: 0.95em !important;
    color: #222244 !important;
    margin-left: 3px !important;
    max-width: 100px !important;
    overflow: hidden !important;
    text-overflow: ellipsis !important;
    white-space: nowrap !important;
}
.custom-file-upload .remove-file-btn {
    width: 28px !important;
    height: 28px !important;
    min-width: 28px !important;
    min-height: 28px !important;
    padding: 0 !important;
    border: none !important;
    border-radius: 50% !important;
    background: #e53935 !important;
    color: #fff !important;
    font-size: 16px !important;
    font-weight: bold !important;
    display: flex !important;
    align-items: center !important;
    justify-content: center !important;
    cursor: pointer !important;
    margin-left: 12px !important;
    box-shadow: 0 2px 6px rgba(229,57,53,0.10) !important;
    transition: background 0.15s !important;
    vertical-align: middle !important;
    line-height: 1 !important;
}
.custom-file-upload .remove-file-btn:hover {
    background: #b71c1c !important;
    color: #fff !important;
}

.woocommerce-price-suffix{
    color: black !important;
    font-weight: 400 !important;
    font-size: 11px !important;
}

.img-skeleton-wrapper {
    position: relative !important;
    background: linear-gradient(90deg, #e0e0e0 25%, #f0f0f0 37%, #e0e0e0 63%) !important;
    background-size: 400% 100% !important;
    animation: skeleton-loading 1.2s ease-in-out infinite !important;
    border-radius: 5px !important;
    overflow: hidden !important;
    width: 100%;
    aspect-ratio: 3/4 !important; /* Proporzione immagine tipica WooCommerce */
}
.img-skeleton-wrapper.loaded {
    background: none !important;
    animation: none !important;
}

.img-skeleton-wrapper, .img-skeleton-wrapper img {
    max-width: 100% !important;
    box-sizing: border-box;
}

.img-skeleton-wrapper img {
    width: 100% !important;
    height: auto !important;
    object-fit: cover !important;
    border-radius: 5px !important;
    display: block !important;
    max-width: 100% !important;
}
@keyframes skeleton-loading {
    0% { background-position: 100% 50%; }
    100% { background-position: 0 50%; }
}

@media (max-width: 600px) {
    .img-skeleton-wrapper {
        min-width: 110px !important;
        min-height: 150px !important;
        border-radius: 6px !important;
    }
    .img-skeleton-wrapper img {
        border-radius: 6px !important;
    }
    .img-skeleton-spinner {
        width: 18px;
        height: 18px;
    }
    .img-skeleton-spinner:after {
        width: 16px;
        height: 16px;
        border-width: 3px;
    }
}

.elementor-wc-products .products {
    overflow-x: hidden !important;
}

.img-skeleton-spinner {
    position: absolute !important;
    top: 50%;
    left: 50%;
    width: 32px;
    height: 32px;
    transform: translate(-50%, -50%);
    z-index: 2;
    display: flex;
    align-items: center;
    justify-content: center;
}
.img-skeleton-spinner:after {
    content: '';
    display: block;
    width: 28px;
    height: 28px;
    border-radius: 50%;
    border: 4px solid #d8d8d8;
    border-top: 4px solid #ff0000; /* Colore del brand! Cambialo se vuoi */
    animation: spinner-rotate 1s linear infinite;
}
@keyframes spinner-rotate {
    0% { transform: rotate(0deg);}
    100% { transform: rotate(360deg);}
}
.img-skeleton-wrapper.loaded .img-skeleton-spinner {
    display: none !important;
}

.img-spinner-wrapper {
    position: relative !important;
    display: inline-block !important;
}
.img-spinner {
    position: absolute !important;
    top: 50%; left: 50%;
    width: 38px; height: 38px;
    transform: translate(-50%, -50%);
    z-index: 10;
    display: flex;
    align-items: center;
    justify-content: center;
}
.img-spinner:after {
    content: '';
    display: block;
    width: 19px; height: 19px;
    border-radius: 50%;
    border: 4px solid #d8d8d8;
    border-top: 4px solid #e40016; /* Rosso brand */
    animation: spinner-rotate 1s linear infinite;
}
@keyframes spinner-rotate {
    0% { transform: rotate(0deg);}
    100% { transform: rotate(360deg);}
}
.img-spinner-wrapper.loaded .img-spinner {
    display: none !important;
}
.img-spinner-wrapper img {
    display: block !important;
    max-width: 100% !important;
    height: auto !important;
}

@media (max-width: 600px) {
    /* Limita la larghezza massima della cella Colore */
    .wtv-table .wtv-color-cell .img-skeleton-wrapper {
        width: 34px !important;
        height: 34px !important;
        min-width: 0 !important;
        min-height: 0 !important;
        aspect-ratio: 1/1 !important;
        border-radius: 5px !important;
    }
    .wtv-table .wtv-color-cell .img-skeleton-wrapper img {
        width: 100% !important;
        height: 100% !important;
        max-width: 100% !important;
        max-height: 100% !important;
        object-fit: contain !important;
        border-radius: 5px !important;
    }
    .wtv-table .wtv-color-cell {
        padding: 4px 2px !important;
    }
}

.megamenu-row {
    display: flex;
    gap: 24px;
    align-items: flex-start;
    background: #fafafa;
    border-radius: 6px;
    min-height: 190px;
    padding: 18px 0 10px 0;
    position: relative;
}

.megamenu-left {
    min-width: 320px;
    max-width: 320px;
    padding-left: 22px;
    padding-right: 20px;
    display: flex;
    flex-direction: column;
    align-items: flex-start;
}

.megamenu-left img {
    width: 350px !important;   /* più grande */
    height: 180px !important;  /* più grande */
    object-fit: cover;
    border-radius: 4px;
    margin-bottom: 15px;
    box-shadow: 0 2px 8px 0 rgba(30, 30, 50, 0.08);
}

.megamenu-title {
    font-size: 22px;
    font-family: 'DM Sans', Arial, sans-serif;
    font-weight: 700;
    letter-spacing: 1px;
    margin-bottom: 8px;
    margin-top: 0;
    text-transform: uppercase;
    color: black !important;
    transition: color 0.15s;
    position: relative;
    display: inline-block;
}

.megamenu-title a {
    color: inherit !important;
    text-decoration: none !important;
    position: relative;
    display: inline-block !important;
    overflow: visible !important;
    z-index: 1;
}

.megamenu-title a::after {
    content: "";
    display: block;
    position: absolute;
    left: 0; bottom: -2px;
    width: 0;
    height: 2px;
    background: #cd1f1f !important;
    transition: width 0.28s cubic-bezier(.55,0,.1,1);
    z-index: 2;
}

.megamenu-title a:hover::after {
    width: 100% !important;
}

.megamenu-left > div {
    color: #8b8b8b;
    font-size: 1rem;
    line-height: 1.45;
    margin-bottom: 15px;
    max-width: 100%;
}

.megamenu-cta {
    display: inline-block;
    font-size: 1rem;
    font-weight: 500;
    letter-spacing: .1px;
    margin-top: 8px;
    text-decoration: none;
    color: #111;
    border-bottom: 2px solid #111;
    transition: color 0.2s, border-color 0.2s;
    padding-bottom: 1px;
}
.megamenu-cta:hover {
    color: #cd1f1f;
    border-bottom: 2px solid #cd1f1f;
}

.megamenu-divider {
    width: 3px;
    min-height: 140px;
    background: #e1e1e1;
    margin-right: 20px;
    margin-left: 10px;
    align-self: stretch;
}

.megamenu-right {
    flex: 1 1 0;
    display: flex;
    align-items: flex-start;
    min-width: 0;
}

.megamenu-right ul {
    columns: 2 60px !important;         /* colonne più vicine */
    gap: 6px;                 /* meno spazio tra colonne */
    list-style: none;
    padding: 0;
    margin: 0;
    width: 100%;
}

.megamenu-right li {
    margin-bottom: 3px;  
}

.megamenu-right a {
    font-size: 1rem;
    color: #222;
    text-decoration: none;
    font-family: 'DM Sans', Arial, sans-serif;
    font-weight: 600;         /* font semi-bold */
    transition: color 0.15s;
}

.megamenu-right a:hover {
    color: #cd1f1f;
}

@media (max-width: 900px) {
    .megamenu-row {
        flex-direction: column;
        gap: 0;
        padding: 12px 0 10px 0;
    }
    .megamenu-left, .megamenu-right {
        max-width: 100%;
        padding-left: 14px;
        padding-right: 14px;
    }
    .megamenu-divider {
        display: none;
    }
    .megamenu-left img {
        width: 100% !important;
        max-width: 200px !important;
        margin-bottom: 8px;
        height: auto !important;
    }
    .megamenu-right ul {
        columns: 1 !important;
    }
}

.fas.fa-arrow-right{
    color: black !important;
    padding-left: 10px !important;
}

.wpfFilterButtons {
    display: flex;
    flex-direction: column;
    gap: 12px; /* spazio verticale tra i pulsanti */
    align-items: flex-start; /* allineati a sinistra */
}

.wpfFilterButton.wpfButton {
    background: #141414; /* mantieni il colore scuro */
    color: #fff;
    border: none;
    border-radius: 8px;
    padding: 18px 30px;
    font-size: 20px;
    font-family: 'DM Sans', Arial, sans-serif;
    font-weight: 700;
    letter-spacing: 3px;
    cursor: pointer;
    transition: background 0.2s;
    width: 100% !important;
    min-height: 35px !important;
}

.wpfClearButton.wpfButton {
    background: #cd1f1f !important; /* rosso */
    color: #fff;
    border: none;
    border-radius: 8px;
    padding: 18px 30px;
    font-size: 20px;
    font-family: 'DM Sans', Arial, sans-serif;
    font-weight: 700;
    letter-spacing: 3px;
    cursor: pointer;
    transition: background 0.2s;
    width: 100% !important;
    min-height: 35px !important;
}

.woocommerce-loop-product__title{
    font-weight: 500 !important;
    text-transform: uppercase !important;
    font-family: 'Oswald', Arial, sans-serif !important;
    font-size: 16px !important;
}

.elementor-kit-31 input:focus:not([type="button"]):not([type="submit"]),
.elementor-kit-31 textarea:focus,
.elementor-kit-31 .elementor-field-textual:focus {
    border-width: 1px !important;
    border-style: solid !important;
    border-color: #000000 !important;
    border-radius: 0 !important;
    outline: none !important;
    transition: border-color 0.28s cubic-bezier(.55,0,.1,1);
    border-radius: 5px !important;
}

@media (max-width: 600px) {
    .wp-block-woocommerce-cart {
        width: 100% !important;
        max-width: 100vw !important;
        margin-left: 0 !important;
        left: 0 !important;
        padding: 0 !important;
        box-sizing: border-box;
    }
    
    .wp-block-woocommerce-cart .wc-block-cart-items.wp-block-woocommerce-cart-line-items-block {
        display: block;
        width: 100% !important;
        overflow-x: auto;
        -webkit-overflow-scrolling: touch;
        box-sizing: border-box;
    }
    
    .wp-block-woocommerce-cart .wc-block-cart-items__header th,
    .wp-block-woocommerce-cart .wc-block-cart-items__row td {
        min-width: 100px;
        word-break: break-word;
        box-sizing: border-box;
    }
    
    .wp-block-woocommerce-cart .wc-block-cart-item__image img {
        max-width: 80px;
        height: auto;
        width: 100%;
        display: block;
        margin: 0 auto;
    }
    
    .wp-block-woocommerce-cart .wc-block-cart__sidebar,
    .wp-block-woocommerce-cart .wc-block-cart__main {
        max-width: 100vw !important;
        box-sizing: border-box;
    }
    
    .wp-block-woocommerce-cart .wc-block-cart__submit-container {
        max-width: 100vw !important;
        box-sizing: border-box;
        padding-left: 0 !important;
        padding-right: 0 !important;
    }
}

a#custom-personalizza-btn-single.custom-personalizza-btn {
    background: #0B77C4 !important;
    color: #fff !important;
    border: none !important;
    text-align: center !important;
    box-shadow: none !important;
    text-decoration: underline !important;
    font-size: 16px !important;
    font-weight: 500 !important;
    font-family: 'Oswald', Arial, sans-serif !important;
    text-transform: uppercase !important;
    padding: 0.9em 1.5em !important;
    display: block !important;
    cursor: pointer !important;
    pointer-events: auto !important;
    opacity: 1 !important;
    transition: background 0.15s, color 0.15s, opacity 0.15s !important;
    border-radius: 5px !important;
}

a#custom-personalizza-btn-single.custom-personalizza-btn.disabled-btn,
a#custom-personalizza-btn-single[disabled],
a#custom-personalizza-btn-single[aria-disabled="true"] {
    background: #e0e0e0 !important;
    color: #aaaaaa !important;
    text-decoration: none !important;
    opacity: 1 !important;
    cursor: not-allowed !important;
    pointer-events: none !important;
    border: none !important;
    padding: 10px;
    border-radius: 5px !important;
}

@media (max-width: 600px) {
    a#custom-personalizza-btn-single.custom-personalizza-btn{
        margin-top: 10px !important;
    }
    
    a#custom-personalizza-btn-single.custom-personalizza-btn.disabled-btn,
    a#custom-personalizza-btn-single[disabled],
    a#custom-personalizza-btn-single[aria-disabled="true"] {
        margin-top: 10px !important;
    }
}

.elementor-70672 .elementor-element.elementor-element-6fc3a74 .tf-widget-search .search-field:focus {
    border-width: 2px !important;
    border-style: solid !important;
    border-color: #ffffff !important;
    border-radius: 50px !important;
    outline: none !important;
}

.elementor-70672 .elementor-element.elementor-3229ee0 .tf-widget-search .search-field:focus {
    border-width: 2px !important;
    border-style: solid !important;
    border-color: #ffffff !important;
    border-radius: 50px !important;
    outline: none !important;
}

.tf-close-modal::before,
.tf-close-modal::after {
    width: 50% !important;
}

@media (max-width: 600px) {
    .tf-widget-search .tf-close-modal{
        right: -20px !important;
    }
}

.woocommerce span.onsale {
    position: absolute !important;
    top: 12px !important;
    left: 8px !important;
    right: auto !important;
    background: #d62323 !important;
    color: #fff !important;
    font-size: 12px !important;
    font-weight: 600 !important;
    padding: 4px 4px !important;
    box-shadow: 0 2px 8px rgba(0,0,0,0.07) !important;
    z-index: 9 !important;
    border: none !important;
    letter-spacing: 0.03em !important;
    text-transform: uppercase !important;
    min-width: unset !important;
    min-height: unset !important;
    border-radius: 5px !important;
}

.single-product .onsale {
    display: none !important;
}

.post-9.page.type-page .entry-title {
    margin-left: -80px !important;
}

@media (max-width: 600px) {
    .post-9.page.type-page .entry-title {
        margin-left: 0px !important;
    }
}

.wc-block-components-totals-coupon__button {
    padding: 5px !important;
}

.ajax-order-box {
    margin-bottom: 20px;
    max-width: 260px;
}

.ajax-order-box label {
    display: block;
    margin-bottom: 12px;
    font-weight: 600;
}

.ajax-order-box select {
    width: 100%;
    padding: 10px 14px;
    border: 1px solid #ccc;
    border-radius: 8px;
    font-size: 15px;
    box-shadow: 0 2px 6px rgba(0, 0, 0, 0.06);
    background-color: #fff;
    background-image: url("data:image/svg+xml;charset=UTF-8,<svg fill='%23666' height='20' viewBox='0 0 24 24' width='20' xmlns='http://www.w3.org/2000/svg'><path d='M7 10l5 5 5-5z'/></svg>");
    background-repeat: no-repeat;
    background-position: right 12px center;
    background-size: 16px 16px;
    -webkit-appearance: none;
    -moz-appearance: none;
    appearance: none;
}

.cart-quantity-preloader {
    position: absolute !important;
    top: 0 !important;
    left: 0 !important;
    right: 0 !important;
    bottom: 0 !important;
    background: rgba(255, 255, 255, 0.9) !important;
    display: flex !important;
    align-items: center !important;
    justify-content: center !important;
    z-index: 9999 !important;
    border-radius: 4px !important;
    backdrop-filter: blur(1px) !important;
}

.cart-preloader-spinner {
    display: flex !important;
    align-items: center !important;
    justify-content: center !important;
}

.cart-spinner-circle {
    width: 24px !important;
    height: 24px !important;
    border: 3px solid #f3f3f3 !important;
    border-top: 3px solid #0B77C4 !important;
    border-radius: 50% !important;
    animation: cart-spin 1s linear infinite !important;
}

@keyframes cart-spin {
    0% { transform: rotate(0deg); }
    100% { transform: rotate(360deg); }
}

@media (max-width: 768px) {
    .cart-spinner-circle {
        width: 20px !important;
        height: 20px !important;
        border-width: 2px !important;
    }
}

/* Inserisci nel CSS del tema o customizer */
.wp-block-heading.with-empty-cart-icon::before {
    display: none !important;
}


@media (max-width: 768px) {
    .wp-block-heading.with-empty-cart-icon.wc-block-cart__empty-cart__title {
        margin-top: 40px !important;
    }
}

.search-field::placeholder {
    color: transparent !important;
}

.cky-btn-revisit-wrapper.cky-revisit-bottom-left {
    display: none !important;
}

.grecaptcha-badge { 
    opacity: 0 !important;
}

.cky-notice-btn-wrapper {
    display: flex !important;
    flex-wrap: wrap !important;
    justify-content: center !important;
    gap: 12px !important;
    margin-top: 16px !important;
}

.cky-btn {
    flex: auto !important;
    max-width: 100% !important;
    font-size: 14px !important;
    font-family: inherit !important;
    line-height: 24px !important;
    padding: 8px 20px !important;
    font-weight: 500 !important;
    border-radius: 2px !important;
    cursor: pointer !important;
    text-align: center !important;
    text-transform: none !important;
    min-height: 0 !important;
    border: 2px solid transparent !important;
    margin: 0 !important;
}

.cky-btn-customize,
.cky-btn-reject {
    color: #DC1818 !important;
    background: transparent !important;
    border-color: #DC1818 !important;
}

.cky-btn-accept {
    color: #ffffff !important;
    background-color: #0B77C4 !important;
    border-color: #0B77C4 !important;
}

fieldset.hidden-fields-container {
    display: none !important;
    visibility: hidden !important;
    height: 0 !important;
    margin: 0 !important;
    padding: 0 !important;
    border: none !important;
}

.inner-scroll-top{
    display: none !important;
}

/* Stile di base per tutti i link contatti */
.contatto-link {
    font-family: 'DM Sans', sans-serif;
    font-size: 15px;
    font-weight: 400;
    text-decoration: none;
    display: inline-flex;
    align-items: center;
    gap: 6px;
    color: inherit; /* eredita il colore dal contenitore */
}

.contatto-link i {
    font-size: 14px;
}

/* Footer: bianco */
.elementor-location-footer .shortcode-footer .elementor-shortcode .contatto-link {
    color: #fff !important;
}

/* Pagina contatti: nero */
.page-id-70774 .contatto-link {
    color: black !important;
}

.page-id-71352 .product-actions a[data-product_id="364409"],
.page-id-71352 .product-actions a[data-product_id="364403"] {
    display: none !important;
}

.elementor-71354 .elementor-element.elementor-element-eebfb53 .tf-woo-product .product-item .price{
    font-size: 18px !important;
}

@media (max-width: 1024px) {
    .elementor-71354 .elementor-element.elementor-element-eebfb53 .tf-woo-product .product-item .price {
        font-size: 18px !important;
    }
}

.postid-364403 section.related.products,
.postid-364409 section.related.products {
    display: none !important;
}

@media (max-width: 1024px) {
    .postid-364403 section.related.products,
    .postid-364409 section.related.products {
        display: none !important;
    }
}

.elementor-71354 .elementor-element.elementor-element-c28f6a8 .tf-woo-product .product-item .price{
    font-size: 18px !important;
}

@media (max-width: 768px) {
    .elementor-71354 .elementor-element.elementor-element-c28f6a8 .tf-woo-product .product-item .price{
        font-size: 18px !important;
    }
    .price{
        display: none !important;
    }
}

#wpfMobileFilterBadge{
    background-color: #0b77c4 !important;
    border-radius: 50px !important;
}

/* Stile per "A partire da" sui prezzi negli archivi */
.price .from {
    color: #000 !important;
    font-weight: 500 !important;
    font-size: 14px !important;
}

/* Stile per il valore del prezzo caricato dinamicamente */
.price .price-value .woocommerce-Price-amount {
    color: red !important;
    font-weight: 700 !important;
    font-size: 14px !important;
}

/* Nascondi il prezzo principale nella pagina singolo prodotto (sotto il titolo) */
/* Ma mantieni visibili i prezzi dei prodotti correlati */
.single-product .summary.entry-summary > p.price {
    display: none !important;
}

/* Stili per i prezzi dei prodotti "offerte-limitate" */
.price .from {
    color: #000 !important;
    font-weight: 500 !important;
    font-size: 14px !important;
}

.price del {
    opacity: 0.7;
    font-size: 14px;
}

.price ins {
    background: none !important;
    text-decoration: none !important;
    color: red !important;
    font-weight: 700 !important;
    font-size: 16px !important;
}

/* Titolo prodotto su mobile */
@media (max-width: 768px) {
    h1.product_title.entry-title {
        margin-top: -40px !important;
        font-size: 28px !important;
    }
    /* Descrizione breve prodotto */
    div.woocommerce-product-details__short-description {
        font-size: 15px !important;
    }
    #tab-title-description > a  {
        font-size: 14px !important;
    }
    #tab-title-additional_information > a {
        font-size: 14px !important;
    }
}

a.button.add_to_cart_button {
    text-align: center !important;
    display: block; /* opzionale: garantisce che il text-align funzioni */
    width: 100%; /* opzionale: se vuoi che il bottone occupi tutta la larghezza */
    background-color: #FF0000;
    text-transform: uppercase;
    color: white;
}

a.button.add_to_cart_button:hover {
    background-color: #FF0000;
    color: white;
}

@media (max-width: 768px) {
    .wc-block-cart-item__wrap{
        margin-left: 10px !important;
    }
    a.button.add_to_cart_button {
        text-align: center !important;
        display: block; /* opzionale: garantisce che il text-align funzioni */
        width: 100%; /* opzionale: se vuoi che il bottone occupi tutta la larghezza */
        background-color: #FF0000;
        text-transform: uppercase;
        color: white;
    }
    .nascondo-data-form{
        display: none !important;
    }
}

.nascondo-data-form{
    display: none !important;
}

@media (max-width: 768px) {
 .alignwide{
    margin-inline-start: 0 !important;
 }
}

#tf-woo-product-ce45a83 > div > div:nth-child(1) > div > div.product-content > div > a {
    display: none !important;
}

.wc-block-checkout__order-notes{
    display: none !important;
}

.price{
    display: none !important;
}