/* Stili pagina prodotto */

/* PhotoSwipe fullscreen: nascosto (si usa il modal galleria #hk-gallery-modal) */
#photoswipe-fullscreen-dialog,
.pswp {
    display: none !important;
}

/* Form carrello: nessun bordo */
.single-product form.cart {
    border: none !important;
    border-top-width: 0 !important;
    border-right-width: 0 !important;
    border-bottom-width: 0 !important;
    border-left-width: 0 !important;
}

/* Spazio extra sotto il blocco variazione (es. sanitari a terra con testo aggiuntivo) */
.single-product .woocommerce-variation.single_variation {
    margin-bottom: 15px !important;
}

/* Rimuovi padding-bottom da main-content solo nella pagina prodotto */
.single-product .main-content,
.single-product .main-content.col-lg-12,
.single-product .no-breadcrumbs .main-content,
.single-product .no-breadcrumbs .main-content.col-lg-12 {
    padding-bottom: 0 !important;
}

/* Layout principale prodotto: 3 colonne (IMMAGINI | PRODOTTO | BARRA) */
.single-product .porto-child-product-layout {
    display: flex !important;
    flex-direction: column !important;
}

.single-product .porto-child-product-main {
    display: grid !important;
    grid-template-columns: 1fr 1.5fr 1fr !important;
    gap: 40px !important;
    width: 100% !important;
}
.single-product .porto-child-product-gallery {
    /* Colonna 1: IMMAGINI */
    width: 100% !important;
    max-width: 100% !important;
    overflow: hidden !important;
    position: relative !important;
}
.single-product .porto-child-product-gallery .product-images,
.single-product .porto-child-product-gallery .product-images.images,
.single-product .porto-child-product-gallery .woocommerce-product-gallery,
.single-product .porto-child-product-gallery .woocommerce-product-gallery__wrapper {
    width: 100% !important;
    max-width: 100% !important;
}
.single-product .porto-child-product-gallery img,
.single-product .porto-child-product-gallery .product-images img,
.single-product .porto-child-product-gallery .woocommerce-product-gallery img {
    max-width: 100% !important;
    height: auto !important;
    display: block !important;
}

/* Galleria prodotto: evita height: 0 (solo CSS, niente JS).
 * Porto (woocommerce-theme.js) usa calcOwlHeight(): misura .owl-item.active e
 * imposta quel valore su .owl-stage-outer. Con lazy-load gli slide sono alti 0
 * e Porto imposta style="height: 0px", quindi le immagini scompaiono.
 * Soluzione: min-height sugli slide (così la misura è ≥ 280px) e regole sotto
 * che sovrascrivono l’inline style con !important. */
.single-product .porto-child-product-gallery .product-image-slider .owl-item,
.single-product .porto-child-product-gallery .product-images .owl-item {
    min-height: 280px !important;
}
.single-product .porto-child-product-gallery .product-image-slider.owl-carousel .owl-stage-outer,
.single-product .porto-child-product-gallery .product-images .owl-stage-outer {
    min-height: 280px !important;
    height: auto !important;
}
/* Sovrascrivi anche quando c’è inline style="height: 0px" (specificità alta) */
.single-product .porto-child-product-gallery .owl-stage-outer[style*="height: 0"],
.single-product .porto-child-product-gallery .product-images .owl-stage-outer[style*="height: 0"] {
    height: auto !important;
    min-height: 280px !important;
}
.single-product .porto-child-product-gallery .product-image-slider.owl-carousel .owl-stage,
.single-product .porto-child-product-gallery .product-images .owl-stage {
    min-height: 280px !important;
}

/* Galleria custom senza Owl (.hk-product-gallery) */
.single-product .porto-child-product-gallery .hk-product-gallery {
    display: block;
    width: 100%;
}
.single-product .porto-child-product-gallery .hk-gallery-main {
    width: 100%;
    margin-bottom: 12px;
    aspect-ratio: 3 / 4;
    min-height: 300px;
    position: relative;
}
.hk-gallery-main__mobile-prev,
.hk-gallery-main__mobile-next,
.hk-gallery-main__zoom-btn {
    display: none;
}
@media (max-width: 767px) {
    /* Su mobile lasciamo che l'immagine detti l'altezza naturalmente senza aspect-ratio forzati */
    .single-product .porto-child-product-gallery div.hk-gallery-main {
        min-height: auto !important;
        height: auto !important;
        aspect-ratio: auto !important;
        display: flex !important;
        align-items: center;
        justify-content: center;
    }
    .single-product .porto-child-product-gallery div.hk-gallery-main .inner {
        min-height: auto !important;
        height: auto !important;
        position: relative;
    }
    .single-product .porto-child-product-gallery div.hk-gallery-main a.hk-gallery-zoom {
        min-height: auto !important;
        height: auto !important;
        display: block !important;
        position: relative;
    }
    .single-product .porto-child-product-gallery div.hk-gallery-main img.hk-gallery-main-img {
        min-height: auto !important;
        height: auto !important;
        width: 100% !important;
        object-fit: contain !important; /* contain is better for variable aspect ratios */
        opacity: 1 !important;
        visibility: visible !important;
        display: block !important;
        position: relative;
    }

    .hk-gallery-main__mobile-prev,
    .hk-gallery-main__mobile-next {
        display: flex !important;
        position: absolute;
        top: 50%;
        transform: translateY(-50%);
        z-index: 9998;
        background: rgba(255, 255, 255, 0.8);
        border: none;
        width: 36px;
        height: 36px;
        border-radius: 50%;
        align-items: center;
        justify-content: center;
        cursor: pointer;
        box-shadow: 0 2px 5px rgba(0,0,0,0.15);
        color: #333;
    }
    .hk-gallery-main__mobile-prev {
        left: 10px;
    }
    .hk-gallery-main__mobile-next {
        right: 10px;
    }
    
    .hk-gallery-main__zoom-btn {
        display: flex !important;
        position: absolute;
        bottom: 10px;
        right: 10px;
        z-index: 9998;
        background: #fff;
        border: none;
        width: 40px;
        height: 40px;
        border-radius: 50%;
        align-items: center;
        justify-content: center;
        cursor: pointer;
        box-shadow: 0 2px 5px rgba(0,0,0,0.2);
        color: #000;
        padding: 0;
    }
    .hk-gallery-main__zoom-btn svg {
        width: 20px;
        height: 20px;
        stroke: #000;
    }
    
    /* Rimuovi zoom inline da mobile perché interferisce con slide */
    .single-product .porto-child-product-gallery .hk-gallery-main .inner {
        pointer-events: auto; /* Ripristinato per permettere clic sulla modale */
    }
}
.single-product .porto-child-product-gallery .hk-gallery-main .inner {
    position: relative;
    width: 100%;
    height: 100%;
    min-height: 300px;
    overflow: hidden;
    cursor: zoom-in;
}
/* Override Porto grid.css: .product-images:hover .zoom { opacity: 0 } nasconde l'immagine;
   la mostriamo sempre (anche senza hover su .img-thumbnail) */
.single-product .porto-child-product-gallery .product-images .zoom,
.single-product .porto-child-product-gallery .product-images:hover .zoom,
.single-product .porto-child-product-gallery .hk-gallery-main .hk-gallery-zoom {
    display: block !important;
    width: 100%;
    height: 100%;
    min-height: 300px;
    line-height: 0;
    opacity: 1 !important;
    visibility: visible !important;
}
.single-product .porto-child-product-gallery .hk-gallery-main img {
    width: 100%;
    height: 100%;
    min-height: 300px;
    object-fit: cover;
    object-position: center;
    display: block;
    vertical-align: top;
    /* Immagine principale sempre visibile (non solo al hover, anche con lazy load) */
    opacity: 1 !important;
    visibility: visible !important;
    transition: transform 0.2s ease-out;
}
.single-product .porto-child-product-gallery .hk-gallery-thumbs {
    display: flex;
    flex-wrap: nowrap;
    gap: 8px;
    width: 100%;
    list-style: none;
    margin: 0;
    padding: 0;
}
.single-product .porto-child-product-gallery .hk-gallery-thumbs .hk-thumb {
    flex: 1 1 0;
    min-width: 0;
    padding: 0;
    border: 2px solid transparent;
    border-radius: 2px;
    cursor: pointer;
    background: none;
    overflow: hidden;
    line-height: 0;
    transition: border-color 0.2s ease;
    display: block;
}
.single-product .porto-child-product-gallery .hk-gallery-thumbs .hk-thumb:hover,
.single-product .porto-child-product-gallery .hk-gallery-thumbs .hk-thumb.active {
    border-color: var(--porto-primary-color, #0088cc);
}
.single-product .porto-child-product-gallery .hk-gallery-thumbs .hk-thumb img {
    width: 100%;
    height: auto;
    display: block;
    vertical-align: top;
    aspect-ratio: 1;
    object-fit: cover;
}

/* Modal lightbox galleria prodotto */
.hk-gallery-modal {
    position: fixed;
    inset: 0;
    z-index: 999999;
    background: rgba(0, 0, 0, 0.9);
    display: flex;
    align-items: center;
    justify-content: center;
    opacity: 0;
    visibility: hidden;
    transition: opacity 0.2s ease, visibility 0.2s ease;
}
.hk-gallery-modal.hk-gallery-modal--open {
    opacity: 1;
    visibility: visible;
}
.hk-gallery-modal[hidden] {
    display: none !important;
}
.hk-gallery-modal--open[hidden] {
    display: flex !important;
}
.hk-gallery-modal__content {
    max-width: 90vw;
    max-height: 90vh;
    display: flex;
    align-items: center;
    justify-content: center;
}
.hk-gallery-modal__img {
    max-width: 100%;
    max-height: 90vh;
    width: auto;
    height: auto;
    object-fit: contain;
    display: block;
}
.hk-gallery-modal__close {
    position: absolute;
    top: 16px;
    right: 16px;
    width: 44px;
    height: 44px;
    border: none;
    background: rgba(255, 255, 255, 0.15);
    color: #fff;
    font-size: 28px;
    line-height: 1;
    cursor: pointer;
    border-radius: 4px;
    padding: 0;
    display: flex;
    align-items: center;
    justify-content: center;
    transition: background 0.2s ease;
}
.hk-gallery-modal__close:hover {
    background: rgba(255, 255, 255, 0.3);
}
.hk-gallery-modal__prev,
.hk-gallery-modal__next {
    position: absolute;
    top: 50%;
    transform: translateY(-50%);
    width: 48px;
    height: 48px;
    border: none;
    background: rgba(255, 255, 255, 0.15);
    color: #fff;
    font-size: 24px;
    cursor: pointer;
    border-radius: 4px;
    padding: 0;
    display: flex;
    align-items: center;
    justify-content: center;
    transition: background 0.2s ease;
}
.hk-gallery-modal__prev:hover,
.hk-gallery-modal__next:hover {
    background: rgba(255, 255, 255, 0.3);
}
.hk-gallery-modal__prev {
    left: 16px;
}
.hk-gallery-modal__next {
    right: 16px;
}
.hk-gallery-modal__counter {
    position: absolute;
    bottom: 20px;
    left: 50%;
    transform: translateX(-50%);
    color: rgba(255, 255, 255, 0.9);
    font-size: 14px;
}

.single-product .porto-child-product-summary {
    /* Colonna 2: PRODOTTO */
    width: 100% !important;
}
.single-product .porto-child-product-sidebar {
    /* Colonna 3: BARRA */
    width: 100% !important;
}
.single-product .porto-child-product-after-summary {
    margin-top: 40px !important;
    width: 100% !important;
    grid-column: 1 / -1 !important;
}

/* Rimuovi padding-top dal secondo wrapper #main annidato nella pagina prodotto */
.single-product #main.column1.boxed.no-breadcrumbs #main.column1.boxed.no-breadcrumbs {
    padding-top: 0 !important;
}
/* Tablet/mobile: una colonna (sotto 768px) */
@media (max-width: 991px) {
    .single-product .porto-child-product-main {
        grid-template-columns: 1fr !important;
    }
    .single-product .porto-child-product-gallery,
    .single-product .porto-child-product-summary,
    .single-product .porto-child-product-sidebar {
        width: 100% !important;
    }
    /* Galleria prodotto: altezza limitata da tablet in giù (non occupa troppo spazio) */
    .single-product .porto-child-product-gallery {
        max-height: 35vh !important;
        overflow: hidden !important;
    }
    .single-product .woocommerce-product-gallery__wrapper {
        max-height: 35vh !important;
        overflow: hidden !important;
    }
    .single-product .porto-child-product-gallery .woocommerce-product-gallery__image {
        max-height: 35vh !important;
    }
    .single-product .porto-child-product-gallery .woocommerce-product-gallery__image img,
    .single-product .porto-child-product-gallery .woocommerce-product-gallery img {
        max-height: 35vh !important;
        width: 100% !important;
        height: 35vh !important;
        object-fit: cover !important;
    }
}

/* Mobile: immagine prodotto ripristina formati originali */
@media (max-width: 767px) {
    .single-product .porto-child-product-gallery,
    .single-product .woocommerce-product-gallery__wrapper,
    .single-product .porto-child-product-gallery .woocommerce-product-gallery__image {
        max-height: none !important;
        height: auto !important;
        aspect-ratio: auto !important;
        overflow: hidden !important;
    }

    .single-product .porto-child-product-gallery .woocommerce-product-gallery__image img,
    .single-product .porto-child-product-gallery .woocommerce-product-gallery img {
        max-height: none !important;
        height: auto !important;
        width: 100% !important;
        object-fit: contain !important;
    }
}

/* 450px–600px: galleria alta 40vh */
@media (min-width: 450px) and (max-width: 600px) {
    .single-product .porto-child-product-gallery {
        max-height: 40vh !important;
    }
    .single-product .woocommerce-product-gallery__wrapper {
        max-height: 40vh !important;
    }
    .single-product .porto-child-product-gallery .woocommerce-product-gallery__image {
        max-height: 40vh !important;
    }
    .single-product .porto-child-product-gallery .woocommerce-product-gallery__image img,
    .single-product .porto-child-product-gallery .woocommerce-product-gallery img {
        max-height: 40vh !important;
        height: 40vh !important;
    }
}

/* iPad piccolo (768px–991px): galleria alta 50vh */
@media (min-width: 768px) and (max-width: 991px) {
    .single-product .porto-child-product-gallery {
        max-height: 50vh !important;
    }
    .single-product .woocommerce-product-gallery__wrapper {
        max-height: 50vh !important;
    }
    .single-product .porto-child-product-gallery .woocommerce-product-gallery__image {
        max-height: 50vh !important;
    }
    .single-product .porto-child-product-gallery .woocommerce-product-gallery__image img,
    .single-product .porto-child-product-gallery .woocommerce-product-gallery img {
        max-height: 50vh !important;
        height: 50vh !important;
    }
}

/* Override mobile/tablet: non tagliare le thumbnails della galleria custom (.hk-product-gallery) */
@media (max-width: 991px) {
    .single-product .porto-child-product-gallery,
    .single-product .porto-child-product-gallery .woocommerce-product-gallery__wrapper {
        max-height: none !important;
        height: auto !important;
        overflow: visible !important;
    }
}

@media (max-width: 767px) {
    /* Su mobile il rapporto 3:4 è già gestito da .hk-gallery-main;
       il contenitore generale non deve avere aspect-ratio, altrimenti taglia i thumb. */
    .single-product .porto-child-product-gallery {
        aspect-ratio: auto !important;
    }
}

/* iPad largo (768px–991px): 2 colonne (immagini | info), sotto la sidebar */
@media (min-width: 768px) and (max-width: 991px) {
    .single-product .porto-child-product-main {
        grid-template-columns: 1fr 1fr !important;
    }
    .single-product .porto-child-product-gallery {
        grid-column: 1;
    }
    .single-product .porto-child-product-summary {
        grid-column: 2;
    }
    .single-product .porto-child-product-sidebar {
        grid-column: 1 / -1;
    }
}

/* Titolo "Prodotti correlati" (usiamo classi Elementor) */
.single-product .related.products h2.elementor-heading-title.elementor-size-default {
    text-align: center !important;
    border-bottom: none !important;
    margin-bottom: 32px !important;
    text-transform: uppercase !important;
}


/* Sezione prodotti correlati: nessun padding sopra/sotto */
.related.products {
    padding-top: 0 !important;
    padding-bottom: 0 !important;
    margin-top: 0 !important;
    margin-bottom: 0 !important;
}

/* Container interno correlati: rimuovi padding/margine in basso */
.related.products .container,
.related.products .slider-wrapper {
    padding-bottom: 0 !important;
    margin-bottom: 0 !important;
}

/* Container Elementor correlati: togli margin-bottom */
.elementor-element-5f8cee1.e-parent {
    margin-bottom: 0 !important;
    border-top: none !important;
}

.elementor-element-5f8cee1.e-parent .e-con-inner {
    padding-top: 0 !important;
}

/* Contenitore widget prodotti correlati: togli padding-top imposto da Elementor */
.single-product .elementor-element-c2c5fce.e-con,
.single-product .elementor-element-c2c5fce.e-con > .e-con-inner {
    padding-top: 0 !important;
    padding-block-start: 0 !important;
}

/* Nascondi heading Elementor "I clienti che hanno acquistato..." */
.elementor-element-264ecfc {
    display: none !important;
}

/* Su pagina prodotto: card senza box-shadow (anche in hover) */
.single-product .product-card-modern .card-inner,
.single-product .product-card-modern .card-inner:hover {
    box-shadow: none !important;
    transform: none !important;
}

/* Su pagina prodotto: nessun bordo superiore per il blocco prezzo card */
.single-product .product-card-modern .card-price {
    border-top: none !important;
}

/* Sezioni info Elementor originali: nascoste, usiamo il template custom */
.single-product .elementor-element-1532b29.e-con {
    display: none !important;
}

/* Container principale top (gallery + colonna destra): nessun bordo */
.single-product .elementor-element-827ca8c.e-con,
.single-product .elementor-element-827ca8c.e-con > .e-con-inner {
    border: none !important;
}

/* Titoli Elementor nella pagina prodotto: niente margine superiore extra */
.single-product .elementor-heading-title.elementor-size-default {
    margin-top: 0 !important;
}

/* Nascondi pulsante "Svuota" nelle variazioni prodotto */
.single-product .variations_form .reset_variations {
    display: none !important;
}

/* Variazioni: mostra il nome attributo (es. "Packaging") sopra alle scelte */
.single-product form.variations_form table.variations,
.single-product form.variations_form table.variations tbody,
.single-product form.variations_form table.variations tr,
.single-product form.variations_form table.variations th,
.single-product form.variations_form table.variations td {
    display: block !important;
    width: 100% !important;
}
.single-product form.variations_form table.variations th.label {
    padding-bottom: 8px !important;
}
.single-product form.variations_form table.variations th.label label {
    font-size: 18px !important;
    font-weight: 600 !important;
    text-transform: none !important;
}
.single-product form.variations_form table.variations td.value {
    padding: 0 !important;
}

/* Variazioni: rimuovi margini/bordi/padding in alto nel blocco variazione */
.single-product .single_variation_wrap,
.single-product .single_variation_wrap .woocommerce-variation,
.single-product .single_variation_wrap .woocommerce-variation-price,
.single-product .single_variation_wrap .woocommerce-variation-availability,
.single-product .single_variation_wrap .woocommerce-variation-add-to-cart {
    margin-top: 0 !important;
    padding-top: 0 !important;
    border-top: none !important;
    border: none !important;
}

/* Add-to-cart variabile: rimuovi layout flex del tema */
.single-product .single_variation_wrap .woocommerce-variation-add-to-cart,
.single-product .single_variation_wrap .woocommerce-variation-add-to-cart.variations_button {
    display: block !important;
}

/* Variazioni: nascondi il prezzo della variazione (non serve) */
.single-product .single_variation_wrap .woocommerce-variation-price {
    display: none !important;
}

/* Nascondi messaggio PayPal PPCP generico */
.single-product [data-pp-message],
.single-product .ppcp-messages,
.single-product #ppcp-messages,
.single-product .paypal-messages,
.single-product .paypal-message,
.single-product .wc-ppcp-paypal-message,
.single-product .ppcp-paypal-message {
    display: none !important;
}
/* Eccezione: mostra contenuto PayPal nel nostro container "Paga fino a 24 rate" (>300€) */
.single-product #hk-pay-in-24-container .message,
.single-product #hk-pay-in-24-container [data-pp-message] {
    display: block !important;
}
/* Fallback: nascondi markup PayPal generico (PPCP plugin) */
.single-product button > .message {
    display: none !important;
}
/* Mostra messaggio PayPal "Paga fino a 24 rate" solo nel nostro container (>300€) */
.single-product #hk-pay-in-24-container button,
.single-product #hk-pay-in-24-container button > .message,
.single-product #hk-pay-in-24-container .message {
    display: block !important;
}

/* Box "Totale": usa solo #hk-total-box (lato PHP/JS); nascondi il blocco del template variazione */
.single-product .single_variation_wrap .hk-total,
.single-product .single_variation_wrap .hk-total-red-box {
    display: none !important;
}
/* La barra disponibilità viene spostata dal JS sotto #hk-total-box (una sola, dal template) */
.single-product .woocommerce-variation-availability {
    display: block !important;
    visibility: visible !important;
}
/* Forza visibilità quando è subito dopo #hk-total-box (evita che Porto/altri la nascondano) */
.single-product #hk-total-box + .woocommerce-variation-availability,
.single-product form.cart .woocommerce-variation-availability {
    display: block !important;
    visibility: visible !important;
    opacity: 1 !important;
}
.single-product .single_variation_wrap #hk-total-box {
    margin-top: 0 !important;
}

/* Spaziatura verticale tra le voci della sezione variazione */
.single-product .single_variation_wrap .woocommerce-variation-custom_field_m2,
.single-product .single_variation_wrap .woocommerce-variation-availability,
.single-product .single_variation_wrap .hk-total,
.single-product .single_variation_wrap .hk-total-red-box {
    margin-bottom: 20px !important;
}

/* Box PREZZO TOTALE / contatore unità: visibile quando la variazione ha mq/ml */
.single-product #hk-total-box {
    padding: 0 !important;
    border: none !important;
    width: 100% !important;
    max-width: 400px !important;
    display: block !important;
    visibility: visible !important;
    opacity: 1 !important;
}
.single-product form.cart #hk-total-box[style*="display: none"] {
    display: none !important; /* rispetta il nascondi iniziale del JS */
}
/* Totale € in evidenza in cima al box */
.single-product #hk-total-box .hk-total-euro {
    font-weight: 700 !important;
    font-size: 30px !important;
    color: #e74338 !important;
    display: block !important;
    margin: 30px 0 !important;
}

/* Prezzo totale di listino barrato (prima del totale scontato) */
.single-product #hk-total-box .hk-total-regular {
    font-size: 20px !important;
    font-weight: 400 !important;
    color: rgba(231, 67, 56, 0.6) !important;
    text-decoration: line-through !important;
    white-space: nowrap !important;
    margin-right: 8px !important;
    display: inline-block !important;
}
/* Riquadro rosso rimosso (non più usato) */
.single-product .hk-total-red-box {
    display: none !important;
}
/* Riga "Totale:" + valore + unità (m²/ml) */
.single-product #hk-total-box .hk-total-m2-row {
    font-size: 18px !important;
    display: flex !important;
    flex-wrap: nowrap !important;
    align-items: baseline !important;
    gap: 4px !important;
    line-height: 1.4 !important;
}
.single-product #hk-total-box .hk-total-m2-label {
    font-weight: 600 !important;
    color: #111 !important;
    flex-shrink: 0 !important;
}
.single-product #hk-total-box .hk-total-value {
    font-weight: 700 !important;
    color: #e74338 !important;
    flex-shrink: 0 !important;
}
.single-product #hk-total-box .hk-unit-label {
    font-weight: 600 !important;
    color: #e74338 !important;
    flex-shrink: 0 !important;
}

/* Box info packaging (es. "23 € per mq - 1,44 mq per pacco") */
.single-product .single_variation_wrap .woocommerce-variation-custom_field_m2 {
    display: inline-block !important;
    margin: 0 !important;
    padding: 6px 14px !important;
    border: 2px solid #E74338 !important;
    border-radius: 3px !important;
    background-color: #ffffff !important;
    color: #E74338 !important;
    font-weight: 700 !important;
    font-size: 16px !important;
}

/* Messaggio "Paga in 3 rate" (dopo add-to-cart) - larghezza quanto il contenuto su desktop */
.single-product .hk-pay-in-3-message {
    display: inline-block;
    width: auto;
    max-width: 100%;
    padding: 14px 18px;
    background: #f7f7f7;
    border: 1px solid #e5e5e5;
    border-radius: 8px;
    font-size: 15px;
    line-height: 1.5;
    box-sizing: border-box;
    font-family: "Helvetica Neue", Helvetica, Arial, sans-serif;
    font-weight: 400;
}
.single-product .hk-pay-in-3-message .message__promo-container {
    margin-bottom: 8px;
}
.single-product .hk-pay-in-3-message .message__headline {
    display: flex;
    flex-wrap: wrap;

}
.single-product .hk-pay-in-3-message .message__headline .br {
    display: block;
    width: 100%;
}
.single-product .hk-pay-in-3-message .tag--medium {
    font-weight: 400;
    color: #333;
}
.single-product .hk-pay-in-3-message .hk-pay-in-3-amount {
    font-weight: 700;
    color: #111111;
}
.single-product .hk-pay-in-3-message .tag--xsmall {
    font-size: 12px;
    color: #666;
}
.single-product .hk-pay-in-3-message .message__logo-container {
    flex-shrink: 0;
}
.single-product .hk-pay-in-3-message .message__logo img {
    height: 18px;
    width: auto;
    vertical-align: middle;
}
.single-product .hk-pay-in-3-message .message__disclaimer {
    margin: 0;
    margin-top: 6px;
    font-size: 13px;
    color: #666;
}
.single-product .hk-pay-in-3-message .message__disclaimer .tag--default,
.single-product .hk-pay-in-3-message .message__disclaimer .hk-scopri-piu {
    margin-left: 8px;
    color: #0070ba;
    text-decoration: underline;
    cursor: pointer;
    font-weight: 600;
}

/* Mobile: a capo dopo la cifra nei banner PayPal */
@media (max-width: 767px) {
    .single-product .hk-pay-in-3-message .hk-pay-in-3-amount::after {
        content: "\A";
        white-space: pre;
    }
    .single-product #hk-pay-in-24-container .hk-pay-in-24-amount::after {
        content: "\A";
        white-space: pre;
    }

    /* Su mobile: headline PayPal come flusso normale, logo affiancato a "con" */
    .single-product .hk-pay-in-3-message .message__headline {
        display: block;
    }
    .single-product .hk-pay-in-3-message .message__logo-container {
        display: inline-block;
        margin-left: 2px;
    }
}

/* Messaggio "Paga fino a 24 rate" (banner custom PayPal sopra 300€) */
.single-product #hk-pay-in-24-container .hk-pay-in-24-banner {
    display: inline-block;
    padding: 14px 18px;
    background: #f7f7f7;
    border: 1px solid #e5e5e5;
    border-radius: 8px;
    font-size: 15px;
    line-height: 1.5;
    box-sizing: border-box;
    font-family: "Helvetica Neue", Helvetica, Arial, sans-serif;
    font-weight: 400;
    color: #333333;
}
.single-product #hk-pay-in-24-container .hk-pay-in-24-logo {
    display: inline-block;
    margin-left: 4px;

}
.single-product #hk-pay-in-24-container .hk-pay-in-24-logo img {
    height: 18px;
    width: auto;
}
.single-product #hk-pay-in-24-container .hk-pay-in-24-amount {
    font-weight: 700;
    color: #111111;
}
.single-product #hk-pay-in-24-container .hk-pay-in-24-cta {
    margin-left: 8px;
    color: #0070ba;
    text-decoration: underline;
    cursor: pointer;
    font-weight: 600;
}

/* Descrizione breve: mostra sempre tutti i paragrafi (nessun "Più informazioni +") */

/* Titoli "Descrizione" e "Informazioni aggiuntive": CAPS e centrati */
.single-product .elementor-element-18db9a6 .elementor-heading-title.elementor-size-default,
.single-product .elementor-element-a41927b h2 {
    text-transform: uppercase !important;
    text-align: center !important;
}

/* Nascondi box \"Seleziona il packaging per visualizzare il prezzo del prodotto.\" */
.single-product .elementor-element-3d54faa {
    display: none !important;
}

/* Stili per prezzo "A partire da X € al mq" */
.single-product .porto-child-product-summary .cost-m2-text,
.single-product .porto-child-product-summary .cost-ml-text {
    margin: 16px 0 !important;
    font-size: 20px !important;
    line-height: 1.5 !important;
}
.single-product .porto-child-product-summary .cost-prefix {
    font-weight: 600 !important;
    color: #333 !important;
    font-size: 20px !important;
}
.single-product .porto-child-product-summary .cost-value {
    font-weight: 700 !important;
    color: #e74338 !important;
    font-size: 24px !important;
}
.single-product .porto-child-product-summary .cost-suffix {
    font-weight: 600 !important;
    color: #e74338 !important;
    font-size: 20px !important;
}

/* Stili per disponibilità mq */
.single-product .porto-child-product-summary .hk-mq-disponibili {
    margin: 16px 0 !important;
    font-size: 18px !important;
    line-height: 1.5 !important;
}

/* Prezzo + disponibilità uno sotto l'altro */
.single-product .porto-child-product-summary .hk-price-availability-row {
    display: flex !important;
    flex-direction: column !important;
    align-items: flex-start !important;
    gap: 8px !important;
    margin: 16px 0 !important;
}
.single-product .porto-child-product-summary .hk-price-availability-row p.price {
    margin-bottom: 0 !important;
}
.single-product .porto-child-product-summary .hk-price-availability-row .cost-m2-text,
.single-product .porto-child-product-summary .hk-price-availability-row .cost-ml-text,
.single-product .porto-child-product-summary .hk-price-availability-row .hk-mq-disponibili {
    margin: 0 !important;
}

/* Font più grande per prezzo e disponibilità nella riga combinata */
.single-product .porto-child-product-summary .hk-price-availability-row .cost-prefix,
.single-product .porto-child-product-summary .hk-price-availability-row .cost-value,
.single-product .porto-child-product-summary .hk-price-availability-row .cost-suffix,
.single-product .porto-child-product-summary .hk-price-availability-row .hk-mq-disponibili .cost-prefix,
.single-product .porto-child-product-summary .hk-price-availability-row .hk-mq-disponibili .cost-value,
.single-product .porto-child-product-summary .hk-price-availability-row .hk-mq-disponibili .cost-suffix {
    font-size: 22px !important;
}
.single-product .porto-child-product-summary .hk-mq-disponibili .cost-prefix {
    font-weight: 600 !important;
    color: #333 !important;
}
.single-product .porto-child-product-summary .hk-mq-disponibili .cost-value {
    font-weight: 700 !important;
    color: #e74338 !important;
    font-size: 20px !important;
}
.single-product .porto-child-product-summary .hk-mq-disponibili .cost-suffix {
    font-weight: 600 !important;
    color: #e74338 !important;
}

/* Label "Nuovo arrivo" nella gallery prodotto */
.single-product .porto-child-product-gallery .labels {
    position: absolute;
    top: 10px;
    left: 10px;
    z-index: 9998;
}
.single-product .porto-child-product-gallery .labels .onnew,
.single-product .porto-child-product-gallery .labels .onsale {
    display: inline-block;
    background-color: #e74338;
    color: #ffffff;
    padding: 6px 12px;
    font-size: 12px;
    font-weight: 600;
    text-transform: uppercase;
    border-radius: 3px;
    line-height: 1.2;
}

/* Immagine principale prodotto: nessun bordo/outline */
.single-product .product-images .img-thumbnail,
.single-product .product-images .img-thumbnail .inner,
.single-product .woocommerce-product-gallery__image img,
.single-product .woocommerce-product-gallery img {
    border: none !important;
    box-shadow: none !important;
}

/* Da tablet in giù: lightbox disabilitato (solo no click), immagine principale sempre visibile */
@media (max-width: 991px) {
    .single-product .woocommerce-product-gallery .zoom,
    .single-product .product-images .zoom,
    .single-product .porto-child-product-gallery .zoom {
        pointer-events: none !important;
        /* Non nascondere: .zoom avvolge l'immagine grande; opacity/visibility la nascondevano */
        opacity: 1 !important;
        visibility: visible !important;
    }
}

/* Thumbnails prodotto: nessun bordo/ombra */
.single-product .product-thumbnails .img-thumbnail,
.single-product .product-thumbnails .img-thumbnail img {
    border: none !important;
    box-shadow: none !important;
}

/* Descrizione lunga con "Leggi di più" */
.single-product .elementor-element-56974e0 .elementor-widget-container {
    position: relative;
}
.single-product .elementor-element-56974e0 .elementor-widget-container.hk-long-description-collapsed {
    max-height: 320px; /* ~10-12 righe visibili */
    overflow: hidden;
}
.single-product .hk-desc-toggle {
    display: inline-block;
    margin-top: 10px;
    background: none;
    border: none;
    padding: 0;
    color: #000000;
    font-weight: 600;
    text-transform: uppercase;
    font-size: 13px;
    cursor: pointer;
    text-decoration: none;
}
.single-product .hk-desc-toggle:hover {
    color: #e74338;
    text-decoration: none;
}

/* Campo quantità su riga separata */
.single-product .quantity.buttons_added {
    display: block !important;
    width: 100% !important;
    clear: both !important;
    margin-bottom: 15px !important;
}

/* Altezza campo quantità nella pagina prodotto */
.single-product .quantity.buttons_added .input-text.qty,
.single-product .quantity.buttons_added input.qty {
    height: 48px !important;
    line-height: 48px !important;
}

/* Altezza pulsanti + e - nella quantità */
.single-product .quantity.buttons_added .minus,
.single-product .quantity.buttons_added .plus {
    height: 48px !important;
    line-height: 48px !important;
    vertical-align: bottom;
}

/* Mobile: altezza quantità 41.6px */
@media (max-width: 767px) {
    .single-product .quantity.buttons_added .input-text.qty,
    .single-product .quantity.buttons_added input.qty {
        height: 41.6px !important;
        line-height: 41.6px !important;
    }
    .single-product .quantity.buttons_added .minus,
    .single-product .quantity.buttons_added .plus {
        height: 41.6px !important;
        line-height: 41.6px !important;
    }
}

/* Pulsante Aggiungi al carrello: nessun margin bottom */
.single-product .single_add_to_cart_button {
    margin-bottom: 0 !important;
}

/* Bottone "Visualizza carrello" in pagina prodotto: visibile e stile secondario */
.single-product .view-cart-btn,
.single-product .variations_button .view-cart-btn {
    display: inline-block !important;
    margin-top: 10px;
    margin-right: 10px;
    padding: 0 1.5rem;
    height: 3rem;
    line-height: 3rem;
    font-weight: 700;
    text-transform: uppercase;
    letter-spacing: -0.015em;
    background: #fff;
    color: #333;
    border: 1px solid #ddd;
    border-radius: 2px;
    text-decoration: none;
    transition: color 0.2s ease-in-out, background-color 0.2s ease-in-out, border-color 0.2s ease-in-out;
}
.single-product .view-cart-btn:hover {
    background: #f5f5f5;
    border-color: #ccc;
    color: #333;
}

/* Bottoni contatto custom nella colonna destra */
.single-product .hk-contact-buttons {
    display: flex;
    flex-direction: column;
    gap: 16px;
    margin: 0;
}
.single-product .hk-contact-btn {
    display: flex;
    align-items: center;
    gap: 16px;
    padding: 18px 24px;
    border-radius: 4px;
    text-decoration: none;
    font-weight: 600;
    font-size: 16px;
}
.single-product .hk-contact-btn .hk-contact-text {
    display: inline-block;
}
.single-product .hk-contact-whatsapp {
    background-color: #e6f9eb;
    color: #1cb34a;
}
.single-product .hk-contact-whatsapp .hk-contact-icon-whatsapp svg {
    width: 32px;
    height: 32px;
    fill: #1cb34a;
}
.single-product .hk-contact-email {
    background-color: #e74338;
    color: #ffffff;
}
.single-product .hk-contact-email .hk-contact-icon-email i {
    font-size: 28px;
}
.single-product .hk-contact-btn:hover {
    opacity: 0.9;
}

.single-product .hk-contact-note {
    margin-top: 8px;
    font-size: 14px;
    color: #000000;
}

/* Tablet e mobile: testi bottoni contatto centrati */
@media (max-width: 991px) {
    .single-product .hk-contact-btn {
        justify-content: center;
    }
    .single-product .hk-contact-btn .hk-contact-text {
        text-align: center;
    }
    .single-product .hk-contact-btn.hk-contact-email .hk-contact-text {
        text-align: left;
    }
}

/* Sezione "La nostra forza" + pagamenti (template custom) */
.single-product .hk-info-section {
    margin-top: 0;
    display: flex;
    flex-direction: column;
    gap: 24px;
}
.single-product .hk-strength {
    padding: 18px 24px !important;
    background-color: #C2C2C21C !important;
}
.single-product .hk-strength-title {
    font-size: 18px;
    font-weight: 700;
    margin-bottom: 12px;
    text-align: center !important;
}
.single-product .hk-strength-items {
    display: flex;
    flex-direction: column;
    flex-wrap: nowrap;
    gap: 16px;
    justify-content: center;
    align-items: center;
}
.single-product .hk-strength-item {
    display: flex;
    flex-direction: column;
    align-items: center;
    justify-content: center;
    gap: 8px;
    text-align: center;
}
.single-product .hk-strength-icon {
    display: flex;
    align-items: center;
    justify-content: center;
}
.single-product .hk-strength-icon i {
    font-size: 24px;
}
.single-product .hk-strength-text {
    font-weight: 600;
    color: #000000;
    text-align: center;
}

@media (min-width: 992px) {
    .single-product .hk-strength-title {
        text-align: left !important;
    }
    .single-product .hk-strength-items {
        align-items: flex-start;
    }
    .single-product .hk-strength-item {
        flex-direction: row;
        align-items: center;
        justify-content: flex-start;
        text-align: left;
    }
    .single-product .hk-strength-text {
        text-align: left;
    }
}
.single-product .hk-payments-image {
    text-align: center;
}
.single-product .hk-payments-img {
    max-width: 100%;
    height: auto;
    display: inline-block;
}
.single-product .hk-payments-text {
    margin-top: 8px;
    font-weight: 600;
    color: #000000;
    text-align: center;
}

/* Blocco metodi pagamento/spedizione/detrazione fiscale: layout a 3 colonne uguali */
.single-product .elementor-element-e147791.e-con {
    padding: 50px 0 !important;
}
.single-product .elementor-element-e147791.e-con {
    display: grid !important;
    grid-template-columns: 1fr 1fr 1fr !important;
    gap: 24px !important;
}

/* Icone rosse nel blocco pagamento/spedizione/detrazione */
.single-product .elementor-element-4a40ee9 .elementor-icon-box-icon .elementor-icon i,
.single-product .elementor-element-4a40ee9 .elementor-icon-box-icon .elementor-icon {
    color: #e74338 !important;
}

/* Titoli in bold nel blocco pagamento/spedizione/detrazione */
.single-product .elementor-element-4a40ee9 .elementor-icon-box-title,
.single-product .elementor-element-4a40ee9 .elementor-icon-box-title span {
    font-weight: 700 !important;
}

@media (max-width: 991px) {
    .single-product .elementor-element-e147791.e-con {
        grid-template-columns: 1fr !important;
    }
}

/* Nascondi il titolo duplicato "Prodotti correlati" generato da Elementor/WooCommerce */
.single-product .related.products .elementor-heading-title,
.single-product .related.products h2.slider-title {
    display: none !important;
}

/* Prodotti correlati: slider con 4 prodotti per slide */
.single-product .related.products .products {
    display: block !important;
}

.single-product .related.products .products.products-slider {
    display: block !important;
}

/* Card prodotti correlati: larghezza piena SOLO su mobile/tablet,
   su desktop lascia che sia Owl Carousel a gestire le colonne */
.single-product .related.products .products li.product,
.single-product .related.products .products .product-card-modern {
    width: 100% !important;
    max-width: 100% !important;
}

@media (min-width: 1150px) {
    .single-product .related.products .products li.product,
    .single-product .related.products .products .product-card-modern {
        width: 100% !important;
        max-width: none !important;
    }
}

/* Stile slider prodotti correlati */
.single-product .related.products .products-slider .owl-item {
    padding: 0 10px;
}

/* Correlati: card tutte stessa altezza (slider o griglia) */
.single-product .related.products .products li.product {
    height: 100% !important;
    display: flex !important;
    flex-direction: column !important;
}

.single-product .related.products .products li.product > .card-inner {
    height: 100% !important;
    display: flex !important;
    flex-direction: column !important;
}

.single-product .related.products .products li.product > .card-inner .card-content {
    display: flex;
    flex-direction: column;
    flex: 1 1 auto;
}

.single-product .related.products .products li.product > .card-inner .card-action {
    margin-top: auto;
}

.single-product .related.products .products-slider .owl-nav {
    display: block !important;
}

.single-product .related.products .products-slider .owl-dots,
.single-product .related.products .owl-dots {
    display: none !important;
}

/* Posiziona pulsanti navigazione all'esterno dello slider */
.single-product .related.products .products-slider.nav-pos-outside .owl-nav {
    position: absolute;
    top: 50%;
    transform: translateY(-50%);
    width: 100%;
    pointer-events: none;
}

.single-product .related.products .products-slider.nav-pos-outside .owl-nav .owl-prev,
.single-product .related.products .products-slider.nav-pos-outside .owl-nav .owl-next {
    position: absolute;
    pointer-events: all;
    background: #fff;
    border: 1px solid #ddd;
    width: 40px;
    height: 40px;
    border-radius: 50%;
    display: flex;
    align-items: center;
    justify-content: center;
    cursor: pointer;
    transition: all 0.3s;
    color: #000;
}

.single-product .related.products .products-slider.nav-pos-outside .owl-nav .owl-prev {
    left: -50px;
}

.single-product .related.products .products-slider.nav-pos-outside .owl-nav .owl-next {
    right: -50px;
}

.single-product .related.products .products-slider.nav-pos-outside .owl-nav .owl-prev:hover,
.single-product .related.products .products-slider.nav-pos-outside .owl-nav .owl-next:hover {
    background: #e74338;
    border-color: #e74338;
    color: #fff;
}

.single-product .related.products .products-slider.nav-pos-outside .owl-nav .owl-prev.disabled,
.single-product .related.products .products-slider.nav-pos-outside .owl-nav .owl-next.disabled {
    display: none !important;
}

@media (max-width: 991px) {
    .single-product .related.products .products-slider.nav-pos-outside .owl-nav .owl-prev {
        left: -20px;
    }
    .single-product .related.products .products-slider.nav-pos-outside .owl-nav .owl-next {
        right: -20px;
    }
}

/* Responsive gestito da Owl Carousel tramite JavaScript */

/* Mobile: niente slider anche nei correlati (come home "più venduti") */
@media (max-width: 767px) {
    .single-product .related.products .products-slider.nav-pos-outside .owl-nav,
    .single-product .related.products .products-slider .owl-nav,
    .single-product .related.products .products-slider .owl-dots,
    .single-product .related.products .owl-dots {
        display: none !important;
    }

    .single-product .related.products .owl-stage-outer {
        overflow: visible !important;
        height: auto !important;
    }

    .single-product .related.products .owl-stage {
        display: grid !important;
        grid-template-columns: repeat(2, minmax(0, 1fr)) !important;
        gap: 12px !important;
        width: auto !important;
        transform: none !important;
        transition: none !important;
    }

    .single-product .related.products .products-slider .owl-item {
        width: auto !important;
        margin: 0 !important;
        padding: 0 !important;
    }

    /* Mostra solo 4 card (2 righe) */
    .single-product .related.products .products-slider .owl-item:nth-child(n+5) {
        display: none !important;
    }
}

@media (min-width: 1150px) {
    /* Desktop largo: niente slider, 4 colonne fisse */
    .single-product .related.products .products-slider.nav-pos-outside .owl-nav,
    .single-product .related.products .products-slider .owl-nav,
    .single-product .related.products .products-slider .owl-dots,
    .single-product .related.products .owl-dots {
        display: none !important;
    }

    .single-product .related.products .owl-stage-outer {
        overflow: visible !important;
        height: auto !important;
    }

    .single-product .related.products .products-slider .owl-stage {
        display: grid !important;
        grid-template-columns: repeat(4, minmax(0, 1fr)) !important;
        gap: 20px !important;
        width: auto !important;
        transform: none !important;
        transition: none !important;
        align-items: stretch !important;
    }

    .single-product .related.products .products-slider .owl-item {
        width: auto !important;
        margin: 0 !important;
        padding: 0 !important;
        height: 100% !important;
        display: flex !important;
        align-items: stretch !important;
    }

    .single-product .related.products .products-slider .owl-item > li.product {
        flex: 1 1 auto !important;
        height: 100% !important;
    }
}

/* Titolo "Descrizione" centrato e maiuscolo */
.single-product .hk-product-desc-block h2 {
    text-align: center !important;
    text-transform: uppercase !important;
}

/* Titolo "Informazioni aggiuntive" con margin-top */
.single-product .elementor-element-2ed19df h2,
.single-product .woocommerce-product-additional-information h2 {
    margin-top: 40px !important;
}

/* Descrizione prodotto: mostra solo le prime 10 righe */
.single-product .hk-product-desc-block {
    position: relative;
}

.single-product .hk-product-desc-block .hk-desc-content {
    position: relative;
}

.single-product .hk-product-desc-block.hk-desc-collapsed .hk-desc-content {
    max-height: 400px; /* ~10 righe */
    overflow: hidden;
}

.single-product .hk-product-desc-block.hk-desc-collapsed .hk-desc-content::after {
    content: '';
    position: absolute;
    bottom: 0;
    left: 0;
    right: 0;
    background:#fff;
    pointer-events: none;
    z-index: 1;
}

.single-product .hk-product-desc-block:not(.hk-desc-collapsed) .hk-desc-content::after {
    display: none;
}

/* Link "Leggi di più" - sempre visibile quando collassato */
.single-product .hk-product-desc-block .hk-desc-read-more {
    display: inline-block !important;
    margin-bottom: 0 !important;
    font-weight: 600 !important;
    color: #000 !important;
    text-decoration: none !important;
    cursor: pointer !important;
    position: static !important;
    z-index: 10 !important;
    background: transparent !important;
    padding: 0 !important;
    border: 0 !important;
    border-radius: 0 !important;
    box-shadow: none !important;
    visibility: visible !important;
    opacity: 1 !important;
    width: auto !important;
    height: auto !important;
}

.single-product .hk-product-desc-block .hk-desc-read-more:hover {
    color: #e74338 !important;
    text-decoration: none !important;
}

/* Fix mobile: il titolo non deve sovrapporsi alle thumbnails della galleria */
@media (max-width: 767px) {
    .single-product .porto-child-product-gallery,
    .single-product .porto-child-product-gallery .woocommerce-product-gallery,
    .single-product .porto-child-product-gallery .woocommerce-product-gallery__wrapper,
    .single-product .porto-child-product-gallery .woocommerce-product-gallery__image,
    .single-product .porto-child-product-gallery .hk-product-gallery {
        height: auto !important;
        max-height: none !important;
        aspect-ratio: auto !important;
        overflow: visible !important;
    }
}

