/*
Theme Name: Elementor Child Color Family
Theme URI: https://colorfamily.it
Description: Tema child di Hello Elementor per Color Family
Author: Color Family
Template: hello-elementor
Version: 1.0.49
*/

@import url("../hello-elementor/style.css");

/* Child Theme Hello Elementor */

/* =====================================================
   HEADER — RIPRISTINO DELLA STRUTTURA DESKTOP
   Il template resta gestito con Elementor: queste regole
   impediscono soltanto che menu e icone vadano su due righe.
   ===================================================== */
@media (min-width: 1025px) {
    #masthead .elementor-element-6f07b8db {
        display: flex !important;
        align-items: center !important;
        width: 100% !important;
        min-width: 0 !important;
    }

    #masthead .elementor-element-1457e305 {
        flex: 0 0 25% !important;
        width: 25% !important;
        min-width: 180px !important;
    }

    #masthead .elementor-element-12ddcb71 {
        display: flex !important;
        flex: 1 1 auto !important;
        position: relative !important;
        inset: auto !important;
        width: auto !important;
        min-width: 0 !important;
        justify-content: flex-end !important;
    }

    #masthead .elementor-element-3eb53a50,
    #masthead .elementor-element-3eb53a50 .hfe-nav-menu,
    #masthead .elementor-element-3eb53a50 .hfe-nav-menu__layout-horizontal {
        width: auto !important;
        min-width: 0 !important;
    }

    #masthead .elementor-element-3eb53a50 .hfe-nav-menu {
        display: flex !important;
        justify-content: flex-end !important;
        flex-wrap: nowrap !important;
    }

    #masthead .elementor-element-3eb53a50 .menu-item a.hfe-menu-item {
        padding-right: 13px !important;
        padding-left: 13px !important;
        font-size: 16px !important;
        white-space: nowrap !important;
    }

    #masthead .elementor-element-4edd8156 {
        display: flex !important;
        flex: 0 0 auto !important;
        position: relative !important;
        inset: auto !important;
        width: auto !important;
        min-width: max-content !important;
        margin-left: 22px !important;
        justify-content: flex-end !important;
    }

    #masthead .elementor-element-4edd8156 .header-icons {
        display: flex !important;
        flex-wrap: nowrap !important;
        align-items: center !important;
    }
}

/* Titoli pagina: stile editoriale condiviso in tutto il sito. */
body.page .entry-title,
body.woocommerce-cart .entry-title,
body.woocommerce-checkout .entry-title,
body.woocommerce-account .entry-title,
body.woocommerce-cart .page-title,
body.woocommerce-checkout .page-title,
body.woocommerce-account .page-title,
.woocommerce-products-header__title,
.shop-hero__title {
    display: block;
    margin: 0;
    color: #000;
    font-family: 'Poppins', sans-serif;
    font-size: 35px;
    font-weight: 700;
    text-align: left;
}

/* Solo il Negozio ha una copertina più alta: le categorie restano compatte. */
body.woocommerce-shop .shop-hero,
body.post-type-archive-product .shop-hero {
    min-height: 460px;
}

/* =====================================================
   AREA PERSONALE / WOOCOMMERCE MY ACCOUNT
   ===================================================== */
body.woocommerce-account .woocommerce {
    display: grid;
    grid-template-columns: minmax(235px, 0.28fr) minmax(0, 1fr);
    gap: 34px;
    align-items: start;
    max-width: 1180px;
    margin: 30px auto 56px;
}

body.woocommerce-account .woocommerce::after {
    display: none;
}

body.woocommerce-account .cf-account-welcome {
    grid-column: 1 / -1;
    display: grid;
    grid-template-columns: minmax(140px, .24fr) minmax(0, 1fr);
    column-gap: 24px;
    align-items: center;
    padding: 24px;
    border-radius: 16px;
    background: #172b3a;
    color: #fff;
    box-shadow: 0 10px 24px rgba(23, 43, 58, .12);
}

.cf-account-welcome__eyebrow {
    display: block;
    margin-bottom: 0;
    color: #69d2c1;
    font-size: 11px;
    font-weight: 800;
    letter-spacing: .1em;
}

.cf-account-welcome strong,
.cf-account-welcome span:last-child {
    display: block;
}

.cf-account-welcome strong {
    grid-column: 2;
    margin-bottom: 4px;
    font-size: 25px;
    line-height: 1.15;
}

.cf-account-welcome span:last-child {
    grid-column: 2;
    color: rgba(255,255,255,.8);
    font-size: 14px;
    line-height: 1.5;
}

body.woocommerce-account .woocommerce-MyAccount-navigation {
    grid-column: 1;
    float: none;
    width: auto;
    margin-top: -16px;
    padding: 8px;
    border: 1px solid #e3e9e7;
    border-radius: 14px;
    background: #fff;
}

body.woocommerce-account .woocommerce-MyAccount-navigation ul {
    display: grid;
    gap: 3px;
    margin: 0;
    padding: 0;
    list-style: none;
}

body.woocommerce-account .woocommerce-MyAccount-navigation li {
    margin: 0;
}

body.woocommerce-account .woocommerce-MyAccount-navigation a {
    display: flex;
    align-items: center;
    min-height: 44px;
    padding: 10px 13px;
    border-radius: 9px;
    color: #24313b;
    font-size: 14px;
    font-weight: 700;
    text-decoration: none;
    transition: background .18s ease, color .18s ease, transform .18s ease;
}

body.woocommerce-account .woocommerce-MyAccount-navigation a:hover {
    background: #eff9f7;
    color: #107d70;
    transform: translateX(2px);
}

body.woocommerce-account .woocommerce-MyAccount-navigation .is-active a {
    background: #5bc2b3;
    color: #10252a;
}

body.woocommerce-account .woocommerce-MyAccount-content {
    grid-column: 2;
    float: none;
    width: auto;
    min-width: 0;
    padding: clamp(22px, 4vw, 38px);
    border: 1px solid #e3e9e7;
    border-radius: 16px;
    background: #fff;
    box-shadow: 0 10px 26px rgba(23, 43, 58, .06);
}

body.woocommerce-account .woocommerce-MyAccount-content > :first-child {
    margin-top: 0;
}

body.woocommerce-account .woocommerce-MyAccount-content h2,
body.woocommerce-account .woocommerce-MyAccount-content h3 {
    color: #172b3a;
    font-size: clamp(22px, 3vw, 30px);
    line-height: 1.2;
}

body.woocommerce-account .woocommerce-MyAccount-content a:not(.button) {
    color: #087b6b;
    font-weight: 700;
}

body.woocommerce-account .woocommerce-MyAccount-content .button,
body.woocommerce-account .woocommerce-MyAccount-content button {
    border-radius: 8px;
    background: #5bc2b3;
    color: #10252a;
    font-weight: 800;
}

body.woocommerce-account .woocommerce-MyAccount-content table.shop_table {
    border: 0;
    border-collapse: separate;
    border-spacing: 0 8px;
}

body.woocommerce-account .woocommerce-MyAccount-content table.shop_table th {
    padding: 10px 12px;
    border: 0;
    color: #65727b;
    font-size: 12px;
    letter-spacing: .03em;
    text-transform: uppercase;
}

body.woocommerce-account .woocommerce-MyAccount-content table.shop_table td {
    padding: 14px 12px;
    border: 0;
    background: #f7faf9;
}

body.woocommerce-account .woocommerce-MyAccount-content table.shop_table td:first-child {
    border-radius: 9px 0 0 9px;
}

body.woocommerce-account .woocommerce-MyAccount-content table.shop_table td:last-child {
    border-radius: 0 9px 9px 0;
}

body.woocommerce-account .woocommerce-MyAccount-content .woocommerce-Address {
    padding: 20px;
    border: 1px solid #e3e9e7;
    border-radius: 12px;
    background: #f7faf9;
}

@media (max-width: 1024px) {
    body.woocommerce-account .woocommerce {
        display: block;
        margin: 20px auto 38px;
    }

    body.woocommerce-account .cf-account-welcome {
        display: block;
        margin-bottom: 14px;
        padding: 20px;
    }

    .cf-account-welcome__eyebrow {
        margin-bottom: 9px;
    }

    .cf-account-welcome strong,
    .cf-account-welcome span:last-child {
        grid-column: auto;
    }

    .cf-account-welcome strong {
        margin-bottom: 8px;
    }

    body.woocommerce-account .woocommerce-MyAccount-navigation {
        margin: 0 0 16px;
        padding: 7px;
    }

    body.woocommerce-account .woocommerce-MyAccount-navigation ul {
        display: flex;
        gap: 7px;
        overflow-x: auto;
        scrollbar-width: none;
    }

    body.woocommerce-account .woocommerce-MyAccount-navigation ul::-webkit-scrollbar {
        display: none;
    }

    body.woocommerce-account .woocommerce-MyAccount-navigation li {
        flex: 0 0 auto;
    }

    body.woocommerce-account .woocommerce-MyAccount-navigation a {
        min-height: 38px;
        padding: 8px 11px;
        font-size: 13px;
        white-space: nowrap;
    }

    body.woocommerce-account .woocommerce-MyAccount-content {
        padding: 21px 16px;
        border-radius: 13px;
    }

    body.woocommerce-account .woocommerce-MyAccount-content table.shop_table,
    body.woocommerce-account .woocommerce-MyAccount-content table.shop_table tbody,
    body.woocommerce-account .woocommerce-MyAccount-content table.shop_table tr,
    body.woocommerce-account .woocommerce-MyAccount-content table.shop_table td {
        display: block;
        width: 100%;
    }

    body.woocommerce-account .woocommerce-MyAccount-content table.shop_table thead {
        display: none;
    }

    body.woocommerce-account .woocommerce-MyAccount-content table.shop_table td {
        min-height: 42px;
        padding: 9px 10px;
        border-radius: 0;
        text-align: right;
    }

    body.woocommerce-account .woocommerce-MyAccount-content table.shop_table td:first-child {
        border-radius: 9px 9px 0 0;
    }

    body.woocommerce-account .woocommerce-MyAccount-content table.shop_table td:last-child {
        border-radius: 0 0 9px 9px;
    }
}

/* Un solo riepilogo per tutte le scelte del prodotto nel carrello. */
body.woocommerce-cart .cf-cart-product-specifications {
    display: block;
    width: 100%;
    margin: 12px 0 0;
    padding: 13px;
    border: 1px solid #c0ebdc;
    border-radius: 8px;
    background: #f5fbf9;
    box-sizing: border-box;
    color: #26302e;
    font-size: 13px;
    line-height: 1.45;
}

body.woocommerce-cart .cf-cart-product-specifications::before {
    content: 'Scelte e personalizzazioni';
    display: block;
    margin-bottom: 7px;
    color: #000;
    font-size: 11px;
    font-weight: 700;
    letter-spacing: .05em;
    text-transform: uppercase;
}

body.woocommerce-cart .cf-cart-product-specifications > span {
    display: block;
    padding: 3px 0;
}

body.woocommerce-cart .cf-cart-product-specifications .wc-block-components-product-details__name,
body.woocommerce-cart .cf-cart-product-specifications .wc-block-components-product-details__value {
    display: inline;
    min-width: 0;
    margin: 0;
}

body.woocommerce-cart .cf-cart-product-specifications .wc-block-components-product-details__name {
    color: #000;
    font-weight: 700;
}

/* Indicatore soglia spedizione gratuita. */
body.woocommerce-cart .cf-free-shipping-progress {
    max-width: 1240px;
    margin: 0 auto 18px;
    padding: 14px 16px;
    border: 1px solid #cde8df;
    border-radius: 12px;
    background: #f5fbf9;
    box-sizing: border-box;
    color: #17343d;
}

body.woocommerce-cart .cf-free-shipping-progress__top {
    display: flex;
    align-items: baseline;
    justify-content: space-between;
    gap: 12px;
    font-size: 14px;
}

body.woocommerce-cart .cf-free-shipping-progress__amount { color: #55716d; font-size: 12px; font-weight: 700; white-space: nowrap; }
body.woocommerce-cart .cf-free-shipping-progress__track { height: 8px; margin: 10px 0 8px; overflow: hidden; border-radius: 999px; background: #dceae6; }
body.woocommerce-cart .cf-free-shipping-progress__bar { display: block; height: 100%; border-radius: inherit; background: #5bc2b3; transition: width .25s ease; }
body.woocommerce-cart .cf-free-shipping-progress__message { margin: 0; color: #405b57; font-size: 13px; line-height: 1.4; }
body.woocommerce-cart .cf-free-shipping-progress.is-reached { border-color: #8ed6c9; background: #edf9f5; }
body.woocommerce-cart .cf-free-shipping-progress.is-reached .cf-free-shipping-progress__bar { background: #168d7b; }
body.woocommerce-cart .cf-free-shipping-progress.is-reached .cf-free-shipping-progress__message { color: #117969; font-weight: 700; }

/* Fascia servizi: quattro vantaggi con una presenza più editoriale. */
.microcard-section {
    position: relative;
    overflow: hidden;
    isolation: isolate;
    background:
        radial-gradient(circle at 8% 20%, rgba(255,255,255,.82) 0 7%, transparent 28%),
        radial-gradient(circle at 96% 92%, rgba(255,255,255,.55) 0 5%, transparent 27%),
        linear-gradient(125deg, #b8eadb 0%, #d6f0ec 44%, #d1d5fb 100%);
    box-shadow: inset 0 1px 0 rgba(255,255,255,.82), inset 0 -1px 0 rgba(31,71,72,.08), 0 22px 50px rgba(30,74,78,.08);
}

.microcard-section::before,
.microcard-section::after {
    position: absolute;
    width: 330px;
    height: 330px;
    border-radius: 50%;
    content: '';
    pointer-events: none;
    filter: blur(2px);
}

.microcard-section::before { top: -220px; left: -120px; background: rgba(255,255,255,.48); }
.microcard-section::after { right: -160px; bottom: -245px; background: rgba(101,116,234,.14); }

.microcard-section__intro {
    position: relative;
    z-index: 1;
    max-width: 760px;
    margin: 0 auto 30px;
    text-align: center;
}

.microcard-section__intro > span {
    display: inline-flex;
    align-items: center;
    gap: 8px;
    margin-bottom: 9px;
    color: #117969;
    font-size: 11px;
    font-weight: 800;
    letter-spacing: .16em;
}

.microcard-section__intro > span::before,
.microcard-section__intro > span::after { width: 30px; height: 1px; content: ''; background: currentColor; opacity: .55; }
.microcard-section__intro h2 { margin: 0; color: #17343d; font-family: Montserrat, sans-serif; font-size: clamp(28px, 3.6vw, 46px); font-weight: 700; line-height: 1.06; letter-spacing: -.04em; }
.microcard-section__intro p { margin: 11px 0 0; color: #476067; font-size: 16px; }

.microcard-container {
    position: relative;
    z-index: 1;
    max-width: 1280px;
}

@media (min-width: 901px) {
    .microcard-container {
        display: grid;
        grid-template-columns: repeat(4, minmax(0, 1fr));
        gap: 16px;
    }

    .microcard {
        min-height: 128px;
        padding: 18px;
        border: 1px solid rgba(255,255,255,.78);
        border-radius: 18px;
        background: linear-gradient(145deg, rgba(255,255,255,.96), rgba(255,255,255,.76));
        box-shadow: 0 12px 28px rgba(23,52,61,.12), inset 0 1px 0 rgba(255,255,255,.9);
        transition: transform .2s ease, box-shadow .2s ease, border-color .2s ease;
    }

    .microcard:hover {
        transform: translateY(-4px);
        border-color: #fff;
        box-shadow: 0 20px 36px rgba(23,52,61,.18), inset 0 1px 0 rgba(255,255,255,.96);
    }
}

.microcard-image {
    width: 62px;
    height: 62px;
    padding: 7px;
    border: 1px solid rgba(23,52,61,.08);
    border-radius: 18px;
    background: linear-gradient(145deg, #fff, #e5f7f1);
    box-shadow: 0 6px 14px rgba(23,52,61,.08), inset 0 1px 0 rgba(255,255,255,.96);
    box-sizing: border-box;
}

.microcard-image img { max-width: 48px; }
.microcard-image .microcard-shipping-icon { width: 56px; height: 56px; padding: 0; border: 0; border-radius: 0; background: transparent; color: #000; box-shadow: none; }
.microcard-image .microcard-shipping-icon svg { width: 48px; height: 48px; fill: none !important; stroke: currentColor; stroke-width: 3; stroke-linecap: round; stroke-linejoin: round; }
.microcard--free-shipping .microcard-title { color: #000; }

.microcard-section,
.microcard-section .microcard-title,
.microcard-section .microcard-description,
.microcard-section__intro,
.microcard-section .trustpilot-widget {
    font-family: Montserrat, sans-serif;
}

.microcard-trustpilot { position: relative; z-index: 1; margin-top: 22px; }
.microcard-section .trustpilot-review-box { margin: 0 auto; padding: 0; }
.microcard-section .trustpilot-widget { max-width: 500px; border: 1px solid rgba(255,255,255,.82); border-radius: 18px; box-shadow: 0 14px 30px rgba(23,52,61,.12), inset 0 1px 0 rgba(255,255,255,.9); }
.cf-category-best-sellers__header { display:flex; align-items:center; justify-content:space-between; gap:20px; margin:0 0 24px; }
.cf-category-best-sellers > .cf-category-best-sellers__header h2 { margin:0; color:#17343d; font-size:clamp(24px, 3vw, 34px); }
.cf-products-carousel { overflow:hidden; }
.cf-products-carousel .products { display:flex !important; gap:18px; margin:0 !important; padding:0 2px 10px !important; overflow-x:auto; scroll-snap-type:x mandatory; scroll-behavior:smooth; scrollbar-width:none; }
.cf-products-carousel .products::-webkit-scrollbar { display:none; }
.cf-products-carousel .products > li.product { float:none !important; flex:0 0 calc(25% - 14px) !important; width:calc(25% - 14px) !important; margin:0 !important; scroll-snap-align:start; }
.cf-products-carousel__controls { display:flex; gap:8px; }
.cf-products-carousel__button { display:grid; width:40px; height:40px; padding:0; place-items:center; border:1px solid #b7d9d2; border-radius:50%; background:#fff; color:#17343d; font-size:20px; line-height:1; cursor:pointer; transition:background .16s ease, color .16s ease, transform .16s ease; }
.cf-products-carousel__button:hover { background:#5bc2b3; color:#fff; transform:translateY(-2px); }

/* Il carosello riprende esattamente la card del plugin filtri. */
.cf-category-best-sellers .cf-products-carousel .products > li.product {
    display: flex !important;
    flex-direction: column;
    overflow: hidden;
    padding: 30px !important;
    border: 1px solid #000 !important;
    border-radius: 12px !important;
    background: #fff;
    box-sizing: border-box;
}

.cf-category-best-sellers .cf-products-carousel .products > li.product > a {
    display: flex !important;
    flex: 1 1 auto;
    flex-direction: column;
    width: 100%;
    text-decoration: none !important;
}

.cf-category-best-sellers .cf-products-carousel .woocommerce-loop-product__title {
    display: -webkit-box !important;
    height: 3.9em !important;
    min-height: 3.9em;
    max-height: 3.9em;
    margin: 10px 0 0 !important;
    overflow: hidden !important;
    color: #000 !important;
    font-family: Montserrat, sans-serif !important;
    font-size: 20px !important;
    font-weight: 700 !important;
    line-height: 1.3 !important;
    text-align: center !important;
    -webkit-box-orient: vertical !important;
    -webkit-line-clamp: 3;
}

.cf-category-best-sellers .cf-products-carousel .price {
    display: block !important;
    margin-top: 10px !important;
    color: #000 !important;
    font-size: 18px !important;
    font-weight: 600 !important;
    text-align: center !important;
}

.cf-category-best-sellers .cf-products-carousel a.button {
    display: block !important;
    width: fit-content !important;
    max-width: 100% !important;
    margin: 10px auto 0 !important;
    padding: 12px 35px !important;
    border: 0 !important;
    border-radius: 5px !important;
    background: #3fb8af !important;
    color: #fff !important;
    font-family: Montserrat, sans-serif !important;
    line-height: 1.2 !important;
    text-align: center !important;
    white-space: nowrap !important;
}

/* Controlli indipendenti dagli stili globali di Elementor. */
button.cf-products-carousel__button,
button.cf-products-carousel__button:hover,
button.cf-products-carousel__button:focus,
button.cf-products-carousel__button:active {
    display: grid !important;
    width: 40px !important;
    height: 40px !important;
    min-height: 40px !important;
    padding: 0 !important;
    place-items: center;
    border: 1px solid #17343d !important;
    border-radius: 50% !important;
    outline: 0 !important;
    box-shadow: none !important;
    font-family: Montserrat, sans-serif !important;
    font-size: 20px !important;
    font-weight: 500 !important;
    line-height: 1 !important;
    text-decoration: none !important;
}

button.cf-products-carousel__button { background: #fff !important; color: #17343d !important; }
button.cf-products-carousel__button:hover,
button.cf-products-carousel__button:focus { background: #3fb8af !important; color: #fff !important; transform: translateY(-2px); }
button.cf-products-carousel__button:active { background: #17343d !important; color: #fff !important; transform: translateY(0); }

@media (max-width: 900px) {
    .microcard-section__intro { margin-bottom: 22px; }
    .cf-products-carousel .products > li.product { flex-basis:calc(50% - 9px) !important; width:calc(50% - 9px) !important; }
    .cf-category-best-sellers .cf-products-carousel .products > li.product { padding: 15px !important; }
    .cf-category-best-sellers .cf-products-carousel .woocommerce-loop-product__title { display: -webkit-box !important; height: 4.1em !important; min-height: 4.1em !important; max-height: 4.1em !important; padding-bottom: .1em !important; font-size: 17px !important; line-height: 1.3 !important; overflow: hidden !important; -webkit-box-orient: vertical !important; -webkit-line-clamp: 3; }
    .cf-category-best-sellers .cf-products-carousel .price { font-size: 16px !important; }
    .cf-category-best-sellers .cf-products-carousel a.button { width: 100% !important; margin-top: 12px !important; padding: 12px 4px !important; box-sizing: border-box !important; font-size: 13px !important; }
}

/* Header tablet e mobile: logo dominante a sinistra, azioni e menu sulla colonna destra. */
@media (max-width: 1024px) {
    /* Elementor assegna posizione assoluta ai due blocchi di destra:
       qui la annulliamo, così la griglia mobile può governare davvero
       logo, icone e hamburger. */
    #masthead .elementor-element-1457e305,
    #masthead .elementor-element-12ddcb71,
    #masthead .elementor-element-4edd8156 {
        position: relative !important;
        inset: auto !important;
    }

    #masthead .elementor-element-6f07b8db {
        display: grid !important;
        grid-template-columns: minmax(0, 65fr) minmax(0, 35fr) !important;
        grid-template-rows: 42px 42px !important;
        align-items: center !important;
        width: 100% !important;
        min-height: 100px;
        padding: 8px 14px !important;
        column-gap: 0 !important;
        row-gap: 0 !important;
        box-sizing: border-box;
    }

    #masthead .elementor-element-1457e305 {
        display: flex !important;
        grid-column: 1 !important;
        grid-row: 1 / span 2 !important;
        width: auto !important;
        min-width: 0 !important;
        height: 100% !important;
        align-items: center !important;
        justify-content: flex-start !important;
    }

    #masthead .elementor-element-420abe69,
    #masthead .elementor-element-420abe69 a {
        display: flex !important;
        align-items: center !important;
        height: 100%;
    }

    #masthead .elementor-element-420abe69 img {
        width: min(250px, 100%) !important;
        max-height: 76px !important;
        object-fit: contain;
        object-position: left center;
    }

    #masthead .elementor-element-4edd8156 {
        display: flex !important;
        grid-column: 2 !important;
        grid-row: 1 !important;
        width: auto !important;
        min-width: 0 !important;
        align-items: center !important;
        justify-content: flex-end !important;
    }

    #masthead .elementor-element-4edd8156 .elementor-shortcode,
    #masthead .elementor-element-4edd8156 .header-icons {
        display: flex !important;
        width: 100% !important;
        align-items: center !important;
        justify-content: flex-end !important;
        gap: 8px !important;
    }

    #masthead .elementor-element-4edd8156 .icon-btn {
        width: 36px !important;
        min-width: 36px !important;
        height: 36px !important;
        min-height: 36px !important;
        margin: 0 !important;
    }

    #masthead .elementor-element-12ddcb71 {
        display: flex !important;
        grid-column: 2 !important;
        grid-row: 2 !important;
        width: auto !important;
        min-width: 0 !important;
        align-items: center !important;
        justify-content: flex-end !important;
    }

    #masthead .elementor-element-3eb53a50,
    #masthead .elementor-element-3eb53a50 .hfe-nav-menu {
        width: auto !important;
        min-width: 0 !important;
    }

    #masthead .elementor-element-3eb53a50 .hfe-nav-menu__toggle {
        display: flex !important;
        width: 36px !important;
        height: 36px !important;
        margin: 0 0 0 auto !important;
        padding: 0 !important;
        align-items: center !important;
        justify-content: center !important;
    }
}

/* Le specifiche sono sempre leggibili per riga: nessun separatore "/" tra i dati. */
body.woocommerce-cart .cf-cart-product-specifications > *,
body.woocommerce-cart .cf-cart-product-specifications .wc-block-components-product-details__value {
    white-space: pre-line;
}

@media (max-width: 767px) {
    body.woocommerce-cart .cf-cart-product-specifications .wc-block-components-product-details__value {
        white-space: pre-line;
    }

    body.woocommerce-cart .cf-cart-product-specifications > * {
        white-space: pre-line;
    }

    /* Riepilogo mobile: descrizioni leggibili a sinistra, importi sempre
       agganciati al bordo destro anche con nomi di prodotto lunghi. */
    body.woocommerce-cart .cf-mobile-cart-summary__content .wc-block-components-totals-item,
    body.woocommerce-cart .wc-block-cart__sidebar .wc-block-components-totals-item,
    body.woocommerce-checkout .wc-block-components-totals-item {
        display: grid !important;
        grid-template-columns: minmax(0, 1fr) auto !important;
        column-gap: 12px;
        align-items: baseline;
        width: 100%;
        box-sizing: border-box;
    }

    body.woocommerce-cart .cf-mobile-cart-summary__content .wc-block-components-totals-item__label,
    body.woocommerce-cart .wc-block-cart__sidebar .wc-block-components-totals-item__label,
    body.woocommerce-checkout .wc-block-components-totals-item__label {
        min-width: 0;
        text-align: left !important;
    }

    body.woocommerce-cart .cf-mobile-cart-summary__content .wc-block-components-totals-item__value,
    body.woocommerce-cart .wc-block-cart__sidebar .wc-block-components-totals-item__value,
    body.woocommerce-checkout .wc-block-components-totals-item__value {
        justify-self: end;
        white-space: nowrap;
        text-align: right !important;
    }

    body.woocommerce-cart .cf-mobile-cart-summary__content .cart_totals th,
    body.woocommerce-cart .wc-block-cart__sidebar .cart_totals th {
        text-align: left !important;
    }

    body.woocommerce-cart .cf-mobile-cart-summary__content .cart_totals td,
    body.woocommerce-cart .wc-block-cart__sidebar .cart_totals td {
        text-align: right !important;
        white-space: nowrap;
    }
}

/* =========================================================
   SCHEDA PRODOTTO MOBILE / FINITURA PREMIUM
   ========================================================= */
@media (max-width: 767px) {
    .cf-mobile-product-flow {
        padding-bottom: 10px;
    }

    /* Certificazione: una riga compatta, prima dell'anteprima. */
    .cf-mobile-product-flow .product-oekotex-slot {
        margin: 12px 0 10px;
    }

    .cf-mobile-product-flow .oekotex-badge {
        display: inline-flex;
        align-items: center;
        gap: 9px;
        max-width: 100%;
        padding: 7px 10px;
        border: 1px solid #d7ebe6;
        border-radius: 9px;
        background: #f5fbf9;
        color: #17343d;
        white-space: nowrap;
    }

    .cf-mobile-product-flow .oekotex-badge img {
        flex: 0 0 38px;
        width: 38px !important;
        max-width: 38px !important;
        height: auto;
    }

    .cf-mobile-product-flow .oekotex-badge span {
        overflow: hidden;
        font-size: 11px;
        font-weight: 700;
        line-height: 1.2;
        text-overflow: ellipsis;
    }

    .cf-mobile-product-flow .product-gallery-slot {
        margin: 8px 0 20px !important;
    }

    /* Il blocco opzioni ha una gerarchia visiva stabile e ariosa. */
    .cf-mobile-product-flow .variation-invite {
        margin: 4px 0 14px;
        color: #17343d;
        font-size: 15px;
        line-height: 1.3;
        letter-spacing: .01em;
    }

    .cf-mobile-product-flow form.variations_form table.variations {
        display: block;
        margin: 0;
        padding: 14px;
        border: 1px solid #e2ece9;
        border-radius: 12px;
        background: #fff;
    }

    .cf-mobile-product-flow form.variations_form table.variations tbody,
    .cf-mobile-product-flow form.variations_form table.variations tr,
    .cf-mobile-product-flow form.variations_form table.variations th,
    .cf-mobile-product-flow form.variations_form table.variations td {
        display: block;
        width: 100%;
    }

    .cf-mobile-product-flow form.variations_form table.variations tr + tr {
        margin-top: 15px;
        padding-top: 15px;
        border-top: 1px solid #edf1f0;
    }

    .cf-mobile-product-flow form.variations_form table.variations th,
    .cf-mobile-product-flow form.variations_form table.variations td {
        padding: 0 !important;
        text-align: left;
    }

    .cf-mobile-product-flow form.variations_form table.variations th label {
        display: block;
        margin: 0 0 8px;
        color: #17343d;
        font-size: 13px;
        font-weight: 800;
        text-transform: uppercase;
    }

    .cf-mobile-product-flow form.variations_form .reset_variations {
        display: inline-block;
        margin-top: 9px;
        color: #087b6b;
        font-size: 12px;
        font-weight: 700;
    }

    /* Le grafiche diventano una griglia regolare a quattro colonne. */
    .cf-mobile-product-flow .tawcvs-swatches[data-attribute_name="attribute_pa_grafica"] {
        display: grid !important;
        grid-template-columns: repeat(4, minmax(0, 1fr));
        gap: 9px;
        width: 100%;
    }

    .cf-mobile-product-flow .tawcvs-swatches[data-attribute_name="attribute_pa_grafica"] .swatch {
        display: flex !important;
        align-items: center;
        justify-content: center;
        width: 100% !important;
        height: auto !important;
        min-width: 0 !important;
        min-height: 0 !important;
        margin: 0 !important;
        aspect-ratio: 1;
        overflow: hidden;
        border: 1px solid #dde6e4;
        border-radius: 8px;
        background: #fff;
    }

    .cf-mobile-product-flow .tawcvs-swatches[data-attribute_name="attribute_pa_grafica"] .swatch img,
    .cf-mobile-product-flow .tawcvs-swatches[data-attribute_name="attribute_pa_grafica"] .swatch-type-image {
        width: 100% !important;
        height: 100% !important;
        max-width: none !important;
        object-fit: cover;
    }

    .cf-mobile-product-flow .tawcvs-swatches[data-attribute_name="attribute_pa_grafica"] .swatch.selected,
    .cf-mobile-product-flow .tawcvs-swatches[data-attribute_name="attribute_pa_grafica"] .swatch.swatch-selected {
        border: 2px solid #087b6b;
        box-shadow: 0 0 0 2px rgba(91, 194, 179, .18);
    }

    /* Taglie e colori: allineati, leggibili, senza spazi irregolari. */
    .cf-mobile-product-flow .tawcvs-swatches:not([data-attribute_name="attribute_pa_grafica"]) {
        gap: 8px;
        margin: 0;
    }

    .cf-mobile-product-flow .tawcvs-swatches:not([data-attribute_name="attribute_pa_grafica"]) .swatch {
        margin: 0 !important;
    }

    /* CTA: dimensione da azione, non da banner. La quantità resta subito accanto. */
    .cf-mobile-product-flow .cf-mobile-primary-cart-button {
        display: block;
        width: auto !important;
        min-width: 0;
        max-width: 270px;
        margin: 18px auto 22px !important;
        padding: 13px 20px !important;
        border-radius: 9px;
    }

    .cf-mobile-product-flow .woocommerce-variation-add-to-cart {
        display: flex !important;
        flex-wrap: nowrap !important;
        align-items: center !important;
        gap: 10px;
        width: 100%;
        margin: 18px 0 22px !important;
    }

    .cf-mobile-product-flow .woocommerce-variation-add-to-cart .quantity {
        flex: 0 0 58px !important;
        width: 58px !important;
        margin: 0 !important;
    }

    .cf-mobile-product-flow .woocommerce-variation-add-to-cart .quantity input.qty {
        width: 58px !important;
        min-width: 58px !important;
        height: 46px !important;
    }

    .cf-mobile-product-flow .woocommerce-variation-add-to-cart .single_add_to_cart_button {
        flex: 0 1 auto !important;
        width: auto !important;
        max-width: calc(100% - 68px) !important;
        min-height: 46px;
        margin: 0 !important;
        padding: 11px 18px !important;
        border-radius: 9px;
        font-size: 13px;
        white-space: nowrap;
    }

    /* Immagini informative: sempre due affiancate, con altezza coerente. */
    .cf-mobile-product-flow .variation-extra-images,
    .cf-mobile-product-flow .toggle-images {
        display: grid !important;
        grid-template-columns: repeat(2, minmax(0, 1fr)) !important;
        gap: 10px;
        width: 100% !important;
        margin: 14px 0 20px;
    }

    .cf-mobile-product-flow .variation-extra-image,
    .cf-mobile-product-flow .toggle-image {
        min-width: 0;
    }

    .cf-mobile-product-flow .variation-extra-image img,
    .cf-mobile-product-flow .toggle-image img {
        width: 100%;
        aspect-ratio: 1 / 1;
        object-fit: cover;
        border-radius: 8px;
    }
}

/* =========================================================
   HARDENING RESPONSIVE
   Protezione trasversale contro sbordi e layout spezzati.
   ========================================================= */
*,
*::before,
*::after {
    box-sizing: border-box;
}

img,
svg,
video,
iframe,
embed,
object {
    max-width: 100%;
}

@media (min-width: 1025px) {
    /* Le due colonne dello shop devono lasciare spazio al gap centrale. */
    .fp-shop-layout > .fp-sidebar {
        flex: 0 0 calc(30% - 15px);
        max-width: calc(30% - 15px);
    }

    .fp-shop-layout > .fp-main {
        flex: 0 0 calc(70% - 15px);
        max-width: calc(70% - 15px);
        width: auto;
    }
}

@media (max-width: 767px) {
    html,
    body {
        width: 100%;
        max-width: 100%;
        overflow-x: clip;
    }

    /* Elementor: nessun figlio di colonne e container può imporre una larghezza fissa. */
    .elementor,
    .elementor-section,
    .elementor-container,
    .elementor-column,
    .elementor-widget,
    .elementor-widget-container,
    .e-con,
    .e-con-inner,
    .dialog-widget,
    .dialog-message {
        min-width: 0;
        max-width: 100%;
    }

    .elementor-widget-container > img,
    .elementor-widget-container picture,
    .elementor-widget-container video,
    .elementor-widget-container iframe {
        display: block;
        width: 100%;
        max-width: 100%;
        height: auto;
    }

    /* Testi lunghi, SKU e URL non devono mai dilatare le card. */
    .woocommerce,
    .woocommerce-page,
    .product,
    .product-content-wrapper,
    .product-summary,
    .fp-shop-wrapper,
    .fp-main,
    .fp-sidebar,
    .fp-products,
    .woocommerce-cart-form,
    .cart-collaterals,
    .woocommerce-checkout,
    .woocommerce-MyAccount-content {
        min-width: 0;
        max-width: 100%;
    }

    .woocommerce p,
    .woocommerce li,
    .woocommerce td,
    .woocommerce th,
    .woocommerce a,
    .product_title,
    .variation-seo-desc,
    .variation-description,
    .cfc-configurator,
    .cf-gift-wrap,
    .fp-product-card {
        overflow-wrap: anywhere;
        word-break: normal;
    }

    /* Campi e CTA sempre contenuti anche con etichette particolarmente lunghe. */
    .woocommerce input:not([type="checkbox"]):not([type="radio"]),
    .woocommerce select,
    .woocommerce textarea,
    .woocommerce button,
    .woocommerce .button,
    .cfc-configurator input,
    .cfc-configurator select,
    .cfc-configurator textarea,
    .cfc-configurator button {
        max-width: 100%;
    }

    .woocommerce form .form-row,
    .woocommerce form .form-row-wide,
    .woocommerce form .form-row-first,
    .woocommerce form .form-row-last,
    .woocommerce-checkout .col2-set .col-1,
    .woocommerce-checkout .col2-set .col-2 {
        float: none;
        width: 100%;
        max-width: 100%;
    }

    /* Le tabelle possono scorrere nel loro contenitore senza far scorrere la pagina. */
    .woocommerce .shop_table_responsive,
    .woocommerce table.shop_table,
    .woocommerce table.woocommerce-table--order-details,
    .woocommerce table.woocommerce-orders-table {
        display: block;
        width: 100%;
        max-width: 100%;
        overflow-x: auto;
        -webkit-overflow-scrolling: touch;
    }

    /* Checkout, carrello e blocchi WooCommerce recenti. */
    .wc-block-cart,
    .wc-block-checkout,
    .wc-block-components-sidebar,
    .wc-block-components-main,
    .wp-block-woocommerce-cart,
    .wp-block-woocommerce-checkout {
        min-width: 0;
        max-width: 100%;
    }

    .wc-block-components-product-metadata,
    .wc-block-cart-item__wrap,
    .wc-block-components-product-name,
    .wc-block-components-product-details {
        min-width: 0;
        overflow-wrap: anywhere;
    }

    /* Popup e modali: margine sicuro anche su schermi da 320 px. */
    #searchOverlay .box,
    #authOverlay .box,
    .elementor-popup-modal .dialog-widget-content,
    .woocommerce .woocommerce-error,
    .woocommerce .woocommerce-info,
    .woocommerce .woocommerce-message {
        width: calc(100% - 24px);
        max-width: calc(100% - 24px);
        margin-left: auto;
        margin-right: auto;
    }

    /* Gallerie, swatches e immagini informative non comprimono la pagina. */
    .woocommerce-product-gallery,
    .woocommerce-product-gallery__wrapper,
    .tawcvs-swatches,
    .cfc-option-list,
    .cf-variation-extra-images,
    .cf-toggle-images {
        min-width: 0;
        max-width: 100%;
    }

    .tawcvs-swatches,
    .cfc-option-list {
        flex-wrap: wrap;
    }
}

/* =====================================================
   CONFIGURATORE COLOR FAMILY
   Campi generati dal CSV: gruppi, taglie e opzioni.
   ===================================================== */
.single-product .cfc-configurator {
    clear: both;
    width: 100%;
    box-sizing: border-box;
}

.single-product .cfc-configurator [hidden],
.single-product .cfc-configurator .cfc-group[hidden],
.single-product .cfc-configurator .cfc-field[hidden] {
    display: none !important;
}

.single-product .cfc-configurator .cfc-size-multiple {
    display: grid;
    grid-template-columns: repeat(auto-fit, minmax(130px, 1fr));
    gap: 8px 12px;
}

.single-product .cfc-configurator .cfc-size-multiple label {
    display: flex;
    align-items: center;
    gap: 8px;
    min-height: 42px;
    margin: 0;
    padding: 8px 10px;
    border: 1px solid #cfd8d6;
    border-radius: 6px;
    background: #fff;
    cursor: pointer;
}

.single-product .cfc-configurator .cfc-size-multiple input[type="checkbox"] {
    width: auto;
    min-height: 0;
    margin: 0;
}

@media (max-width: 600px) {
    .single-product .cfc-configurator .cfc-size-multiple {
        grid-template-columns: 1fr;
    }
}

/* =========================
   PAGAMENTO WOOCOMMERCE
   Override leggero dei font e colori nativi Elementor/WooCommerce.
========================= */
body.woocommerce-checkout .woocommerce,
body.woocommerce-checkout .wc-block-checkout,
body.woocommerce-checkout .wc-block-components-sidebar,
body.woocommerce-checkout .wc-block-components-form {
    color: #000;
    font-family: Montserrat, sans-serif;
}

body.woocommerce-checkout .woocommerce h2,
body.woocommerce-checkout .woocommerce h3,
body.woocommerce-checkout .wc-block-components-title,
body.woocommerce-checkout .wc-block-checkout__payment-method-label,
body.woocommerce-checkout .wc-block-components-checkout-step__title {
    color: #000;
    font-family: Poppins, sans-serif;
    font-weight: 700;
}

body.woocommerce-checkout .woocommerce label,
body.woocommerce-checkout .wc-block-components-text-input label,
body.woocommerce-checkout .wc-block-components-checkbox__label,
body.woocommerce-checkout .wc-block-components-radio-control__label,
body.woocommerce-checkout .wc-block-components-totals-item__label {
    color: #000;
    font-family: Montserrat, sans-serif;
    font-weight: 600;
}

body.woocommerce-checkout .woocommerce input,
body.woocommerce-checkout .woocommerce select,
body.woocommerce-checkout .woocommerce textarea,
body.woocommerce-checkout .wc-block-components-text-input input,
body.woocommerce-checkout .wc-block-components-combobox .components-combobox-control__input,
body.woocommerce-checkout .wc-block-components-textarea {
    border-color: #c8d1ce;
    color: #000;
    font-family: Montserrat, sans-serif;
}

body.woocommerce-checkout .woocommerce input:focus,
body.woocommerce-checkout .woocommerce select:focus,
body.woocommerce-checkout .woocommerce textarea:focus,
body.woocommerce-checkout .wc-block-components-text-input input:focus,
body.woocommerce-checkout .wc-block-components-combobox .components-combobox-control__input:focus,
body.woocommerce-checkout .wc-block-components-textarea:focus {
    border-color: #5BC2B3;
    box-shadow: 0 0 0 1px #5BC2B3;
    outline: 0;
}

body.woocommerce-checkout .woocommerce a,
body.woocommerce-checkout .wc-block-checkout a {
    color: #5BC2B3;
}

body.woocommerce-checkout .woocommerce a:hover,
body.woocommerce-checkout .wc-block-checkout a:hover {
    color: #000;
}

/* Accettazione obbligatoria: area ampia e leggibile anche da mobile. */
body.woocommerce-checkout .woocommerce-terms-and-conditions-wrapper .form-row {
    margin: 18px 0 0;
    padding: 14px 16px;
    border: 1px solid #d8e7e3;
    border-radius: 10px;
    background: #f8fcfb;
}

body.woocommerce-checkout .woocommerce-terms-and-conditions-wrapper .woocommerce-form__label {
    display: flex;
    align-items: flex-start;
    gap: 10px;
    margin: 0;
    color: #17343d;
    font-size: 14px;
    line-height: 1.45;
}

body.woocommerce-checkout .woocommerce-terms-and-conditions-wrapper input[type="checkbox"] {
    flex: 0 0 auto;
    width: 18px;
    height: 18px;
    margin: 2px 0 0;
    accent-color: #278c7f;
}

body.woocommerce-checkout .woocommerce-terms-and-conditions-wrapper .woocommerce-privacy-policy-text {
    display: none;
}

body.woocommerce-checkout .cf-checkout-legal {
    margin: 18px 0 0;
    padding: 14px 16px;
    border: 1px solid #d8e7e3;
    border-radius: 10px;
    background: #f8fcfb;
}

body.woocommerce-checkout .cf-checkout-legal__label {
    display: flex;
    align-items: flex-start;
    gap: 10px;
    margin: 0;
    color: #17343d;
    font-family: Montserrat, sans-serif;
    font-size: 14px;
    font-weight: 600;
    line-height: 1.45;
}

body.woocommerce-checkout .cf-checkout-legal input[type="checkbox"] {
    flex: 0 0 auto;
    width: 18px;
    height: 18px;
    margin: 2px 0 0;
    accent-color: #278c7f;
}

body.woocommerce-checkout .cf-checkout-legal.is-required {
    border-color: #d84949;
    box-shadow: 0 0 0 2px rgba(216, 73, 73, .12);
}

/* Riepilogo ordine: immagine libera, quantità sotto il nome prodotto. */
body.woocommerce-checkout .wc-block-components-order-summary-item__quantity.cf-order-summary-quantity-badge,
body.woocommerce-checkout .wc-block-components-product-badge.cf-order-summary-quantity-badge {
    display: none !important;
}

body.woocommerce-checkout .cf-order-summary-quantity {
    display: block;
    margin-top: 4px;
    color: #526864;
    font-family: Montserrat, sans-serif;
    font-size: 12px;
    font-weight: 600;
    line-height: 1.3;
}

@media (max-width: 767px) {
    /* WooCommerce Blocks stampa due istanze del riepilogo su mobile: resta
       visibile quella compatta nel toggle superiore. */
    body.woocommerce-checkout .wp-block-woocommerce-checkout-order-summary-block.cf-mobile-order-summary-duplicate {
        display: none !important;
    }

    /* Il riepilogo del carrello replica il comportamento del checkout: totale
       sempre visibile, dettaglio espandibile senza rompere il layout. */
    body.woocommerce-cart .cf-mobile-cart-summary {
        width: 100%;
        margin: 18px 0;
        overflow: hidden;
        border: 1px solid #d8e7e3;
        border-radius: 12px;
        background: #fff;
    }

    body.woocommerce-cart .cf-mobile-cart-summary > summary {
        display: flex;
        align-items: center;
        justify-content: space-between;
        gap: 12px;
        min-height: 58px;
        padding: 0 16px;
        color: #17343d;
        cursor: pointer;
        font-family: Poppins, sans-serif;
        font-size: 15px;
        font-weight: 700;
        list-style: none;
    }

    body.woocommerce-cart .cf-mobile-cart-summary > summary::-webkit-details-marker {
        display: none;
    }

    body.woocommerce-cart .cf-mobile-cart-summary__heading {
        display: flex;
        align-items: center;
        justify-content: space-between;
        gap: 12px;
        min-height: 58px;
        padding: 0 16px;
        border-bottom: 1px solid #d8e7e3;
        background: #f7fbfa;
        color: #17343d;
        font-family: Poppins, sans-serif;
        font-size: 15px;
        font-weight: 700;
    }

    body.woocommerce-cart .cf-mobile-cart-summary > summary::after {
        content: '+';
        order: 3;
        color: #278c7f;
        font-size: 22px;
        font-weight: 400;
        line-height: 1;
    }

    body.woocommerce-cart .cf-mobile-cart-summary[open] > summary {
        border-bottom: 1px solid #d8e7e3;
        background: #f7fbfa;
    }

    body.woocommerce-cart .cf-mobile-cart-summary[open] > summary::after {
        content: '−';
    }

    body.woocommerce-cart .cf-mobile-cart-summary__total {
        margin-left: auto;
        color: #17343d;
        font-family: Montserrat, sans-serif;
        font-size: 15px;
        font-weight: 800;
    }

    body.woocommerce-cart .cf-mobile-cart-summary__content .cart-collaterals {
        display: block;
        width: 100%;
        margin: 0;
        padding: 16px;
        border: 0;
        border-radius: 0;
        background: #fff;
    }

    body.woocommerce-cart .cf-mobile-cart-summary__content .cart_totals {
        display: block;
        padding: 0;
        background: transparent;
    }

    body.woocommerce-cart .cf-mobile-cart-summary__content .cart_totals > h2 {
        display: none;
    }

    body.woocommerce-cart .cart-collaterals.cf-mobile-cart-summary-source,
    body.woocommerce-cart .wc-block-cart__sidebar.cf-mobile-cart-summary-source {
        display: none !important;
    }

    body.woocommerce-cart .cf-mobile-cart-summary__content .cart_totals,
    body.woocommerce-cart .cf-mobile-cart-summary__content .wc-block-components-sidebar-layout {
        display: block;
        width: 100%;
        margin: 0;
        padding: 16px;
        border: 0;
        border-radius: 0;
        background: #fff;
        box-sizing: border-box;
    }

    body.woocommerce-cart .cf-mobile-cart-summary__content .wc-block-cart__sidebar,
    body.woocommerce-cart .cf-mobile-cart-summary__content .wc-block-components-sidebar,
    body.woocommerce-cart .cf-mobile-cart-summary__content .wc-block-components-sidebar-layout {
        position: static;
        width: 100%;
        margin: 0;
        padding: 0;
        border: 0;
        border-radius: 0;
        background: transparent;
        box-shadow: none;
    }

    body.woocommerce-cart .cf-mobile-cart-summary__content .wc-block-components-totals-wrapper {
        padding: 16px;
        border: 0;
        border-radius: 0;
        background: #fff;
    }

    /* Ogni prodotto del carrello classico è una riga autonoma e leggibile:
       nessun campo di personalizzazione può più comprimersi in verticale. */
    body.woocommerce-cart .woocommerce-cart-form__contents,
    body.woocommerce-cart .woocommerce-cart-form__contents tbody,
    body.woocommerce-cart .woocommerce-cart-form__contents tr.woocommerce-cart-form__cart-item {
        display: block;
        width: 100% !important;
    }

    body.woocommerce-cart .woocommerce-cart-form__contents thead {
        display: none;
    }

    body.woocommerce-cart .woocommerce-cart-form__contents tr.woocommerce-cart-form__cart-item {
        position: relative;
        min-height: 96px;
        padding: 16px 0;
        border-bottom: 1px solid #dfe9e7;
    }

    body.woocommerce-cart .woocommerce-cart-form__contents tr.woocommerce-cart-form__cart-item td {
        display: block !important;
        width: auto !important;
        min-width: 0 !important;
        padding: 0 !important;
        border: 0 !important;
        text-align: left !important;
    }

    body.woocommerce-cart .woocommerce-cart-form__cart-item .product-thumbnail {
        float: left;
        width: 76px;
        margin: 0 14px 8px 0;
    }

    body.woocommerce-cart .woocommerce-cart-form__cart-item .product-name {
        overflow: hidden;
        width: auto !important;
        padding-right: 24px !important;
    }

    body.woocommerce-cart .woocommerce-cart-form__cart-item .product-name .variation,
    body.woocommerce-cart .woocommerce-cart-form__cart-item .product-name .wc-item-meta,
    body.woocommerce-cart .woocommerce-cart-form__cart-item .product-name .wc-item-meta li {
        display: block !important;
        width: auto !important;
        min-width: 0 !important;
        overflow-wrap: anywhere;
        word-break: normal;
    }

    body.woocommerce-cart .woocommerce-cart-form__cart-item .product-name .variation dt,
    body.woocommerce-cart .woocommerce-cart-form__cart-item .product-name .variation dd,
    body.woocommerce-cart .woocommerce-cart-form__cart-item .product-name .wc-item-meta-label,
    body.woocommerce-cart .woocommerce-cart-form__cart-item .product-name .wc-item-meta li p {
        display: inline !important;
        float: none !important;
        width: auto !important;
        margin: 0 !important;
    }

    body.woocommerce-cart .woocommerce-cart-form__cart-item .product-quantity,
    body.woocommerce-cart .woocommerce-cart-form__cart-item .product-subtotal {
        display: inline-block !important;
        margin-top: 10px;
        vertical-align: middle;
    }

    body.woocommerce-cart .woocommerce-cart-form__cart-item .product-subtotal {
        float: right;
        font-size: 15px;
    }

    body.woocommerce-cart .woocommerce-cart-form__cart-item .product-remove {
        position: absolute;
        top: 14px;
        right: 0;
    }

    /* Un solo riepilogo nativo, sempre aperto e a larghezza completa. */
    body.woocommerce-cart .site-main > .woocommerce,
    body.woocommerce-cart .site-main > .entry-content > .woocommerce {
        display: block !important;
        width: 100% !important;
    }

    body.woocommerce-cart .woocommerce-cart-form,
    body.woocommerce-cart .cart-collaterals {
        display: block !important;
        clear: both !important;
        width: 100% !important;
        max-width: 100% !important;
        float: none !important;
        min-width: 0 !important;
    }

    body.woocommerce-cart .cart-collaterals {
        margin-top: 24px;
        padding: 18px;
        border: 1px solid #d8e7e3;
        border-radius: 12px;
        background: #f8fcfb;
        box-sizing: border-box;
    }

    body.woocommerce-cart .cart-collaterals .cart_totals {
        display: block;
        width: 100%;
        margin: 0;
        padding: 0;
        background: transparent;
        box-sizing: border-box;
    }

    /* Carrello a blocchi WooCommerce: annulla la griglia desktop che, su
       schermi stretti, comprimeva immagine, campi e riepilogo in colonne. */
    body.woocommerce-cart .wc-block-cart {
        display: block !important;
        width: 100% !important;
        max-width: 100% !important;
    }

    body.woocommerce-cart .wc-block-cart__main,
    body.woocommerce-cart .wc-block-cart__sidebar {
        display: block !important;
        position: static !important;
        width: 100% !important;
        max-width: 100% !important;
        margin: 0 !important;
        padding: 0 !important;
        grid-column: auto !important;
    }

    body.woocommerce-cart .wc-block-cart__sidebar {
        clear: both;
        margin-top: 24px !important;
        padding: 18px !important;
        border: 1px solid #d8e7e3;
        border-radius: 12px;
        background: #f8fcfb;
        box-sizing: border-box;
    }

    body.woocommerce-cart .wc-block-cart-items {
        display: block !important;
        width: 100% !important;
        margin: 0 !important;
        padding: 0 !important;
    }

    body.woocommerce-cart .wc-block-cart-items thead {
        display: none !important;
    }

    body.woocommerce-cart .wc-block-cart-items tbody,
    body.woocommerce-cart .wc-block-cart-items__row {
        display: block !important;
        width: 100% !important;
    }

    body.woocommerce-cart .wc-block-cart-items__row {
        position: relative;
        min-height: 112px;
        padding: 16px 0 !important;
        border-bottom: 1px solid #dfe9e7;
        box-sizing: border-box;
    }

    body.woocommerce-cart .wc-block-cart-item__image {
        float: left;
        width: 80px !important;
        height: auto !important;
        margin: 0 14px 8px 0;
        padding: 0 !important;
    }

    body.woocommerce-cart .wc-block-cart-item__image img {
        display: block;
        width: 80px !important;
        height: 80px !important;
        object-fit: cover;
    }

    body.woocommerce-cart .wc-block-cart-item__product {
        display: block !important;
        width: auto !important;
        min-width: 0 !important;
        padding: 0 24px 0 0 !important;
        overflow: hidden;
    }

    body.woocommerce-cart .wc-block-cart-item__wrap,
    body.woocommerce-cart .wc-block-components-product-metadata,
    body.woocommerce-cart .wc-block-components-product-details {
        display: block !important;
        width: auto !important;
        min-width: 0 !important;
        overflow-wrap: anywhere;
        word-break: normal;
    }

    body.woocommerce-cart .wc-block-components-product-details > span {
        display: inline !important;
        min-width: 0 !important;
    }

    body.woocommerce-cart .wc-block-cart-item__quantity {
        clear: both;
        display: flex !important;
        align-items: center;
        justify-content: space-between;
        width: 100% !important;
        margin-top: 14px;
    }

    body.woocommerce-cart .wc-block-cart-item__total {
        display: none !important;
    }
}

body.woocommerce-checkout .woocommerce-privacy-policy-text,
body.woocommerce-checkout .wc-block-components-checkout-step__description,
body.woocommerce-checkout .wc-block-components-totals-item__description,
body.woocommerce-checkout .wc-block-components-validation-error {
    color: #3d4542;
    font-family: Montserrat, sans-serif;
}

/* CTA checkout: selettori espliciti per prevalere sugli stili dei blocchi. */
body.woocommerce-checkout #place_order,
body.woocommerce-checkout .woocommerce-form-coupon .button,
body.woocommerce-checkout .checkout_coupon .button,
body.woocommerce-checkout .wc-block-components-checkout-place-order-button,
body.woocommerce-checkout .wc-block-components-totals-coupon__button,
body.woocommerce-checkout .wc-block-components-totals-coupon button {
    border: 0 !important;
    background: #5BC2B3 !important;
    color: #fff !important;
    font-family: Montserrat, sans-serif !important;
    font-size: 14px !important;
    font-weight: 700 !important;
    text-transform: uppercase !important;
}

body.woocommerce-checkout #place_order:hover,
body.woocommerce-checkout .woocommerce-form-coupon .button:hover,
body.woocommerce-checkout .checkout_coupon .button:hover,
body.woocommerce-checkout .wc-block-components-checkout-place-order-button:hover,
body.woocommerce-checkout .wc-block-components-totals-coupon__button:hover,
body.woocommerce-checkout .wc-block-components-totals-coupon button:hover {
    background: #C0EBDC !important;
    color: #000 !important;
}

/* Respiro dedicato ai titoli dei passaggi di acquisto. */
body.woocommerce-cart .entry-title,
body.woocommerce-checkout .entry-title,
body.woocommerce-cart .page-title,
body.woocommerce-checkout .page-title {
    padding: 50px 0;
}

/* FULL WIDTH PAGINA PRODOTTO WOOCOMMERCE */
.single-product .site-content,
.single-product .content-area,
.single-product .container,
.single-product .woocommerce {
    max-width: 100% !important;
    width: 100% !important;
}

/* elimina centrature del tema */
.single-product .site-main {
    max-width: 100% !important;
    width: 100% !important;
}

/* sicurezza extra Elementor / temi moderni */
.single-product .elementor-section,
.single-product .elementor-container {
    max-width: 100% !important;
}

.product-content-wrapper, .custom-related-products, .reviews {
    margin: 0 80px;
}
.variation-info-container {
    margin-top: 20px;
    padding: 10px 0;
    border-top: 1px solid #e5e5e5;
}

.variation-seo-desc {
    font-size: 1.1em;
    color: #333;
}

.variation-tags, .selected-attributes {
    font-size: 0.95em;
    color: #666;
}

.attr-item {
    margin-bottom: 5px;
}

.product-content-wrapper {
    display: flex;
    flex-wrap: wrap;
    gap: 30px;
}

.product-images {
    flex: 1 1 45%;
}

.product-summary {
    flex: 1 1 50%;
}
/* Prezzi variazioni */
.product-variation-prices {
    margin-bottom: 15px;
    font-weight: bold;
    font-size: 16px;
}

/* Slider prodotti correlati */
.custom-related-products {
    margin-top: 40px;
}

.products-slider {
    display: flex;
    overflow-x: auto;
    gap: 20px;
    scroll-snap-type: x mandatory;
    padding-bottom: 10px;
}

.products-slider .product {
    min-width: 250px;
    flex: 0 0 auto;
    scroll-snap-align: start;
}

.products-slider::-webkit-scrollbar {
    height: 8px;
}

.products-slider::-webkit-scrollbar-thumb {
    background: #ccc;
    border-radius: 10px;
}
/* Layout prodotto forzato */
.product-content-wrapper {
    display: flex !important;
    flex-wrap: wrap;
    gap: 30px;
    align-items: flex-start;
}

/* Colonna sinistra immagini */
.product-images {
    flex: 0 0 48%;
    max-width: 48%;
}

/* Colonna destra contenuti */
.product-summary {
    flex: 0 0 48%;
    max-width: 48%;
}

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

.header-icons {
    display: flex;
    gap: 15px;
    align-items: center;
}

.header-icons .icon-btn {
    position: relative;
    font-size: 18px;
    color: #000;
    transition: color 0.2s ease-in-out;
}

.header-icons button.icon-btn {
    padding: 0;
    border: 0;
    background: transparent;
    cursor: pointer;
}

.header-icons .icon-btn i {
    color: inherit;
}

.header-icons .icon-btn:hover {
    color: #5BC2B3;
}

/* CART BADGE */
.cart-count {
    position: absolute;
    top: -6px;
    right: -8px;
    background: #000;
    color: #fff;
    font-size: 10px;
    padding: 2px 6px;
    border-radius: 50%;
}

.account-wrapper {
    position: relative;
}

.account-dropdown {
    position: absolute;
    top: calc(100% + 12px);
    right: 0;
    z-index: 1000;
    display: none;
    min-width: 170px;
    padding: 8px 0;
    background: #fff;
    border: 1px solid #e5e5e5;
    border-radius: 6px;
    box-shadow: 0 8px 24px rgba(0, 0, 0, .12);
}

.account-dropdown.active {
    display: block;
}

.account-dropdown a {
    display: block;
    padding: 9px 14px;
    color: #000;
    text-decoration: none;
}

.account-dropdown a:hover {
    background: #f5f7f7;
    color: #5BC2B3;
}

#searchOverlay.overlay,
#authOverlay.overlay {
    position: fixed;
    inset: 0;
    z-index: 9999;
    display: none;
    align-items: center;
    justify-content: center;
    padding: 20px;
    background: rgba(0, 0, 0, .45);
}

#searchOverlay.overlay.active,
#authOverlay.overlay.active {
    display: flex;
}

#searchOverlay .box,
#authOverlay .box {
    position: relative;
    box-sizing: border-box;
    background: #fff;
    border-radius: 12px;
}

#authOverlay .tab {
    display: none;
    flex-direction: column;
}

#authOverlay .tab.active {
    display: flex;
}


/* =========================
   MEGAMENU SHOP
========================= */
.cf-shop-menu-item {
    position: relative;
}

.cf-shop-megamenu {
    position: absolute;
    top: 100%;
    left: 50%;
    z-index: 99999;
    display: grid;
    grid-template-columns: repeat(4, minmax(0, 1fr));
    gap: 28px;
    width: min(1100px, 90vw);
    padding: 32px;
    background: #fff;
    border: 1px solid #edf1f0;
    border-radius: 10px;
    box-shadow: 0 15px 40px rgba(0, 0, 0, .12);
    opacity: 0;
    visibility: hidden;
    transform: translate(-50%, 12px);
    transition: opacity .2s ease, transform .2s ease, visibility .2s ease;
}

.cf-shop-menu-item:hover > .cf-shop-megamenu,
.cf-shop-menu-item:focus-within > .cf-shop-megamenu {
    opacity: 1;
    visibility: visible;
    transform: translate(-50%, 0);
}

.cf-shop-mega-group {
    margin-bottom: 12px;
}

.cf-shop-mega-parent-row {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 8px;
}

.cf-shop-mega-parent,
.cf-shop-mega-child {
    color: #000;
    text-decoration: none;
}

.cf-shop-mega-parent {
    font-size: 16px;
    font-weight: 700;
}

.cf-shop-mega-parent:hover,
.cf-shop-mega-child:hover {
    color: #5BC2B3;
}

.cf-shop-megamenu .cf-shop-mega-toggle,
.cf-shop-megamenu .cf-shop-mega-toggle:hover,
.cf-shop-megamenu .cf-shop-mega-toggle:focus {
    position: relative;
    flex: 0 0 24px;
    width: 24px;
    height: 24px;
    padding: 0 !important;
    border: 0 !important;
    background: transparent !important;
    box-shadow: none !important;
    color: #000 !important;
    cursor: pointer;
}

.cf-shop-megamenu .cf-shop-mega-toggle:hover,
.cf-shop-megamenu .cf-shop-mega-toggle:focus {
    color: #5BC2B3 !important;
}

.cf-shop-mega-toggle::before,
.cf-shop-mega-toggle::after {
    position: absolute;
    top: 50%;
    left: 50%;
    width: 10px;
    height: 2px;
    background: currentColor;
    content: '';
    transform: translate(-50%, -50%);
}

.cf-shop-mega-toggle::after {
    transform: translate(-50%, -50%) rotate(90deg);
    transition: transform .2s ease;
}

.cf-shop-mega-group.is-open .cf-shop-mega-toggle::after {
    transform: translate(-50%, -50%) rotate(0);
}

.cf-shop-mega-children {
    display: none;
    margin: 8px 0 0 14px;
    padding-left: 12px;
    border-left: 2px solid #C0EBDC;
}

.cf-shop-mega-group.is-open .cf-shop-mega-children {
    display: block;
}

.cf-shop-mega-child {
    display: block;
    padding: 4px 0;
    font-size: 14px;
}

@media (max-width: 1024px) {
    .cf-shop-megamenu {
        position: static;
        display: none;
        grid-template-columns: repeat(2, minmax(0, 1fr));
        gap: 22px;
        width: 100%;
        margin-top: 10px;
        padding: 20px;
        opacity: 1;
        visibility: visible;
        transform: none;
        box-shadow: none;
    }

    .cf-shop-menu-item.is-megamenu-open > .cf-shop-megamenu {
        display: grid;
    }

    .cf-shop-menu-item:hover > .cf-shop-megamenu,
    .cf-shop-menu-item:focus-within > .cf-shop-megamenu {
        transform: none;
    }
}

@media (max-width: 767px) {
    .cf-shop-megamenu {
        grid-template-columns: 1fr;
    }
}

/* Pagina prodotto: una sola anteprima, aggiornata dalla variazione selezionata. */
.single-product .woocommerce-product-gallery .flex-control-nav,
.single-product .woocommerce-product-gallery .woocommerce-product-gallery__trigger,
.single-product .woocommerce-product-gallery .woocommerce-product-gallery__wrapper .woocommerce-product-gallery__image:not(:first-child) {
    display: none !important;
}

.variation-extra-images[hidden] {
    display: none !important;
}

.variation-description[hidden] {
    display: none !important;
}

.variation-description {
    margin: 0 0 18px;
    color: #17343d;
}

.variation-description > :first-child {
    margin-top: 0;
}

.variation-description > :last-child {
    margin-bottom: 0;
}

/* La descrizione viene riposizionata dal tema sotto la descrizione padre.
   Nascondiamo quindi la copia standard che WooCommerce inserisce nel form. */
.single-product .single_variation .woocommerce-variation-description {
    display: none !important;
}

/* Taglie neonato: S/M/L/XL con legenda esplicita in mesi. */
.tawcvs-swatches .swatch[data-cf-baby-short] {
    position: relative;
    font-size: 0 !important;
}

.tawcvs-swatches .swatch[data-cf-baby-short] * {
    font-size: 0 !important;
}

.tawcvs-swatches .swatch[data-cf-baby-short]::after {
    position: absolute;
    inset: 0;
    z-index: 2;
    display: flex !important;
    align-items: center;
    justify-content: center;
    color: #17343d;
    font-family: Montserrat, sans-serif;
    font-size: 13px !important;
    font-weight: 700;
    line-height: 1;
    content: attr(data-cf-baby-short);
    pointer-events: none;
}

.tawcvs-swatches .swatch[data-cf-baby-short].selected,
.tawcvs-swatches .swatch[data-cf-baby-short].swatch-selected,
.tawcvs-swatches .swatch[data-cf-baby-short].swatch-selected-value {
    border-color: #5bc2b3 !important;
    background: #5bc2b3 !important;
}

.tawcvs-swatches .swatch[data-cf-baby-short].selected::after,
.tawcvs-swatches .swatch[data-cf-baby-short].swatch-selected::after,
.tawcvs-swatches .swatch[data-cf-baby-short].swatch-selected-value::after {
    color: #fff !important;
}

.tawcvs-swatches[data-attribute_name="attribute_pa_taglia"] .swatch[data-cf-baby-short].selected::after,
.tawcvs-swatches[data-attribute_name="attribute_pa_taglia"] .swatch[data-cf-baby-short].swatch-selected::after,
.tawcvs-swatches[data-attribute_name="attribute_pa_taglia"] .swatch[data-cf-baby-short].swatch-selected-value::after {
    display: flex !important;
    color: #fff !important;
    visibility: visible !important;
    opacity: 1 !important;
}

/* Il testo S/M/L/XL è inserito direttamente dal tema nel bottone swatch:
   evitiamo pseudo-elementi che il plugin può sovrascrivere quando seleziona. */
.tawcvs-swatches .swatch[data-cf-baby-short] {
    display: inline-flex !important;
    align-items: center !important;
    justify-content: center !important;
    font-size: 13px !important;
    line-height: 1 !important;
}

.tawcvs-swatches .swatch[data-cf-baby-short]::after {
    display: none !important;
    content: none !important;
}

/* Stato selezionato uniforme per tutte le taglie: adulto, bambino e neonato. */
.tawcvs-swatches[data-attribute_name="attribute_pa_taglia"] .swatch.selected,
.tawcvs-swatches[data-attribute_name="attribute_pa_taglia"] .swatch.swatch-selected,
.tawcvs-swatches[data-attribute_name="attribute_pa_taglia"] .swatch.swatch-selected-value {
    border-color: #5bc2b3 !important;
    background: #5bc2b3 !important;
    color: #fff !important;
}

.tawcvs-swatches[data-attribute_name="attribute_pa_taglia"] .swatch.selected *,
.tawcvs-swatches[data-attribute_name="attribute_pa_taglia"] .swatch.swatch-selected *,
.tawcvs-swatches[data-attribute_name="attribute_pa_taglia"] .swatch.swatch-selected-value * {
    color: #fff !important;
}

/* Grafica selezionata: contorno Color Family ben visibile. */
.tawcvs-swatches[data-attribute_name="attribute_pa_grafica"] .swatch.selected,
.tawcvs-swatches[data-attribute_name="attribute_pa_grafica"] .swatch.swatch-selected,
.tawcvs-swatches[data-attribute_name="attribute_pa_grafica"] .swatch.swatch-selected-value {
    border: 2px solid #5bc2b3 !important;
    box-shadow: 0 0 0 3px rgba(91, 194, 179, .20) !important;
}

.cf-baby-size-legend {
    display: flex;
    flex-wrap: wrap;
    gap: 6px 16px;
    margin-top: 7px;
    color: #65727b;
    font-family: Montserrat, sans-serif;
    font-size: 11px;
    line-height: 1.45;
}

.cf-baby-size-legend span {
    white-space: nowrap;
}

.variation-extra-images,
.toggle-images {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 12px;
    margin: 16px 0 24px;
}

/* Le immagini informative delle variazioni restano secondarie rispetto
   all'anteprima prodotto: occupano circa metà della larghezza disponibile. */
.variation-extra-images {
    width: min(50%, 520px);
}

.toggle-images {
    width: min(50%, 520px);
}

.variation-extra-image,
.toggle-image {
    margin: 0;
}

.variation-extra-image img,
.toggle-image img {
    display: block;
    width: 100%;
    height: auto;
    border-radius: 6px;
}

@media (max-width: 767px) {
    .variation-extra-images,
    .toggle-images {
        grid-template-columns: 1fr;
    }

    .variation-extra-images {
        width: 50%;
    }

    .toggle-images {
        width: 50%;
    }
}


/* allarga box */
#searchOverlay .box{
    width: 600px;
    max-width: 90%;
    padding: 30px;
}

/* input più grande */
#searchOverlay input[type="text"]{
    width: 100%;
    padding: 12px 14px;
    font-size: 15px;
    border: 1px solid #ddd;
    border-radius: 6px;
}

/* bottone X */
#closeSearch{
    position: absolute;
    top: -5px;
    right: -5px;
    background: none;
    border: none;
    font-size: 26px;
    color: #000;
    cursor: pointer;
    line-height: 1;
    transition: color 0.2s ease;
    font-weight: 700;
}

/* hover verde */
#closeSearch:hover{
    color: #5BC2B3;
}

/* =========================
   AUTH POPUP FIX
========================= */

/* allarga box */
#authOverlay .box{
    width: 460px;
    max-width: 90%;
    padding: 35px 30px;
}

/* input */
#authOverlay input{
    width: 100%;
    padding: 12px 14px;
    font-size: 15px;
    border: 1px solid #ddd;
    border-radius: 6px;
}

/* spazio tra elementi */
#authOverlay .tab{
    gap: 12px;
}

/* bottone principale */
#authOverlay button{
    padding: 12px;
    border: none;
    background: #000;
    color: #fff;
    cursor: pointer;
    border-radius: 6px;
    transition: background 0.2s ease;
}

#authOverlay button:hover{
    background: #762D88;
}

/* X LOGIN/REGISTER - stile corretto */
#closeAuth{
    position: absolute;
    top: 10px;
    right: 12px;
    background: transparent !important;
    border: none !important;

    font-size: 28px;
    font-weight: 700;
    color: #000 !important;

    cursor: pointer;
    line-height: 1;

    width: auto;
    height: auto;

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

    padding: 0;
}
/* hover verde */
#closeAuth:hover{
    color: #5BC2B3;
}

/* tabs */
#authOverlay .tabs{
    display: flex;
    margin-bottom: 15px;
    border-bottom: 1px solid #eee;
}

#authOverlay .tabs button{
    flex: 1;
    background: none;
    color: #666;
    padding: 10px;
    font-weight: 500;
}

#authOverlay .tabs button:hover{
    color: #5BC2B3;
}

/* tab attiva */
#authOverlay .tabs button.active{
    color: #000;
    border-bottom: 2px solid #5BC2B3;
}

/* messaggi */
#loginMsg,
#registerMsg{
    font-size: 13px;
    margin-top: 5px;
}

/* link password */
#authOverlay a{
    color: #666;
    text-decoration: none;
}

#authOverlay a:hover{
    color: #5BC2B3;
}
#registerBox label{
    display: flex;
    align-items: center;
    gap: 8px;
    font-size: 12px;
}

/* checkbox dimensione coerente */
#registerBox label input[type="checkbox"]{
    margin: 0;
    width: 14px;
    height: 14px;
    flex-shrink: 0;
}
/* =========================
   BOTTONI LOGIN / REGISTER
========================= */

#authOverlay .tab button{
    font-family: "Poppins", sans-serif;
    font-weight: 700;
    text-transform: uppercase;

    background: #5BC2B3;
    color: #000;

    border: none;
    border-radius: 6px;

    padding: 12px;
    cursor: pointer;

    transition: all 0.2s ease;
}

#authOverlay .tab button:hover{
    background: #5BC2B3;
    color: #fff;
}

#authOverlay .tabs button{
    background: transparent !important;
    color: #666;
    font-weight: 500;
    text-transform: none;
    padding: 10px;
    border: none;
    cursor: pointer;
}

/* hover SOLO testo, NO background */
#authOverlay .tabs button:hover{
    background: transparent !important;
    color: #5BC2B3;
}

/* stato attivo */
#authOverlay .tabs button.active{
    color: #000;
    border-bottom: 2px solid #5BC2B3;
}

/* =========================
   SCHEDA PRODOTOT
========================= */

        /* =========================
                MICROCARD
        ========================= */
        .microcard-section {
    width: 100%;
    background: linear-gradient(90deg, #c1eadd, #d1d4fa);
    padding: 60px 80px;
    box-sizing: border-box;
    margin: 80px 0;
}

.microcard-container {
    max-width: 100%;
    margin: 0 auto;
    display: flex;
    gap: 20px;
    width: 100%;
}

.microcard {
    flex: 1;
    background: #fff;
    border: 1px solid #000;
    border-radius: 12px;
    display: flex;
    align-items: center;
    padding: 15px;
    gap: 15px;
    box-sizing: border-box;
}

.microcard-image {
    flex: 0 0 20%;
    display: flex;
    align-items: center;
    justify-content: center;
}

.microcard-image img {
    width: 100%;
    height: auto;
    max-width: 60px;
}

.microcard-shipping-icon {
    display: flex;
    align-items: center;
    justify-content: center;
    width: 58px;
    height: 58px;
    border-radius: 50%;
    background: #c1ecdd;
    color: #17343d;
}

.microcard-shipping-icon svg {
    width: 34px;
    height: 34px;
    fill: currentColor;
}

.microcard-content {
    flex: 1;
}

.microcard-title {
    font-size: 16px;
    font-weight: 700;
    margin-bottom: 6px;
    color: #000;
    text-transform: uppercase;
}

.microcard-description {
    font-size: 14px;
    line-height: 1.4;
    color: #333;
}

/* Recensioni Trustpilot: condivise da schede prodotto, shop e categorie. */
.trustpilot-review-box {
    width: 100%;
    display: flex;
    justify-content: center;
    margin: 60px 0;
    padding: 0 20px;
    box-sizing: border-box;
}

.trustpilot-widget {
    width: 100%;
    max-width: 420px;
    padding: 22px 26px;
    background: #fff;
    border-radius: 20px;
    box-shadow: 0 10px 30px rgba(0, 0, 0, .08);
    transition: transform .3s ease, box-shadow .3s ease;
}

.trustpilot-widget:hover {
    transform: translateY(-4px);
    box-shadow: 0 18px 45px rgba(0, 0, 0, .12);
}

.trustpilot-widget iframe {
    border: none !important;
    overflow: hidden;
}

@media (max-width: 768px) {
    .trustpilot-widget {
        padding: 18px;
        border-radius: 16px;
    }
}

/* =========================
   CARRELLO WOOCOMMERCE
========================= */
body.woocommerce-cart .site-main > .woocommerce,
body.woocommerce-cart .site-main > .entry-content > .woocommerce,
body.woocommerce-cart .wc-block-cart {
    width: 100%;
    max-width: none;
    min-width: 0;
    margin: 0 !important;
    padding: 48px 0 80px;
    box-sizing: border-box;
    font-family: Montserrat, sans-serif;
    transform: none !important;
}

body.woocommerce-cart .wp-block-woocommerce-cart,
body.woocommerce-cart .wp-block-woocommerce-cart.alignwide,
body.woocommerce-cart .wp-block-woocommerce-cart.alignfull {
    width: 100% !important;
    max-width: 100% !important;
    margin: 0 !important;
    padding: 0 !important;
    transform: none !important;
}

body.woocommerce-cart .site-content,
body.woocommerce-cart .content-area,
body.woocommerce-cart .site-main {
    width: 100% !important;
    max-width: 100% !important;
    margin-left: 0 !important;
    margin-right: 0 !important;
    padding-left: 80px !important;
    padding-right: 80px !important;
    box-sizing: border-box;
}

body.woocommerce-cart .site-main > .woocommerce,
body.woocommerce-cart .site-main > .entry-content > .woocommerce {
    display: grid;
    grid-template-columns: minmax(0, 7fr) minmax(280px, 3fr);
    grid-template-areas:
        'notices notices'
        'products totals';
    gap: 28px 36px;
    align-items: start;
    justify-self: stretch;
    margin-left: 0 !important;
    margin-right: 0 !important;
}

body.woocommerce-cart .woocommerce-notices-wrapper {
    grid-area: notices;
}

body.woocommerce-cart .woocommerce-cart-form {
    grid-area: products;
    width: 100%;
    min-width: 0;
    max-width: 100%;
    float: none;
}

body.woocommerce-cart .cart-collaterals {
    grid-area: totals;
    width: 100%;
    float: none;
    position: sticky;
    top: 24px;
}

body.woocommerce-cart .woocommerce-cart-form__contents {
    width: 100% !important;
    max-width: 100%;
    min-width: 0;
    table-layout: fixed;
    box-sizing: border-box;
}

body.woocommerce-cart .woocommerce-cart-form__contents .product-name {
    width: 48%;
    overflow-wrap: anywhere;
}

body.woocommerce-cart .woocommerce-cart-form__contents,
body.woocommerce-cart .cart_totals,
body.woocommerce-cart .wc-block-cart-items,
body.woocommerce-cart .wc-block-components-totals-wrapper,
body.woocommerce-cart .wc-block-components-sidebar-layout {
    margin: 0;
    background: #fff;
    border: 1px solid #000;
    border-radius: 12px;
    box-shadow: none;
}

/* Elenco prodotti: solo separatori orizzontali, senza la cornice della card. */
body.woocommerce-cart .woocommerce-cart-form__contents,
body.woocommerce-cart .wc-block-cart-items {
    border: 0;
    border-radius: 0;
    background: transparent;
}

body.woocommerce-cart .woocommerce-cart-form__contents {
    overflow: hidden;
    border-collapse: separate;
    border-spacing: 0;
}

body.woocommerce-cart .woocommerce-cart-form__contents th,
body.woocommerce-cart .woocommerce-cart-form__contents td {
    padding: 20px 16px;
    border-color: #e5e5e5;
    vertical-align: middle;
}

body.woocommerce-cart .woocommerce-cart-form__contents thead th {
    padding-bottom: 16px;
    border-bottom: 1px solid #000;
    background: transparent;
    color: #000;
    font-size: 12px;
    font-weight: 800;
    letter-spacing: .04em;
    text-transform: uppercase;
}

body.woocommerce-cart .woocommerce-cart-form__contents th.product-name {
    padding-left: 28px;
}

body.woocommerce-cart .woocommerce-cart-form__cart-item td {
    border-bottom: 1px solid #dedede;
}

body.woocommerce-cart .wc-block-cart-items__header {
    padding: 0 20px 16px;
    border-bottom: 1px solid #000;
    color: #000;
    font-size: 12px;
    font-weight: 800;
    letter-spacing: .04em;
    text-transform: uppercase;
}

body.woocommerce-cart .wc-block-cart-items__header-product {
    padding-left: 24px;
}

body.woocommerce-cart .wc-block-cart-items__row {
    padding: 22px 20px;
    border-bottom: 1px solid #dedede;
}

body.woocommerce-cart .wc-block-cart-items__row:last-child {
    border-bottom: 0;
}

body.woocommerce-cart .woocommerce-cart-form__cart-item:last-child td {
    border-bottom: 0;
}

body.woocommerce-cart .woocommerce-cart-form__product-thumbnail img,
body.woocommerce-cart .wc-block-cart-item__image img {
    width: 96px;
    border-radius: 8px;
}

body.woocommerce-cart .product-name a,
body.woocommerce-cart .wc-block-components-product-name {
    color: #000;
    font-size: 18px;
    font-weight: 800;
    line-height: 1.35;
    text-decoration: none;
}

/* Varianti e campi del configuratore sono parte della descrizione del prodotto. */
body.woocommerce-cart .product-name .variation,
body.woocommerce-cart .product-name .wc-item-meta,
body.woocommerce-cart .wc-block-components-product-details {
    display: grid;
    grid-template-columns: max-content minmax(0, 1fr);
    gap: 7px 12px;
    margin: 14px 0 0;
    padding: 14px;
    border: 1px solid #C0EBDC;
    border-radius: 8px;
    background: #f5fbf9;
    color: #26302e;
    font-size: 13px;
    line-height: 1.4;
}

body.woocommerce-cart .product-name .variation::before,
body.woocommerce-cart .product-name .wc-item-meta::before,
body.woocommerce-cart .wc-block-components-product-details::before {
    grid-column: 1 / -1;
    margin-bottom: 2px;
    color: #000;
    content: 'Scelte e personalizzazione';
    font-size: 11px;
    font-weight: 700;
    letter-spacing: .05em;
    text-transform: uppercase;
}

body.woocommerce-cart .product-name .variation dt,
body.woocommerce-cart .product-name .wc-item-meta-label,
body.woocommerce-cart .wc-block-components-product-details__name {
    margin: 0;
    color: #000;
    font-weight: 700;
}

body.woocommerce-cart .product-name .variation dd,
body.woocommerce-cart .product-name .variation dd p,
body.woocommerce-cart .product-name .wc-item-meta li,
body.woocommerce-cart .wc-block-components-product-details__value {
    min-width: 0;
    margin: 0;
    color: #26302e;
}

body.woocommerce-cart .product-name .wc-item-meta {
    display: block;
    list-style: none;
}

body.woocommerce-cart .product-name .wc-item-meta li {
    display: grid;
    grid-template-columns: max-content minmax(0, 1fr);
    gap: 12px;
    padding: 5px 0;
}

body.woocommerce-cart .product-name a:hover,
body.woocommerce-cart .wc-block-components-product-name:hover {
    color: #5BC2B3;
}

body.woocommerce-cart .product-price,
body.woocommerce-cart .product-subtotal,
body.woocommerce-cart .wc-block-components-product-price,
body.woocommerce-cart .wc-block-components-totals-item__value {
    color: #000;
    font-weight: 800;
}

body.woocommerce-cart .quantity .qty,
body.woocommerce-cart .wc-block-components-quantity-selector {
    min-height: 40px;
    border: 1px solid #000;
    border-radius: 6px;
    background: #fff;
    color: #000;
    font-family: Montserrat, sans-serif;
}

body.woocommerce-cart .quantity .qty {
    width: 68px;
    padding: 6px;
}

body.woocommerce-cart a.remove,
body.woocommerce-cart .wc-block-cart-item__remove-link {
    color: #000 !important;
    font-size: 14px;
    font-weight: 600;
}

body.woocommerce-cart a.remove:hover,
body.woocommerce-cart .wc-block-cart-item__remove-link:hover {
    color: #e14444 !important;
    background: transparent;
}

body.woocommerce-cart .actions {
    padding: 18px 16px;
    background: #f5f7f7;
}

body.woocommerce-cart .coupon .input-text {
    min-height: 42px;
    padding: 9px 12px;
    border: 1px solid #000;
    border-radius: 6px;
    font-family: Montserrat, sans-serif;
}

body.woocommerce-cart .woocommerce-cart-form .button,
body.woocommerce-cart .cart-collaterals .button,
body.woocommerce-cart .wc-block-cart button,
body.woocommerce-cart .wc-block-cart .wc-block-components-button {
    min-height: 44px;
    border: 1px solid #5BC2B3 !important;
    border-radius: 6px !important;
    background: #5BC2B3 !important;
    color: #000 !important;
    font-family: Montserrat, sans-serif;
    font-size: 14px;
    font-weight: 700;
    text-transform: uppercase;
    transition: background-color .2s ease, border-color .2s ease, transform .2s ease;
}

body.woocommerce-cart .woocommerce-cart-form .button:hover,
body.woocommerce-cart .cart-collaterals .button:hover,
body.woocommerce-cart .wc-block-cart button:hover,
body.woocommerce-cart .wc-block-cart .wc-block-components-button:hover {
    border-color: #C0EBDC !important;
    background: #C0EBDC !important;
    transform: translateY(-1px);
}

body.woocommerce-cart .cart_totals,
body.woocommerce-cart .wc-block-components-sidebar-layout {
    width: 100%;
    padding: 26px;
    box-sizing: border-box;
}

/* Il riepilogo resta leggero: senza la cornice della card. */
body.woocommerce-cart .cart_totals,
body.woocommerce-cart .wc-block-components-sidebar-layout,
body.woocommerce-cart .wc-block-components-totals-wrapper {
    border: 0;
    border-radius: 0;
}

body.woocommerce-cart .cart_totals h2,
body.woocommerce-cart .wc-block-components-sidebar h2 {
    margin: 0 0 20px;
    color: #000;
    font-size: 20px;
    font-weight: 700;
    text-transform: uppercase;
}

body.woocommerce-cart .cart_totals table {
    margin: 0 0 20px;
    border: 0;
}

body.woocommerce-cart .cart_totals th,
body.woocommerce-cart .cart_totals td {
    padding: 12px 0;
    border-color: #e5e5e5;
}

/* Il campo coupon diventa una card autonoma e facilmente individuabile. */
body.woocommerce-cart .wc-block-components-totals-coupon,
body.woocommerce-cart .cart_totals .woocommerce-shipping-calculator {
    margin: 0 0 22px;
    padding: 16px 18px;
    border: 1px solid #e2e8e6;
    border-radius: 10px;
    background: #fff;
}

body.woocommerce-cart .wc-block-components-totals-coupon-link {
    color: #000;
    font-size: 14px;
    font-weight: 700;
    text-decoration: none;
}

body.woocommerce-cart .wc-block-components-totals-coupon-link:hover {
    color: #5BC2B3;
}

body.woocommerce-cart .cart_totals .order-total th,
body.woocommerce-cart .cart_totals .order-total td,
body.woocommerce-cart .wc-block-components-totals-footer-item .wc-block-components-totals-item__label,
body.woocommerce-cart .wc-block-components-totals-footer-item .wc-block-components-totals-item__value {
    font-size: 18px;
    font-weight: 700;
}

body.woocommerce-cart .wc-proceed-to-checkout,
body.woocommerce-cart .wc-block-cart__submit-container {
    padding: 0;
}

body.woocommerce-cart .wc-proceed-to-checkout a.checkout-button,
body.woocommerce-cart .wc-block-cart__submit-container .wc-block-components-button {
    display: flex;
    align-items: center;
    justify-content: center;
    width: 100%;
    margin: 0;
    text-decoration: none;
}

body.woocommerce-cart .wc-block-cart {
    display: grid !important;
    grid-template-columns: minmax(0, 7fr) minmax(280px, 3fr);
    gap: 36px;
    align-items: start;
}

body.woocommerce-cart .wc-block-cart__main {
    grid-column: 1;
    width: 100% !important;
    min-width: 0;
    max-width: 100%;
    margin: 0 !important;
    padding: 0 !important;
    transform: none !important;
}

body.woocommerce-cart .wc-block-cart__sidebar {
    grid-column: 2;
    position: sticky;
    top: 24px;
    width: 100%;
    min-width: 0;
    margin: 0 !important;
    padding: 0 !important;
    transform: none !important;
}

body.woocommerce-cart .wc-block-cart__main .wc-block-cart-items {
    padding: 0 20px;
}

body.woocommerce-cart .wc-block-cart-item {
    padding: 20px 0;
    border-color: #e5e5e5;
}

body.woocommerce-cart .woocommerce-message,
body.woocommerce-cart .woocommerce-info,
body.woocommerce-cart .woocommerce-error,
body.woocommerce-cart .wc-block-components-notice-banner {
    border: 1px solid #000;
    border-radius: 8px;
    background: #f5f7f7;
    color: #000;
    font-family: Montserrat, sans-serif;
}

/* Pulsanti secondari neutri: l'accento turchese è riservato al checkout. */
body.woocommerce-cart .woocommerce-cart-form .button,
body.woocommerce-cart .cart-collaterals .button,
body.woocommerce-cart .wc-block-cart button,
body.woocommerce-cart .wc-block-cart .wc-block-components-button {
    border: 0 !important;
    background: #fff !important;
    color: #000 !important;
}

body.woocommerce-cart .woocommerce-cart-form .button:hover,
body.woocommerce-cart .cart-collaterals .button:hover,
body.woocommerce-cart .wc-block-cart button:hover,
body.woocommerce-cart .wc-block-cart .wc-block-components-button:hover {
    border: 0 !important;
    background: #f5f7f7 !important;
    color: #000 !important;
}

body.woocommerce-cart .wc-proceed-to-checkout a.checkout-button,
body.woocommerce-cart .wc-block-cart__submit-container .wc-block-components-button {
    border: 0 !important;
    background: #5BC2B3 !important;
    color: #fff !important;
}

body.woocommerce-cart .wc-proceed-to-checkout a.checkout-button:hover,
body.woocommerce-cart .wc-block-cart__submit-container .wc-block-components-button:hover {
    border: 0 !important;
    background: #C0EBDC !important;
    color: #000 !important;
}

@media (max-width: 900px) {
    body.woocommerce-cart .site-content,
    body.woocommerce-cart .content-area,
    body.woocommerce-cart .site-main {
        padding-left: 40px !important;
        padding-right: 40px !important;
    }

    body.woocommerce-cart .site-main > .woocommerce,
    body.woocommerce-cart .site-main > .entry-content > .woocommerce,
    body.woocommerce-cart .wc-block-cart {
        display: block;
    }

    body.woocommerce-cart .woocommerce-cart-form,
    body.woocommerce-cart .cart-collaterals {
        width: 100%;
        float: none;
    }

    body.woocommerce-cart .cart-collaterals {
        margin-top: 24px;
        position: static;
    }

    body.woocommerce-cart .wc-block-cart__sidebar {
        position: static;
        margin-top: 24px;
    }
}

@media (max-width: 600px) {
    body.woocommerce-cart .site-main > .woocommerce,
    body.woocommerce-cart .site-main > .entry-content > .woocommerce,
    body.woocommerce-cart .wc-block-cart {
        padding: 30px 0 56px;
    }

    body.woocommerce-cart .site-content,
    body.woocommerce-cart .content-area,
    body.woocommerce-cart .site-main {
        padding-left: 20px !important;
        padding-right: 20px !important;
    }

    body.woocommerce-cart .woocommerce-cart-form__contents th,
    body.woocommerce-cart .woocommerce-cart-form__contents td {
        padding: 14px 10px;
    }

    body.woocommerce-cart .woocommerce-cart-form__product-thumbnail img,
    body.woocommerce-cart .wc-block-cart-item__image img {
        width: 64px;
    }

    body.woocommerce-cart .product-name a,
    body.woocommerce-cart .wc-block-components-product-name {
        font-size: 14px;
    }

    body.woocommerce-cart .cart_totals,
    body.woocommerce-cart .wc-block-components-sidebar-layout {
        padding: 20px;
    }
}

/* =========================
   POPUP PRODOTTO AGGIUNTO AL CARRELLO
========================= */
.cf-cart-added-modal {
    position: fixed;
    inset: 0;
    z-index: 10000;
    display: flex;
    align-items: center;
    justify-content: center;
    padding: 24px;
    background: rgba(0, 0, 0, .48);
    opacity: 0;
    visibility: hidden;
    transition: opacity .2s ease, visibility .2s ease;
}

.cf-cart-added-modal.is-open {
    opacity: 1;
    visibility: visible;
}

.cf-cart-added-modal__dialog {
    position: relative;
    width: min(100%, 640px);
    padding: 36px;
    border-radius: 16px;
    background: #fff;
    box-shadow: 0 20px 60px rgba(0, 0, 0, .2);
    font-family: Montserrat, sans-serif;
}

.cf-cart-added-modal__close {
    position: absolute;
    top: 14px;
    right: 16px;
    width: 36px;
    height: 36px;
    border: 0;
    background: transparent;
    color: #000;
    cursor: pointer;
    font-size: 28px;
    line-height: 1;
}

.cf-cart-added-modal__eyebrow {
    margin: 0 40px 24px 0;
    color: #000;
    font-size: 20px;
    font-weight: 800;
    line-height: 1.25;
    text-transform: uppercase;
}

.cf-cart-added-modal__product {
    display: grid;
    grid-template-columns: 112px minmax(0, 1fr);
    gap: 20px;
    align-items: center;
    padding: 18px;
    border: 1px solid #e2e8e6;
    border-radius: 12px;
    background: #f5fbf9;
}

.cf-cart-added-modal__image {
    width: 112px;
    height: 112px;
    border-radius: 8px;
    object-fit: cover;
}

.cf-cart-added-modal__name {
    margin: 0 0 8px;
    color: #000;
    font-size: 18px;
    font-weight: 800;
    line-height: 1.3;
}

.cf-cart-added-modal__description {
    margin: 0;
    color: #343434;
    font-size: 14px;
    line-height: 1.55;
}

.cf-cart-added-modal__actions {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 12px;
    margin-top: 24px;
}

.cf-cart-added-modal__actions a {
    display: flex;
    min-height: 48px;
    align-items: center;
    justify-content: center;
    padding: 10px 16px;
    border-radius: 6px;
    font-size: 14px;
    font-weight: 700;
    text-align: center;
    text-decoration: none;
    text-transform: uppercase;
}

.cf-cart-added-modal__continue {
    border: 1px solid #000;
    color: #000;
}

.cf-cart-added-modal__continue:hover {
    background: #f5f7f7;
    color: #000;
}

.cf-cart-added-modal__cart {
    background: #5BC2B3;
    color: #fff;
}

.cf-cart-added-modal__cart:hover {
    background: #C0EBDC;
    color: #000;
}

@media (max-width: 600px) {
    .cf-cart-added-modal {
        align-items: end;
        padding: 12px;
    }

    .cf-cart-added-modal__dialog {
        padding: 28px 20px;
    }

    .cf-cart-added-modal__product {
        grid-template-columns: 76px minmax(0, 1fr);
        gap: 14px;
        padding: 14px;
    }

    .cf-cart-added-modal__image {
        width: 76px;
        height: 76px;
    }

    .cf-cart-added-modal__actions {
        grid-template-columns: 1fr;
    }
}

/* =========================
                SCHEDA VARIE
        ========================= */

.single-product .content-area {
    padding-top: 30px;
}
.woocommerce-breadcrumb {
    margin: 0 80px !important;
}

.woocommerce:where(body:not(.woocommerce-uses-block-theme)) .woocommerce-breadcrumb {
    font-size: .92em;
    color: #767676;
    font-family: Montserrat, sans-serif;
}
.product_title {
       font-family: Montserrat, sans-serif;
       margin-bottom: 20px;
       font-weight: 700;
}
.oekotex-badge span, .parent-product-desc {
       font-family: Montserrat, sans-serif;
}
.variation-invite {
    font-size: 18px;
    font-weight: 700;
    text-transform: uppercase;
    margin: 15px 0;
}
.variation-seo-desc {
    font-size: 16px;
    font-weight: 400;
    margin: 0 0 15px;
    font-family: Montserrat, sans-serif;
}
.variation-tags {
    font-family: Montserrat, sans-serif;
    font-size: 16px;
    font-weight: 600;
}
.variation-tags a {
        color: #5BC2B3 !important;
}
.variation-tags a:hover {
    color: #5BC2B3 !important;
}
.custom-related-products .woocommerce-loop-product__title {
        font-family: Montserrat, sans-serif;
    font-size: 16px;
    font-weight: 600;
    color: #000;
}
.woocommerce:where(body:not(.woocommerce-uses-block-theme)) ul.products li.product .price {
    color: #000 !important;
    font-size: 16px !important;
    font-family: Montserrat, sans-serif;
    font-weight: 700 !important;
    margin-left: 0px !important;
}

/* TAB VARIAZIONI WOOCOMMERCE */
table.variations {
    background: #fff !important;
    width: 100%;
}

/* celle */
table.variations td,
table.variations th {
    background: #fff !important;
    padding: 6px 10px !important; /* ≈ righe max 20px */
    vertical-align: middle;
}

/* elimina eventuali righe alternate */
table.variations tr {
    background: #fff !important;
}

/* select e input più compatti */
table.variations select {
    padding: 4px 8px;
    height: 32px;
}

/* label più pulite */
table.variations label {
    font-size: 13px;
    font-weight: 500;
}
.woocommerce.single-product .cart.variations_form .tawcvs-swatches .swatch-type-image {
	    width: 50px !important;
    height: 50px !important;
}
.woocommerce div.product .cart.variations_form .tawcvs-swatches .swatch-type-image.swatch-shape-circle::before {
	border-radius: 0px;
}

/* Ordine naturale delle taglie nei pulsanti del plugin swatches. */
.woocommerce.single-product .cart.variations_form .tawcvs-swatches {
    display: flex;
    flex-wrap: wrap;
}
.woocommerce.single-product .cart.variations_form .tawcvs-swatches .swatch[data-value="0-6-mesi"] { order: 10; }
.woocommerce.single-product .cart.variations_form .tawcvs-swatches .swatch[data-value="6-12-mesi"] { order: 20; }
.woocommerce.single-product .cart.variations_form .tawcvs-swatches .swatch[data-value="12-18-mesi"] { order: 30; }
.woocommerce.single-product .cart.variations_form .tawcvs-swatches .swatch[data-value="18-24-mesi"] { order: 40; }
.woocommerce.single-product .cart.variations_form .tawcvs-swatches .swatch[data-value="1-2-anni"] { order: 50; }
.woocommerce.single-product .cart.variations_form .tawcvs-swatches .swatch[data-value="3-4-anni"] { order: 60; }
.woocommerce.single-product .cart.variations_form .tawcvs-swatches .swatch[data-value="5-6-anni"] { order: 70; }
.woocommerce.single-product .cart.variations_form .tawcvs-swatches .swatch[data-value="7-8-anni"] { order: 80; }
.woocommerce.single-product .cart.variations_form .tawcvs-swatches .swatch[data-value="9-10-anni"] { order: 90; }
.woocommerce.single-product .cart.variations_form .tawcvs-swatches .swatch[data-value="s"] { order: 100; }
.woocommerce.single-product .cart.variations_form .tawcvs-swatches .swatch[data-value="m"] { order: 110; }
.woocommerce.single-product .cart.variations_form .tawcvs-swatches .swatch[data-value="l"] { order: 120; }
.woocommerce.single-product .cart.variations_form .tawcvs-swatches .swatch[data-value="xl"] { order: 130; }
.woocommerce.single-product .cart.variations_form .tawcvs-swatches .swatch[data-value="xxl"] { order: 140; }
.woocommerce.single-product .cart.variations_form .tawcvs-swatches .swatch[data-value="3xl"] { order: 150; }
.woocommerce.single-product .cart.variations_form .tawcvs-swatches .swatch[data-value="4xl"] { order: 160; }
.woocommerce.single-product .cart.variations_form .tawcvs-swatches .swatch[data-value="5xl"] { order: 170; }
.woocommerce #content div.product div.images, .woocommerce div.product div.images, .woocommerce-page #content div.product div.images, .woocommerce-page div.product div.images
 {
    float: left;
    width: 100%;
}
.toggle-title {
    font-family: Montserrat, sans-serif;
}
.woocommerce:where(body:not(.woocommerce-uses-block-theme)) div.product span.price {
    color: #000;
    font-size: 22px;
    font-family: Montserrat, sans-serif;
    font-weight: 700;
    margin-left: 30px;
}
.woocommerce:where(body:not(.woocommerce-uses-block-theme)) div.product .stock {
    color: #000;
    margin-left: 30px;
}
/* Le quantità restano gestite da WooCommerce, ma non vengono mostrate
   nella scheda prodotto (anche dopo il cambio di variazione). */
.single-product div.product .stock,
.single-product div.product .woocommerce-variation-availability {
    display: none !important;
}
.cf-mobile-product-flow { display: none; }
.cf-mobile-primary-cart-button { display: none; }
.cf-personalisation-notice {
    display: none;
    position: fixed;
    z-index: 100000;
    inset: 0;
    align-items: center;
    justify-content: center;
    padding: 24px;
    background: rgba(23, 52, 61, .48);
}
.cf-personalisation-notice.is-open { display: flex; }
.cf-personalisation-notice__dialog {
    position: relative;
    width: min(100%, 390px);
    padding: 32px 48px 30px 24px;
    border-radius: 14px;
    background: #fff;
    box-shadow: 0 18px 45px rgba(0, 0, 0, .22);
    color: #17343d;
    font: 700 18px/1.4 Montserrat, sans-serif;
}
.cf-personalisation-notice__dialog p { margin: 0; }
.cf-personalisation-notice__close {
    position: absolute;
    top: 8px;
    right: 12px;
    padding: 0;
    border: 0;
    background: transparent;
    color: #17343d;
    font-size: 30px;
    line-height: 1;
    cursor: pointer;
}

/* Popup prodotto: stessa famiglia visiva per richiesta configurazione e
   conferma dell'aggiunta al carrello. */
.cf-personalisation-notice,
.cf-cart-added-modal {
    background: rgba(23, 52, 61, .52);
    backdrop-filter: blur(3px);
}

.cf-personalisation-notice__dialog,
.cf-cart-added-modal__dialog {
    border: 1px solid #dbe9e5;
    border-radius: 16px;
    box-shadow: 0 20px 60px rgba(15, 37, 42, .24);
}

.cf-personalisation-notice__dialog {
    width: min(100% - 32px, 520px);
    padding: 34px 52px 32px 26px;
    color: #17343d;
    font: 800 18px/1.42 Montserrat, sans-serif;
}

.cf-personalisation-notice__dialog::before {
    display: block;
    margin: 0 0 9px;
    color: #087b6b;
    font-size: 12px;
    font-weight: 800;
    letter-spacing: .07em;
    content: 'PRIMA DI PROCEDERE';
}

.cf-personalisation-notice__close,
.cf-cart-added-modal__close {
    color: #17343d;
}

.cf-cart-added-modal__eyebrow {
    color: #087b6b;
}

.cf-cart-added-modal__cart {
    border-radius: 9px;
    background: #5bc2b3;
    color: #fff;
}

.cf-cart-added-modal__continue {
    border-color: #17343d;
    border-radius: 9px;
    color: #17343d;
}

@media (max-width: 600px) {
    .cf-personalisation-notice {
        align-items: end;
        padding: 12px;
    }

    .cf-personalisation-notice__dialog {
        width: 100%;
        padding: 27px 48px 27px 20px;
        border-radius: 14px;
        font-size: 16px;
    }
}
@media (max-width: 767px) {
    .cf-mobile-layout-ready .product-content-wrapper { display: none !important; }
    .cf-mobile-layout-ready .cf-mobile-product-flow { display: block; }
    .cf-mobile-product-flow > * { margin-left: 0 !important; margin-right: 0 !important; }
    .cf-mobile-product-flow .product-reviews-slot { margin: 18px 0 12px; }
    .cf-mobile-product-flow .product-title-slot h1 { margin-top: 0; }
    .cf-mobile-product-flow .product-gallery-slot { margin: 18px 0 24px !important; }
    .cf-mobile-product-flow .parent-product-desc { margin: 16px 0 22px !important; }
    .cf-mobile-product-flow .variation-invite { margin: 0 0 12px; }
    .cf-mobile-product-flow .product-custom-box { margin-top: 28px !important; }
    .cf-mobile-product-flow .cart { margin-top: 0; }
    .cf-mobile-product-flow .cfc-configurator { scroll-margin-top: 22px; }
    .cf-mobile-product-flow .cf-mobile-primary-cart-button {
        display: block;
        width: 100%;
        margin: 18px 0 22px;
    }
    .cf-mobile-product-flow .cfc-configurator + .quantity,
    .cf-mobile-product-flow .cfc-configurator + .quantity + .single_add_to_cart_button { margin-top: 18px; }
    .cf-mobile-product-flow .single_add_to_cart_button { width: calc(100% - 74px); }
}
.single-product .woocommerce-variation-add-to-cart {
    margin-left: 30px;
}
.woocommerce:where(body:not(.woocommerce-block-theme-has-button-styles)) button.button.alt {
    background-color: #5BC2B3;
    text-transform: uppercase !important;
    font-family: Montserrat, sans-serif;
    padding: 13px 25px;
}
.woocommerce:where(body:not(.woocommerce-block-theme-has-button-styles)) button.button.alt:hover {
    background-color: #C0EBDC;
    color: #000;
}
.woocommerce:where(body:not(.woocommerce-block-theme-has-button-styles)) button.button.alt.disabled, .woocommerce:where(body:not(.woocommerce-block-theme-has-button-styles)) button.button.alt.disabled:hover {
    background-color: #C0EBDC;
}

.reference-line-1 {
    font-size: 14px;
    font-weight:700;
    text-transform: uppercase;
    margin-bottom: 0px;
}
.reference-line-2 {
    font-size: 14px;
    font-weight:700;
    margin-bottom: 30px;
}

.select-button {
    color: #fff !important;
    text-transform: uppercase !important;
    background-color: #5BC2B3 !important;
    padding: 10px 35px !important;
    font-weight: 700 !important;
    border-radius: 12px !important;
}

/* =========================
   FIX LAYOUT STABILITÀ AJAX
   (RISOLVE 1/4 PAGE BUG)
========================= */

/* WRAPPER FORZATO */
.fp-shop-wrapper{
    width: 100%;
}

/* BLOCCO FLEX STABILE */
.fp-shop-layout{
    display: flex;
    gap: 30px;
    align-items: flex-start;
    width: 100%;
}

/* 🔒 BLOCCA IL CALCOLO FLEX ERRATO */
.fp-sidebar{
    flex: 0 0 30%;
    max-width: 30%;
}

.fp-main{
    flex: 0 0 70%;
    max-width: 70%;
    min-width: 0;
    width: 70%;
}

/* SIDEBAR */
.fp-sidebar{
    flex: 0 0 30%;
}

/* MAIN AREA */
.fp-main{
    flex: 1 1 70%;
    min-width: 0;
    width: 70%;
    display: flex;
    flex-direction: column;
}

/* GRID PRODOTTI */
.fp-products{
    display: grid;
    grid-template-columns: repeat(3, minmax(0, 1fr));
    gap: 20px;
    width: 100%;
    min-width: 0;
}

/* FIX IMPORTANTE: evita shrink dopo AJAX repaint */
.fp-main,
.fp-products{
    min-width: 0;
    width: 100%;
}

.shop-hero {
    position: relative;
    background-size: cover;
    background-position: center;
    min-height: 350px;
    display: flex;
    align-items: center;
    padding: 0 20px;
}

.shop-hero__content {
    position: relative;
    max-width: 900px;
    width: 100%;
    margin: 0 auto;
    text-align: left;
}

.shop-hero__title {
    font-family: 'Poppins', sans-serif;
    font-size: 35px;
    font-weight: 700;
    color: #000;
    text-align: left;
    display: block;
    margin: 0;
}

/* descrizione categoria */
.shop-category-description {
    text-align: center;
    max-width: 900px;
    margin: 40px auto 40px;
    font-size: 16px;
    line-height: 1.6;
}
.shop-category-description p {
    font-family: 'Poppins', sans-serif;
    font-size: 16px;
    text-align: center;
    max-width: 900px;
    margin: 40px auto 60px;
    line-height: 1.6;
}
.shop-layout.fp-shop-wrapper {
    width: 90%;
    max-width: 1600px;
    margin: 0 auto;
}

/* =========================
   FIX MENU ARCHIVI SAFE
========================= */


.hfe-nav-menu,
.hfe-nav-menu__layout-horizontal ul {
    width: auto !important;
    display: flex !important;
    flex-wrap: nowrap !important;
}

/* CRITICO: elimina il 0px inline */
nav.hfe-nav-menu__layout-horizontal[style*="width: 0"] {
    width: auto !important;
}
nav.hfe-nav-menu__layout-horizontal {
    width: auto !important;
    min-width: max-content !important;
    display: flex !important;
    position: relative !important;
}

.hfe-nav-menu {
    width: auto !important;
    display: flex !important;
}
.fp-shop-layout,
.fp-main {
    min-width: 0 !important;
}
.hfe-nav-menu__layout-horizontal{
    width:auto !important;
    left:auto !important;
}

/* =========================================================
   RESPONSIVE OTTIMIZZATO
   PROGETTO COLOR FAMILY
   ========================================================= */


/* =========================================================
   TABLET / DESKTOP PICCOLO
   1200px
   ========================================================= */

@media (max-width: 1200px) {

    /* -----------------------------------------
       PRODOTTO
    ----------------------------------------- */

    .product-content-wrapper,
    .custom-related-products,
    .reviews {
        margin-left: 50px;
        margin-right: 50px;
    }

    .product-content-wrapper {
        gap: 25px;
    }

    .product-images,
    .product-summary {
        flex-basis: calc(50% - 12.5px);
        max-width: calc(50% - 12.5px);
    }

    .woocommerce-breadcrumb {
        margin-left: 50px !important;
        margin-right: 50px !important;
    }


    /* -----------------------------------------
       SHOP
    ----------------------------------------- */

    .shop-layout.fp-shop-wrapper {
        width: 92%;
    }

    .fp-shop-layout {
        gap: 25px;
    }

    .fp-sidebar {
        flex: 0 0 calc(30% - 12.5px);
        max-width: calc(30% - 12.5px);
    }

    .fp-main {
        flex: 0 0 calc(70% - 12.5px);
        max-width: calc(70% - 12.5px);
        width: auto;
    }


    /* -----------------------------------------
       MICROCARD
    ----------------------------------------- */

    .microcard-section {
        padding-left: 50px;
        padding-right: 50px;
    }

    .microcard {
        padding: 14px;
    }


    /* -----------------------------------------
       SEARCH / AUTH POPUP
    ----------------------------------------- */

    #searchOverlay .box {
        width: 560px;
    }

    #authOverlay .box {
        width: 440px;
    }
}


/* =========================================================
   TABLET
   1024px
   ========================================================= */

@media (max-width: 1024px) {

    /* -----------------------------------------
       SHOP
    ----------------------------------------- */

    .fp-shop-layout {
        flex-direction: column;
        gap: 30px;
    }

    .fp-sidebar,
    .fp-main {
        width: 100%;
        max-width: 100%;
        flex: 0 0 100%;
    }

    .fp-sidebar {
        order: 1;
    }

    .fp-main {
        order: 2;
    }

    .fp-products {
        grid-template-columns: repeat(2, minmax(0, 1fr));
        gap: 20px;
    }


    /* -----------------------------------------
       SHOP HERO
    ----------------------------------------- */

    .shop-hero {
        min-height: 300px;
        padding-left: 30px;
        padding-right: 30px;
    }

    .shop-hero__content {
        max-width: 100%;
    }

    .shop-hero__title {
        font-size: 32px;
    }


    /* -----------------------------------------
       DESCRIZIONE CATEGORIA
    ----------------------------------------- */

    .shop-category-description {
        max-width: 90%;
        margin-top: 30px;
        margin-bottom: 40px;
    }

    .shop-category-description p {
        max-width: 100%;
        margin-top: 30px;
        margin-bottom: 40px;
    }


    /* -----------------------------------------
       PRODOTTO
    ----------------------------------------- */

    .product-content-wrapper {
        gap: 25px;
    }

    .product-images,
    .product-summary {
        flex: 0 0 calc(50% - 12.5px);
        max-width: calc(50% - 12.5px);
    }

    .product-content-wrapper,
    .custom-related-products,
    .reviews {
        margin-left: 30px;
        margin-right: 30px;
    }

    .woocommerce-breadcrumb {
        margin-left: 30px !important;
        margin-right: 30px !important;
    }


    /* -----------------------------------------
       PREZZO / STOCK / ADD TO CART
    ----------------------------------------- */

    .woocommerce:where(body:not(.woocommerce-uses-block-theme))
    div.product span.price {
        margin-left: 15px;
    }

    .woocommerce:where(body:not(.woocommerce-uses-block-theme))
    div.product .stock {
        margin-left: 15px;
    }

    .single-product .woocommerce-variation-add-to-cart {
        margin-left: 15px;
    }


    /* -----------------------------------------
       MICROCARD
    ----------------------------------------- */

    .microcard-section {
        padding-left: 30px;
        padding-right: 30px;
    }

    .microcard-container {
        gap: 15px;
    }


    /* -----------------------------------------
       HEADER ICONS
    ----------------------------------------- */

    .header-icons {
        gap: 12px;
    }

    .header-icons .icon-btn {
        font-size: 17px;
    }


    /* -----------------------------------------
       SEARCH
    ----------------------------------------- */

    #searchOverlay .box {
        width: 520px;
        padding: 25px;
    }


    /* -----------------------------------------
       AUTH
    ----------------------------------------- */

    #authOverlay .box {
        width: 420px;
        padding: 30px 25px;
    }
}


/* =========================================================
   TABLET PICCOLO
   900px
   ========================================================= */

@media (max-width: 900px) {

    /* -----------------------------------------
       MICROCARD
    ----------------------------------------- */

    .microcard-container {
        flex-direction: column;
        gap: 15px;
    }

    .microcard {
        width: 100%;
        min-height: 80px;
    }

    .microcard-image {
        flex: 0 0 60px;
    }

    .microcard-image img {
        max-width: 55px;
    }


    /* -----------------------------------------
       PRODOTTO
    ----------------------------------------- */

    .variation-seo-desc {
        font-size: 15px;
    }

    .variation-tags {
        font-size: 15px;
    }

    .variation-invite {
        font-size: 17px;
    }

    .product_title {
        margin-bottom: 15px;
    }


    /* -----------------------------------------
       RELATED PRODUCTS
    ----------------------------------------- */

    .products-slider {
        gap: 15px;
    }

    .products-slider .product {
        min-width: 220px;
    }
}


/* =========================================================
   MOBILE GRANDE
   768px
   ========================================================= */

@media (max-width: 768px) {

    /* -----------------------------------------
       PRODOTTO
    ----------------------------------------- */

    .product-content-wrapper {
        flex-direction: column;
        gap: 30px;
        margin-left: 20px;
        margin-right: 20px;
    }

    .product-images,
    .product-summary {
        width: 100%;
        max-width: 100%;
        flex: 0 0 100%;
    }

    .product-images {
        order: 1;
    }

    .product-summary {
        order: 2;
    }

    .custom-related-products,
    .reviews {
        margin-left: 20px;
        margin-right: 20px;
    }

    .woocommerce-breadcrumb {
        margin-left: 20px !important;
        margin-right: 20px !important;
    }


    /* -----------------------------------------
       PRODUCT CONTENT
    ----------------------------------------- */

    .variation-info-container {
        margin-top: 15px;
        padding: 10px 0;
    }

    .variation-invite {
        font-size: 16px;
    }

    .variation-seo-desc {
        font-size: 15px;
        line-height: 1.55;
    }

    .variation-tags {
        font-size: 14px;
        line-height: 1.5;
    }

    .attr-item {
        margin-bottom: 6px;
    }


    /* -----------------------------------------
       PREZZO
    ----------------------------------------- */

    .woocommerce:where(body:not(.woocommerce-uses-block-theme))
    div.product span.price {
        font-size: 20px;
        margin-left: 0;
    }

    .woocommerce:where(body:not(.woocommerce-uses-block-theme))
    div.product .stock {
        margin-left: 0;
    }

    .single-product .woocommerce-variation-add-to-cart {
        margin-left: 0;
    }


    /* -----------------------------------------
       VARIATIONI
    ----------------------------------------- */

    table.variations {
        width: 100%;
    }

    table.variations td,
    table.variations th {
        padding: 6px 8px !important;
    }

    table.variations label {
        font-size: 12px;
    }

    .woocommerce.single-product
    .cart.variations_form
    .tawcvs-swatches
    .swatch-type-image {
        width: 46px !important;
        height: 46px !important;
    }


    /* -----------------------------------------
       BUTTON
    ----------------------------------------- */

    .select-button {
        width: 100%;
        text-align: center;
        padding: 11px 20px !important;
    }

    .woocommerce:where(body:not(.woocommerce-block-theme-has-button-styles))
    button.button.alt {
        width: 100%;
        padding: 13px 20px;
    }


    /* -----------------------------------------
       SHOP
    ----------------------------------------- */

    .shop-layout.fp-shop-wrapper {
        width: calc(100% - 40px);
        max-width: none;
    }

    .fp-shop-layout {
        gap: 25px;
    }

    .fp-products {
        grid-template-columns: repeat(2, minmax(0, 1fr));
        gap: 15px;
    }


    /* -----------------------------------------
       SHOP HERO
    ----------------------------------------- */

    .shop-hero {
        min-height: 260px;
        padding: 0 20px;
    }

    .shop-hero__title {
        font-size: 28px;
        line-height: 1.15;
    }


    /* -----------------------------------------
       CATEGORY DESCRIPTION
    ----------------------------------------- */

    .shop-category-description {
        width: calc(100% - 40px);
        max-width: none;
        margin: 25px auto 30px;
    }

    .shop-category-description p {
        width: 100%;
        margin: 0 auto 30px;
        font-size: 15px;
        line-height: 1.6;
    }


    /* -----------------------------------------
       MICROCARD
    ----------------------------------------- */

    .microcard-section {
        margin: 50px 0;
        padding: 40px 20px;
    }

    .microcard {
        padding: 15px;
        gap: 12px;
    }

    .microcard-image {
        flex: 0 0 55px;
    }

    .microcard-title {
        font-size: 14px;
        margin-bottom: 5px;
    }

    .microcard-description {
        font-size: 13px;
        line-height: 1.45;
    }


    /* -----------------------------------------
       RELATED PRODUCTS
    ----------------------------------------- */

    .custom-related-products {
        margin-top: 30px;
    }

    .products-slider {
        gap: 12px;
        padding-bottom: 8px;
    }

    .products-slider .product {
        min-width: 190px;
    }

    .custom-related-products
    .woocommerce-loop-product__title {
        font-size: 14px;
    }


    /* -----------------------------------------
       HEADER ICONS
    ----------------------------------------- */

    .header-icons {
        gap: 10px;
    }

    .header-icons .icon-btn {
        font-size: 16px;
    }

    .cart-count {
        top: -5px;
        right: -7px;
        font-size: 9px;
        padding: 2px 5px;
    }


    /* -----------------------------------------
       SEARCH POPUP
    ----------------------------------------- */

    #searchOverlay .box {
        width: calc(100% - 40px);
        max-width: none;
        padding: 25px 20px;
    }

    #searchOverlay input[type="text"] {
        padding: 11px 12px;
        font-size: 14px;
    }

    #closeSearch {
        top: -8px;
        right: -2px;
        font-size: 24px;
    }


    /* -----------------------------------------
       AUTH POPUP
    ----------------------------------------- */

    #authOverlay .box {
        width: calc(100% - 40px);
        max-width: none;
        padding: 30px 20px;
    }

    #authOverlay input {
        padding: 11px 12px;
        font-size: 14px;
    }

    #closeAuth {
        top: 8px;
        right: 10px;
        font-size: 24px;
    }

    #authOverlay .tabs button {
        padding: 9px 6px;
        font-size: 13px;
    }

    #registerBox label {
        align-items: flex-start;
        line-height: 1.4;
    }
}


/* =========================================================
   MOBILE
   600px
   ========================================================= */

@media (max-width: 600px) {

    /* -----------------------------------------
       GENERALE
    ----------------------------------------- */

    .single-product .content-area {
        padding-top: 20px;
    }


    /* -----------------------------------------
       BREADCRUMB
    ----------------------------------------- */

    .woocommerce-breadcrumb {
        margin-left: 15px !important;
        margin-right: 15px !important;
        font-size: 12px !important;
        line-height: 1.5;
    }


    /* -----------------------------------------
       PRODOTTO
    ----------------------------------------- */

    .product-content-wrapper,
    .custom-related-products,
    .reviews {
        margin-left: 15px;
        margin-right: 15px;
    }

    .product-content-wrapper {
        gap: 25px;
    }

    .product_title {
        font-size: 26px;
        line-height: 1.15;
        margin-bottom: 15px;
    }


    /* -----------------------------------------
       PRODUCT INFO
    ----------------------------------------- */

    .variation-info-container {
        margin-top: 12px;
    }

    .variation-invite {
        font-size: 15px;
        line-height: 1.3;
    }

    .variation-seo-desc {
        font-size: 14px;
        line-height: 1.55;
    }

    .variation-tags {
        font-size: 14px;
    }


    /* -----------------------------------------
       PREZZO
    ----------------------------------------- */

    .woocommerce:where(body:not(.woocommerce-uses-block-theme))
    div.product span.price {
        font-size: 19px;
    }


    /* -----------------------------------------
       VARIATIONI
    ----------------------------------------- */

    table.variations td,
    table.variations th {
        display: block;
        width: 100%;
        padding: 5px 0 !important;
    }

    table.variations tr {
        display: block;
        margin-bottom: 10px;
    }

    table.variations select {
        width: 100%;
        height: 38px;
        padding: 6px 8px;
    }

    .woocommerce.single-product
    .cart.variations_form
    .tawcvs-swatches {
        display: flex;
        flex-wrap: wrap;
        gap: 8px;
    }

    .woocommerce.single-product
    .cart.variations_form
    .tawcvs-swatches
    .swatch-type-image {
        width: 44px !important;
        height: 44px !important;
    }


    /* -----------------------------------------
       RIFERIMENTI
    ----------------------------------------- */

    .reference-line-1,
    .reference-line-2 {
        font-size: 12px;
    }

    .reference-line-2 {
        margin-bottom: 20px;
    }


    /* -----------------------------------------
       SHOP
    ----------------------------------------- */

    .shop-layout.fp-shop-wrapper {
        width: calc(100% - 30px);
    }

    .fp-shop-layout {
        gap: 20px;
    }

    .fp-products {
        grid-template-columns: 1fr;
        gap: 20px;
    }


    /* -----------------------------------------
       SHOP HERO
    ----------------------------------------- */

    .shop-hero {
        min-height: 220px;
        padding: 0 15px;
        background-position: center;
    }

    .shop-hero__title {
        font-size: 25px;
        line-height: 1.2;
    }


    /* -----------------------------------------
       CATEGORY DESCRIPTION
    ----------------------------------------- */

    .shop-category-description {
        width: calc(100% - 30px);
        margin: 20px auto 30px;
    }

    .shop-category-description p {
        font-size: 14px;
        line-height: 1.55;
        margin-bottom: 25px;
    }


    /* -----------------------------------------
       MICROCARD
    ----------------------------------------- */

    .microcard-section {
        margin: 40px 0;
        padding: 30px 15px;
    }

    .microcard-container {
        gap: 12px;
    }

    .microcard {
        padding: 13px;
        gap: 10px;
        border-radius: 10px;
    }

    .microcard-image {
        flex: 0 0 48px;
    }

    .microcard-image img {
        max-width: 48px;
    }

    .microcard-title {
        font-size: 13px;
    }

    .microcard-description {
        font-size: 12px;
        line-height: 1.4;
    }


    /* -----------------------------------------
       RELATED PRODUCTS
    ----------------------------------------- */

    .products-slider .product {
        min-width: 165px;
    }

    .custom-related-products
    .woocommerce-loop-product__title {
        font-size: 13px;
    }

    .woocommerce:where(body:not(.woocommerce-uses-block-theme))
    ul.products li.product .price {
        font-size: 14px !important;
    }


    /* -----------------------------------------
       HEADER ICONS
    ----------------------------------------- */

    .header-icons {
        gap: 8px;
    }

    .header-icons .icon-btn {
        font-size: 15px;
    }

    .cart-count {
        top: -5px;
        right: -6px;
        font-size: 8px;
        padding: 1px 4px;
    }


    /* -----------------------------------------
       SEARCH
    ----------------------------------------- */

    #searchOverlay .box {
        width: calc(100% - 30px);
        padding: 20px 15px;
    }

    #searchOverlay input[type="text"] {
        padding: 10px;
        font-size: 14px;
    }

    #closeSearch {
        top: -6px;
        right: 0;
        font-size: 22px;
    }


    /* -----------------------------------------
       AUTH
    ----------------------------------------- */

    #authOverlay .box {
        width: calc(100% - 30px);
        padding: 25px 15px;
    }

    #authOverlay input {
        padding: 10px;
        font-size: 14px;
    }

    #authOverlay .tab button {
        padding: 11px 10px;
    }

    #authOverlay .tabs button {
        font-size: 12px;
        padding: 8px 4px;
    }


    /* -----------------------------------------
       BOTTONI
    ----------------------------------------- */

    .select-button,
    .woocommerce:where(body:not(.woocommerce-block-theme-has-button-styles))
    button.button.alt {
        width: 100%;
        box-sizing: border-box;
    }
}


/* =========================================================
   MOBILE PICCOLO
   480px
   ========================================================= */

@media (max-width: 480px) {

    /* -----------------------------------------
       PRODOTTO
    ----------------------------------------- */

    .product-content-wrapper,
    .custom-related-products,
    .reviews {
        margin-left: 12px;
        margin-right: 12px;
    }

    .product_title {
        font-size: 23px;
    }


    /* -----------------------------------------
       SHOP
    ----------------------------------------- */

    .shop-layout.fp-shop-wrapper {
        width: calc(100% - 24px);
    }

    .shop-hero {
        min-height: 190px;
    }

    .shop-hero__title {
        font-size: 22px;
    }


    /* -----------------------------------------
       MICROCARD
    ----------------------------------------- */

    .microcard-section {
        padding-left: 12px;
        padding-right: 12px;
    }

    .microcard {
        padding: 12px;
    }

    .microcard-image {
        flex: 0 0 42px;
    }

    .microcard-image img {
        max-width: 42px;
    }

    .microcard-title {
        font-size: 12px;
    }

    .microcard-description {
        font-size: 11px;
    }


    /* -----------------------------------------
       RELATED PRODUCTS
    ----------------------------------------- */

    .products-slider .product {
        min-width: 145px;
    }


    /* -----------------------------------------
       AUTH
    ----------------------------------------- */

    #authOverlay .box {
        width: calc(100% - 24px);
        padding: 22px 12px;
    }

    #authOverlay .tabs button {
        font-size: 11px;
    }
}


/* =========================================================
   FIX MOBILE HFE MENU
   IMPORTANTE:
   annulla le forzature desktop del menu
   ========================================================= */

@media (max-width: 767px) {

    /* Il menu HFE chiuso resta nel DOM con opacity 0. Senza questa regola
       intercetta comunque i tap sulle pagine, anche se non è visibile. */
    .elementor-element-3eb53a50 .hfe-nav-menu > nav.hfe-dropdown:not(.menu-is-active) {
        pointer-events: none !important;
    }

    .elementor-element-3eb53a50 .hfe-nav-menu > nav.hfe-dropdown.menu-is-active {
        pointer-events: auto !important;
    }

    .hfe-nav-menu,
    .hfe-nav-menu__layout-horizontal,
    .hfe-nav-menu__layout-horizontal ul {
        width: 100% !important;
        min-width: 0 !important;
        max-width: 100% !important;
        display: block !important;
    }

    nav.hfe-nav-menu__layout-horizontal {
        width: 100% !important;
        min-width: 0 !important;
        left: auto !important;
        position: relative !important;
    }

    .hfe-nav-menu__layout-horizontal ul {
        flex-wrap: wrap !important;
    }
}


/* =========================================================
   FIX OVERFLOW GENERALE
   ========================================================= */

@media (max-width: 1024px) {

    html,
    body {
        max-width: 100%;
        overflow-x: hidden;
    }

    .single-product,
    .fp-shop-wrapper,
    .fp-shop-layout,
    .fp-main,
    .fp-sidebar,
    .product-content-wrapper,
    .microcard-section {
        max-width: 100%;
        box-sizing: border-box;
    }
}



/* =========================================================
   GROUPED PRODUCT ROW - MOBILE
   Immagine | Titolo + Prezzo | CTA
   ========================================================= */

@media (max-width: 767px) {

    .grouped-row {
        display: flex !important;
        flex-direction: row !important;
        align-items: center !important;
        gap: 10px !important;

        width: 100% !important;
        box-sizing: border-box !important;

        padding: 10px !important;
    }


    /* -----------------------------------------
       IMMAGINE
       ----------------------------------------- */

    .grouped-row > div:nth-child(1) {
        width: 55px !important;
        min-width: 55px !important;
        max-width: 55px !important;
        flex: 0 0 55px !important;
    }

    .grouped-row > div:nth-child(1) img {
        display: block !important;
        width: 55px !important;
        height: 48px !important;
        object-fit: contain !important;
    }


    /* -----------------------------------------
       COLONNA CENTRALE
       Titolo sopra
       Prezzo sotto
       ----------------------------------------- */

    .grouped-row > div:nth-child(2) {
        flex: 1 1 auto !important;
        width: auto !important;
        min-width: 0 !important;

        display: flex !important;
        flex-direction: column !important;
        justify-content: center !important;
        align-items: flex-start !important;

        text-align: left !important;
    }

    /* Titolo */
    .grouped-row > div:nth-child(2) > div {
        width: 100% !important;

        font-size: 13px !important;
        line-height: 1.25 !important;
        font-weight: 600 !important;

        white-space: normal !important;
        overflow-wrap: break-word !important;
    }


    /* -----------------------------------------
       PREZZO
       ----------------------------------------- */

    .grouped-row > div:nth-child(3) {
        flex: 0 0 auto !important;
        width: auto !important;

        text-align: left !important;
        font-weight: 700 !important;

        display: flex !important;
        align-items: center !important;

        margin-top: 4px !important;
    }


    .grouped-row > div:nth-child(3) .woocommerce-Price-amount {
        font-size: 13px !important;
        white-space: nowrap !important;
    }


    /* -----------------------------------------
       CTA
       ----------------------------------------- */

    .grouped-row > div:nth-child(4) {
        flex: 0 0 auto !important;
        width: auto !important;
        margin-left: 5px !important;
    }

    .grouped-row .select-button {
        display: inline-flex !important;
        align-items: center !important;
        justify-content: center !important;

        white-space: nowrap !important;

        padding: 8px 12px !important;

        font-size: 11px !important;
        line-height: 1 !important;

        border-radius: 8px !important;
    }
}


/* =========================================================
   MOBILE PICCOLO
   ========================================================= */

@media (max-width: 480px) {

    .grouped-row {
        gap: 8px !important;
        padding: 8px !important;
    }

    .grouped-row > div:nth-child(1) {
        width: 48px !important;
        min-width: 48px !important;
        max-width: 48px !important;
        flex-basis: 48px !important;
    }

    .grouped-row > div:nth-child(1) img {
        width: 48px !important;
        height: 42px !important;
    }

    .grouped-row > div:nth-child(2) > div {
        font-size: 12px !important;
    }

    .grouped-row > div:nth-child(3) .woocommerce-Price-amount {
        font-size: 12px !important;
    }

    .grouped-row > div:nth-child(4) {
        margin-left: 2px !important;
    }

    .grouped-row .select-button {
        padding: 8px 10px !important;
        font-size: 10px !important;
    }
}


/* =========================================================
   COLOR FAMILY
   HFE MENU MOBILE
   FULL WIDTH / FULL SCREEN
   TUTTE LE VOCI VISIBILI
   ========================================================= */

@media (max-width: 767px) {

    /* -----------------------------------------------------
       WRAPPER HFE
       ----------------------------------------------------- */

    .elementor-element-3eb53a50 .hfe-nav-menu {
        position: relative !important;

        width: 100% !important;
        max-width: 100% !important;
        min-width: 0 !important;

        margin: 0 !important;
        padding: 0 !important;

        display: block !important;

        overflow: visible !important;
    }


    /* -----------------------------------------------------
       TOGGLE
       ----------------------------------------------------- */

.elementor-element-3eb53a50
.hfe-nav-menu__toggle {
    position: relative !important;

    top: auto !important;
    right: 0px !important;

    width: 44px !important;
    height: 44px !important;

    margin: 0 !important;
    padding: 0 !important;

    display: flex !important;
    align-items: center !important;
    justify-content: center !important;

    background: transparent !important;
    border: 0 !important;

    z-index: 100001 !important;

    cursor: pointer !important;
}


    /* -----------------------------------------------------
       CONTENITORE ICONA
       ----------------------------------------------------- */

    .elementor-element-3eb53a50
    .hfe-nav-menu__toggle
    .hfe-nav-menu-icon {

        display: flex !important;

        align-items: center !important;
        justify-content: center !important;

        width: 44px !important;
        height: 44px !important;

        visibility: visible !important;
        opacity: 1 !important;
    }


    /* -----------------------------------------------------
       ICONA HFE
       ----------------------------------------------------- */

    .elementor-element-3eb53a50
    .hfe-nav-menu__toggle
    .hfe-nav-menu-icon svg {

        display: block !important;

        width: 22px !important;
        height: 22px !important;

        max-width: 22px !important;
        max-height: 22px !important;

        visibility: visible !important;
        opacity: 1 !important;
    }


    /* -----------------------------------------------------
       MENU
       ----------------------------------------------------- */

    .elementor-element-3eb53a50
    .hfe-nav-menu
    > nav.hfe-dropdown {

        display: none;

        position: absolute !important;

        top: 0 !important;

        left: calc(50% - 50vw) !important;

        width: 100vw !important;
        min-width: 100vw !important;
        max-width: 100vw !important;

        height: 100vh !important;
        height: 100dvh !important;

        margin: 0 !important;
        padding: 85px 20px 30px !important;

        box-sizing: border-box !important;

        background: #ffffff !important;

        z-index: 100000 !important;

        overflow-x: hidden !important;
        overflow-y: auto !important;

        transform: none !important;
        translate: none !important;

        visibility: hidden !important;
        opacity: 0 !important;
    }


    /* -----------------------------------------------------
       MENU APERTO
       ----------------------------------------------------- */

    .elementor-element-3eb53a50
    .hfe-nav-menu
    > nav.hfe-dropdown.menu-is-active {

        display: block !important;

        position: fixed !important;

        top: 0 !important;
        left: 0 !important;

        width: 100vw !important;
        min-width: 100vw !important;
        max-width: 100vw !important;

        height: 100vh !important;
        height: 100dvh !important;

        margin: 0 !important;

        padding: 85px 20px 30px !important;

        box-sizing: border-box !important;

        background: #ffffff !important;

        visibility: visible !important;
        opacity: 1 !important;

        z-index: 100000 !important;

        overflow-x: hidden !important;
        overflow-y: auto !important;

        transform: none !important;
        translate: none !important;

        isolation: isolate !important;
    }


    /* -----------------------------------------------------
       ANNULLA GLI STYLE INLINE DI HFE
       ----------------------------------------------------- */

    .elementor-element-3eb53a50
    .hfe-nav-menu
    > nav.hfe-dropdown[style] {

        position: fixed !important;

        top: 0 !important;
        left: 0 !important;

        width: 100vw !important;
        min-width: 100vw !important;
        max-width: 100vw !important;

        height: 100vh !important;
        height: 100dvh !important;

        margin: 0 !important;

        transform: none !important;
        translate: none !important;
    }


    /* -----------------------------------------------------
       UL
       ----------------------------------------------------- */

    .elementor-element-3eb53a50
    .hfe-nav-menu
    > nav.hfe-dropdown
    > ul.hfe-nav-menu {

        display: flex !important;

        flex-direction: column !important;
        flex-wrap: nowrap !important;

        width: 100% !important;
        max-width: 100% !important;
        min-width: 0 !important;

        height: auto !important;
        max-height: none !important;

        margin: 0 !important;
        padding: 0 !important;

        box-sizing: border-box !important;

        background: #ffffff !important;

        overflow: visible !important;

        visibility: visible !important;
        opacity: 1 !important;
    }


    /* -----------------------------------------------------
       LI
       FORZA TUTTE LE VOCI VISIBILI
       ----------------------------------------------------- */

    .elementor-element-3eb53a50
    .hfe-nav-menu
    > nav.hfe-dropdown
    > ul.hfe-nav-menu
    > li {

        display: block !important;

        position: relative !important;

        width: 100% !important;
        max-width: 100% !important;

        height: auto !important;
        max-height: none !important;

        margin: 0 !important;
        padding: 0 !important;

        flex: 0 0 auto !important;

        list-style: none !important;

        overflow: visible !important;

        visibility: visible !important;
        opacity: 1 !important;
    }


    /* -----------------------------------------------------
       LINK
       ----------------------------------------------------- */

    .elementor-element-3eb53a50
    .hfe-nav-menu
    > nav.hfe-dropdown
    > ul.hfe-nav-menu
    > li
    > a.hfe-menu-item {

        display: flex !important;

        align-items: center !important;

        width: 100% !important;
        max-width: 100% !important;

        min-height: 50px !important;
        height: auto !important;

        margin: 0 !important;
        padding: 18px 0 !important;

        box-sizing: border-box !important;

        font-size: 18px !important;
        line-height: 1.35 !important;

        text-align: left !important;
        white-space: normal !important;

        background: transparent !important;

        border-bottom: 1px solid #eeeeee !important;

        overflow: visible !important;

        visibility: visible !important;
        opacity: 1 !important;
    }


    /* -----------------------------------------------------
       SICUREZZA AGGIUNTIVA
       NASCONDE EVENTUALI REGOLE HFE
       CHE LIMITANO LE VOCI
       ----------------------------------------------------- */

    .elementor-element-3eb53a50
    nav.hfe-dropdown.menu-is-active
    ul.hfe-nav-menu
    > li:nth-child(n) {

        display: block !important;

        visibility: visible !important;
        opacity: 1 !important;

        height: auto !important;
        max-height: none !important;

        overflow: visible !important;
    }


    /* -----------------------------------------------------
       EVITA CHE IL MENU VENGA TAGLIATO
       ----------------------------------------------------- */

    .elementor-element-3eb53a50
    nav.hfe-dropdown.menu-is-active
    ul.hfe-nav-menu,
    .elementor-element-3eb53a50
    nav.hfe-dropdown.menu-is-active
    ul.hfe-nav-menu > li,
    .elementor-element-3eb53a50
    nav.hfe-dropdown.menu-is-active
    ul.hfe-nav-menu > li > a {

        clip: auto !important;
        clip-path: none !important;
    }


    /* -----------------------------------------------------
       TOGGLE SOPRA AL MENU
       ----------------------------------------------------- */

    .elementor-element-3eb53a50
    .hfe-nav-menu__toggle {

        z-index: 100001 !important;
    }


    /* -----------------------------------------------------
       BLOCCA SCROLL PAGINA QUANDO IL MENU È APERTO
       ----------------------------------------------------- */

    body:has(
        .elementor-element-3eb53a50
        nav.hfe-dropdown.menu-is-active
    ) {

        overflow: hidden !important;
        touch-action: none !important;
    }
}


/* =========================================================
   MOBILE PICCOLO
   ========================================================= */

@media (max-width: 480px) {

    /* -----------------------------------------------------
       MENU
       ----------------------------------------------------- */

    .elementor-element-3eb53a50
    .hfe-nav-menu
    > nav.hfe-dropdown.menu-is-active {

        left: 0 !important;

        width: 100vw !important;
        min-width: 100vw !important;
        max-width: 100vw !important;

        height: 100vh !important;
        height: 100dvh !important;

        padding: 75px 15px 25px !important;
    }


    /* -----------------------------------------------------
       VOCI MENU
       ----------------------------------------------------- */

    .elementor-element-3eb53a50
    .hfe-nav-menu
    > nav.hfe-dropdown
    > ul.hfe-nav-menu
    > li
    > a.hfe-menu-item {

        padding: 16px 0 !important;

        font-size: 17px !important;

        min-height: 48px !important;
    }


    /* -----------------------------------------------------
       TOGGLE
       ----------------------------------------------------- */

    .elementor-element-3eb53a50
    .hfe-nav-menu__toggle {

        top: 15px !important;
        right: 15px !important;

        width: 42px !important;
        height: 42px !important;
    }


    /* -----------------------------------------------------
       ICONA
       ----------------------------------------------------- */

    .elementor-element-3eb53a50
    .hfe-nav-menu__toggle
    .hfe-nav-menu-icon {

        width: 42px !important;
        height: 42px !important;
    }
}


/* =========================================================
   NASCONDE LA LENTE DELLA GALLERY
   QUANDO NECESSARIO
   ========================================================= */

@media (max-width: 767px) {

    .woocommerce-product-gallery__trigger {

        display: none !important;

        visibility: hidden !important;

        opacity: 0 !important;

        pointer-events: none !important;
    }
}

/* =========================================================
   MOBILE
   QUANTITÀ + AGGIUNGI AL CARRELLO AFFIANCATI
   ========================================================= */

@media (max-width: 767px) {

    /* -----------------------------------------------------
       CONTENITORE DELLA VARIAZIONE
       ----------------------------------------------------- */

    .woocommerce-variation-add-to-cart {

        display: flex !important;

        flex-wrap: wrap !important;

        align-items: center !important;

        width: 100% !important;
    }


    /* -----------------------------------------------------
       PERSONALIZZAZIONE
       DEVE OCCUPARE TUTTA LA RIGA
       ----------------------------------------------------- */

    .woocommerce-variation-add-to-cart .sec-trigger-row {

        flex: 0 0 100% !important;

        width: 100% !important;

        max-width: 100% !important;

        box-sizing: border-box !important;

        margin-bottom: 10px !important;
    }


    /* -----------------------------------------------------
       QUANTITÀ
       ----------------------------------------------------- */

    .woocommerce-variation-add-to-cart .quantity {

        flex: 0 0 auto !important;

        width: 60px !important;

        margin: 0 10px 0 0 !important;

        padding: 0 !important;

        box-sizing: border-box !important;
    }


    .woocommerce-variation-add-to-cart
    .quantity input.qty {

        width: 60px !important;

        min-width: 60px !important;

        max-width: 60px !important;

        height: 48px !important;

        margin: 0 !important;

        padding: 0 8px !important;

        box-sizing: border-box !important;

        text-align: center !important;
    }


    /* -----------------------------------------------------
       AGGIUNGI AL CARRELLO
       ----------------------------------------------------- */

    .woocommerce-variation-add-to-cart
    .single_add_to_cart_button {

        flex: 1 1 auto !important;

        width: auto !important;

        min-width: 0 !important;

        max-width: calc(100% - 70px) !important;

        height: 48px !important;

        margin: 0 !important;

        padding: 0 15px !important;

        box-sizing: border-box !important;

        white-space: nowrap !important;
    }


    /* -----------------------------------------------------
       ELEMENTI NASCOSTI
       NON DEVONO OCCUPARE SPAZIO NEL FLEX
       ----------------------------------------------------- */

    .woocommerce-variation-add-to-cart
    .sec-hidden-inputs,

    .woocommerce-variation-add-to-cart
    input[type="hidden"] {

        display: none !important;
    }


    /* -----------------------------------------------------
       INFO VARIAZIONE
       ----------------------------------------------------- */

    .woocommerce-variation-add-to-cart
    .variation-info-container {

        flex: 0 0 100% !important;

        width: 100% !important;
    }
}

/* =========================================================
   CHIUSURA REVISIONE MOBILE
   Queste regole sono intenzionalmente in coda al foglio: prevalgono su
   componenti Elementor/WooCommerce caricati o definiti più sopra.
   ========================================================= */
@media (max-width: 767px) {
    html,
    body {
        width: 100%;
        max-width: 100%;
        overflow-x: clip;
    }

    .elementor,
    .elementor-section,
    .elementor-container,
    .elementor-column,
    .elementor-widget,
    .elementor-widget-container,
    .e-con,
    .e-con-inner,
    .fp-shop-wrapper,
    .fp-shop-layout,
    .fp-main,
    .fp-sidebar,
    .fp-products,
    .product-content-wrapper,
    .product-images,
    .product-summary,
    .woocommerce-cart-form,
    .cart-collaterals,
    .woocommerce-checkout,
    .woocommerce-MyAccount-content,
    .wc-block-cart,
    .wc-block-checkout,
    .wc-block-components-main,
    .wc-block-components-sidebar {
        min-width: 0 !important;
        max-width: 100% !important;
    }

    img,
    picture,
    video,
    iframe,
    .elementor-widget-container > img,
    .woocommerce-product-gallery img {
        max-width: 100% !important;
    }

    .woocommerce table.shop_table,
    .woocommerce table.woocommerce-orders-table,
    .woocommerce table.woocommerce-table--order-details {
        display: block;
        max-width: 100%;
        overflow-x: auto;
        -webkit-overflow-scrolling: touch;
    }

    #searchOverlay .box,
    #authOverlay .box,
    .elementor-popup-modal .dialog-widget-content {
        width: calc(100% - 24px) !important;
        max-width: calc(100% - 24px) !important;
    }
}

/* Rifiniture finali scheda prodotto mobile: in fondo per prevalere sui plugin. */
@media (max-width: 767px) {
    .cf-mobile-product-flow .product-oekotex-slot { margin: 12px 0 10px; }
    .cf-mobile-product-flow .product-reviews-slot {
        display: grid;
        grid-template-columns: auto minmax(0, 1fr);
        align-items: center;
        gap: 8px 10px;
        margin: 14px 0 12px;
        padding: 10px 12px;
        border: 1px solid #dcebe6;
        border-radius: 12px;
        background: linear-gradient(135deg, #f9fdfc 0%, #effaf7 100%);
        box-shadow: 0 5px 16px rgba(23, 52, 61, .05);
    }

    .cf-mobile-product-flow .product-reviews-slot .reference-line-1 {
        margin: 0;
    }

    .cf-mobile-product-flow .product-reviews-slot .reference-line-1:first-child {
        color: #eaa428;
        font-size: 13px;
        letter-spacing: 1px;
        white-space: nowrap;
    }

    .cf-mobile-product-flow .product-reviews-slot .reference-line-1:nth-child(2) {
        min-width: 0;
        color: #17343d;
        font-size: 11px;
        font-weight: 800;
        line-height: 1.25;
        text-transform: uppercase;
    }

    .cf-mobile-product-flow .product-reviews-slot .reference-line-2 {
        display: none;
    }
    .cf-mobile-product-flow .product-title-slot h1 { margin: 0 0 8px; font-size: 29px; line-height: 1.12; }
    .cf-mobile-product-flow .parent-product-desc { margin: 0 0 12px !important; font-size: 14px; line-height: 1.48; }
    .cf-mobile-product-flow .parent-product-desc p { margin: 0; }
    .cf-mobile-product-flow .product-price-slot { margin: 0 0 8px; }
    .cf-mobile-product-flow .product-price-slot .price { margin-left: 0 !important; font-size: 22px !important; }
    .cf-mobile-product-flow .oekotex-badge { display: inline-flex; align-items: center; gap: 9px; max-width: 100%; padding: 7px 10px; border: 1px solid #d7ebe6; border-radius: 9px; background: #f5fbf9; color: #17343d; white-space: nowrap; }
    .cf-mobile-product-flow .oekotex-badge img { flex: 0 0 38px; width: 38px !important; max-width: 38px !important; height: auto; }
    .cf-mobile-product-flow .oekotex-badge span { overflow: hidden; font-size: 11px; font-weight: 700; line-height: 1.2; text-overflow: ellipsis; }
    .cf-mobile-product-flow .product-gallery-slot { margin: 8px 0 20px !important; }
    .cf-mobile-product-flow .variation-invite { margin: 4px 0 14px; color: #17343d; font-size: 15px; line-height: 1.3; letter-spacing: .01em; }
    .cf-mobile-product-flow form.variations_form table.variations { display: block; margin: 0; padding: 14px; border: 1px solid #e2ece9; border-radius: 12px; background: #fff; }
    .cf-mobile-product-flow form.variations_form table.variations tbody,
    .cf-mobile-product-flow form.variations_form table.variations tr,
    .cf-mobile-product-flow form.variations_form table.variations th,
    .cf-mobile-product-flow form.variations_form table.variations td { display: block; width: 100%; padding: 0 !important; text-align: left; }
    .cf-mobile-product-flow form.variations_form table.variations tr + tr { margin-top: 15px; padding-top: 15px; border-top: 1px solid #edf1f0; }
    .cf-mobile-product-flow form.variations_form table.variations th label { display: block; margin: 0 0 8px; color: #17343d; font-size: 13px; font-weight: 800; text-transform: uppercase; }
    .cf-mobile-product-flow form.variations_form .reset_variations { display: inline-block; margin-top: 9px; color: #087b6b; font-size: 12px; font-weight: 700; }
    .cf-mobile-product-flow .tawcvs-swatches[data-attribute_name="attribute_pa_grafica"] { display: grid !important; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: 9px; width: 100%; }
    .cf-mobile-product-flow .tawcvs-swatches[data-attribute_name="attribute_pa_grafica"] .swatch { display: flex !important; align-items: center; justify-content: center; width: 100% !important; height: auto !important; min-width: 0 !important; min-height: 0 !important; margin: 0 !important; aspect-ratio: 1; overflow: hidden; border: 1px solid #dde6e4; border-radius: 8px; background: #fff; }
    .cf-mobile-product-flow .tawcvs-swatches[data-attribute_name="attribute_pa_grafica"] .swatch img,
    .cf-mobile-product-flow .tawcvs-swatches[data-attribute_name="attribute_pa_grafica"] .swatch-type-image { width: 100% !important; height: 100% !important; max-width: none !important; object-fit: cover; }
    .cf-mobile-product-flow .tawcvs-swatches[data-attribute_name="attribute_pa_grafica"] .swatch.selected,
    .cf-mobile-product-flow .tawcvs-swatches[data-attribute_name="attribute_pa_grafica"] .swatch.swatch-selected { border: 2px solid #087b6b; box-shadow: 0 0 0 2px rgba(91, 194, 179, .18); }
    .cf-mobile-product-flow .tawcvs-swatches:not([data-attribute_name="attribute_pa_grafica"]) { gap: 8px; margin: 0; }
    .cf-mobile-product-flow .tawcvs-swatches:not([data-attribute_name="attribute_pa_grafica"]) .swatch { margin: 0 !important; }
    .cf-mobile-product-flow .cf-mobile-primary-cart-row {
        display: flex;
        align-items: center;
        justify-content: center;
        gap: 10px;
        width: 100%;
        margin: 14px 0 22px;
    }
    .cf-mobile-product-flow .cf-mobile-primary-quantity { flex: 0 0 104px; width: 104px; margin: 0; }
    .cf-mobile-product-flow .cf-mobile-primary-qty { width: 44px !important; min-width: 44px !important; height: 46px !important; margin: 0; padding: 0 3px !important; border: 0; border-radius: 0; text-align: center; }
    .cf-mobile-product-flow .cf-mobile-primary-cart-button { display: block; width: auto !important; min-width: 0; max-width: calc(100% - 114px); margin: 0 !important; padding: 11px 18px !important; border-radius: 9px; font-size: 13px; white-space: nowrap; }
    .cf-mobile-product-flow .woocommerce-variation-add-to-cart { display: flex !important; flex-wrap: nowrap !important; align-items: center !important; gap: 10px; width: 100%; margin: 18px 0 22px !important; }
    .cf-mobile-product-flow .woocommerce-variation-add-to-cart .quantity { flex: 0 0 104px !important; width: 104px !important; margin: 0 !important; }
    .cf-mobile-product-flow .woocommerce-variation-add-to-cart .quantity input.qty { width: 44px !important; min-width: 44px !important; height: 46px !important; }
    .cf-mobile-product-flow .woocommerce-variation-add-to-cart .single_add_to_cart_button { flex: 0 1 auto !important; width: auto !important; max-width: calc(100% - 114px) !important; min-height: 46px; margin: 0 !important; padding: 11px 18px !important; border-radius: 9px; font-size: 13px; white-space: nowrap; }
    .cf-mobile-product-flow .cf-mobile-primary-cart-button,
    .cf-mobile-product-flow .woocommerce-variation-add-to-cart .single_add_to_cart_button {
        display: flex !important;
        flex: 1 1 auto !important;
        align-items: center;
        justify-content: center;
        width: auto !important;
        min-width: 0 !important;
        max-width: none !important;
        height: 46px !important;
        min-height: 46px !important;
        margin: 0 !important;
        padding: 0 16px !important;
        border: 0 !important;
        border-radius: 9px !important;
        box-sizing: border-box !important;
        background: #5bc2b3 !important;
        color: #fff !important;
        font-family: 'Montserrat', Arial, sans-serif !important;
        font-size: 13px !important;
        font-weight: 800 !important;
        line-height: 1 !important;
        letter-spacing: 0 !important;
        text-align: center;
        text-decoration: none !important;
        text-transform: uppercase !important;
        white-space: nowrap;
        box-shadow: none !important;
        transition: background .18s ease, color .18s ease;
    }
    .cf-mobile-product-flow .cf-mobile-primary-cart-button:hover,
    .cf-mobile-product-flow .woocommerce-variation-add-to-cart .single_add_to_cart_button:hover { background: #c1ecdd !important; color: #000 !important; }
    .cf-mobile-product-flow .cf-mobile-primary-cart-button.is-locked,
    .cf-mobile-product-flow .woocommerce-variation-add-to-cart .single_add_to_cart_button.cf-cart-locked { background: #a7bcb7 !important; color: #fff !important; cursor: not-allowed; opacity: .82; }
    .cf-mobile-product-flow .cf-mobile-primary-cart-button.is-locked:hover,
    .cf-mobile-product-flow .woocommerce-variation-add-to-cart .single_add_to_cart_button.cf-cart-locked:hover { background: #a7bcb7 !important; color: #fff !important; }
    .cf-mobile-product-flow form.variations_form > .variation-description { clear: both; width: 100%; margin: 14px 0 18px; }
    .cf-mobile-product-flow .cf-quantity-control { display: inline-grid !important; grid-template-columns: 30px 44px 30px; align-items: center; width: 104px !important; height: 46px; overflow: hidden; border: 1px solid #cfdcd8; border-radius: 9px; background: #fff; }
    .cf-mobile-product-flow .cf-qty-step { display: flex !important; align-items: center; justify-content: center; width: 30px !important; height: 44px !important; min-height: 44px !important; margin: 0 !important; padding: 0 !important; border: 0 !important; border-radius: 0 !important; background: #f3f8f6 !important; color: #17343d !important; font-size: 20px !important; font-weight: 600; line-height: 1; cursor: pointer; }
    .cf-mobile-product-flow .cf-qty-step:hover { background: #c1ecdd !important; color: #000 !important; }
    .cf-mobile-product-flow .variation-extra-images,
    .cf-mobile-product-flow .toggle-images { display: grid !important; grid-template-columns: repeat(2, minmax(0, 1fr)) !important; gap: 10px; width: 100% !important; margin: 14px 0 20px; }
    .cf-mobile-product-flow .variation-extra-image,
    .cf-mobile-product-flow .toggle-image { min-width: 0; }
    .cf-mobile-product-flow .variation-extra-image img,
    .cf-mobile-product-flow .toggle-image img { width: 100%; aspect-ratio: 1 / 1; object-fit: cover; border-radius: 8px; }

    /* Il plugin swatches mantiene una tabella con markup proprietario: non
       alteriamo più il modello display nativo, così i campi restano integri. */
    .cf-mobile-product-flow form.variations_form table.variations {
        display: table;
        padding: 0;
        border: 0;
        border-radius: 0;
        background: transparent;
    }

    .cf-mobile-product-flow form.variations_form table.variations tbody { display: table-row-group; }
    .cf-mobile-product-flow form.variations_form table.variations tr { display: table-row; margin: 0; padding: 0; border: 0; }
    .cf-mobile-product-flow form.variations_form table.variations th,
    .cf-mobile-product-flow form.variations_form table.variations td { display: table-cell; width: auto; padding: 6px 10px !important; }
    .cf-mobile-product-flow form.variations_form table.variations th label { margin: 0; font-size: 13px; }

    /* Anche le miniature restano gestite dal plugin: semplicemente allineate
       e con dimensioni uniformi, senza trasformare il loro contenitore. */
    .cf-mobile-product-flow .tawcvs-swatches[data-attribute_name="attribute_pa_grafica"] {
        display: flex !important;
        flex-wrap: wrap;
        gap: 8px;
        width: 160px;
        max-width: 100%;
    }

    .cf-mobile-product-flow .tawcvs-swatches[data-attribute_name="attribute_pa_grafica"] .swatch {
        display: inline-flex !important;
        width: 48px !important;
        height: 48px !important;
        min-width: 48px !important;
        min-height: 48px !important;
        aspect-ratio: auto;
        margin: 0 !important;
    }

    .cf-mobile-product-flow .tawcvs-swatches[data-attribute_name="attribute_pa_grafica"] .swatch img,
    .cf-mobile-product-flow .tawcvs-swatches[data-attribute_name="attribute_pa_grafica"] .swatch-type-image {
        width: 48px !important;
        height: 48px !important;
        object-fit: contain;
    }

    /* Il configuratore viene inserito dentro il form WooCommerce: deve sempre
       occupare una riga autonoma, mai condividere lo spazio con CTA e quantità. */
    .cf-mobile-product-flow,
    .cf-mobile-product-flow form.cart,
    .cf-mobile-product-flow .variations_form {
        display: block !important;
        width: 100% !important;
        max-width: 100% !important;
        min-width: 0 !important;
    }

    .cf-mobile-product-flow .woocommerce-variation-add-to-cart {
        flex-wrap: wrap !important;
    }

    .cf-mobile-product-flow .woocommerce-variation-add-to-cart .cfc-configurator,
    .cf-mobile-product-flow .woocommerce-variation-add-to-cart .sec-trigger-row,
    .cf-mobile-product-flow .woocommerce-variation-add-to-cart .cfc-group,
    .cf-mobile-product-flow .woocommerce-variation-add-to-cart .cfc-field,
    .cf-mobile-product-flow .woocommerce-variation-add-to-cart .variation-info-container {
        flex: 0 0 100% !important;
        width: 100% !important;
        max-width: 100% !important;
        min-width: 0 !important;
    }

    .cf-mobile-product-flow .woocommerce-variation-add-to-cart .cfc-configurator {
        order: -2;
        margin: 0 0 16px !important;
    }

    .cf-mobile-product-flow .woocommerce-variation-add-to-cart .quantity {
        order: 2;
    }

    .cf-mobile-product-flow .woocommerce-variation-add-to-cart .single_add_to_cart_button {
        order: 3;
    }

    /* Trustpilot: card compatta e iframe vincolato, senza spazi vuoti o altezze anomale. */
    .single-product .trustpilot-review-box {
        width: 100% !important;
        margin: 26px 0 34px !important;
        padding: 0 16px !important;
        box-sizing: border-box;
    }

    .single-product .trustpilot-widget {
        width: 100% !important;
        max-width: 360px !important;
        min-height: 0 !important;
        padding: 12px 14px !important;
        border: 1px solid #e1ebe8;
        border-radius: 12px !important;
        box-shadow: 0 6px 18px rgba(23, 52, 61, .06) !important;
    }

    .single-product .trustpilot-widget iframe {
        display: block !important;
        width: 100% !important;
        max-width: 100% !important;
        min-height: 24px !important;
        margin: 0 auto !important;
    }

    /* L'anteprima su mobile è solo informativa: niente zoom/lightbox che
       può deformare il layout della pagina prodotto. */
    .cf-mobile-product-flow .woocommerce-product-gallery__image > a,
    .cf-mobile-product-flow .woocommerce-product-gallery__wrapper > a {
        pointer-events: none !important;
        cursor: default !important;
    }

    /* Grafica: una colonna per l'etichetta e quattro tondi per riga. */
    .cf-mobile-product-flow form.variations_form table.variations tr:has(.tawcvs-swatches[data-attribute_name="attribute_pa_grafica"]) {
        display: grid !important;
        grid-template-columns: 68px minmax(0, 1fr);
        column-gap: 8px;
        align-items: start;
    }

    .cf-mobile-product-flow form.variations_form table.variations tr:has(.tawcvs-swatches[data-attribute_name="attribute_pa_grafica"]) th,
    .cf-mobile-product-flow form.variations_form table.variations tr:has(.tawcvs-swatches[data-attribute_name="attribute_pa_grafica"]) td {
        display: block;
        width: auto;
        min-width: 0;
        padding: 0 !important;
    }

    .cf-mobile-product-flow .tawcvs-swatches[data-attribute_name="attribute_pa_grafica"] {
        display: grid !important;
        grid-template-columns: repeat(4, minmax(0, 1fr));
        gap: 5px;
        width: 100%;
        max-width: none;
    }

    .cf-mobile-product-flow .tawcvs-swatches[data-attribute_name="attribute_pa_grafica"] .swatch,
    .cf-mobile-product-flow .tawcvs-swatches[data-attribute_name="attribute_pa_grafica"] .swatch img,
    .cf-mobile-product-flow .tawcvs-swatches[data-attribute_name="attribute_pa_grafica"] .swatch-type-image {
        width: 100% !important;
        min-width: 0 !important;
        height: auto !important;
        aspect-ratio: 1;
    }

    /* Classe applicata dal tema, affidabile anche quando il plugin cambia
       il suo markup interno: tre scelte grafiche per riga in ogni prodotto. */
    .cf-mobile-product-flow form.variations_form table.variations tr.cf-graphic-variation-row {
        display: grid !important;
        grid-template-columns: 68px minmax(0, 1fr) !important;
        column-gap: 8px;
        align-items: start;
    }

    .cf-mobile-product-flow form.variations_form table.variations tr.cf-graphic-variation-row th,
    .cf-mobile-product-flow form.variations_form table.variations tr.cf-graphic-variation-row td {
        display: block !important;
        width: auto !important;
        min-width: 0;
        padding: 0 !important;
    }

    .cf-mobile-product-flow .cf-graphic-variation-row .tawcvs-swatches {
        display: grid !important;
        grid-template-columns: repeat(3, minmax(0, 1fr)) !important;
        gap: 8px !important;
        width: 100% !important;
        max-width: none !important;
    }

    .cf-mobile-product-flow .cf-graphic-variation-row .tawcvs-swatches .swatch,
    .cf-mobile-product-flow .cf-graphic-variation-row .tawcvs-swatches .swatch img,
    .cf-mobile-product-flow .cf-graphic-variation-row .tawcvs-swatches .swatch-type-image {
        width: 100% !important;
        min-width: 0 !important;
        height: auto !important;
        aspect-ratio: 1 / 1 !important;
    }

    .cf-mobile-product-flow .tawcvs-swatches[data-attribute_name="attribute_pa_taglia"] {
        display: grid !important;
        grid-template-columns: repeat(8, minmax(0, 1fr)) !important;
        gap: 5px !important;
        width: 100% !important;
    }

    .cf-mobile-product-flow .tawcvs-swatches[data-attribute_name="attribute_pa_taglia"] .swatch {
        width: 100% !important;
        min-width: 0 !important;
        margin: 0 !important;
    }

    .cf-mobile-product-flow .grouped-row[data-product-url] {
        cursor: pointer;
        -webkit-tap-highlight-color: transparent;
    }

    .cf-mobile-product-flow .grouped-row[data-product-url]:active {
        border-color: #5bc2b3 !important;
        background: #f5fbf9;
    }
}

/* =========================
   CARRELLO: RIFINITURE FINALI
========================= */
body.woocommerce-cart .cart-empty,
body.woocommerce-cart .wc-block-cart__empty-cart__title {
    max-width: 720px;
    margin: 42px auto 14px;
    padding: 30px 34px;
    border: 1px solid #dcebe7;
    border-radius: 18px;
    background: linear-gradient(135deg, #f8fcfb 0%, #edf8f5 100%);
    color: #17343d;
    font-family: Montserrat, sans-serif;
    font-size: clamp(21px, 2.4vw, 30px);
    font-weight: 800;
    text-align: center;
}

body.woocommerce-cart .cart-empty::before {
    content: "🛍";
    display: block;
    margin-bottom: 10px;
    color: #5bc2b3;
    font-size: 38px;
    line-height: 1;
}

body.woocommerce-cart .return-to-shop {
    margin: 0 auto 52px;
    text-align: center;
}

body.woocommerce-cart .return-to-shop .button {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    min-height: 46px;
    padding: 11px 24px;
    border: 1px solid #5bc2b3 !important;
    border-radius: 10px !important;
    background: #5bc2b3 !important;
    color: #fff !important;
    font-family: Montserrat, sans-serif;
    font-size: 14px;
    font-weight: 800;
    text-decoration: none;
}

body.woocommerce-cart .return-to-shop .button:hover {
    background: #c1ecdd !important;
    color: #17343d !important;
}

body.woocommerce-cart .cf-cart-quantity-stepper {
    display: inline-grid;
    grid-template-columns: 32px 42px 32px;
    align-items: center;
    overflow: hidden;
    border: 1px solid #cfded9;
    border-radius: 9px;
    background: #fff;
}

body.woocommerce-cart .quantity .cf-cart-quantity-stepper .qty {
    width: 42px;
    min-height: 34px;
    padding: 3px 1px;
    border: 0;
    border-radius: 0;
    background: transparent;
    text-align: center;
    -moz-appearance: textfield;
}

body.woocommerce-cart .quantity .cf-cart-quantity-stepper .qty::-webkit-inner-spin-button,
body.woocommerce-cart .quantity .cf-cart-quantity-stepper .qty::-webkit-outer-spin-button {
    margin: 0;
    -webkit-appearance: none;
}

body.woocommerce-cart .cf-cart-quantity-button {
    display: grid;
    width: 32px;
    height: 34px;
    padding: 0;
    border: 0 !important;
    border-radius: 0 !important;
    background: #eef8f5 !important;
    color: #17343d !important;
    cursor: pointer;
    font-size: 19px;
    font-weight: 700;
    line-height: 1;
    place-items: center;
}

body.woocommerce-cart .cf-cart-quantity-button:hover,
body.woocommerce-cart .cf-cart-quantity-button:focus-visible {
    background: #5bc2b3 !important;
    color: #fff !important;
}

@media (max-width: 767px) {
    body.woocommerce-cart .site-main > .woocommerce,
    body.woocommerce-cart .site-main > .entry-content > .woocommerce,
    body.woocommerce-cart .wc-block-cart {
        padding-top: 18px;
    }

    body.woocommerce-cart .entry-title,
    body.woocommerce-cart .page-title {
        padding: 24px 0 16px;
        font-size: 27px;
    }

    body.woocommerce-cart .woocommerce-cart-form__contents,
    body.woocommerce-cart .wc-block-cart-items {
        overflow: visible;
    }

    body.woocommerce-cart .woocommerce-cart-form__cart-item td {
        padding-top: 16px;
        padding-bottom: 16px;
    }

    body.woocommerce-cart .woocommerce-cart-form__product-thumbnail img,
    body.woocommerce-cart .wc-block-cart-item__image img {
        width: 72px;
        border-radius: 10px;
    }

    body.woocommerce-cart .product-name .variation,
    body.woocommerce-cart .product-name .wc-item-meta,
    body.woocommerce-cart .wc-block-components-product-details {
        margin-top: 7px;
        font-size: 12px;
        line-height: 1.35;
    }

    body.woocommerce-cart .cart-collaterals,
    body.woocommerce-cart .wc-block-cart__sidebar {
        margin-top: 18px;
        padding: 17px;
        border: 1px solid #dcebe7;
        border-radius: 14px;
        background: #f9fcfb;
    }

    body.woocommerce-cart .cart_totals,
    body.woocommerce-cart .wc-block-components-sidebar-layout {
        padding: 0;
    }

    body.woocommerce-cart .wc-proceed-to-checkout a.checkout-button,
    body.woocommerce-cart .wc-block-cart__submit-container .wc-block-components-button {
        min-height: 50px;
        border-radius: 10px !important;
    }

    body.woocommerce-cart .cart-empty,
    body.woocommerce-cart .wc-block-cart__empty-cart__title {
        margin: 20px auto 12px;
        padding: 26px 18px;
        border-radius: 14px;
        font-size: 22px;
        line-height: 1.25;
    }

    body.woocommerce-cart .return-to-shop {
        margin-bottom: 34px;
    }
}

/* Override finale del carrello a blocchi: deve venire dopo le regole desktop
   del tema, altrimenti la griglia a due colonne resta attiva su mobile. */
@media (max-width: 767px) {
    body.woocommerce-cart .wc-block-cart {
        display: block !important;
        width: 100% !important;
        max-width: 100% !important;
    }

    body.woocommerce-cart .wc-block-cart__main,
    body.woocommerce-cart .wc-block-cart__sidebar {
        display: block !important;
        position: static !important;
        width: 100% !important;
        max-width: 100% !important;
        margin: 0 !important;
        padding: 0 !important;
        grid-column: auto !important;
    }

    body.woocommerce-cart .wc-block-cart__sidebar {
        clear: both !important;
        margin-top: 24px !important;
        padding: 18px !important;
        border: 1px solid #d8e7e3;
        border-radius: 12px;
        background: #f8fcfb;
        box-sizing: border-box;
    }

    body.woocommerce-cart .wc-block-cart-items,
    body.woocommerce-cart .wc-block-cart-items tbody,
    body.woocommerce-cart .wc-block-cart-items__row {
        display: block !important;
        width: 100% !important;
        max-width: 100% !important;
    }

    body.woocommerce-cart .wc-block-cart-items thead,
    body.woocommerce-cart .wc-block-cart-item__total {
        display: none !important;
    }

    body.woocommerce-cart .wc-block-cart-items__row {
        position: relative;
        min-height: 112px;
        padding: 16px 0 !important;
        border-bottom: 1px solid #dfe9e7;
        box-sizing: border-box;
    }

    body.woocommerce-cart .wc-block-cart-item__image {
        float: left !important;
        width: 80px !important;
        height: auto !important;
        margin: 0 14px 8px 0 !important;
        padding: 0 !important;
    }

    body.woocommerce-cart .wc-block-cart-item__image img {
        display: block;
        width: 80px !important;
        height: 80px !important;
        object-fit: cover;
    }

    body.woocommerce-cart .wc-block-cart-item__product,
    body.woocommerce-cart .wc-block-cart-item__wrap,
    body.woocommerce-cart .wc-block-components-product-metadata,
    body.woocommerce-cart .wc-block-components-product-details {
        display: block !important;
        width: auto !important;
        min-width: 0 !important;
        padding: 0 24px 0 0 !important;
        overflow: hidden;
        overflow-wrap: anywhere;
        word-break: normal;
    }

    body.woocommerce-cart .wc-block-components-product-details > span {
        display: inline !important;
        min-width: 0 !important;
    }

    body.woocommerce-cart .wc-block-cart-item__quantity {
        clear: both;
        display: flex !important;
        align-items: center;
        justify-content: space-between;
        width: 100% !important;
        margin-top: 14px;
    }

    /* Più spazio utile per titolo e personalizzazioni. */
    body.woocommerce-cart .wc-block-cart-item__image {
        width: 68px !important;
        margin-right: 10px !important;
    }

    body.woocommerce-cart .wc-block-cart-item__image img {
        width: 68px !important;
        height: 68px !important;
    }

    body.woocommerce-cart .wc-block-cart-item__product,
    body.woocommerce-cart .wc-block-cart-item__wrap,
    body.woocommerce-cart .wc-block-components-product-metadata,
    body.woocommerce-cart .wc-block-components-product-details {
        padding-right: 0 !important;
    }
}

/* =====================================================
   RIPRISTINO MOBILE — HEADER E HERO NEGOZIO/CATEGORIE
   ===================================================== */
@media (max-width: 1024px) {
    /* Layout approvato: logo a sinistra; icone sopra e hamburger sotto,
       entrambi allineati sul margine destro. */
    #masthead .elementor-element-6f07b8db {
        display: grid !important;
        grid-template-columns: minmax(0, 65fr) minmax(0, 35fr) !important;
        grid-template-rows: 46px 46px !important;
        min-height: 108px !important;
        padding: 8px 20px !important;
        align-items: center !important;
    }

    #masthead .elementor-element-1457e305,
    #masthead .elementor-element-12ddcb71,
    #masthead .elementor-element-4edd8156 {
        position: relative !important;
        inset: auto !important;
        min-width: 0 !important;
    }

    #masthead .elementor-element-1457e305 {
        grid-column: 1 !important;
        grid-row: 1 / span 2 !important;
        width: auto !important;
        height: 100% !important;
        justify-content: flex-start !important;
    }

    #masthead .elementor-element-4edd8156 {
        grid-column: 2 !important;
        grid-row: 1 !important;
        width: auto !important;
        justify-content: flex-end !important;
    }

    #masthead .elementor-element-12ddcb71 {
        grid-column: 2 !important;
        grid-row: 2 !important;
        width: auto !important;
        align-self: end !important;
        justify-content: flex-end !important;
    }

    #masthead .elementor-element-4edd8156 .header-icons,
    #masthead .elementor-element-4edd8156 .elementor-shortcode {
        width: 100% !important;
        justify-content: flex-end !important;
    }

    #masthead .elementor-element-4edd8156 .header-icons {
        gap: 4px !important;
    }

    #masthead .elementor-element-4edd8156 .header-icons .icon-btn,
    #masthead .elementor-element-4edd8156 .header-icons a.icon-btn,
    #masthead .elementor-element-4edd8156 .header-icons button.icon-btn {
        display: inline-flex !important;
        width: 26px !important;
        min-width: 26px !important;
        height: 30px !important;
        min-height: 30px !important;
        margin: 0 !important;
        padding: 0 !important;
        align-items: center !important;
        align-self: center !important;
        justify-content: center !important;
        line-height: 1 !important;
        transform: none !important;
    }

    #masthead .elementor-element-4edd8156 .header-icons .icon-btn i {
        line-height: 1 !important;
    }

    #masthead .elementor-element-3eb53a50,
    #masthead .elementor-element-3eb53a50 .elementor-widget-container,
    #masthead .elementor-element-3eb53a50 .hfe-nav-menu,
    #masthead .elementor-element-3eb53a50 .hfe-nav-menu__layout {
        display: flex !important;
        width: 100% !important;
        justify-content: flex-end !important;
    }

    #masthead .elementor-element-3eb53a50 .hfe-nav-menu__toggle {
        display: flex !important;
        margin-left: auto !important;
        margin-right: 0 !important;
        transform: translateY(-5px) !important;
    }

    /* Nei primi schermi di Negozio e Categorie niente fotografia: la
       composizione riprende i colori del logo, senza usare il nero. */
    body.woocommerce-shop .shop-hero,
    body.post-type-archive-product .shop-hero,
    body.tax-product_cat .shop-hero {
        min-height: 220px !important;
        overflow: hidden;
        background-color: #c1ecdd !important;
        background-image:
            radial-gradient(circle at 92% 5%, rgba(63, 184, 175, .90) 0 18%, transparent 18.4%),
            radial-gradient(circle at 4% 98%, rgba(191, 190, 241, .78) 0 25%, transparent 25.4%),
            radial-gradient(circle at 78% 78%, rgba(247, 211, 109, .58) 0 18%, transparent 18.4%),
            radial-gradient(circle at 24% 20%, rgba(247, 171, 191, .58) 0 13%, transparent 13.4%),
            linear-gradient(135deg, #f8fffd 0%, #c1ecdd 49%, #e6f8f3 100%) !important;
        background-position: center !important;
        background-size: cover !important;
    }

    body.woocommerce-shop .shop-hero__content,
    body.tax-product_cat .shop-hero__content {
        position: relative;
        z-index: 1;
    }

    /* Solo la pagina archivio Negozio è più alta; le categorie restano
       alla dimensione compatta impostata sopra. */
    body.woocommerce-shop .shop-hero,
    body.post-type-archive-product .shop-hero {
        min-height: 280px !important;
    }

    /* Sicurezza per i prodotti raggruppati: le scelte dei singoli prodotti
       sono sempre visibili nel flusso mobile. */
    .cf-mobile-product-flow .grouped-products-custom {
        display: flex !important;
        flex-direction: column !important;
        gap: 12px !important;
        width: 100% !important;
        margin: 18px 0 !important;
    }

    .cf-mobile-product-flow .grouped-products-custom .grouped-row {
        display: flex !important;
        visibility: visible !important;
    }
}


























/* CTA catalogo: stesso stile per prodotti variabili e raggruppati. */
a.button.product_type_variable.add_to_cart_button,
a.button.product_type_grouped {
    color: #fff;
    background: #3FB8AF;
    text-align: center;
    padding: 12px 35px;
}

/* Opzioni variazione: selezione evidente e combinazioni non disponibili barrate. */
.single-product form.variations_form .tawcvs-swatches .swatch {
    position: relative;
    isolation: isolate;
}
.single-product form.variations_form .tawcvs-swatches .swatch.cf-option-selected {
    outline: 3px solid #087b6b !important;
    outline-offset: 3px !important;
    box-shadow: 0 0 0 6px #d8f3eb !important;
    opacity: 1 !important;
}
.single-product form.variations_form .tawcvs-swatches .swatch.cf-option-selected::before { content: none !important; display: none !important; }
.single-product form.variations_form .tawcvs-swatches .cf-option-wrapper-unavailable {
    display: inline-block !important;
    visibility: visible !important;
}
.single-product form.variations_form .tawcvs-swatches .swatch.cf-option-unavailable {
    display: flex !important;
    visibility: visible !important;
    opacity: .5 !important;
    cursor: not-allowed !important;
    outline: none !important;
    box-shadow: none !important;
}
.single-product form.variations_form .tawcvs-swatches .swatch.cf-option-unavailable::after {
    content: '' !important;
    display: block !important;
    position: absolute !important;
    inset: 0 !important;
    width: auto !important;
    height: auto !important;
    border: 0 !important;
    border-radius: inherit !important;
    transform: none !important;
    background: linear-gradient(to bottom right, transparent calc(50% - 1.5px), #8c2435 calc(50% - 1.5px), #8c2435 calc(50% + 1.5px), transparent calc(50% + 1.5px)) !important;
    z-index: 5;
    pointer-events: none;
}
.single-product form.variations_form .tawcvs-swatches .swatch:focus-visible {
    outline: 3px solid #17343d !important;
    outline-offset: 3px !important;
}
/* Recupero password: layout isolato dall'area personale. */
body.woocommerce-lost-password{background:#fcf8f1}
body.woocommerce-lost-password #content.site-main{width:100%;max-width:none;padding:58px 24px 72px;color:#1d4039;font-family:Poppins,sans-serif}
body.woocommerce-lost-password #content .page-header{max-width:620px;margin:0 auto 28px;text-align:center}
body.woocommerce-lost-password #content .entry-title{margin:0;color:#1d4039;font:700 clamp(30px,3.5vw,44px)/1.18 Poppins,sans-serif;letter-spacing:-1.2px}
body.woocommerce-lost-password #content .page-content{max-width:620px;margin:0 auto}
body.woocommerce-lost-password #content .page-content>.woocommerce{display:block;width:100%;min-width:0;padding:36px 40px;background:#fff;border:1px solid #e3ebe4;border-radius:26px;box-shadow:0 12px 36px rgba(29,64,57,.045)}
body.woocommerce-lost-password #content form.lost_reset_password{display:block;width:100%;max-width:none;margin:0;padding:0;border:0;box-shadow:none}
body.woocommerce-lost-password #content form.lost_reset_password>p:first-child{margin:0 0 24px;color:#536b62;font-size:14px;line-height:1.85}
body.woocommerce-lost-password #content form.lost_reset_password .form-row{display:block;float:none;width:100%;max-width:none;padding:0;margin:0 0 22px}
body.woocommerce-lost-password #content form.lost_reset_password .form-row:last-of-type{margin-bottom:0}
body.woocommerce-lost-password #content form.lost_reset_password label{display:block;width:auto;margin:0 0 9px;color:#1d4039;font-size:13px;font-weight:600;line-height:1.6}
body.woocommerce-lost-password #content form.lost_reset_password input.input-text{display:block;box-sizing:border-box;width:100%;min-width:0;min-height:52px;padding:13px 15px;border:1px solid #d0ded5;border-radius:12px;background:#fcfdfb;color:#1d4039;font:400 16px/1.5 Poppins,sans-serif}
body.woocommerce-lost-password #content form.lost_reset_password input.input-text:focus{border-color:#00aaa8;outline:3px solid rgba(0,170,168,.15);outline-offset:1px}
body.woocommerce-lost-password #content form.lost_reset_password button.button{display:block;width:100%;min-height:50px;padding:14px 22px;border:1px solid #00aaa8;border-radius:50px;background:#00aaa8;color:#fff;font:600 14px/1.5 Poppins,sans-serif;text-align:center;cursor:pointer;transition:background-color .18s,border-color .18s}
body.woocommerce-lost-password #content form.lost_reset_password button.button:hover{background:#008d8b;border-color:#008d8b}
body.woocommerce-lost-password #content form.lost_reset_password button.button:focus-visible{outline:3px solid #1d4039;outline-offset:3px}
body.woocommerce-lost-password #content .woocommerce-notices-wrapper:empty{display:none}
body.woocommerce-lost-password #content .woocommerce-notice,body.woocommerce-lost-password #content .woocommerce-message,body.woocommerce-lost-password #content .woocommerce-info,body.woocommerce-lost-password #content .woocommerce-error{border-radius:12px;font-size:14px;line-height:1.7}
@media(max-width:767px){body.woocommerce-lost-password #content.site-main{padding:36px 20px 44px}body.woocommerce-lost-password #content .page-header{margin-bottom:22px}body.woocommerce-lost-password #content .entry-title{font-size:30px;letter-spacing:-.8px}body.woocommerce-lost-password #content .page-content>.woocommerce{padding:26px 22px;border-radius:22px}body.woocommerce-lost-password #content form.lost_reset_password>p:first-child{font-size:13px}}

/* Conferma recupero e accesso clienti: stessa famiglia visiva. */
body.woocommerce-lost-password #content .page-content>.woocommerce>p{margin:18px 0 0;color:#536b62;font-size:14px;line-height:1.85}
body.woocommerce-lost-password #content .woocommerce-message{border:1px solid #cde0d3;background:#eaf5ef;color:#1d4039;box-shadow:none;outline:none;margin:0 0 20px}
body.woocommerce-lost-password #content .woocommerce-message::before{color:#00aaa8}
body.woocommerce-lost-password #content .password-input{display:block;position:relative;width:100%}
body.woocommerce-lost-password #content .password-input input{padding-right:46px}
body.woocommerce-lost-password #content .show-password-input{right:15px;top:15px;color:#52746a}
body.woocommerce-account:not(.logged-in):not(.woocommerce-lost-password){background:#fcf8f1}
body.woocommerce-account:not(.logged-in):not(.woocommerce-lost-password) #content{max-width:none;width:100%;padding:58px 24px 72px;font-family:Poppins,sans-serif;color:#1d4039}
body.woocommerce-account:not(.logged-in):not(.woocommerce-lost-password) #content .page-header{margin:0 auto 28px;text-align:center}
body.woocommerce-account:not(.logged-in):not(.woocommerce-lost-password) #content h1{margin:0;color:#1d4039;font:700 clamp(30px,3.5vw,44px)/1.18 Poppins,sans-serif;letter-spacing:-1.2px}
body.woocommerce-account:not(.logged-in):not(.woocommerce-lost-password) #content .page-content{max-width:620px;margin:auto}
body.woocommerce-account:not(.logged-in):not(.woocommerce-lost-password) #content .woocommerce{display:block;padding:36px 40px;border:1px solid #e3ebe4;border-radius:26px;background:#fff;box-shadow:0 12px 36px rgba(29,64,57,.045)}
body.woocommerce-account:not(.logged-in):not(.woocommerce-lost-password) #content h2{color:#1d4039;font-size:24px}
body.woocommerce-account:not(.logged-in):not(.woocommerce-lost-password) #content form{border:0;padding:0;margin:20px 0 0}
body.woocommerce-account:not(.logged-in):not(.woocommerce-lost-password) #content .form-row{float:none;width:100%;padding:0;margin:0 0 20px;font-size:13px}
body.woocommerce-account:not(.logged-in):not(.woocommerce-lost-password) #content label{color:#1d4039;line-height:1.6}
body.woocommerce-account:not(.logged-in):not(.woocommerce-lost-password) #content input.input-text{width:100%;min-height:52px;padding:13px 15px;border:1px solid #d0ded5;border-radius:12px;background:#fcfdfb;color:#1d4039;font:400 16px/1.5 Poppins,sans-serif}
body.woocommerce-account:not(.logged-in):not(.woocommerce-lost-password) #content input.input-text:focus{outline:3px solid rgba(0,170,168,.15);outline-offset:1px;border-color:#00aaa8}
body.woocommerce-account:not(.logged-in):not(.woocommerce-lost-password) #content button.button{border:1px solid #00aaa8;border-radius:50px;background:#00aaa8;color:#fff;min-height:48px;padding:12px 28px;font:600 14px/1.5 Poppins,sans-serif}
body.woocommerce-account:not(.logged-in):not(.woocommerce-lost-password) #content .lost_password a{color:#008f8d;font-size:13px}
body.woocommerce-account:not(.logged-in):not(.woocommerce-lost-password) #content .page-content:has(#customer_login){max-width:1000px}
@media(max-width:767px){body.woocommerce-account:not(.logged-in):not(.woocommerce-lost-password) #content{padding:36px 20px 44px}body.woocommerce-account:not(.logged-in):not(.woocommerce-lost-password) #content .woocommerce{padding:26px 22px;border-radius:22px}body.woocommerce-account:not(.logged-in):not(.woocommerce-lost-password) #content #customer_login .col-1,body.woocommerce-account:not(.logged-in):not(.woocommerce-lost-password) #content #customer_login .col-2{float:none;width:100%}}

/* Titoli centrati nelle schermate di accesso e recupero. */
body.woocommerce-lost-password #content .entry-title,body.woocommerce-account:not(.logged-in):not(.woocommerce-lost-password) #content h1{text-align:center!important}

/* Prezzi finali: il dettaglio IVA resta disponibile nei dati degli ordini. */
.woocommerce .includes_tax,
.woocommerce .tax_label,
.woocommerce tr.tax-total,
.woocommerce tr.tax-rate,
.wc-block-components-totals-footer-item-tax,
.wc-block-components-totals-taxes {
    display: none !important;
}

/* La copertina della categoria principale è condivisa dalle sottocategorie. */
body.tax-product_cat .shop-hero.shop-hero--category-cover {
    min-height: 0;
    aspect-ratio: var(--cf-category-cover-ratio, 1079 / 234);
    background-image: var(--cf-category-cover) !important;
    background-size: cover;
    background-position: center;
    background-repeat: no-repeat;
}
body.tax-product_cat .shop-hero--category-cover .shop-hero__content {
    max-width: 1180px;
}
body.tax-product_cat .shop-hero--category-cover .shop-hero__title {
    max-width: 42%;
    font-size: clamp(26px, 2.5vw, 35px);
    line-height: 1.2;
    overflow-wrap: break-word;
}
@media (max-width: 767px) {
    body.tax-product_cat .shop-hero.shop-hero--category-cover {
        min-height: 180px !important;
        aspect-ratio: auto;
        padding: 24px 20px 110px !important;
        align-items: flex-start;
        background-image: var(--cf-category-cover) !important;
        background-color: #fff !important;
        background-position: center bottom !important;
        background-size: 100% auto !important;
        background-repeat: no-repeat;
    }
    body.tax-product_cat .shop-hero--category-cover .shop-hero__title {
        max-width: 100%;
        font-size: 28px;
    }
}

/* Megamenu desktop: il pannello si centra sull'intestazione completa. */
@media (min-width: 1025px) {
    #masthead .elementor-element-6f07b8db { position: relative !important; }
    #masthead .elementor-element-12ddcb71,
    #masthead .elementor-element-3eb53a50,
    #masthead .hfe-nav-menu__layout-horizontal,
    #masthead .cf-shop-menu-item { position: static !important; }
    #masthead .cf-shop-megamenu {
        left: 50%;
        width: min(1100px, calc(100vw - 48px));
        max-width: calc(100vw - 48px);
        box-sizing: border-box;
    }
    #masthead .cf-shop-megamenu::before {
        content: '';
        position: absolute;
        top: -12px;
        left: 0;
        width: 100%;
        height: 12px;
    }
}


/* Distribuzione continua delle categorie nelle quattro colonne desktop. */
@media (min-width: 1025px) {
 #masthead .cf-shop-megamenu { grid-template-columns: repeat(4, minmax(0, 1fr)); align-items: start; }
 #masthead .cf-shop-mega-column { display: contents; }
 #masthead .cf-shop-mega-group { min-width: 0; margin-bottom: 0; }
}
