/* ====================================================================
   KAMIMENG — product page
   Custom gallery (.km-gallery-wrap) — independent of the theme Swiper
   ==================================================================== */

/* ------------------------------------------------------------------
   LAYOUT: remove left-padding chain so gallery reaches the page edge
   ------------------------------------------------------------------ */
.contents-detail .bwp-single-product {
    padding-left: 0 !important;
    padding-right: 0 !important;
}
.single-product .bwp-single-image {
    padding-left:  0 !important;
    padding-right: 0 !important;
}
.single-product .bwp-single-image .images,
.single-product .bwp-single-image figure.woocommerce-product-gallery,
.single-product .bwp-single-image figure > .row {
    margin:  0 !important;
    padding: 0 !important;
}
.single-product .bwp-single-image figure > .row > div {
    padding-left:  0 !important;
    padding-right: 0 !important;
}

/* ------------------------------------------------------------------
   GALLERY WRAPPER
   ------------------------------------------------------------------ */
.single-product .km-gallery-wrap {
    width:    100%;
    position: relative;
}

/* ------------------------------------------------------------------
   TRACK WRAPPER (the visible clipping window)
   ------------------------------------------------------------------ */
.single-product .km-track-wrap {
    height:   clamp(540px, 78vh, 860px);
    overflow: hidden;
    position: relative;
}

/* ------------------------------------------------------------------
   TRACK (the full scrollable strip — width set by JS per-slide)
   ------------------------------------------------------------------ */
.km-track {
    display:             flex;
    height:              100%;
    will-change:         transform;
    cursor:              grab;
    user-select:         none;
    -webkit-user-select: none;
}
.km-track.km-dragging {
    cursor: grabbing;
}

/* ------------------------------------------------------------------
   SLIDES — width injected by JS; height from parent
   ------------------------------------------------------------------ */
.km-slide {
    flex-shrink: 0;
    height:      100%;
    overflow:    hidden;
}

.km-slide a.km-zoom {
    display: block;
    width:   100%;
    height:  100%;
    cursor:  zoom-in;
}

.km-slide img {
    display:             block;
    width:               100%;
    height:              100%;
    object-fit:          cover;
    pointer-events:      none;
    user-select:         none;
    -webkit-user-select: none;
    -webkit-user-drag:   none;
}

/* ------------------------------------------------------------------
   ARROWS
   ------------------------------------------------------------------ */
.single-product .km-gallery-wrap .km-arrow {
    position:        absolute;
    top:             50%;
    transform:       translateY(-50%);
    z-index:         10;
    width:           44px;
    height:          44px;
    padding:         0;
    border:          none;
    border-radius:   50%;
    background:      rgba(255, 255, 255, 0.92);
    box-shadow:      0 2px 8px rgba(0, 0, 0, 0.14);
    color:           #1a1a1a;
    cursor:          pointer;
    display:         flex;
    align-items:     center;
    justify-content: center;
    transition:      background .2s ease, box-shadow .2s ease, transform .2s ease;
}
.single-product .km-gallery-wrap .km-arrow:hover {
    background: #fff;
    box-shadow: 0 4px 14px rgba(0, 0, 0, 0.22);
    transform:  translateY(-50%) scale(1.06);
}
.single-product .km-gallery-wrap .km-prev { left:  12px; }
.single-product .km-gallery-wrap .km-next { right: 12px; }

.single-product .km-gallery-wrap .km-arrow.km-arrow--disabled {
    opacity:        0.3;
    cursor:         default;
    pointer-events: none;
}

/* ------------------------------------------------------------------
   THUMBNAIL STRIP: hidden
   ------------------------------------------------------------------ */
.single-product .bwp-single-image .content-thumbs-scroll {
    display: none !important;
}

/* ------------------------------------------------------------------
   LIGHTBOX
   ------------------------------------------------------------------ */
#km-lb {
    display:         none;
    position:        fixed;
    inset:           0;
    z-index:         100000;
    align-items:     center;
    justify-content: center;
}
#km-lb.open {
    display: flex;
}

.km-lb-bg {
    position:   absolute;
    inset:      0;
    background: rgba(0, 0, 0, 0.92);
    cursor:     zoom-out;
}

/* Prev / Next arrows */
#km-lb .km-lb-prev,
#km-lb .km-lb-next {
    position:        relative;
    z-index:         1;
    flex-shrink:     0;
    width:           48px;
    height:          48px;
    border:          none;
    border-radius:   50%;
    background:      rgba(255, 255, 255, 0.12);
    color:           #fff;
    cursor:          pointer;
    display:         flex;
    align-items:     center;
    justify-content: center;
    margin:          0 12px;
    transition:      background .2s;
}
#km-lb .km-lb-prev:hover,
#km-lb .km-lb-next:hover {
    background: rgba(255, 255, 255, 0.28);
}

/* Image */
.km-lb-img {
    position:    relative;
    z-index:     1;
    display:     block;
    max-width:   min(calc(100vw - 160px), 1100px);
    max-height:  90vh;
    object-fit:  contain;
}

/* Close button — top-right corner */
#km-lb .km-lb-close {
    position:        absolute;
    top:             18px;
    right:           18px;
    z-index:         2;
    width:           40px;
    height:          40px;
    border:          1.5px solid rgba(255, 255, 255, 0.35);
    border-radius:   50%;
    background:      transparent;
    color:           #fff;
    font-size:       16px;
    cursor:          pointer;
    display:         flex;
    align-items:     center;
    justify-content: center;
    transition:      border-color .2s, background .2s;
}
#km-lb .km-lb-close:hover {
    background:   rgba(255, 255, 255, 0.15);
    border-color: #fff;
}

/* Prevent body scroll while lightbox is open */
body.km-lb-active {
    overflow: hidden;
}

/* ------------------------------------------------------------------
   VARIAZIONI: rimuovi bordi dalla tabella e rendi le righe flex
   ------------------------------------------------------------------ */
.quickview-container .product-type-variable .variations_form.cart table tr,
.single-product .product-type-variable .variations_form.cart table tr {
    margin-bottom: 15px;
    display:       flex !important;
    flex-wrap:     wrap !important;
    width:         100% !important;
    border:        0px !important;
}

.single-product .product-type-variable .variations_form.cart table,
.single-product .product-type-variable .variations_form.cart table td,
.single-product .product-type-variable .variations_form.cart table th {
    border: 0 !important;
}

/* ------------------------------------------------------------------
   TAGLIE ESPLOSE — riquadri selezionabili stile Indigoluna
   ------------------------------------------------------------------ */
.woocommerce.single-product .product-type-variable .variations_form.cart table tr td.value .tawcvs-swatches {
    display:   flex !important;
    flex-wrap: wrap !important;
    gap:       8px !important;
    padding:   0 !important;
    margin:    0 !important;
}

.woocommerce.single-product .product-type-variable .variations_form.cart table tr td.value .tawcvs-swatches .swatch-item-wrapper {
    flex:    1 1 0 !important;
    margin:  0 !important;
    padding: 0 !important;
}

.woocommerce.single-product .product-type-variable .variations_form.cart table tr td.value .tawcvs-swatches .swatch.swatch-label {
    width:           100% !important;
    min-width:       46px !important;
    height:          44px !important;
    line-height:     44px !important;
    padding:         0 14px !important;
    margin:          0 !important;
    border:          1.5px solid #d0d0d0 !important;
    border-radius:   2px !important;
    background:      #fff !important;
    color:           #1a1a1a !important;
    font-size:       13px !important;
    font-weight:     400 !important;
    cursor:          pointer !important;
    display:         inline-flex !important;
    align-items:     center !important;
    justify-content: center !important;
    transition:      border-color .15s ease, background .15s ease, color .15s ease !important;
    box-shadow:      none !important;
    overflow:        visible !important;
}

.woocommerce.single-product .product-type-variable .variations_form.cart table tr td.value .tawcvs-swatches .swatch.swatch-label:hover {
    background-color: #f5f5f5 !important;
    border-color:     #1a1a1a !important;
    color:            #1a1a1a !important;
    box-shadow:       none !important;
}

.woocommerce.single-product .product-type-variable .variations_form.cart table tr td.value .tawcvs-swatches .swatch.swatch-label.selected {
    background-color: #f5f5f5 !important;
    border-color:     #1a1a1a !important;
    color:            #1a1a1a !important;
    box-shadow:       none !important;
}

.woocommerce.single-product .product-type-variable .variations_form.cart table tr td.value .tawcvs-swatches .swatch.swatch-label.disabled,
.woocommerce.single-product .product-type-variable .variations_form.cart table tr td.value .tawcvs-swatches .swatch.swatch-label.no-product {
    opacity:         0.38 !important;
    cursor:          not-allowed !important;
    text-decoration: line-through !important;
}

.woocommerce.single-product .cart.variations_form .tawcvs-swatches .swatch.swatch-label::before,
.woocommerce.single-product .cart.variations_form .tawcvs-swatches .swatch.swatch-label::after {
    display: none !important;
    border:  none !important;
}

/* ------------------------------------------------------------------
   MOBILE (< 768px)
   ------------------------------------------------------------------ */
@media (max-width: 767px) {
    .single-product .km-track-wrap {
        height: 460px;
    }
    .single-product .km-gallery-wrap .km-arrow {
        width:  36px;
        height: 36px;
    }
    .single-product .km-gallery-wrap .km-prev { left:  8px; }
    .single-product .km-gallery-wrap .km-next { right: 8px; }

    .km-lb-img {
        max-width: calc(100vw - 32px);
    }
    #km-lb .km-lb-prev,
    #km-lb .km-lb-next {
        width:  36px;
        height: 36px;
        margin: 0 4px;
    }
}

/* ====================================================================
   KAMIMENG — Indigoluna-inspired product page redesign
   ==================================================================== */

/* ------------------------------------------------------------------
   LAYOUT: two-column proportions
   Images ≈ 63 %, info ≈ 37 % — enforced via flex, not Bootstrap classes
   ------------------------------------------------------------------ */
@media (min-width: 768px) {
    .single-product .bwp-single-product > .row {
        flex-wrap:   nowrap;
        align-items: flex-start;
    }
    .single-product .bwp-single-image {
        flex:      0 0 58%;
        max-width: 58%;
    }
    .single-product .bwp-single-info {
        flex:      0 0 42%;
        max-width: 42%;
    }
}

@media (min-width: 992px) {
    .single-product .bwp-single-image {
        flex:      0 0 63%;
        max-width: 63%;
    }
    .single-product .bwp-single-info {
        flex:            0 0 37%;
        max-width:       37%;
        position:        sticky;
        top:             80px;
        align-self:      flex-start;
        max-height:      calc(100vh - 80px);
        overflow-y:      auto;
        /* hide scrollbar visually but keep scroll */
        scrollbar-width: none;
        padding-right:0px;
    }
    .single-product .bwp-single-info::-webkit-scrollbar {
        display: none;
    }
}

@media (max-width: 767px) {
    .single-product .bwp-single-product > .row {
        flex-direction: column;
    }
    .single-product .bwp-single-image,
    .single-product .bwp-single-info {
        flex:      0 0 100%;
        max-width: 100%;
    }
}

/* ------------------------------------------------------------------
   INFO COLUMN — padding & spacing
   ------------------------------------------------------------------ */
.single-product .bwp-single-info {
    padding-top: 0;
}

.single-product .bwp-single-info .entry-summary {
    padding: 40px 28px 40px 36px;
}

@media (max-width: 991px) {
    .single-product .bwp-single-info .entry-summary {
        padding: 28px 16px;
    }
}

@media (max-width: 767px) {
    .single-product .bwp-single-info .entry-summary {
        padding: 24px 0;
    }
}

/* ------------------------------------------------------------------
   TYPOGRAPHY — product title
   ------------------------------------------------------------------ */
.single-product .entry-summary h1.product_title {
    font-size:      20px !important;
    font-weight:    400 !important;
    letter-spacing: 0.025em !important;
    line-height:    1.35 !important;
    margin-bottom:  10px !important;
    color:          #1a1a1a !important;
    text-transform: none !important;
}

/* ------------------------------------------------------------------
   TYPOGRAPHY — price
   ------------------------------------------------------------------ */
.single-product .entry-summary p.price,
.single-product .entry-summary span.price {
    font-size:      15px !important;
    font-weight:    400 !important;
    color:          #1a1a1a !important;
    margin-bottom:  6px !important;
    padding-bottom: 0 !important;
    border:         none !important;
    border-bottom:  none !important;
    display:        block;
}
.single-product .entry-summary p.price::before,
.single-product .entry-summary p.price::after {
    display: none !important;
}
/* Hide any hr / separator that the theme injects after the price */
.single-product .entry-summary > hr,
.single-product .entry-summary .yamai-price-hr,
.single-product .entry-summary .price + hr {
    display: none !important;
}
.single-product .entry-summary p.price del,
.single-product .entry-summary span.price del {
    color:        #aaa !important;
    margin-right: 6px;
}
.single-product .entry-summary p.price ins,
.single-product .entry-summary span.price ins {
    text-decoration: none !important;
    color:           #b5311e !important;
}

/* Short description */
.single-product .entry-summary .woocommerce-product-details__short-description {
    font-size:     13px;
    line-height:   1.7;
    color:         #666;
    margin-bottom: 20px;
}

/* Product meta (SKU, category) */
.single-product .entry-summary .product_meta {
    font-size:     11px;
    color:         #aaa;
    margin-top:    0;
    margin-bottom: 12px;
    letter-spacing: 0.04em;
}

/* Reset variations link */
.single-product .reset_variations {
    font-size:      11px;
    color:          #999;
    letter-spacing: 0.04em;
    display:        inline-block;
    margin-bottom:  5px 0 0px !important;
}

/* ------------------------------------------------------------------
   COLOUR SWATCHES
   ------------------------------------------------------------------ */
.km-color-swatches {
    display:       flex;
    align-items:   center;
    gap:           14px;
    margin-top:    22px;
    margin-bottom: 0;
}

/* Remove the border-bottom line that the theme draws under the price block */
.quickview-container .entry-summary .discount-price,
.single-product .entry-summary .discount-price {
    display:        flex;
    flex-wrap:      wrap;
    align-items:    center;
    gap:            10px;
    margin:         0 0 6px;
    padding-bottom: 0;
    border-bottom:  none !important;
}

.km-color-swatches__label {
    font-size:      11px;
    letter-spacing: 0.09em;
    text-transform: uppercase;
    color:          #999;
    flex-shrink:    0;
}

.km-color-swatches__list {
    display:     flex;
    gap:         12px;
    align-items: center;
    flex-wrap:   wrap;
}

.km-color-swatch {
    display:        block;
    width:          22px;
    height:         22px;
    border-radius:  50%;
    border:         none;
    outline:        2px solid transparent;
    outline-offset: 3px;
    flex-shrink:    0;
    transition:     outline-color .18s ease, transform .15s ease;
    cursor:         pointer;
    text-decoration: none;
}
.km-color-swatch:hover {
    outline-color: rgba(26, 26, 26, 0.3);
    transform:     scale(1.08);
}
.km-color-swatch--active {
    outline-color: #1a1a1a;
}
.km-color-swatch--active:hover {
    outline-color: #1a1a1a;
    transform:     none;
}
/* White swatch: needs a visible border so it's not invisible on white bg */
.km-color-swatch--light,
.km-color-swatch[data-color-key="bianco"] {
    border:     1.5px solid #d0d0d0 !important;
    box-shadow: inset 0 0 0 1px #e8e8e8;
}
.km-color-swatch--light.km-color-swatch--active,
.km-color-swatch[data-color-key="bianco"].km-color-swatch--active {
    outline-color: #888 !important;
}

/* ------------------------------------------------------------------
   VARIATIONS — label above swatches
   ------------------------------------------------------------------ */
.single-product .entry-summary .variations td.label label {
    font-size:      11px !important;
    letter-spacing: 0.08em !important;
    text-transform: uppercase !important;
    color:          #999 !important;
    font-weight:    400 !important;
    line-height:    normal !important;
}

/* ------------------------------------------------------------------
   ADD TO CART FORM
   ------------------------------------------------------------------ */

/* Quantity hidden for clean fashion aesthetic */
.single-product form.cart .quantity {
    display: none !important;
}

/* Variable product: make sure the button fills the width */
.single-product .woocommerce-variation-add-to-cart {
    display: block;
}

/* The button */
.single-product .single_add_to_cart_button {
    display:         block !important;
    width:           100% !important;
    height:          52px !important;
    line-height:     52px !important;
    background:      #1a1a1a !important;
    color:           #fff !important;
    border:          1.5px solid #1a1a1a !important;
    border-radius:   2px !important;
    font-size:       11px !important;
    font-weight:     400 !important;
    letter-spacing:  0.12em !important;
    text-transform:  uppercase !important;
    text-align:      center !important;
    cursor:          pointer !important;
    padding:         0 !important;
    box-shadow:      none !important;
    transition:      background .2s ease, color .2s ease !important;
}
.single-product .single_add_to_cart_button:hover:not(:disabled) {
    background: transparent !important;
    color:      #1a1a1a !important;
}
.single-product .single_add_to_cart_button:disabled,
.single-product .single_add_to_cart_button.disabled {
    opacity:        0.38 !important;
    cursor:         not-allowed !important;
    pointer-events: none !important;
}

/* ------------------------------------------------------------------
   HIDE BUY NOW  (covers the most common plugin/theme implementations)
   ------------------------------------------------------------------ */
.single-product .wc-buy-now,
.single-product .buy-now-button,
.single-product .woo-buy-now-btn,
.single-product .woolentor-buy-now-btn,
.single-product .wcbn-btn,
.single-product .nm-buy-now,
.single-product .bwp-buy-now,
.single-product [class*="buy-now"]:not(.km-color-swatch),
.single-product [class*="buynow"] {
    display: none !important;
}

/* ------------------------------------------------------------------
   PRODUCT DESCRIPTION (below cart)
   ------------------------------------------------------------------ */
.km-product-description {
    margin-top:  20px;
    font-size:   14px;
    line-height: 1.75;
    color:       #777;
}
.km-product-description p {
    margin: 0 0 6px;
    font-size: inherit;
}
.km-product-description p:last-child {
    margin-bottom: 0;
}

/* ------------------------------------------------------------------
   ACCORDION
   ------------------------------------------------------------------ */
.km-accordion {
    margin-top: 28px;
    border-top: 1px solid #e8e8e8;
}

.km-accordion__item {
    border-bottom: 1px solid #e8e8e8;
}

.km-accordion__trigger {
    display:         flex;
    align-items:     center;
    justify-content: space-between;
    width:           100%;
    padding:         15px 0;
    background:      transparent;
    border:          none;
    cursor:          pointer;
    font-size:       11px;
    font-weight:     400;
    letter-spacing:  0.09em;
    text-transform:  uppercase;
    color:           #1a1a1a;
    text-align:      left;
    gap:             8px;
    transition:      color .15s ease;
}
.km-accordion__trigger:hover {
    color: #555;
}

.km-accordion__icon {
    flex-shrink: 0;
    stroke:      currentColor;
    transition:  transform .25s ease;
}

.km-accordion__item.km-open .km-accordion__icon {
    transform: rotate(180deg);
}

/* Smooth height animation via CSS grid trick */
.km-accordion__body-wrapper {
    display:            grid;
    grid-template-rows: 0fr;
    transition:         grid-template-rows .28s ease;
}
.km-accordion__item.km-open .km-accordion__body-wrapper {
    grid-template-rows: 1fr;
}

.km-accordion__body {
    overflow:    hidden;
    font-size:   14px;
    line-height: 1.75;
    color:       #777;
}

.km-accordion__body p {
    padding:   0 0 14px;
    margin:    0;
    font-size: inherit;
    color:     inherit;
}

.km-accordion__body .km-size-popup-trigger,
.km-accordion__body .km-fabric-trigger,
.km-accordion__body .km-care-trigger {
    color:                 #1a1a1a;
    text-decoration:       underline;
    text-underline-offset: 2px;
    white-space:           nowrap;
}

/* ------------------------------------------------------------------
   SIZE GUIDE POPUP
   ------------------------------------------------------------------ */
.km-size-popup {
    display:         none;
    position:        fixed;
    inset:           0;
    z-index:         99999;
    align-items:     center;
    justify-content: center;
}
.km-size-popup.open {
    display: flex;
}
.km-sp-overlay {
    position:   absolute;
    inset:      0;
    background: rgba(0,0,0,.42);
}
.km-sp-box {
    position:   relative;
    z-index:    1;
    background: #fff;
    width:      calc(100% - 32px);
    max-width:  660px;
    max-height: 88vh;
    overflow-y: auto;
    padding:    40px 36px 36px;
}
.km-sp-close {
    position:   absolute;
    top:        14px;
    right:      16px;
    background: transparent;
    border:     none;
    cursor:     pointer;
    font-size:  16px;
    color:      #1a1a1a;
    line-height: 1;
    padding:    4px 6px;
}
.km-sp-label {
    font-size:      11px;
    font-weight:    400;
    letter-spacing: .09em;
    text-transform: uppercase;
    color:          #999;
    margin:         0 0 14px;
}
.km-sp-label + .km-sp-label,
.km-sp-table + .km-sp-label {
    margin-top: 32px;
}
.km-sp-table {
    width:           100%;
    border-collapse: collapse;
    font-size:       13px;
    color:           #444;
}
.km-sp-table th,
.km-sp-table td {
    padding:       10px 14px;
    text-align:    left;
    border-bottom: 1px solid #f0f0f0;
    white-space:   nowrap;
}
.km-sp-table th {
    font-size:      11px;
    font-weight:    500;
    letter-spacing: .05em;
    text-transform: uppercase;
    color:          #1a1a1a;
}
.km-sp-table td:first-child { font-weight: 500; color: #1a1a1a; }
.km-sp-color {
    font-size:   11px;
    color:       #999;
    font-weight: 400;
}
.km-sp-scroll {
    overflow-x: auto;
    -webkit-overflow-scrolling: touch;
}
.km-sp-chart td:first-child { font-weight: 700; }

/* ------------------------------------------------------------------
   MOBILE — accordion & button full width
   ------------------------------------------------------------------ */
@media (max-width: 767px) {
    .single-product .single_add_to_cart_button {
        width: 100% !important;
    }
    .km-accordion__trigger {
        padding: 13px 0;
    }
}

/* ------------------------------------------------------------------
   SHOP LISTING — titoli prodotto: nessun transform CSS (il JS si occupa del title-case)
   ------------------------------------------------------------------ */
.products-list h3.product-title,
.products-list h3.product-title a {
    text-transform: none !important;
}

/* ------------------------------------------------------------------
   TITLE ROW: titolo + icona cuore wishlist sulla stessa riga
   ------------------------------------------------------------------ */
.single-product .entry-summary .km-product-title-row {
    display:         flex;
    align-items:     flex-start;
    justify-content: space-between;
    gap:             12px;
    margin-bottom:   10px;
}
.single-product .entry-summary .km-product-title-row .product_title {
    flex:          1;
    min-width:     0;
    margin-bottom: 0 !important;
}

/* Wishlist nel titolo — nessun cerchio, solo cuore allineato al titolo */
.single-product .entry-summary .km-wishlist-title {
    flex-shrink: 0;
    display:     flex;
    align-items: flex-start;
    margin:      0;
    padding-top: 8px;
}

/* Rimuovi il cerchio grigio 45 × 45 del tema, mostra solo l'icona */
.single-product .entry-summary .km-wishlist-title .woosw-btn {
    margin:      0 !important;
    padding:     0 !important;
    background:  transparent !important;
    border:      none !important;
    line-height: 1 !important;
    height:      auto !important;
}

/* Cuore outline — copre sia il :before del bottone (icomoon) sia l'icona woosw-btn-icon */
.single-product .entry-summary .km-wishlist-title .woosw-btn:before,
.single-product .entry-summary .km-wishlist-title .woosw-btn .woosw-btn-icon:before {
    width:               auto !important;
    height:              auto !important;
    line-height:         1 !important;
    display:             inline-block !important;
    background:          transparent !important;
    border-radius:       0 !important;
    border:              none !important;
    margin:              0 !important;
    color:               transparent !important;
    -webkit-text-stroke: 0.6px #1a1a1a !important;
    font-size:           14px !important;
}

/* Aggiunto: cuore pieno scuro */
.single-product .entry-summary .km-wishlist-title .woosw-btn.woosw-added:before,
.single-product .entry-summary .km-wishlist-title .woosw-btn.woosw-added .woosw-btn-icon:before {
    color:               #1a1a1a !important;
    -webkit-text-stroke: 0 !important;
    background:          transparent !important;
    display:             inline-block !important;
}

/* Hover: outline leggermente più scura */
.single-product .entry-summary .km-wishlist-title .woosw-btn:hover:before,
.single-product .entry-summary .km-wishlist-title .woosw-btn:hover .woosw-btn-icon:before {
    color:               transparent !important;
    -webkit-text-stroke: 0.6px #555 !important;
    background:          transparent !important;
    border-radius:       0 !important;
}

/* ------------------------------------------------------------------
   PRODUCT BADGES — Made in Italy / Tessuto naturale / Tessuti certificati
   ------------------------------------------------------------------ */
.km-product-badges {
    display:         flex;
    justify-content: center;
    align-items:     center;
    gap:             24px;
    padding-top:     24px;
    border-top:      1px solid #e8e8e8;
}
.km-product-badges__icon {
    width:  auto;
    height: 102px;
    display: block;
}

/* ------------------------------------------------------------------
   AREA PULSANTE — nascondi compare e quick-buy; share rimane visibile
   ------------------------------------------------------------------ */
.single-product .bwp-single-info .woosc-compare,
.single-product .bwp-single-info .quick-buy {
    display: none !important;
}

/* ------------------------------------------------------------------
   SHARE — Desktop: affiancato al bottone; Mobile: sotto
   ------------------------------------------------------------------ */

/* Desktop ≥ 768px */
@media (min-width: 768px) {
    /* Prodotto semplice: form.cart diventa flex row */
    .single-product .bwp-single-info form.cart:not(.variations_form) {
        display:     flex !important;
        flex-wrap:   nowrap !important;
        align-items: flex-start !important;
        gap:         12px !important;
    }
    .single-product .bwp-single-info form.cart:not(.variations_form) .quantity-button {
        flex: 1 !important;
    }
    /* Prodotto variabile: .single_variation_wrap diventa flex row */
    .single-product .bwp-single-info .single_variation_wrap {
        display:   flex !important;
        flex-wrap: wrap !important;
        gap:       0 12px !important;
    }
    /* La div con dati variante occupa l'intera larghezza (riga sopra) */
    .single-product .bwp-single-info .woocommerce-variation {
        flex-basis: 100% !important;
    }
    /* Il wrapper del bottone si espande */
    .single-product .bwp-single-info .woocommerce-variation-add-to-cart.variations_button {
        flex: 1 !important;
    }
    /* Share: auto width, stesso margine superiore del bottone per allinearlo */
    .single-product .bwp-single-info .share-content {
        display:    inline-flex !important;
        flex-basis: auto !important;
        width:      auto !important;
        flex-shrink: 0 !important;
        clear:       none !important;
        margin-top:  0px !important;
    }
    .single-product .product-type-variable .variations_form.cart .single_variation_wrap .woocommerce-variation-add-to-cart {
margin-top:  0px !important;
    }
}

/* Mobile < 768px: share sotto il bottone */
@media (max-width: 767px) {
    .single-product .bwp-single-info .share-content {
        display:    block !important;
        width:      100% !important;
        flex-basis: 100% !important;
        clear:      both !important;
        margin-top: 12px !important;
    }
}

/* ====================================================================
   MENU MOBILE (offcanvas) — spaziatura e layout voci
   ==================================================================== */

/* Separatore su ogni li di primo livello */
.bwp-offcanvas-menu .bwp-dropdown .bwp-dropdown-ul > li {
    border-bottom: 1px solid rgba(52, 64, 51, 0.08);
}
.bwp-offcanvas-menu .bwp-dropdown .bwp-dropdown-ul > li.level-0:last-child {
    border-bottom: 0;
}

/* Voce senza figli: semplice block con padding */
.bwp-offcanvas-menu .bwp-dropdown .bwp-dropdown-ul > li:not(.menu-item-has-children) > a {
    display: block !important;
    padding: 13px 0 !important;
}

/* ---- Voce con sotto-menu: flex — link a sinistra, freccia a destra ---- */
.bwp-offcanvas-menu .bwp-dropdown .bwp-dropdown-ul > li.menu-item-has-children {
    display:     flex !important;
    flex-wrap:   wrap !important;
    align-items: stretch !important;
}
/* Link occupa tutto lo spazio disponibile */
.bwp-offcanvas-menu .bwp-dropdown .bwp-dropdown-ul > li.menu-item-has-children > a {
    flex:    1 1 0 !important;
    display: block !important;
    width:   auto !important;
    padding: 13px 0 !important;
}
/* Freccia allineata a destra, centrata verticalmente */
.bwp-offcanvas-menu .bwp-dropdown .bwp-dropdown-ul > li.menu-item-has-children > .dropdown-symbol {
    flex-shrink: 0 !important;
    position:    static !important;
    left:        auto !important;
    display:     flex !important;
    align-items: center !important;
    padding:     0 6px !important;
    cursor:      pointer;
}
/* Sotto-menu: occupa l'intera larghezza (nuova riga nel flex) */
.bwp-offcanvas-menu .bwp-dropdown .bwp-dropdown-ul > li.menu-item-has-children > .sub-menu {
    flex-basis: 100% !important;
    width:      100% !important;
}

/* Voci di secondo livello: padding ridotto + leggera indentazione */
.bwp-offcanvas-menu .bwp-dropdown .bwp-dropdown-ul > li .sub-menu li > a {
    display:     block !important;
    padding:     9px 0 9px 10px !important;
    font-weight: 400 !important;
    font-size:   calc(var(--font-size-body, 15px) - 1px) !important;
    border-bottom: 1px solid rgba(52, 64, 51, 0.05);
}
.bwp-offcanvas-menu .bwp-dropdown .bwp-dropdown-ul > li .sub-menu li:last-child > a {
    border-bottom: 0 !important;
}

/* ------------------------------------------------------------------
   WHATSAPP LINK
   ------------------------------------------------------------------ */
.single-product .km-whatsapp-btn {
    display:         inline-flex;
    align-items:     center;
    gap:             6px;
    margin-top:      12px;
    color:           #869C8A;
    font-size:       12px;
    font-weight:     400;
    letter-spacing:  0.04em;
    text-decoration: none;
    cursor:          pointer;
    background:      transparent;
    border:          none;
    padding:         0;
    transition:      opacity .2s ease;
}
.single-product .km-whatsapp-btn:hover {
    opacity: 0.75;
    color:   #869C8A;
}
.single-product .km-whatsapp-btn svg {
    flex-shrink: 0;
}
