/**
 * Store Shell — carrello, checkout, thank you (scope: body.fpwoo-store-shell).
 */
body.fpwoo-store-shell {
    --fpwoo-shell-accent: #2563eb;
    --fpwoo-shell-accent-hover: #1d4ed8;
    --fpwoo-shell-border: #e2e8f0;
    --fpwoo-shell-surface: #f8fafc;
    --fpwoo-shell-text: #0f172a;
    --fpwoo-shell-muted: #64748b;
    --fpwoo-shell-radius: 12px;
    --fpwoo-shell-radius-sm: 8px;
    --fpwoo-shell-shadow: 0 4px 24px rgba(15, 23, 42, 0.06);
    --fpwoo-notice-success-bg: #ecfdf5;
    --fpwoo-notice-success-border: #10b981;
    --fpwoo-notice-success-text: #065f46;
    --fpwoo-notice-info-bg: #f8fafc;
    --fpwoo-notice-info-border: #cbd5e1;
    --fpwoo-notice-info-text: #334155;
    --fpwoo-notice-error-bg: #fef2f2;
    --fpwoo-notice-error-border: #dc2626;
    --fpwoo-notice-error-text: #991b1b;
}

body.fpwoo-store-shell .fpwoo-store-shell__layout {
    max-width: 960px;
    margin: 0 auto;
    padding: 0 1rem 2.5rem;
}

body.fpwoo-store-shell--cart .fpwoo-store-shell__layout {
    max-width: 56rem;
}

body.fpwoo-store-shell--cart .fpwoo-store-shell__layout,
body.fpwoo-store-shell--cart .wc-block-cart {
    padding-left: 1.25rem;
    padding-right: 1.25rem;
}

@media (min-width: 769px) {
    body.fpwoo-store-shell--cart .fpwoo-store-shell__layout,
    body.fpwoo-store-shell--cart .wc-block-cart {
        padding-left: 1.5rem;
        padding-right: 1.5rem;
    }
}

body.fpwoo-store-shell .woocommerce-breadcrumb {
    margin-bottom: 1.25rem;
    font-size: 0.88rem;
    color: var(--fpwoo-shell-muted);
}

body.fpwoo-store-shell .woocommerce-breadcrumb a {
    color: var(--fpwoo-shell-accent);
    text-decoration: none;
}

/* Titoli pagina */
body.fpwoo-store-shell .entry-title,
body.fpwoo-store-shell h1.page-title,
body.fpwoo-store-shell .woocommerce-products-header__title {
    font-size: clamp(1.35rem, 3.5vw, 1.85rem);
    font-weight: 700;
    color: var(--fpwoo-shell-text);
    margin-bottom: 1.25rem;
}

/* —— Carrello —— */
body.fpwoo-store-shell--cart table.shop_table,
body.fpwoo-store-shell--cart .cart_totals {
    border: 1px solid var(--fpwoo-shell-border);
    border-radius: var(--fpwoo-shell-radius);
    overflow: hidden;
    box-shadow: var(--fpwoo-shell-shadow);
}

body.fpwoo-store-shell--cart table.shop_table th,
body.fpwoo-store-shell--cart table.shop_table td,
body.fpwoo-store-shell--cart .woocommerce-cart-form table.cart th,
body.fpwoo-store-shell--cart .woocommerce-cart-form table.cart td {
    padding: 1.15rem 1.35rem !important;
    border-color: var(--fpwoo-shell-border);
    vertical-align: middle;
}

body.fpwoo-store-shell--cart table.cart thead th:first-child,
body.fpwoo-store-shell--cart table.cart tbody td:first-child {
    padding-left: 1.5rem !important;
}

body.fpwoo-store-shell--cart table.cart thead th:last-child,
body.fpwoo-store-shell--cart table.cart tbody td.product-subtotal,
body.fpwoo-store-shell--cart table.cart tbody td.product-price {
    padding-right: 1.5rem !important;
}

body.fpwoo-store-shell--cart table.cart thead th {
    padding-top: 1.2rem !important;
    padding-bottom: 0.9rem !important;
    font-size: 0.8rem;
    font-weight: 700;
    letter-spacing: 0.04em;
    text-transform: uppercase;
    color: var(--fpwoo-shell-muted);
}

body.fpwoo-store-shell--cart table.cart tbody tr:last-child td:not(.actions) {
    padding-bottom: 1.35rem !important;
}

body.fpwoo-store-shell--cart table.cart td.actions {
    padding: 1.15rem 1.5rem !important;
}

body.fpwoo-store-shell--cart .woocommerce-cart-form {
    margin-bottom: 1.5rem;
}

body.fpwoo-store-shell--cart .cart_totals {
    padding: 1.35rem 1.5rem;
    background: #fff;
}

body.fpwoo-store-shell--cart .cart_totals h2 {
    font-size: 1.05rem;
    font-weight: 700;
    letter-spacing: 0.02em;
    margin: 0 0 1rem;
    padding-bottom: 0.75rem;
    border-bottom: 1px solid var(--fpwoo-shell-border);
    color: var(--fpwoo-shell-text);
}

body.fpwoo-store-shell--cart .cart_totals table.shop_table {
    margin-bottom: 1rem;
    box-shadow: none;
    border: none;
    border-radius: 0;
}

body.fpwoo-store-shell--cart .cart_totals .order-total th,
body.fpwoo-store-shell--cart .cart_totals .order-total td {
    padding-top: 1rem;
    font-size: 1.1rem;
    font-weight: 700;
    border-top: 2px solid var(--fpwoo-shell-border);
}

body.fpwoo-store-shell--cart .cart-collaterals .coupon,
body.fpwoo-store-shell--cart .cart_totals .coupon {
    display: flex;
    flex-wrap: wrap;
    align-items: stretch;
    gap: 0.5rem;
    margin: 0 0 1rem;
    padding: 0;
}

body.fpwoo-store-shell--cart .coupon .input-text,
body.fpwoo-store-shell--cart .coupon input[type="text"] {
    flex: 1 1 10rem;
    min-height: 48px !important;
    margin: 0 !important;
    border: 1px solid var(--fpwoo-shell-border) !important;
    border-radius: var(--fpwoo-shell-radius-sm) !important;
    padding: 0.65rem 1rem !important;
    font-size: 1rem;
    box-sizing: border-box;
    box-shadow: inset 0 1px 2px rgba(15, 23, 42, 0.04);
}

body.fpwoo-store-shell--cart .coupon .button,
body.fpwoo-store-shell--cart .cart_totals .coupon button {
    min-height: 48px !important;
    margin: 0 !important;
    padding: 0.55rem 1.15rem !important;
    border-radius: var(--fpwoo-shell-radius-sm) !important;
    font-weight: 600 !important;
    font-size: 0.95rem !important;
    line-height: 1.35 !important;
    background: var(--fpwoo-shell-accent) !important;
    border: 1px solid var(--fpwoo-shell-accent) !important;
    color: #fff !important;
}

body.fpwoo-store-shell--cart .coupon .button:hover {
    background: var(--fpwoo-shell-accent-hover) !important;
    border-color: var(--fpwoo-shell-accent-hover) !important;
}

body.fpwoo-store-shell--cart .wc-proceed-to-checkout {
    margin-top: 1rem;
    padding-top: 0;
}

body.fpwoo-store-shell--cart .wc-proceed-to-checkout a.checkout-button,
body.fpwoo-store-shell--cart button[name="update_cart"] {
    min-height: 52px;
    border-radius: var(--fpwoo-shell-radius-sm);
    font-weight: 600;
}

body.fpwoo-store-shell--cart .wc-proceed-to-checkout a.checkout-button {
    display: block;
    width: 100%;
    text-align: center;
    padding: 0.85rem 1.5rem !important;
    font-size: 1rem !important;
    line-height: 1.35 !important;
    background: var(--fpwoo-shell-accent) !important;
    color: #fff !important;
    border: none !important;
    box-shadow: none !important;
}

body.fpwoo-store-shell--cart .wc-proceed-to-checkout a.checkout-button:hover {
    background: var(--fpwoo-shell-accent-hover) !important;
    color: #fff !important;
}

/* Carrello Blocks — CSS Grid (nessuno spostamento DOM del coupon React; vedi CHANGELOG 1.25.1) */
body.fpwoo-store-shell--cart .wc-block-cart.wc-block-components-sidebar-layout {
    flex-wrap: nowrap !important;
    align-items: flex-start;
    gap: 1.25rem;
}

body.fpwoo-store-shell--cart.fpwoo-cart-coupon-layout .wc-block-cart.fpwoo-cart-grid-layout {
    display: grid !important;
    grid-template-columns: minmax(0, 2fr) minmax(280px, 1fr);
    grid-template-rows: auto auto auto;
    gap: 1rem 1.25rem;
    align-items: start;
    width: 100%;
    max-width: 78rem;
    margin-left: auto;
    margin-right: auto;
}

/* Card prodotto: ristruttura il table-row in grid 2 colonne per dare
   alla descrizione TUTTA la larghezza della card, e all'immagine
   un'area dedicata in alto. */
body.fpwoo-store-shell--cart table.wc-block-cart-items {
    display: block !important;
    width: 100% !important;
}

body.fpwoo-store-shell--cart table.wc-block-cart-items thead,
body.fpwoo-store-shell--cart table.wc-block-cart-items tbody,
body.fpwoo-store-shell--cart table.wc-block-cart-items tfoot {
    display: block !important;
    width: 100% !important;
}

body.fpwoo-store-shell--cart tr.wc-block-cart-items__row {
    display: grid !important;
    grid-template-columns: 120px minmax(0, 1fr);
    grid-template-areas:
        "image header"
        "image desc"
        "qty   qty";
    gap: 0.85rem 1.1rem;
    padding: 1.1rem 1.15rem !important;
    border-bottom: 1px solid rgba(15, 23, 42, 0.06);
    align-items: start;
}

body.fpwoo-store-shell--cart tr.wc-block-cart-items__row:last-child {
    border-bottom: none;
}

body.fpwoo-store-shell--cart td.wc-block-cart-item__image {
    grid-area: image;
    display: block !important;
    padding: 0 !important;
    width: 120px !important;
    max-width: 120px !important;
}

body.fpwoo-store-shell--cart td.wc-block-cart-item__image img {
    width: 120px !important;
    height: auto;
    aspect-ratio: 1 / 1;
    object-fit: cover;
    border-radius: 10px;
    background: rgba(15, 23, 42, 0.05);
}

body.fpwoo-store-shell--cart td.wc-block-cart-item__product {
    grid-area: header;
    display: block !important;
    padding: 0 !important;
    width: 100% !important;
    min-width: 0; /* consente al testo di andare a capo nella propria colonna, senza sforare sull'immagine */
}

body.fpwoo-store-shell--cart .wc-block-cart-item__wrap {
    display: contents;
}

body.fpwoo-store-shell--cart .wc-block-components-product-name {
    grid-area: auto;
    display: block !important;
    font-size: 1.05rem !important;
    font-weight: 600 !important;
    color: rgba(15, 23, 42, 0.92) !important;
    line-height: 1.3 !important;
    margin-bottom: 0.25rem !important;
    max-width: 100% !important;
    overflow-wrap: anywhere;
    word-break: break-word;
}

body.fpwoo-store-shell--cart .wc-block-cart-item__prices {
    margin-bottom: 0.35rem !important;
}

body.fpwoo-store-shell--cart .wc-block-cart-item__prices .price {
    font-size: 1rem !important;
    color: rgba(15, 23, 42, 0.85) !important;
}

body.fpwoo-store-shell--cart .wc-block-components-product-metadata {
    grid-column: 1 / -1;
    grid-area: desc;
    width: 100% !important;
}

body.fpwoo-store-shell--cart .wc-block-components-product-metadata__description,
body.fpwoo-store-shell--cart .wc-block-components-product-metadata__description p {
    font-size: 0.9rem;
    color: rgba(15, 23, 42, 0.65);
    line-height: 1.5;
    margin: 0;
}

body.fpwoo-store-shell--cart .wc-block-cart-item__quantity {
    grid-area: qty;
    display: flex !important;
    align-items: center;
    justify-content: space-between;
    gap: 1rem;
    margin-top: 0.25rem !important;
    padding-top: 0.75rem !important;
    border-top: 1px dashed rgba(15, 23, 42, 0.08);
}

body.fpwoo-store-shell--cart .wc-block-cart-item__quantity .wc-block-components-quantity-selector {
    margin-bottom: 0 !important;
}

body.fpwoo-store-shell--cart .wc-block-cart-item__remove-link {
    margin: 0 !important;
    font-size: 0.85rem;
}

/* Vista mobile: layout flex robusto invece della griglia ad aree nominate.
   Le aree "desc/qty" non corrispondono sempre a veri grid-item nel DOM dei
   WooCommerce Blocks (wrap con display:contents), causando auto-placement
   con larghezze di card disomogenee e immagine sovrapposta al testo. Con il
   flex l'immagine ha base fissa e il contenuto occupa il resto (min-width:0),
   quindi tutte le righe risultano allineate e niente più sovrapposizioni. */
@media (max-width: 520px) {
    /* Il main ha già ~22px di padding: azzeriamo quasi del tutto il padding
       extra della riga così le card articolo usano tutta la larghezza utile
       (uniformi tra loro e col riquadro Totale) e la colonna testo respira. */
    body.fpwoo-store-shell--cart .wc-block-cart__main {
        padding-left: 0.5rem !important;
        padding-right: 0.5rem !important;
    }

    body.fpwoo-store-shell--cart tr.wc-block-cart-items__row {
        display: flex !important;
        flex-wrap: wrap;
        align-items: flex-start;
        gap: 0.5rem 0.85rem;
        width: 100% !important;
        box-sizing: border-box;
        padding: 0.9rem 0.65rem !important;
    }

    body.fpwoo-store-shell--cart td.wc-block-cart-item__image {
        flex: 0 0 84px;
        width: 84px !important;
        max-width: 84px !important;
    }

    body.fpwoo-store-shell--cart td.wc-block-cart-item__image img {
        width: 84px !important;
        max-width: 84px !important;
        height: 84px !important;
        object-fit: cover;
    }

    body.fpwoo-store-shell--cart td.wc-block-cart-item__product {
        flex: 1 1 0;
        min-width: 0;
        width: auto !important;
    }

    /* Riga quantità + "Rimuovi articolo": a tutta larghezza della card,
       allineata a sinistra e con wrap, così "Rimuovi articolo" non sfora
       mai oltre il bordo della card (prima era spinto a destra in overflow). */
    body.fpwoo-store-shell--cart .wc-block-cart-item__quantity {
        display: flex !important;
        flex-wrap: wrap;
        align-items: center;
        justify-content: flex-start;
        gap: 0.5rem 0.9rem;
        width: 100% !important;
        margin: 0.55rem 0 0 !important;
        padding: 0.6rem 0 0 !important;
    }

    body.fpwoo-store-shell--cart .wc-block-cart-item__remove-link {
        margin: 0 !important;
        white-space: nowrap;
    }
}

body.fpwoo-store-shell--cart.fpwoo-cart-coupon-layout .wc-block-cart.fpwoo-cart-grid-layout .wc-block-cart__sidebar,
body.fpwoo-store-shell--cart.fpwoo-cart-coupon-layout
    .wc-block-cart.fpwoo-cart-grid-layout
    .wp-block-woocommerce-cart-order-summary-block {
    display: contents !important;
    padding: 0 !important;
    background: transparent !important;
    border: none !important;
    box-shadow: none !important;
}

body.fpwoo-store-shell--cart.fpwoo-cart-coupon-layout .wc-block-cart.fpwoo-cart-grid-layout .wc-block-cart__main {
    grid-column: 1;
    grid-row: 1 / span 2;
    min-width: 0 !important;
    width: 100% !important;
    max-width: none !important;
}

body.fpwoo-store-shell--cart.fpwoo-cart-coupon-layout
    .wp-block-woocommerce-cart-order-summary-coupon-form-block {
    grid-column: 1;
    grid-row: 3;
    margin-top: 0.5rem;
    padding: 1rem 1.15rem 1.1rem;
    background: #fff;
    border: 1px solid var(--fpwoo-shell-border);
    border-radius: var(--fpwoo-shell-radius);
    box-shadow: var(--fpwoo-shell-shadow);
}

body.fpwoo-store-shell--cart.fpwoo-cart-coupon-layout .fpwoo-cart-side-stack {
    grid-column: 2;
    grid-row: 1;
    padding: 1.15rem 1.25rem !important;
    background: #fff;
    border: 1px solid var(--fpwoo-shell-border);
    border-radius: var(--fpwoo-shell-radius);
    box-shadow: var(--fpwoo-shell-shadow);
    margin: 0 !important;
}

body.fpwoo-store-shell--cart.fpwoo-cart-coupon-layout .fpwoo-cart-side-stack .wp-block-woocommerce-cart-order-summary-heading-block {
    display: none !important;
}

body.fpwoo-store-shell--cart.fpwoo-cart-coupon-layout .wc-block-cart__submit {
    grid-column: 2;
    grid-row: 2;
    margin-top: 0 !important;
    padding-top: 0 !important;
    width: 100%;
}

body.fpwoo-store-shell--cart.fpwoo-cart-coupon-layout .wc-block-cart__submit .wc-block-cart__submit-button {
    width: 100% !important;
}

body.fpwoo-store-shell--cart.fpwoo-cart-coupon-layout .wc-block-cart__payment-options {
    display: none !important;
}

body.fpwoo-store-shell--cart .wc-block-cart__main {
    flex: 1 1 0 !important;
    min-width: 0 !important;
    max-width: none !important;
}

body.fpwoo-store-shell--cart .wc-block-cart__sidebar {
    flex: 0 0 18rem !important;
    width: 18rem !important;
    max-width: 34% !important;
    min-width: 15rem !important;
}

@media (max-width: 1100px) {
    body.fpwoo-store-shell--cart .wc-block-cart.wc-block-components-sidebar-layout {
        flex-wrap: wrap !important;
    }

    body.fpwoo-store-shell--cart .wc-block-cart__sidebar {
        flex: 1 1 100% !important;
        width: 100% !important;
        max-width: 100% !important;
    }

    body.fpwoo-store-shell--cart.fpwoo-cart-coupon-layout .wc-block-cart.fpwoo-cart-grid-layout {
        display: flex !important;
        flex-direction: column !important;
        gap: 1rem;
    }

    body.fpwoo-store-shell--cart.fpwoo-cart-coupon-layout .wc-block-cart.fpwoo-cart-grid-layout .wc-block-cart__main,
    body.fpwoo-store-shell--cart.fpwoo-cart-coupon-layout
        .wp-block-woocommerce-cart-order-summary-coupon-form-block,
    body.fpwoo-store-shell--cart.fpwoo-cart-coupon-layout .fpwoo-cart-side-stack,
    body.fpwoo-store-shell--cart.fpwoo-cart-coupon-layout .wc-block-cart__submit {
        grid-column: auto;
        grid-row: auto;
        width: 100%;
        margin-top: 0;
    }

    body.fpwoo-store-shell--cart.fpwoo-cart-coupon-layout
        .wp-block-woocommerce-cart-order-summary-coupon-form-block {
        margin-top: 0.85rem;
    }
}

body.fpwoo-store-shell--cart .wc-block-cart__sidebar:not(:has(.fpwoo-cart-side-stack)),
body.fpwoo-store-shell--cart .wp-block-woocommerce-cart-order-summary-block:not(:has(.fpwoo-cart-side-stack)) {
    padding: 1.5rem 1.65rem !important;
    background: #fff;
    border: 1px solid var(--fpwoo-shell-border);
    border-radius: var(--fpwoo-shell-radius);
    box-shadow: var(--fpwoo-shell-shadow);
}

body.fpwoo-store-shell--cart .wc-block-cart__totals-title,
body.fpwoo-store-shell--cart .wp-block-woocommerce-cart-order-summary-heading-block {
    font-size: 1.05rem !important;
    font-weight: 700 !important;
    letter-spacing: 0.02em;
    color: var(--fpwoo-shell-text) !important;
    margin: 0 0 0.85rem !important;
    padding: 0 0 0.85rem !important;
    border-bottom: 1px solid var(--fpwoo-shell-border);
}

body.fpwoo-store-shell--cart .fpwoo-cart-side-stack .wc-block-components-totals-wrapper {
    margin: 0 !important;
    padding: 0 !important;
    border: none !important;
}

body.fpwoo-store-shell--cart .fpwoo-cart-side-stack .wc-block-components-totals-item {
    margin: 0 !important;
    padding: 0.4rem 0 !important;
    border: none !important;
    box-shadow: none !important;
}

body.fpwoo-store-shell--cart .fpwoo-cart-side-stack .wp-block-woocommerce-cart-order-summary-subtotal-block,
body.fpwoo-store-shell--cart .fpwoo-cart-side-stack .wp-block-woocommerce-cart-order-summary-fee-block,
body.fpwoo-store-shell--cart .fpwoo-cart-side-stack .wp-block-woocommerce-cart-order-summary-discount-block,
body.fpwoo-store-shell--cart .fpwoo-cart-side-stack .wp-block-woocommerce-cart-order-summary-shipping-block,
body.fpwoo-store-shell--cart .fpwoo-cart-side-stack .wp-block-woocommerce-cart-order-summary-taxes-block {
    margin: 0 !important;
    padding: 0 !important;
    border: none !important;
}

body.fpwoo-store-shell--cart .fpwoo-cart-side-stack .wp-block-woocommerce-cart-order-summary-totals-block {
    margin-top: 0.25rem;
    padding-top: 0;
    border-top: none;
}

body.fpwoo-store-shell--cart .fpwoo-cart-side-stack .wc-block-components-totals-footer-item {
    margin-top: 0 !important;
    padding-top: 0 !important;
    border-top: none !important;
}

body.fpwoo-store-shell--cart .wc-block-components-totals-wrapper {
    margin-bottom: 0.5rem;
}

/* Carrello classico: coupon spostato sotto prodotti */
body.fpwoo-store-shell--cart.fpwoo-coupon-in-main .cart_totals .coupon {
    display: none !important;
}

body.fpwoo-store-shell--cart .fpwoo-cart-coupon-slot {
    margin: 0.85rem 0 0;
    padding: 1rem 1.15rem 1.1rem;
    background: #fff;
    border: 1px solid var(--fpwoo-shell-border);
    border-radius: var(--fpwoo-shell-radius);
    box-shadow: var(--fpwoo-shell-shadow);
    clear: both;
    position: relative;
    z-index: 1;
}

body.fpwoo-store-shell--cart .fpwoo-cart-coupon-slot__title {
    margin: 0 0 0.85rem;
    font-size: 1rem;
    font-weight: 700;
    color: var(--fpwoo-shell-text);
    line-height: 1.35;
    word-wrap: break-word;
}

body.fpwoo-store-shell--cart .fpwoo-cart-coupon-slot__hint {
    margin: 0 0 0.85rem;
    font-size: 0.88rem;
    color: var(--fpwoo-shell-muted);
    line-height: 1.4;
}

body.fpwoo-store-shell--cart .fpwoo-cart-coupon-slot .wp-block-woocommerce-cart-order-summary-coupon-form-block,
body.fpwoo-store-shell--cart .fpwoo-cart-coupon-slot .wc-block-components-totals-coupon,
body.fpwoo-store-shell--cart .fpwoo-cart-coupon-slot .coupon {
    margin: 0 !important;
    border: none !important;
    border-radius: 0 !important;
    box-shadow: none !important;
    background: transparent !important;
    overflow: visible !important;
}

/* Evita doppio riquadro: regole globali coupon non devono ridisegnare il box dentro lo slot */
body.fpwoo-store-shell--cart.fpwoo-cart-coupon-layout .fpwoo-cart-coupon-slot .wp-block-woocommerce-cart-order-summary-coupon-form-block,
body.fpwoo-store-shell--cart.fpwoo-cart-coupon-layout .fpwoo-cart-coupon-slot .wc-block-components-totals-coupon,
body.fpwoo-store-shell--cart.fpwoo-coupon-in-main .fpwoo-cart-coupon-slot .wc-block-components-totals-coupon {
    margin: 0 !important;
    border: none !important;
    border-radius: 0 !important;
    box-shadow: none !important;
    background: transparent !important;
    overflow: visible !important;
}

body.fpwoo-store-shell--cart .fpwoo-cart-coupon-slot .wc-block-components-panel__content,
body.fpwoo-store-shell--cart.fpwoo-cart-coupon-layout .fpwoo-cart-coupon-slot .wc-block-components-panel__content {
    border: none !important;
    box-shadow: none !important;
    background: transparent !important;
}

body.fpwoo-store-shell--cart .fpwoo-cart-coupon-slot .wc-block-components-text-input,
body.fpwoo-store-shell--cart .fpwoo-cart-coupon-slot .wc-block-components-totals-coupon__input {
    margin: 0 !important;
    padding: 0 !important;
    border: none !important;
    border-radius: 0 !important;
    box-shadow: none !important;
    background: transparent !important;
}

body.fpwoo-store-shell--cart .fpwoo-cart-coupon-slot .wc-block-components-text-input::before,
body.fpwoo-store-shell--cart .fpwoo-cart-coupon-slot .wc-block-components-text-input::after,
body.fpwoo-store-shell--cart .fpwoo-cart-coupon-slot .wc-block-components-totals-coupon__input::before,
body.fpwoo-store-shell--cart .fpwoo-cart-coupon-slot .wc-block-components-totals-coupon__input::after {
    display: none !important;
    content: none !important;
}

body.fpwoo-store-shell--cart .fpwoo-cart-coupon-slot .wp-block-woocommerce-cart-order-summary-coupon-form-block::before {
    content: none !important;
    display: none !important;
}

body.fpwoo-store-shell--cart .fpwoo-cart-coupon-slot .wc-block-components-panel__button {
    display: none !important;
}

body.fpwoo-store-shell--cart .fpwoo-cart-coupon-slot .wc-block-components-panel__content {
    display: block !important;
    padding: 0 !important;
    visibility: visible !important;
    height: auto !important;
    overflow: visible !important;
}

body.fpwoo-store-shell--cart .fpwoo-cart-coupon-slot .wc-block-components-totals-coupon__form,
body.fpwoo-store-shell--cart
    .fpwoo-cart-coupon-slot
    .wp-block-woocommerce-cart-order-summary-coupon-form-block
    .wc-block-components-totals-coupon__form {
    display: flex !important;
    flex-wrap: wrap !important;
    align-items: stretch;
    gap: 0.5rem;
    max-width: none;
}

body.fpwoo-store-shell--cart .fpwoo-cart-coupon-slot .wc-block-components-totals-coupon__input {
    flex: 1 1 12rem !important;
    min-width: 0;
}

body.fpwoo-store-shell--cart .fpwoo-cart-coupon-slot .wc-block-components-totals-coupon__input input,
body.fpwoo-store-shell--cart .fpwoo-cart-coupon-slot .wc-block-components-text-input input,
body.fpwoo-store-shell--cart .fpwoo-cart-coupon-slot .wc-block-components-text-input.is-active input,
body.fpwoo-store-shell--cart .fpwoo-cart-coupon-slot .wc-block-components-text-input.has-input input {
    width: 100% !important;
    min-height: 48px !important;
    padding: 0.65rem 1rem !important;
    border: 1px solid var(--fpwoo-shell-border) !important;
    border-radius: var(--fpwoo-shell-radius-sm) !important;
    background: #fff !important;
    box-shadow: inset 0 1px 2px rgba(15, 23, 42, 0.04) !important;
}

body.fpwoo-store-shell--cart .fpwoo-cart-coupon-slot .wc-block-components-text-input label {
    display: none !important;
}

body.fpwoo-store-shell--cart .fpwoo-cart-coupon-slot .wc-block-components-totals-coupon__button.wc-block-components-button {
    flex: 0 0 auto;
    min-width: 6.5rem;
}

body.fpwoo-store-shell--cart .cart_totals .coupon:empty {
    display: none;
}

body.fpwoo-store-shell--cart.fpwoo-cart-coupon-layout
    .wp-block-woocommerce-cart-order-summary-coupon-form-block
    .wc-block-components-panel__button {
    display: none !important;
}

body.fpwoo-store-shell--cart.fpwoo-cart-coupon-layout
    .wp-block-woocommerce-cart-order-summary-coupon-form-block
    .wc-block-components-panel__content {
    display: block !important;
    padding: 0 !important;
    visibility: visible !important;
    height: auto !important;
    overflow: visible !important;
}

body.fpwoo-store-shell--cart.fpwoo-cart-coupon-layout
    .wp-block-woocommerce-cart-order-summary-coupon-form-block
    .wc-block-components-totals-coupon__form {
    display: flex !important;
    flex-wrap: nowrap !important;
    align-items: stretch;
    gap: 0.5rem;
    margin: 0;
    max-width: none;
}

body.fpwoo-store-shell--cart.fpwoo-cart-coupon-layout
    .wp-block-woocommerce-cart-order-summary-coupon-form-block
    .wc-block-components-totals-coupon__input {
    flex: 1 1 14rem !important;
    min-width: 0;
}

body.fpwoo-store-shell--cart.fpwoo-cart-coupon-layout
    .wp-block-woocommerce-cart-order-summary-coupon-form-block::before {
    content: 'Codice promozionale';
    display: block;
    margin: 0 0 0.35rem;
    font-size: 1rem;
    font-weight: 700;
    color: var(--fpwoo-shell-text);
}

body.fpwoo-store-shell--cart .wc-block-cart__sidebar .wc-block-components-totals-coupon,
body.fpwoo-store-shell--cart.fpwoo-cart-coupon-layout
    .wp-block-woocommerce-cart-order-summary-block:not(:has(.fpwoo-cart-coupon-slot))
    .wp-block-woocommerce-cart-order-summary-coupon-form-block
    .wc-block-components-totals-coupon {
    margin: 0 0 1rem !important;
    border: 1px solid rgba(var(--fpwoo-shell-accent-rgb, 37, 99, 235), 0.28) !important;
    border-left: 4px solid var(--fpwoo-shell-accent, #2563eb) !important;
    border-radius: var(--fpwoo-shell-radius-sm) !important;
    overflow: hidden;
    background: #fff;
    box-shadow: 0 1px 3px rgba(15, 23, 42, 0.06);
}

/* Header del pannello coupon carrello = banner accentato, coerente con il
   banner "Hai un codice promozionale?" del checkout (card + icona 🎟️). */
body.fpwoo-store-shell--cart .wc-block-components-totals-coupon .wc-block-components-panel__button {
    display: flex !important;
    align-items: center !important;
    gap: 0.4rem !important;
    width: 100%;
    min-height: 48px;
    padding: 0.95rem 1.1rem !important;
    margin: 0 !important;
    border: none !important;
    border-bottom: 1px solid rgba(var(--fpwoo-shell-accent-rgb, 37, 99, 235), 0.20) !important;
    border-radius: 0 !important;
    background: linear-gradient(
        135deg,
        rgba(var(--fpwoo-shell-accent-rgb, 37, 99, 235), 0.10) 0%,
        rgba(var(--fpwoo-shell-accent-rgb, 37, 99, 235), 0.035) 100%
    ) !important;
    color: var(--fpwoo-shell-text, #0f172a) !important;
    font-size: 0.98rem !important;
    font-weight: 600 !important;
    text-align: left;
    box-shadow: none !important;
}

body.fpwoo-store-shell--cart .wc-block-components-totals-coupon .wc-block-components-panel__button::before {
    position: static; /* coerente col checkout: icona inline, mai sovrapposta */
    content: "\1F39F\FE0F"; /* 🎟️ */
    margin-right: 0.1rem;
    font-size: 1.15rem;
    line-height: 1;
    flex: 0 0 auto;
}

body.fpwoo-store-shell--cart .wc-block-components-totals-coupon .wc-block-components-panel__content {
    padding: 1rem !important;
    background: #fff;
}

body.fpwoo-store-shell--cart .wc-block-components-totals-coupon__form {
    display: flex !important;
    flex-wrap: nowrap !important;
    align-items: stretch;
    gap: 0.5rem;
    margin: 0;
}

body.fpwoo-store-shell--cart .wc-block-components-totals-coupon__input {
    flex: 1 1 10rem;
    margin: 0 !important;
    padding: 0 !important;
    min-width: 0;
}

body.fpwoo-store-shell--cart .wc-block-components-totals-coupon__input input,
body.fpwoo-store-shell--cart .wc-block-components-totals-coupon .wc-block-components-text-input input,
body.fpwoo-store-shell--cart .wc-block-components-totals-coupon .wc-block-components-text-input.is-active input,
body.fpwoo-store-shell--cart .wc-block-components-totals-coupon .wc-block-components-text-input.has-input input {
    width: 100% !important;
    min-height: 48px !important;
    padding: 0.65rem 1rem !important;
    border: 1px solid var(--fpwoo-shell-border) !important;
    border-radius: var(--fpwoo-shell-radius-sm) !important;
    font-size: 1rem !important;
    line-height: 1.35 !important;
    color: var(--fpwoo-shell-text) !important;
    background: #fff !important;
    box-sizing: border-box !important;
    text-indent: 0 !important;
    box-shadow: inset 0 1px 2px rgba(15, 23, 42, 0.04);
}

body.fpwoo-store-shell--cart .wc-block-components-totals-coupon .wc-block-components-text-input label {
    left: 1rem !important;
    color: var(--fpwoo-shell-muted);
}

body.fpwoo-store-shell--cart .wc-block-components-totals-coupon__input input:focus,
body.fpwoo-store-shell--cart .wc-block-components-totals-coupon .wc-block-components-text-input input:focus {
    outline: none;
    border-color: var(--fpwoo-shell-accent) !important;
    box-shadow: 0 0 0 3px rgba(37, 99, 235, 0.18);
}

body.fpwoo-store-shell--cart .wc-block-components-totals-coupon__input input::placeholder,
body.fpwoo-store-shell--cart .wc-block-components-totals-coupon .wc-block-components-text-input input::placeholder {
    color: var(--fpwoo-shell-muted);
    opacity: 1;
}

body.fpwoo-store-shell--cart .wc-block-components-totals-coupon__button.wc-block-components-button {
    flex: 0 0 auto;
    align-self: stretch;
    min-height: 48px !important;
    margin: 0 !important;
    padding: 0.65rem 1.25rem !important;
    border-radius: var(--fpwoo-shell-radius-sm) !important;
    font-size: 0.92rem !important;
    font-weight: 600 !important;
    line-height: 1.35 !important;
    background: var(--fpwoo-shell-accent) !important;
    border: 1px solid var(--fpwoo-shell-accent) !important;
    color: #fff !important;
    box-shadow: none !important;
}

body.fpwoo-store-shell--cart .wc-block-components-totals-coupon__button.wc-block-components-button:not([disabled]):hover {
    background: var(--fpwoo-shell-accent-hover) !important;
    border-color: var(--fpwoo-shell-accent-hover) !important;
    color: #fff !important;
}

@media (max-width: 420px) {
    body.fpwoo-store-shell--cart .wc-block-components-totals-coupon__form {
        flex-wrap: wrap !important;
    }

    body.fpwoo-store-shell--cart .wc-block-components-totals-coupon__button.wc-block-components-button {
        width: 100% !important;
    }
}

/* Campo coupon iniettato da FP quando il blocco coupon nativo dei WC Blocks è
   assente (es. un plugin coupon lo de-registra). Stesso stile prominente. */
body.fpwoo-store-shell--cart .fpwoo-cart-coupon-fallback {
    margin: 0 0 1rem !important;
    padding: 0.95rem 1.1rem !important;
    border: 1px solid rgba(var(--fpwoo-shell-accent-rgb, 37, 99, 235), 0.28) !important;
    border-left: 4px solid var(--fpwoo-shell-accent, #2563eb) !important;
    border-radius: var(--fpwoo-shell-radius-sm, 10px) !important;
    background: linear-gradient(
        135deg,
        rgba(var(--fpwoo-shell-accent-rgb, 37, 99, 235), 0.10) 0%,
        rgba(var(--fpwoo-shell-accent-rgb, 37, 99, 235), 0.035) 100%
    ) !important;
    box-shadow: 0 1px 3px rgba(15, 23, 42, 0.06);
}

body.fpwoo-store-shell--cart .fpwoo-cart-coupon-fallback__title {
    display: flex;
    align-items: center;
    gap: 0.4rem;
    margin: 0 0 0.6rem;
    font-size: 0.98rem;
    font-weight: 600;
    color: var(--fpwoo-shell-text, #0f172a);
}

body.fpwoo-store-shell--cart .fpwoo-cart-coupon-fallback__title::before {
    content: "\1F39F\FE0F"; /* 🎟️ */
    font-size: 1.15rem;
    line-height: 1;
}

body.fpwoo-store-shell--cart .fpwoo-cart-coupon-fallback__row {
    display: flex;
    flex-wrap: nowrap;
    align-items: stretch;
    gap: 0.5rem;
}

body.fpwoo-store-shell--cart .fpwoo-cart-coupon-fallback__input {
    flex: 1 1 auto;
    min-width: 0;
    min-height: 44px;
    padding: 0.55rem 0.9rem;
    border: 1px solid var(--fpwoo-shell-border, #e2e8f0);
    border-radius: var(--fpwoo-shell-radius-sm, 10px);
    background: #fff;
    color: var(--fpwoo-shell-text, #0f172a);
    font-size: 1rem;
    line-height: 1.3;
    box-sizing: border-box;
}

body.fpwoo-store-shell--cart .fpwoo-cart-coupon-fallback__input:focus {
    outline: none;
    border-color: var(--fpwoo-shell-accent, #2563eb);
    box-shadow: 0 0 0 3px rgba(var(--fpwoo-shell-accent-rgb, 37, 99, 235), 0.18);
}

body.fpwoo-store-shell--cart .fpwoo-cart-coupon-fallback__button {
    flex: 0 0 auto;
    min-height: 44px;
    padding: 0.55rem 1.15rem;
    border: 1px solid var(--fpwoo-shell-accent, #2563eb);
    border-radius: var(--fpwoo-shell-radius-sm, 10px);
    background: var(--fpwoo-shell-accent, #2563eb);
    color: #fff;
    font-size: 0.92rem;
    font-weight: 600;
    cursor: pointer;
    transition: background 0.15s ease;
}

body.fpwoo-store-shell--cart .fpwoo-cart-coupon-fallback__button:hover:not([disabled]) {
    background: var(--fpwoo-shell-accent-hover, #1d4ed8);
}

body.fpwoo-store-shell--cart .fpwoo-cart-coupon-fallback__button[disabled],
body.fpwoo-store-shell--cart .fpwoo-cart-coupon-fallback__button.is-busy {
    opacity: 0.6;
    cursor: default;
}

body.fpwoo-store-shell--cart .fpwoo-cart-coupon-fallback__applied {
    display: flex;
    flex-wrap: wrap;
    gap: 0.4rem;
    margin: 0.6rem 0 0;
}

body.fpwoo-store-shell--cart .fpwoo-cart-coupon-fallback__chip {
    display: inline-flex;
    align-items: center;
    gap: 0.35rem;
    padding: 0.25rem 0.3rem 0.25rem 0.65rem;
    border-radius: 999px;
    background: #fff;
    border: 1px solid rgba(var(--fpwoo-shell-accent-rgb, 37, 99, 235), 0.35);
    font-size: 0.82rem;
    font-weight: 600;
    color: var(--fpwoo-shell-text, #0f172a);
}

body.fpwoo-store-shell--cart .fpwoo-cart-coupon-fallback__chip-code {
    letter-spacing: 0.02em;
}

body.fpwoo-store-shell--cart .fpwoo-cart-coupon-fallback__chip-remove {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    width: 18px;
    height: 18px;
    padding: 0;
    border: none;
    border-radius: 999px;
    background: rgba(15, 23, 42, 0.08);
    color: #0f172a;
    font-size: 14px;
    line-height: 1;
    cursor: pointer;
    transition: background 0.15s ease, color 0.15s ease;
}

body.fpwoo-store-shell--cart .fpwoo-cart-coupon-fallback__chip-remove:hover {
    background: var(--fpwoo-shell-accent, #2563eb);
    color: #fff;
}

body.fpwoo-store-shell--cart .fpwoo-cart-coupon-fallback__feedback {
    margin: 0.55rem 0 0;
    font-size: 0.85rem;
    line-height: 1.35;
}

body.fpwoo-store-shell--cart .fpwoo-cart-coupon-fallback__feedback.is-success {
    color: #15803d;
}

body.fpwoo-store-shell--cart .fpwoo-cart-coupon-fallback__feedback.is-error {
    color: #b91c1c;
}

body.fpwoo-store-shell--cart .fpwoo-cart-coupon-fallback__feedback.is-info {
    color: var(--fpwoo-shell-muted, #64748b);
}

@media (max-width: 420px) {
    body.fpwoo-store-shell--cart .fpwoo-cart-coupon-fallback__row {
        flex-wrap: wrap;
    }

    body.fpwoo-store-shell--cart .fpwoo-cart-coupon-fallback__button {
        width: 100%;
    }
}

body.fpwoo-store-shell--cart .wc-block-components-totals-footer-item {
    padding: 1rem 0 0.35rem !important;
    margin-top: 0.5rem;
    border-top: 2px solid var(--fpwoo-shell-border);
}

body.fpwoo-store-shell--cart .wc-block-components-totals-footer-item .wc-block-components-totals-item__label {
    font-size: 1.05rem !important;
    font-weight: 700 !important;
    color: var(--fpwoo-shell-text) !important;
}

body.fpwoo-store-shell--cart .wc-block-components-totals-footer-item .wc-block-formatted-money-amount,
body.fpwoo-store-shell--cart .wc-block-components-totals-footer-item .wc-block-components-formatted-money-amount {
    font-size: 1.2rem !important;
    font-weight: 700 !important;
    color: var(--fpwoo-shell-text) !important;
}

body.fpwoo-store-shell--cart .wc-block-cart__submit {
    margin-top: 1rem;
    padding-top: 0;
}

body.fpwoo-store-shell--cart .wc-block-cart__submit-container {
    margin: 0;
}

body.fpwoo-store-shell--cart .wc-block-cart__submit a.wc-block-components-button,
body.fpwoo-store-shell--cart .wc-block-cart__submit-container .wc-block-components-button {
    display: flex !important;
    align-items: center;
    justify-content: center;
    width: 100% !important;
    min-height: 52px !important;
    padding: 0.85rem 1.5rem !important;
    border-radius: var(--fpwoo-shell-radius-sm) !important;
    font-size: 1rem !important;
    font-weight: 600 !important;
    line-height: 1.35 !important;
    text-decoration: none !important;
    background: var(--fpwoo-shell-accent) !important;
    border: 1px solid var(--fpwoo-shell-accent) !important;
    color: #fff !important;
    box-shadow: none !important;
}

body.fpwoo-store-shell--cart .wc-block-cart__submit a.wc-block-components-button:hover,
body.fpwoo-store-shell--cart .wc-block-cart__submit-container .wc-block-components-button:hover {
    background: var(--fpwoo-shell-accent-hover) !important;
    border-color: var(--fpwoo-shell-accent-hover) !important;
    color: #fff !important;
}

body.fpwoo-store-shell--cart .wc-block-cart__submit .wc-block-components-button__text {
    color: inherit !important;
}

/* Righe prodotto — Blocks (WC azzera padding su th/td) */
body.fpwoo-store-shell--cart .wp-block-woocommerce-cart-items-block {
    margin-bottom: 1.5rem;
}

body.fpwoo-store-shell--cart table.wc-block-cart-items {
    border: 1px solid var(--fpwoo-shell-border);
    border-radius: var(--fpwoo-shell-radius);
    overflow: hidden;
    box-shadow: var(--fpwoo-shell-shadow);
    background: #fff;
    border-collapse: separate;
    border-spacing: 0;
}

body.fpwoo-store-shell--cart table.wc-block-cart-items th,
body.fpwoo-store-shell--cart table.wc-block-cart-items td,
body.fpwoo-store-shell--cart .main-content table.wc-block-cart-items th,
body.fpwoo-store-shell--cart .main-content table.wc-block-cart-items td {
    padding: 0.95rem 1.1rem !important;
    vertical-align: top;
    margin: 0 !important;
}

body.fpwoo-store-shell--cart table.wc-block-cart-items .wc-block-cart-items__header th {
    padding-top: 1.35rem !important;
    padding-bottom: 1rem !important;
    font-size: 0.78rem !important;
    font-weight: 700 !important;
    letter-spacing: 0.05em;
    text-transform: uppercase !important;
    color: var(--fpwoo-shell-muted) !important;
    background: var(--fpwoo-shell-surface);
}

body.fpwoo-store-shell--cart table.wc-block-cart-items .wc-block-cart-items__header th:first-child,
body.fpwoo-store-shell--cart table.wc-block-cart-items .wc-block-cart-items__row td:first-child {
    padding-left: 1.5rem !important;
}

body.fpwoo-store-shell--cart table.wc-block-cart-items .wc-block-cart-items__header th:last-child,
body.fpwoo-store-shell--cart table.wc-block-cart-items .wc-block-cart-items__row td:last-child {
    padding-right: 1.5rem !important;
}

body.fpwoo-store-shell--cart table.wc-block-cart-items .wc-block-cart-items__row:last-child td {
    padding-bottom: 1.5rem !important;
}

body.fpwoo-store-shell--cart table.wc-block-cart-items .wc-block-cart-item__wrap {
    gap: 0.65rem 0.85rem;
    align-items: flex-start;
}

body.fpwoo-store-shell--cart table.wc-block-cart-items .wc-block-cart-item__product {
    display: flex;
    flex-direction: column;
    gap: 0.2rem;
    min-width: 0;
}

body.fpwoo-store-shell--cart table.wc-block-cart-items .wc-block-components-product-metadata {
    margin: 0.15rem 0 0.35rem;
    font-size: 0.88rem;
    line-height: 1.45;
    color: var(--fpwoo-shell-muted);
}

body.fpwoo-store-shell--cart table.wc-block-cart-items .wc-block-components-product-metadata__description,
body.fpwoo-store-shell--cart table.wc-block-cart-items .wc-block-components-product-metadata__description p,
body.fpwoo-store-shell--cart table.wc-block-cart-items .wc-block-components-product-metadata__description div {
    margin: 0 !important;
    padding: 0 !important;
    line-height: 1.45 !important;
}

body.fpwoo-store-shell--cart table.wc-block-cart-items .wc-block-components-product-metadata__description p + p {
    margin-top: 0.35rem !important;
}

body.fpwoo-store-shell--cart table.wc-block-cart-items .wc-block-components-product-metadata__description br {
    line-height: 1.45;
}

body.fpwoo-store-shell--cart table.wc-block-cart-items .wc-block-components-product-price,
body.fpwoo-store-shell--cart table.wc-block-cart-items .wc-block-cart-item__product .wc-block-formatted-money-amount {
    margin: 0 !important;
    line-height: 1.3;
}

body.fpwoo-store-shell--cart table.wc-block-cart-items .wc-block-cart-item__image img {
    border-radius: var(--fpwoo-shell-radius-sm);
    border: 1px solid var(--fpwoo-shell-border);
}

body.fpwoo-store-shell--cart table.wc-block-cart-items .wc-block-components-product-name {
    margin: 0 0 0.4rem;
    font-weight: 600;
    line-height: 1.35;
}

body.fpwoo-store-shell--cart table.wc-block-cart-items .wc-block-components-product-name a {
    color: var(--fpwoo-shell-accent);
    text-decoration: none;
}

body.fpwoo-store-shell--cart table.wc-block-cart-items .wc-block-components-product-price__value,
body.fpwoo-store-shell--cart table.wc-block-cart-items .wc-block-cart-item__total .wc-block-components-product-price__value {
    color: var(--fpwoo-shell-muted);
    font-size: 0.95rem;
}

body.fpwoo-store-shell--cart table.wc-block-cart-items td.wc-block-cart-item__total {
    font-weight: 700;
    color: var(--fpwoo-shell-text);
    text-align: right;
    vertical-align: top;
    padding-top: 1.35rem !important;
}

body.fpwoo-store-shell--cart table.wc-block-cart-items .wc-block-cart-item__quantity {
    margin-top: 0.45rem;
}

body.fpwoo-store-shell--cart table.wc-block-cart-items .wc-block-components-quantity-selector {
    border: 1px solid var(--fpwoo-shell-border);
    border-radius: var(--fpwoo-shell-radius-sm);
    overflow: hidden;
    background: #fff;
}

body.fpwoo-store-shell--cart table.wc-block-cart-items .wc-block-components-quantity-selector input {
    min-height: 42px;
    font-weight: 600;
}

body.fpwoo-store-shell--cart table.wc-block-cart-items .wc-block-cart-item__remove-link {
    margin-top: 0.5rem;
    display: inline-block;
    font-size: 0.85rem;
    color: var(--fpwoo-shell-muted) !important;
    text-decoration: underline;
    text-underline-offset: 2px;
}

body.fpwoo-store-shell--cart table.wc-block-cart-items .wc-block-cart-item__remove-link:hover {
    color: var(--fpwoo-shell-accent) !important;
}

/* Un solo totale ordine nel riepilogo: niente colonna TOTALE riga */
body.fpwoo-store-shell--cart table.wc-block-cart-items .wc-block-cart-items__header-total,
body.fpwoo-store-shell--cart table.wc-block-cart-items td.wc-block-cart-item__total {
    display: none !important;
}

body.fpwoo-store-shell--cart table.wc-block-cart-items .wc-block-cart-items__header-product {
    width: 100%;
}

body.fpwoo-store-shell--cart table.wc-block-cart-items .wc-block-cart-item__product .wc-block-components-product-price {
    display: block !important;
    margin: 0.1rem 0 0.3rem !important;
    font-size: 0.88rem !important;
    font-weight: 500;
    color: var(--fpwoo-shell-muted) !important;
    line-height: 1.35;
}

body.fpwoo-store-shell--cart table.wc-block-cart-items .wc-block-cart-item__product .wc-block-components-product-price::after {
    content: ' cad.';
    font-size: 0.92em;
}

html[lang^="en"] body.fpwoo-store-shell--cart table.wc-block-cart-items .wc-block-cart-item__product .wc-block-components-product-price::after {
    content: ' each';
}

body.fpwoo-store-shell--cart table.cart thead th.product-subtotal,
body.fpwoo-store-shell--cart table.cart tbody td.product-subtotal {
    display: none !important;
}

body.fpwoo-store-shell--cart table.cart thead th.product-price {
    font-size: 0.78rem;
    color: var(--fpwoo-shell-muted);
}

body.fpwoo-store-shell--cart table.cart tbody td.product-price {
    font-size: 0.88rem;
    color: var(--fpwoo-shell-muted);
    white-space: nowrap;
}

/* Legacy: lista righe non-tabella */
body.fpwoo-store-shell--cart .wc-block-cart-items:not(table) {
    border: 1px solid var(--fpwoo-shell-border);
    border-radius: var(--fpwoo-shell-radius);
    overflow: hidden;
    box-shadow: var(--fpwoo-shell-shadow);
    background: #fff;
}

body.fpwoo-store-shell--cart .wc-block-cart-item {
    padding: 1.15rem 1.5rem;
    border-bottom: 1px solid var(--fpwoo-shell-border);
}

body.fpwoo-store-shell--cart .wc-block-cart-item:last-child {
    border-bottom: none;
}

body.fpwoo-store-shell--cart .wc-block-cart-item__product-name {
    font-weight: 600;
    color: var(--fpwoo-shell-accent);
}

body.fpwoo-store-shell--cart .wc-block-components-quantity-selector {
    border: 1px solid var(--fpwoo-shell-border);
    border-radius: var(--fpwoo-shell-radius-sm);
    overflow: hidden;
}

body.fpwoo-store-shell--cart .wc-block-components-quantity-selector input {
    min-height: 40px;
    font-weight: 600;
}

/* —— Checkout —— */
body.fpwoo-store-shell--checkout form.checkout,
body.fpwoo-store-shell--checkout #order_review {
    border: 1px solid var(--fpwoo-shell-border);
    border-radius: var(--fpwoo-shell-radius);
    padding: 1.25rem 1.35rem;
    background: #fff;
    box-shadow: var(--fpwoo-shell-shadow);
    margin-bottom: 1.5rem;
}

body.fpwoo-store-shell--checkout .woocommerce-billing-fields h3,
body.fpwoo-store-shell--checkout .woocommerce-shipping-fields h3,
body.fpwoo-store-shell--checkout #order_review_heading {
    font-size: 1.05rem;
    color: var(--fpwoo-shell-text);
    margin-bottom: 1rem;
}

body.fpwoo-store-shell--checkout .form-row input.input-text,
body.fpwoo-store-shell--checkout .form-row select,
body.fpwoo-store-shell--checkout .form-row textarea {
    min-height: 44px;
    border: 1px solid var(--fpwoo-shell-border);
    border-radius: var(--fpwoo-shell-radius-sm);
    padding: 0.55rem 0.75rem;
    width: 100%;
    box-sizing: border-box;
}

body.fpwoo-store-shell--checkout .form-row textarea {
    min-height: 6rem;
}

body.fpwoo-store-shell--checkout .form-row label {
    color: var(--fpwoo-shell-text);
    font-weight: 500;
    margin-bottom: 0.35rem;
}

body.fpwoo-store-shell--checkout #payment {
    background: var(--fpwoo-shell-surface);
    border: 1px solid var(--fpwoo-shell-border);
    border-radius: var(--fpwoo-shell-radius-sm);
    padding: 1rem;
}

body.fpwoo-store-shell--checkout #place_order,
body.fpwoo-store-shell--checkout .woocommerce-checkout-payment button {
    width: 100%;
    min-height: 52px;
    margin-top: 0.75rem;
    padding: 0.85rem 1.5rem;
    font-size: 1rem;
    font-weight: 600;
    border: none;
    border-radius: var(--fpwoo-shell-radius-sm);
    background: var(--fpwoo-shell-accent) !important;
    color: #fff !important;
}

body.fpwoo-store-shell--checkout #place_order:hover {
    background: var(--fpwoo-shell-accent-hover) !important;
}

body.fpwoo-store-shell--checkout table.shop_table {
    border-color: var(--fpwoo-shell-border);
}

body.fpwoo-store-shell--checkout table.shop_table th,
body.fpwoo-store-shell--checkout table.shop_table td {
    padding: 0.65rem 0.5rem;
    border-color: var(--fpwoo-shell-border);
}

/* Blocks checkout */
body.fpwoo-store-shell--checkout .wc-block-checkout__actions .wc-block-components-button,
body.fpwoo-store-shell--checkout .wc-block-checkout__actions button {
    min-height: 52px;
    border-radius: var(--fpwoo-shell-radius-sm);
    background: var(--fpwoo-shell-accent);
    border-color: var(--fpwoo-shell-accent);
}

body.fpwoo-store-shell--checkout .wc-block-components-text-input input,
body.fpwoo-store-shell--checkout .wc-block-components-select select {
    border-radius: var(--fpwoo-shell-radius-sm);
    border-color: var(--fpwoo-shell-border);
    min-height: 44px;
    padding-left: 0.85rem !important;
    padding-right: 0.85rem !important;
}

/* Coupon codice promozionale — Blocks checkout (allineato al carrello) */
body.fpwoo-store-shell--checkout .wc-block-components-totals-coupon .wc-block-components-panel__button {
    width: 100%;
    min-height: 44px;
    padding: 0.65rem 0 !important;
    margin: 0 0 0.5rem;
    border: none !important;
    border-bottom: 1px solid var(--fpwoo-shell-border) !important;
    border-radius: 0 !important;
    background: transparent !important;
    color: var(--fpwoo-shell-text) !important;
    font-weight: 600 !important;
    text-align: left;
    box-shadow: none !important;
}

body.fpwoo-store-shell--checkout .wc-block-components-totals-coupon .wc-block-components-panel__content {
    padding: 0 0 1rem !important;
}

body.fpwoo-store-shell--checkout .wc-block-components-totals-coupon__form {
    display: flex !important;
    flex-wrap: wrap;
    align-items: stretch;
    gap: 0.5rem;
    margin: 0;
}

body.fpwoo-store-shell--checkout .wc-block-components-totals-coupon__input {
    flex: 1 1 10rem;
    margin: 0 !important;
    padding: 0 !important;
}

body.fpwoo-store-shell--checkout .wc-block-components-totals-coupon__input input,
body.fpwoo-store-shell--checkout .wc-block-components-totals-coupon .wc-block-components-text-input input {
    min-height: 48px !important;
    padding: 0.6rem 1rem !important;
    border: 1px solid var(--fpwoo-shell-border) !important;
    border-radius: var(--fpwoo-shell-radius-sm) !important;
    font-size: 1rem !important;
    box-sizing: border-box;
    text-indent: 0 !important;
}

body.fpwoo-store-shell--checkout .wc-block-components-totals-coupon__button.wc-block-components-button {
    flex: 0 0 auto;
    min-height: 48px !important;
    padding: 0.55rem 1.15rem !important;
    border-radius: var(--fpwoo-shell-radius-sm) !important;
    font-weight: 600 !important;
    background: var(--fpwoo-shell-accent) !important;
    border: 1px solid var(--fpwoo-shell-accent) !important;
    color: #fff !important;
}

/* Coupon checkout classico — card toggle + riga input/pulsante */
body.fpwoo-store-shell--checkout .woocommerce-form-coupon-toggle {
    margin: 0 0 1rem;
}

body.fpwoo-store-shell--checkout .woocommerce-form-coupon-toggle .woocommerce-info {
    margin: 0 !important;
    background: linear-gradient(135deg, #fff 0%, var(--fpwoo-shell-surface) 100%) !important;
    border: 1px solid var(--fpwoo-shell-border) !important;
    border-left: 3px solid var(--fpwoo-shell-accent) !important;
    border-radius: var(--fpwoo-shell-radius-sm) !important;
    padding: 0.9rem 1.15rem !important;
    font-size: 0.9rem;
    line-height: 1.5;
    color: var(--fpwoo-shell-text) !important;
    box-shadow: var(--fpwoo-shell-shadow);
}

body.fpwoo-store-shell--checkout .woocommerce-form-coupon-toggle .woocommerce-info::before {
    display: none !important;
    content: none !important;
}

body.fpwoo-store-shell--checkout .woocommerce-form-coupon-toggle .woocommerce-info a.showcoupon {
    color: var(--fpwoo-shell-accent) !important;
    font-weight: 600;
    text-decoration: none !important;
    padding: 0.25rem 0.65rem;
    margin-left: 0.2rem;
    border-radius: 999px;
    background: var(--fpwoo-shell-surface);
    border: 1px solid var(--fpwoo-shell-border);
    transition: background 0.15s ease, border-color 0.15s ease;
}

body.fpwoo-store-shell--checkout .woocommerce-form-coupon-toggle .woocommerce-info a.showcoupon:hover {
    background: #fff;
    border-color: var(--fpwoo-shell-accent);
}

/* Form aperto: card collegata al toggle */
body.fpwoo-store-shell--checkout .woocommerce-form-coupon-toggle:has(+ form.checkout_coupon[style*="block"]) .woocommerce-info,
body.fpwoo-store-shell--checkout .woocommerce-form-coupon-toggle:has(+ form.checkout_coupon:not([style*="none"])) .woocommerce-info {
    border-bottom: none;
    border-radius: var(--fpwoo-shell-radius-sm) var(--fpwoo-shell-radius-sm) 0 0;
    box-shadow: none;
}

body.fpwoo-store-shell--checkout form.checkout_coupon.woocommerce-form-coupon {
    margin: 0 0 1.25rem !important;
    padding: 1rem 1.15rem 1.15rem !important;
    background: #fff !important;
    border: 1px solid var(--fpwoo-shell-border) !important;
    border-top: 1px dashed var(--fpwoo-shell-border) !important;
    border-radius: 0 0 var(--fpwoo-shell-radius-sm) var(--fpwoo-shell-radius-sm) !important;
    box-shadow: var(--fpwoo-shell-shadow);
    width: 100% !important;
    max-width: 100% !important;
    box-sizing: border-box;
}

body.fpwoo-store-shell--checkout form.checkout_coupon.woocommerce-form-coupon[style*="block"],
body.fpwoo-store-shell--checkout form.checkout_coupon.woocommerce-form-coupon:not([style*="none"]) {
    display: flex !important;
    flex-wrap: wrap;
    align-items: stretch;
    gap: 0.55rem;
}

body.fpwoo-store-shell--checkout .woocommerce-form-coupon-toggle:has(+ form.checkout_coupon[style*="block"]) + form.checkout_coupon,
body.fpwoo-store-shell--checkout .woocommerce-form-coupon-toggle:has(+ form.checkout_coupon:not([style*="none"])) + form.checkout_coupon {
    margin-top: -1px !important;
}

body.fpwoo-store-shell--checkout form.checkout_coupon .form-row-first,
body.fpwoo-store-shell--checkout form.checkout_coupon .form-row-last {
    float: none !important;
    width: auto !important;
    margin: 0 !important;
    padding: 0 !important;
}

body.fpwoo-store-shell--checkout form.checkout_coupon .form-row-first {
    flex: 1 1 12rem;
    min-width: 0;
}

body.fpwoo-store-shell--checkout form.checkout_coupon .form-row-last {
    flex: 0 0 auto;
    display: flex;
    align-items: stretch;
}

body.fpwoo-store-shell--checkout form.checkout_coupon .clear {
    display: none !important;
}

body.fpwoo-store-shell--checkout .checkout_coupon input#coupon_code,
body.fpwoo-store-shell--checkout .checkout_coupon .input-text,
body.fpwoo-store-shell--checkout form.checkout_coupon #coupon_code {
    width: 100% !important;
    min-height: 48px !important;
    padding: 0.65rem 1rem !important;
    border: 1px solid var(--fpwoo-shell-border) !important;
    border-radius: var(--fpwoo-shell-radius-sm) !important;
    font-size: 1rem !important;
    line-height: 1.35 !important;
    color: var(--fpwoo-shell-text) !important;
    background: #fff !important;
    box-sizing: border-box;
    box-shadow: inset 0 1px 2px rgba(15, 23, 42, 0.04);
}

body.fpwoo-store-shell--checkout .checkout_coupon input#coupon_code::placeholder,
body.fpwoo-store-shell--checkout form.checkout_coupon #coupon_code::placeholder {
    color: var(--fpwoo-shell-muted);
    opacity: 1;
}

body.fpwoo-store-shell--checkout .checkout_coupon input#coupon_code:focus,
body.fpwoo-store-shell--checkout form.checkout_coupon #coupon_code:focus {
    outline: none;
    border-color: var(--fpwoo-shell-accent) !important;
    box-shadow: 0 0 0 3px color-mix(in srgb, var(--fpwoo-shell-accent) 18%, transparent);
}

@supports not (box-shadow: 0 0 0 3px color-mix(in srgb, blue 18%, transparent)) {
    body.fpwoo-store-shell--checkout .checkout_coupon input#coupon_code:focus,
    body.fpwoo-store-shell--checkout form.checkout_coupon #coupon_code:focus {
        box-shadow: 0 0 0 3px rgba(37, 99, 235, 0.2);
    }
}

body.fpwoo-store-shell--checkout form.checkout_coupon button[name="apply_coupon"] {
    min-height: 48px !important;
    height: auto !important;
    margin: 0 !important;
    padding: 0.65rem 1.35rem !important;
    border: none !important;
    border-radius: var(--fpwoo-shell-radius-sm) !important;
    background: var(--fpwoo-shell-accent) !important;
    color: #fff !important;
    font-size: 0.92rem !important;
    font-weight: 600 !important;
    line-height: 1.35 !important;
    white-space: nowrap;
    box-shadow: none !important;
    transition: background 0.15s ease;
}

body.fpwoo-store-shell--checkout form.checkout_coupon button[name="apply_coupon"]:hover {
    background: var(--fpwoo-shell-accent-hover) !important;
    color: #fff !important;
}

@media (max-width: 520px) {
    body.fpwoo-store-shell--checkout form.checkout_coupon[style*="block"],
    body.fpwoo-store-shell--checkout form.checkout_coupon:not([style*="none"]) {
        flex-direction: column;
    }

    body.fpwoo-store-shell--checkout form.checkout_coupon .form-row-last,
    body.fpwoo-store-shell--checkout form.checkout_coupon button[name="apply_coupon"] {
        width: 100% !important;
    }
}

/* —— Thank you —— */
body.fpwoo-store-shell--thankyou .woocommerce-order {
    padding: 0;
}

body.fpwoo-store-shell--thankyou .woocommerce-thankyou-order-received {
    font-size: clamp(1.2rem, 3vw, 1.5rem);
    font-weight: 700;
    color: var(--fpwoo-shell-accent);
    margin-bottom: 1.25rem;
    padding: 1rem 1.25rem;
    background: var(--fpwoo-shell-surface);
    border: 1px solid var(--fpwoo-shell-border);
    border-radius: var(--fpwoo-shell-radius);
}

body.fpwoo-store-shell--thankyou .woocommerce-order-overview {
    display: grid;
    gap: 0.65rem;
    margin: 0 0 1.5rem;
    padding: 1rem 1.25rem;
    list-style: none;
    background: #fff;
    border: 1px solid var(--fpwoo-shell-border);
    border-radius: var(--fpwoo-shell-radius);
    box-shadow: var(--fpwoo-shell-shadow);
}

body.fpwoo-store-shell--thankyou .woocommerce-order-overview li {
    margin: 0;
    padding: 0.35rem 0;
    border: none;
    color: var(--fpwoo-shell-muted);
    font-size: 0.92rem;
}

body.fpwoo-store-shell--thankyou .woocommerce-order-overview li strong {
    display: block;
    color: var(--fpwoo-shell-text);
    font-size: 1rem;
    margin-top: 0.15rem;
}

body.fpwoo-store-shell--thankyou .woocommerce-order-details,
body.fpwoo-store-shell--thankyou .woocommerce-customer-details {
    margin-top: 1.5rem;
    padding: 1.25rem;
    border: 1px solid var(--fpwoo-shell-border);
    border-radius: var(--fpwoo-shell-radius);
    background: #fff;
    box-shadow: var(--fpwoo-shell-shadow);
}

body.fpwoo-store-shell--thankyou .woocommerce-order-details h2,
body.fpwoo-store-shell--thankyou .woocommerce-customer-details h2 {
    font-size: 1.1rem;
    margin-top: 0;
}

body.fpwoo-store-shell--thankyou table.shop_table {
    border-radius: var(--fpwoo-shell-radius-sm);
    overflow: hidden;
}

body.fpwoo-store-shell--thankyou .woocommerce-table--order-details th,
body.fpwoo-store-shell--thankyou .woocommerce-table--order-details td {
    border-color: var(--fpwoo-shell-border);
    padding: 0.65rem 0.85rem;
}

body.fpwoo-store-shell--thankyou .fpwoo-thankyou-cta,
body.fpwoo-store-shell--thankyou a.button {
    min-height: 48px;
    padding: 0.75rem 1.35rem;
    border-radius: var(--fpwoo-shell-radius-sm);
    background: var(--fpwoo-shell-accent) !important;
    color: #fff !important;
    border: none;
    font-weight: 600;
}

body.fpwoo-store-shell--thankyou .fpwoo-thankyou-cta:hover,
body.fpwoo-store-shell--thankyou a.button:hover {
    background: var(--fpwoo-shell-accent-hover) !important;
    color: #fff !important;
}

/* Notices Woo — override Salient (sfondo accent + testo bianco) */
body.fpwoo-store-shell .woocommerce-message,
body.fpwoo-store-shell .woocommerce-info,
body.fpwoo-store-shell .woocommerce-error,
body.fpwoo-store-shell .woocommerce-notices-wrapper .woocommerce-message,
body.fpwoo-store-shell .woocommerce-notices-wrapper .woocommerce-info,
body.fpwoo-store-shell .woocommerce-notices-wrapper .woocommerce-error {
    border-radius: var(--fpwoo-shell-radius-sm) !important;
    border: 1px solid transparent !important;
    border-left-width: 4px !important;
    padding: 0.85rem 1rem !important;
    margin: 0 0 0.75rem !important;
    box-shadow: none !important;
    -webkit-box-shadow: none !important;
    background-image: none !important;
    text-shadow: none !important;
    -webkit-text-shadow: none !important;
    list-style: none !important;
    font-size: 0.92rem;
    line-height: 1.45;
}

body.fpwoo-store-shell .woocommerce-message,
body.fpwoo-store-shell .woocommerce-notices-wrapper .woocommerce-message {
    background-color: var(--fpwoo-notice-success-bg) !important;
    border-color: var(--fpwoo-notice-success-border) !important;
    border-left-color: var(--fpwoo-notice-success-border) !important;
    color: var(--fpwoo-notice-success-text) !important;
}

body.fpwoo-store-shell .woocommerce-info,
body.fpwoo-store-shell .woocommerce-notices-wrapper .woocommerce-info,
body.fpwoo-store-shell p.woocommerce-info {
    background-color: var(--fpwoo-notice-info-bg) !important;
    border-color: var(--fpwoo-notice-info-border) !important;
    border-left-color: var(--fpwoo-notice-info-border) !important;
    color: var(--fpwoo-notice-info-text) !important;
}

body.fpwoo-store-shell .woocommerce-error,
body.fpwoo-store-shell .woocommerce-notices-wrapper .woocommerce-error {
    background-color: var(--fpwoo-notice-error-bg) !important;
    border-color: var(--fpwoo-notice-error-border) !important;
    border-left-color: var(--fpwoo-notice-error-border) !important;
    color: var(--fpwoo-notice-error-text) !important;
}

body.fpwoo-store-shell .woocommerce-message::before,
body.fpwoo-store-shell .woocommerce-info::before,
body.fpwoo-store-shell .woocommerce-error::before {
    display: none !important;
    content: none !important;
}

body.fpwoo-store-shell .woocommerce-message a,
body.fpwoo-store-shell .woocommerce-info a,
body.fpwoo-store-shell .woocommerce-error a,
body.fpwoo-store-shell .woocommerce-notices-wrapper .woocommerce-message a,
body.fpwoo-store-shell .woocommerce-notices-wrapper .woocommerce-info a {
    color: var(--fpwoo-shell-accent) !important;
    font-weight: 600;
    text-decoration: underline;
    text-underline-offset: 2px;
}

body.fpwoo-store-shell .woocommerce-message a:hover,
body.fpwoo-store-shell .woocommerce-info a:hover,
body.fpwoo-store-shell .woocommerce-error a:hover {
    color: var(--fpwoo-shell-accent-hover) !important;
}

body.fpwoo-store-shell .woocommerce-message a.button,
body.fpwoo-store-shell .woocommerce-info a.button,
body.fpwoo-store-shell .woocommerce-error a.button,
body.fpwoo-store-shell .container .woocommerce-message a.button,
body.fpwoo-store-shell .container .woocommerce-info a.button {
    display: inline-flex !important;
    align-items: center;
    min-height: 2.25rem;
    padding: 0.4rem 0.9rem !important;
    margin: 0 0 0 0.75rem !important;
    line-height: 1.2 !important;
    height: auto !important;
    border-radius: var(--fpwoo-shell-radius-sm) !important;
    background: var(--fpwoo-shell-accent) !important;
    color: #fff !important;
    text-decoration: none !important;
    font-weight: 600;
    white-space: nowrap;
    vertical-align: middle;
    float: none !important;
}

body.fpwoo-store-shell .woocommerce-message a.button:hover,
body.fpwoo-store-shell .woocommerce-info a.button:hover {
    background: var(--fpwoo-shell-accent-hover) !important;
    color: #fff !important;
}

/* Checkout: messaggio «aggiunto al carrello» + link in riga su desktop */
body.fpwoo-store-shell--checkout .woocommerce-notices-wrapper,
body.fpwoo-store-shell--checkout form.checkout > .woocommerce-NoticeGroup,
body.fpwoo-store-shell--checkout .woocommerce > .woocommerce-notices-wrapper {
    margin-bottom: 1rem;
}

body.fpwoo-store-shell--checkout .woocommerce-message {
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    justify-content: space-between;
    gap: 0.5rem 0.75rem;
}

body.fpwoo-store-shell--checkout .woocommerce-message a.button.wc-forward {
    margin-left: auto !important;
    flex-shrink: 0;
}

body.fpwoo-store-shell--cart .woocommerce-form-coupon-toggle .woocommerce-info {
    background: linear-gradient(135deg, #fff 0%, var(--fpwoo-shell-surface) 100%) !important;
    border: 1px solid var(--fpwoo-shell-border) !important;
    border-left: 3px solid var(--fpwoo-shell-accent) !important;
    border-radius: var(--fpwoo-shell-radius-sm) !important;
    padding: 0.9rem 1.15rem !important;
    color: var(--fpwoo-shell-text) !important;
    box-shadow: var(--fpwoo-shell-shadow);
}

body.fpwoo-store-shell--cart .woocommerce-form-coupon-toggle .woocommerce-info a.showcoupon {
    color: var(--fpwoo-shell-accent) !important;
    font-weight: 600;
    text-decoration: none !important;
    padding: 0.25rem 0.65rem;
    border-radius: 999px;
    background: var(--fpwoo-shell-surface);
    border: 1px solid var(--fpwoo-shell-border);
}

/* Sticky funnel mobile */
.fpwoo-sticky-funnel {
    position: fixed;
    left: 0;
    right: 0;
    bottom: 0;
    /* Sotto i banner di consenso cookie/privacy: non coprire il consenso. */
    z-index: 9990;
    padding: 0.65rem 1rem calc(0.65rem + env(safe-area-inset-bottom, 0px));
    background: rgba(255, 255, 255, 0.96);
    border-top: 1px solid var(--fpwoo-shell-border, #e2e8f0);
    box-shadow: 0 -8px 24px rgba(15, 23, 42, 0.12);
    backdrop-filter: blur(8px);
}

.fpwoo-sticky-funnel__inner {
    max-width: 960px;
    margin: 0 auto;
    display: flex;
    align-items: center;
    gap: 0.75rem;
}

.fpwoo-sticky-funnel__price {
    flex: 1;
    /* Spazio per il pulsante flottante consenso/privacy in basso a sinistra. */
    padding-left: 3.5rem;
    font-weight: 700;
    font-size: 1.05rem;
    color: var(--fpwoo-shell-accent, #2563eb);
}

.fpwoo-sticky-funnel__btn {
    flex: 1 1 auto;
    min-height: 48px;
    padding: 0.75rem 1.25rem;
    border: none;
    border-radius: var(--fpwoo-shell-radius-sm, 8px);
    background: var(--fpwoo-shell-accent, #2563eb);
    color: #fff;
    font-weight: 600;
    font-size: 0.95rem;
    cursor: pointer;
}

@media (max-width: 768px) {
    body.fpwoo-store-shell--cart .woocommerce-cart-form .actions .button,
    body.fpwoo-store-shell--checkout form.checkout {
        padding: 1rem;
    }

    body.fpwoo-store-shell--thankyou .woocommerce-order-overview {
        grid-template-columns: 1fr;
    }

    body.fpwoo-store-shell--cart,
    body.fpwoo-store-shell--checkout {
        padding-bottom: 5rem;
    }
}

@media (min-width: 769px) {
    .fpwoo-sticky-funnel {
        display: none !important;
    }
}

/* —— Account cliente —— */
body.fpwoo-store-shell--account .woocommerce-MyAccount-navigation {
    margin-bottom: 1.5rem;
}

body.fpwoo-store-shell--account .woocommerce-MyAccount-navigation ul {
    list-style: none;
    margin: 0;
    padding: 0;
    display: flex;
    flex-wrap: wrap;
    gap: 0.5rem;
}

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

body.fpwoo-store-shell--account .woocommerce-MyAccount-navigation a {
    display: inline-block;
    padding: 0.55rem 1rem;
    min-height: 44px;
    border-radius: 999px;
    border: 1px solid var(--fpwoo-shell-border);
    background: #fff;
    color: var(--fpwoo-shell-text);
    font-weight: 600;
    text-decoration: none;
    line-height: 1.4;
}

body.fpwoo-store-shell--account .woocommerce-MyAccount-navigation li.is-active a {
    background: var(--fpwoo-shell-accent);
    border-color: var(--fpwoo-shell-accent);
    color: #fff;
}

body.fpwoo-store-shell--account .woocommerce-MyAccount-content {
    padding: 1.25rem 1.35rem;
    border: 1px solid var(--fpwoo-shell-border);
    border-radius: var(--fpwoo-shell-radius);
    background: #fff;
    box-shadow: var(--fpwoo-shell-shadow);
}

body.fpwoo-store-shell--account table.woocommerce-orders-table,
body.fpwoo-store-shell--account table.shop_table {
    border: 1px solid var(--fpwoo-shell-border);
    border-radius: var(--fpwoo-shell-radius-sm);
    overflow: hidden;
}

body.fpwoo-store-shell--account table.woocommerce-orders-table th,
body.fpwoo-store-shell--account table.woocommerce-orders-table td {
    padding: 0.75rem 0.85rem;
    border-color: var(--fpwoo-shell-border);
}

body.fpwoo-store-shell--account .woocommerce-button,
body.fpwoo-store-shell--account a.button,
body.fpwoo-store-shell--account button.button {
    min-height: 44px;
    padding: 0.6rem 1.15rem;
    border-radius: var(--fpwoo-shell-radius-sm);
    font-weight: 600;
}

body.fpwoo-store-shell--account .woocommerce-button:not(.woocommerce-button--disabled),
body.fpwoo-store-shell--account a.button:not(.cancel) {
    background: var(--fpwoo-shell-accent) !important;
    color: #fff !important;
    border: none;
}

@media (max-width: 768px) {
    body.fpwoo-store-shell--account .woocommerce-MyAccount-navigation ul {
        flex-direction: column;
    }

    body.fpwoo-store-shell--account .woocommerce-MyAccount-navigation a {
        width: 100%;
        border-radius: var(--fpwoo-shell-radius-sm);
    }
}

/* ==========================================================================
   Reimagined funnel v1.30.0 — hero, step indicator, trust, shipping progress
   ========================================================================== */

body.fpwoo-store-shell--cart,
body.fpwoo-store-shell--checkout,
body.fpwoo-store-shell--thankyou {
    background: linear-gradient(180deg, rgba(var(--fpwoo-shell-accent-rgb, 37, 99, 235), 0.04) 0%, transparent 320px);
}

body.fpwoo-store-shell--cart .fpwoo-store-shell__layout,
body.fpwoo-store-shell--checkout .fpwoo-store-shell__layout,
body.fpwoo-store-shell--thankyou .fpwoo-store-shell__layout {
    max-width: 78rem;
    padding-block: clamp(1.5rem, 2.5vw, 2.75rem);
}

.fpwoo-funnel-hero {
    display: flex;
    flex-direction: column;
    gap: 1.25rem;
    margin: 0 0 1.5rem;
    padding: 1.25rem 1.5rem 1.5rem;
    border-radius: var(--fpwoo-shell-radius, 14px);
    background: #fff;
    box-shadow: 0 1px 0 rgba(15, 23, 42, 0.04), 0 12px 30px -22px rgba(15, 23, 42, 0.12);
    border: 1px solid rgba(15, 23, 42, 0.06);
}

.fpwoo-funnel-steps {
    display: flex;
    flex-wrap: wrap;
    gap: 0.5rem 1.25rem;
    align-items: center;
    list-style: none;
    margin: 0;
    padding: 0;
    font-size: 0.875rem;
    counter-reset: fpwoo-funnel-step;
}

.fpwoo-funnel-steps__item {
    display: inline-flex;
    align-items: center;
    gap: 0.5rem;
    color: rgba(15, 23, 42, 0.5);
    font-weight: 500;
    position: relative;
}

.fpwoo-funnel-steps__item + .fpwoo-funnel-steps__item::before {
    content: "";
    width: 18px;
    height: 1px;
    background: rgba(15, 23, 42, 0.16);
    margin-right: 0.5rem;
}

.fpwoo-funnel-steps__index {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    width: 22px;
    height: 22px;
    border-radius: 999px;
    background: rgba(15, 23, 42, 0.08);
    color: rgba(15, 23, 42, 0.55);
    font-size: 0.75rem;
    font-weight: 600;
    line-height: 1;
}

.fpwoo-funnel-steps__item--active {
    color: var(--fpwoo-shell-accent, #2563eb);
}

.fpwoo-funnel-steps__item--active .fpwoo-funnel-steps__index {
    background: var(--fpwoo-shell-accent, #2563eb);
    color: #fff;
    box-shadow: 0 0 0 4px rgba(var(--fpwoo-shell-accent-rgb, 37, 99, 235), 0.14);
}

.fpwoo-funnel-steps__item--done {
    color: rgba(15, 23, 42, 0.7);
}

.fpwoo-funnel-steps__item--done .fpwoo-funnel-steps__index {
    background: rgba(34, 197, 94, 0.18);
    color: #166534;
}

.fpwoo-funnel-steps__item--done .fpwoo-funnel-steps__index::before {
    content: "✓";
    font-size: 0.8rem;
    line-height: 1;
}

.fpwoo-funnel-steps__item--done .fpwoo-funnel-steps__index {
    position: relative;
}

.fpwoo-funnel-steps__item--done .fpwoo-funnel-steps__index {
    color: transparent;
}

.fpwoo-funnel-hero__heading {
    display: flex;
    flex-direction: column;
    gap: 0.35rem;
}

.fpwoo-funnel-hero__title {
    margin: 0;
    font-size: clamp(1.5rem, 2.6vw, 1.875rem);
    line-height: 1.2;
    color: rgba(15, 23, 42, 0.92);
    font-weight: 700;
    letter-spacing: -0.01em;
}

.fpwoo-funnel-hero__subtitle {
    margin: 0;
    color: rgba(15, 23, 42, 0.6);
    font-size: 0.95rem;
    line-height: 1.5;
    max-width: 56ch;
}

.fpwoo-funnel-shipping-progress {
    margin: 0 0 1.25rem;
    padding: 0.95rem 1.25rem 1.05rem;
    border-radius: var(--fpwoo-shell-radius, 14px);
    background: #fff;
    border: 1px solid rgba(15, 23, 42, 0.06);
    display: flex;
    flex-direction: column;
    gap: 0.65rem;
}

.fpwoo-funnel-shipping-progress[data-state="achieved"] {
    border-color: rgba(34, 197, 94, 0.4);
    background: rgba(34, 197, 94, 0.08);
}

.fpwoo-funnel-shipping-progress__message {
    margin: 0;
    font-size: 0.92rem;
    color: rgba(15, 23, 42, 0.78);
    font-weight: 500;
    display: flex;
    align-items: center;
    gap: 0.45rem;
}

.fpwoo-funnel-shipping-progress[data-state="achieved"] .fpwoo-funnel-shipping-progress__message {
    color: #14532d;
    font-weight: 600;
}

.fpwoo-funnel-shipping-progress[data-state="achieved"] .fpwoo-funnel-shipping-progress__message::before {
    content: "🚚";
    font-size: 1.05rem;
}

.fpwoo-funnel-shipping-progress__bar {
    height: 8px;
    border-radius: 999px;
    background: rgba(15, 23, 42, 0.08);
    overflow: hidden;
}

.fpwoo-funnel-shipping-progress__fill {
    display: block;
    height: 100%;
    width: 0;
    background: linear-gradient(90deg, var(--fpwoo-shell-accent, #2563eb), rgba(var(--fpwoo-shell-accent-rgb, 37, 99, 235), 0.6));
    transition: width 0.35s ease;
    border-radius: inherit;
}

.fpwoo-funnel-shipping-progress[data-state="achieved"] .fpwoo-funnel-shipping-progress__fill {
    background: linear-gradient(90deg, #22c55e, #16a34a);
    width: 100% !important;
}

.fpwoo-funnel-trust {
    margin: 2rem 0 0;
    padding: 1.5rem;
    border-radius: var(--fpwoo-shell-radius, 14px);
    background: #fff;
    border: 1px solid rgba(15, 23, 42, 0.06);
    box-shadow: 0 1px 0 rgba(15, 23, 42, 0.04);
}

.fpwoo-funnel-trust__list {
    display: grid;
    grid-template-columns: repeat(auto-fit, minmax(180px, 1fr));
    gap: 1.1rem 1.5rem;
    margin: 0;
    padding: 0;
    list-style: none;
}

.fpwoo-funnel-trust__item {
    display: flex;
    gap: 0.85rem;
    align-items: flex-start;
}

.fpwoo-funnel-trust__icon {
    flex: 0 0 auto;
    width: 40px;
    height: 40px;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    border-radius: 999px;
    background: rgba(var(--fpwoo-shell-accent-rgb, 37, 99, 235), 0.1);
    color: var(--fpwoo-shell-accent, #2563eb);
}

.fpwoo-funnel-trust__text {
    display: flex;
    flex-direction: column;
    gap: 0.15rem;
    line-height: 1.35;
}

.fpwoo-funnel-trust__label {
    font-weight: 600;
    font-size: 0.93rem;
    color: rgba(15, 23, 42, 0.88);
}

.fpwoo-funnel-trust__desc {
    font-size: 0.83rem;
    color: rgba(15, 23, 42, 0.55);
}

/* Cart and checkout sidebar cards (apply to Blocks and Classic) */
body.fpwoo-store-shell--cart .wc-block-cart__sidebar,
body.fpwoo-store-shell--cart .fpwoo-cart-side-stack,
body.fpwoo-store-shell--checkout .wc-block-checkout__sidebar,
body.fpwoo-store-shell--checkout .woocommerce-checkout-review-order,
body.fpwoo-store-shell--checkout #order_review {
    border-radius: var(--fpwoo-shell-radius, 14px);
    background: #fff;
    border: 1px solid rgba(15, 23, 42, 0.06);
    box-shadow: 0 1px 0 rgba(15, 23, 42, 0.04), 0 18px 40px -32px rgba(15, 23, 42, 0.18);
}

body.fpwoo-store-shell--cart .wc-block-cart__main,
body.fpwoo-store-shell--checkout .wc-block-checkout__main,
body.fpwoo-store-shell--checkout form.checkout .col2-set .col-1,
body.fpwoo-store-shell--checkout form.checkout > .woocommerce-billing-fields,
body.fpwoo-store-shell--checkout form.checkout > .woocommerce-shipping-fields,
body.fpwoo-store-shell--checkout form.checkout > .woocommerce-additional-fields {
    background: #fff;
    border: 1px solid rgba(15, 23, 42, 0.06);
    border-radius: var(--fpwoo-shell-radius, 14px);
    padding: 1.25rem 1.4rem !important;
    box-shadow: 0 1px 0 rgba(15, 23, 42, 0.03);
}

body.fpwoo-store-shell--checkout form.checkout .col2-set {
    background: transparent !important;
    border: none !important;
    box-shadow: none !important;
}

body.fpwoo-store-shell--checkout form.checkout {
    display: block;
}

body.fpwoo-store-shell--checkout form.checkout .col2-set {
    display: grid;
    grid-template-columns: minmax(0, 1.6fr) minmax(320px, 1fr);
    gap: 1.5rem;
    align-items: flex-start;
    width: 100% !important;
    max-width: 100% !important;
    margin: 0 !important;
    padding: 0 !important;
}

body.fpwoo-store-shell--checkout form.checkout .col2-set .col-1,
body.fpwoo-store-shell--checkout form.checkout .col2-set .col-2 {
    width: 100% !important;
    max-width: 100% !important;
    float: none !important;
    margin: 0 !important;
}

/* Il padding lo applica la card .col-1 (sezione "Dettagli di fatturazione"). */
body.fpwoo-store-shell--checkout form.checkout .col2-set .col-1 {
    padding: 1.5rem 1.75rem !important;
}

body.fpwoo-store-shell--checkout form.checkout .col2-set .col-2 {
    padding: 0 !important;
}

/* Nasconde la <select> nativa SOLO quando Select2 è effettivamente attivo
   accanto (evita doppio render "Italia" fuori cornice). Senza Select2,
   il <select> nativo deve restare visibile e renderizzato come dropdown. */
body.fpwoo-store-shell--checkout .form-row .woocommerce-input-wrapper:has(.select2-container) > select {
    display: none !important;
}

body.fpwoo-store-shell--checkout .form-row .woocommerce-input-wrapper .select2-container + select,
body.fpwoo-store-shell--checkout .form-row .select2-container ~ select {
    display: none !important;
}

/* Se per qualunque motivo il <select> nativo è l'unico elemento visibile
   (Select2 non inizializzato), assicurati che il wrapper sia visibile
   e che il select erediti lo styling degli input. */
body.fpwoo-store-shell--checkout .woocommerce-input-wrapper {
    display: block !important;
    width: 100%;
}

body.fpwoo-store-shell--checkout .form-row select:not(.select2-hidden-accessible) {
    display: block !important;
    width: 100% !important;
}

/* Più aria verticale tra le righe del form. */
body.fpwoo-store-shell--checkout .form-row {
    margin-bottom: 1.1rem !important;
}

body.fpwoo-store-shell--checkout .woocommerce-billing-fields h3,
body.fpwoo-store-shell--checkout .woocommerce-shipping-fields h3,
body.fpwoo-store-shell--checkout .woocommerce-additional-fields h3 {
    margin-top: 0 !important;
    margin-bottom: 1.15rem !important;
    font-size: 1.1rem !important;
    font-weight: 700 !important;
    color: rgba(15, 23, 42, 0.9) !important;
}

/* Pulisce il padding del wrapper billing/shipping (era 0 45px 20px 0
   creando asimmetria). */
body.fpwoo-store-shell--checkout .woocommerce-billing-fields,
body.fpwoo-store-shell--checkout .woocommerce-shipping-fields,
body.fpwoo-store-shell--checkout .woocommerce-additional-fields {
    padding: 0 !important;
    background: transparent !important;
    border: none !important;
    box-shadow: none !important;
}

body.fpwoo-store-shell--checkout form.checkout .col2-set .col-1 {
    grid-column: 1 !important;
    grid-row: 1;
}

body.fpwoo-store-shell--checkout form.checkout .col2-set .col-2 {
    grid-column: 2 !important;
    grid-row: 1;
    position: sticky;
    top: 1.5rem;
    align-self: flex-start;
}

body.fpwoo-store-shell--checkout h3#order_review_heading {
    margin: 0 0 0.75rem;
    font-size: 1rem;
    color: rgba(15, 23, 42, 0.78);
    font-weight: 600;
    padding: 0 0.25rem;
}

body.fpwoo-store-shell--checkout #order_review {
    padding: 1.25rem !important;
}

body.fpwoo-store-shell--checkout #order_review table.shop_table tfoot .order-total th,
body.fpwoo-store-shell--checkout #order_review table.shop_table tfoot .order-total td {
    font-size: 1.05rem;
    font-weight: 700;
    color: rgba(15, 23, 42, 0.92);
}

body.fpwoo-store-shell--checkout .woocommerce-checkout-payment {
    border-radius: var(--fpwoo-shell-radius-sm, 10px);
    background: rgba(15, 23, 42, 0.025);
    padding: 0.85rem 1rem !important;
    margin-top: 0.85rem;
}

body.fpwoo-store-shell--checkout .woocommerce-checkout-payment ul.payment_methods {
    background: transparent !important;
    padding: 0 !important;
    border: none !important;
    margin-bottom: 0.85rem !important;
}

body.fpwoo-store-shell--checkout .woocommerce-checkout-payment ul.payment_methods li {
    padding: 0.65rem 0.75rem !important;
    background: #fff;
    border: 1px solid rgba(15, 23, 42, 0.08);
    border-radius: var(--fpwoo-shell-radius-sm, 10px);
    margin-bottom: 0.55rem;
    transition: border-color 0.15s ease, box-shadow 0.15s ease;
}

body.fpwoo-store-shell--checkout .woocommerce-checkout-payment ul.payment_methods li.wc_payment_method_selected,
body.fpwoo-store-shell--checkout .woocommerce-checkout-payment ul.payment_methods li:has(input[type="radio"]:checked) {
    border-color: var(--fpwoo-shell-accent, #2563eb);
    box-shadow: 0 0 0 3px rgba(var(--fpwoo-shell-accent-rgb, 37, 99, 235), 0.12);
}

body.fpwoo-store-shell--checkout .woocommerce-checkout-payment .place-order {
    padding: 0 !important;
    margin-top: 1rem;
}

body.fpwoo-store-shell--checkout #place_order {
    width: 100%;
    background: var(--fpwoo-shell-accent, #2563eb) !important;
    color: #fff !important;
    border: none !important;
    border-radius: var(--fpwoo-shell-radius-sm, 10px) !important;
    font-size: 1.05rem !important;
    font-weight: 600 !important;
    padding: 0.95rem 1.25rem !important;
    box-shadow: 0 8px 18px -10px rgba(var(--fpwoo-shell-accent-rgb, 37, 99, 235), 0.6);
    transition: transform 0.12s ease, box-shadow 0.12s ease;
}

body.fpwoo-store-shell--checkout #place_order:hover {
    transform: translateY(-1px);
    box-shadow: 0 12px 24px -10px rgba(var(--fpwoo-shell-accent-rgb, 37, 99, 235), 0.7);
}

body.fpwoo-store-shell--checkout .form-row label {
    font-size: 0.85rem;
    color: rgba(15, 23, 42, 0.72);
    font-weight: 500;
    margin-bottom: 0.3rem;
    display: block;
}

body.fpwoo-store-shell--checkout .form-row input.input-text,
body.fpwoo-store-shell--checkout .form-row textarea,
body.fpwoo-store-shell--checkout .form-row select {
    border-radius: var(--fpwoo-shell-radius-sm, 10px) !important;
    border: 1px solid rgba(15, 23, 42, 0.14) !important;
    padding: 0.7rem 0.85rem !important;
    background: #fff !important;
    font-size: 0.95rem !important;
    transition: border-color 0.15s ease, box-shadow 0.15s ease;
    min-height: 46px;
    box-sizing: border-box !important;
}

/* Select2 — gestisce il proprio rendering interno con padding via __rendered;
   se applichiamo padding al --single il rendered (line-height 48px) sfora
   sotto la cornice e il testo finisce fuori dalla box. */
body.fpwoo-store-shell--checkout .select2-container--default .select2-selection--single {
    border-radius: var(--fpwoo-shell-radius-sm, 10px) !important;
    border: 1px solid rgba(15, 23, 42, 0.14) !important;
    background: #fff !important;
    font-size: 0.95rem !important;
    transition: border-color 0.15s ease, box-shadow 0.15s ease;
    height: 46px !important;
    padding: 0 !important;
    box-sizing: border-box !important;
    display: flex !important;
    align-items: center;
}

body.fpwoo-store-shell--checkout .select2-container--default .select2-selection--single .select2-selection__rendered {
    padding: 0 2.5rem 0 0.85rem !important;
    line-height: 1.2 !important;
    height: auto !important;
    color: rgba(15, 23, 42, 0.92);
    width: 100%;
    box-sizing: border-box;
    overflow: hidden;
    text-overflow: ellipsis;
    white-space: nowrap;
}

body.fpwoo-store-shell--checkout .select2-container--default .select2-selection--single .select2-selection__arrow {
    height: 44px !important;
    top: 1px !important;
    right: 0.6rem !important;
}

body.fpwoo-store-shell--checkout .select2-container--default.select2-container--focus .select2-selection--single,
body.fpwoo-store-shell--checkout .select2-container--default.select2-container--open .select2-selection--single {
    border-color: var(--fpwoo-shell-accent, #2563eb) !important;
    box-shadow: 0 0 0 3px rgba(var(--fpwoo-shell-accent-rgb, 37, 99, 235), 0.14) !important;
}

/* <select> nativo: in Chrome il testo dell'opzione selezionata si allinea al
   content-box ignorando il padding-top, finendo "fuori" dalla cornice quando
   forziamo padding verticale + min-height. Diamo al <select> un'altezza
   fissa con padding solo orizzontale e gestiamo l'allineamento verticale
   col line-height. Aggiungiamo anche una freccia SVG custom (perché
   appearance:none rimuove quella nativa). */
body.fpwoo-store-shell--checkout .form-row select {
    height: 46px !important;
    min-height: 46px !important;
    padding: 0 2.5rem 0 0.85rem !important;
    line-height: 1.2 !important;
    appearance: none !important;
    -webkit-appearance: none !important;
    -moz-appearance: none !important;
    background-image: url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 20 20' fill='none' stroke='%2364748b' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'><polyline points='6 8 10 12 14 8'/></svg>") !important;
    background-repeat: no-repeat !important;
    background-position: right 0.85rem center !important;
    background-size: 18px 18px !important;
    cursor: pointer;
}

body.fpwoo-store-shell--checkout .form-row select:focus {
    background-image: url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 20 20' fill='none' stroke='%232563eb' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'><polyline points='6 8 10 12 14 8'/></svg>") !important;
}

body.fpwoo-store-shell--checkout .form-row input.input-text:focus,
body.fpwoo-store-shell--checkout .form-row textarea:focus,
body.fpwoo-store-shell--checkout .form-row select:focus {
    border-color: var(--fpwoo-shell-accent, #2563eb) !important;
    box-shadow: 0 0 0 3px rgba(var(--fpwoo-shell-accent-rgb, 37, 99, 235), 0.14) !important;
    outline: none;
}

body.fpwoo-store-shell--checkout .checkout_coupon {
    margin: 0 0 1rem !important;
    padding: 0.85rem 1.1rem !important;
    border-radius: var(--fpwoo-shell-radius-sm, 10px) !important;
    border: 1px dashed rgba(var(--fpwoo-shell-accent-rgb, 37, 99, 235), 0.3) !important;
    background: rgba(var(--fpwoo-shell-accent-rgb, 37, 99, 235), 0.03) !important;
}

body.fpwoo-store-shell--checkout .woocommerce-info:not(.woocommerce-form-coupon-toggle *) {
    padding: 0.85rem 1rem !important;
    border-radius: var(--fpwoo-shell-radius-sm, 10px) !important;
    background: rgba(var(--fpwoo-shell-accent-rgb, 37, 99, 235), 0.06) !important;
    border-left: 3px solid var(--fpwoo-shell-accent, #2563eb) !important;
}

/* Banner coupon "Hai un codice promozionale?" — versione in evidenza:
   card accentata a piena larghezza con icona biglietto, testo leggibile e il
   "Fai clic qui" come pill cliccabile, per invitare chiaramente all'uso del
   codice senza farlo passare inosservato. */
body.fpwoo-store-shell--checkout .woocommerce-form-coupon-toggle {
    margin: 0 0 1.25rem !important;
    padding: 0 !important;
    background: transparent !important;
    border: none !important;
    box-shadow: none !important;
}

body.fpwoo-store-shell--checkout .woocommerce-form-coupon-toggle .woocommerce-info {
    display: flex !important;
    align-items: center !important;
    flex-wrap: wrap !important;
    gap: 0.35rem 0.5rem !important;
    margin: 0 !important;
    padding: 0.95rem 1.2rem !important;
    background: linear-gradient(
        135deg,
        rgba(var(--fpwoo-shell-accent-rgb, 37, 99, 235), 0.10) 0%,
        rgba(var(--fpwoo-shell-accent-rgb, 37, 99, 235), 0.035) 100%
    ) !important;
    border: 1px solid rgba(var(--fpwoo-shell-accent-rgb, 37, 99, 235), 0.28) !important;
    border-left: 4px solid var(--fpwoo-shell-accent, #2563eb) !important;
    border-radius: var(--fpwoo-shell-radius-sm, 10px) !important;
    box-shadow: 0 1px 3px rgba(15, 23, 42, 0.06) !important;
    font-size: 0.98rem !important;
    font-weight: 600 !important;
    line-height: 1.4 !important;
    color: var(--fpwoo-shell-text, #0f172a) !important;
    text-align: left;
}

body.fpwoo-store-shell--checkout .woocommerce-form-coupon-toggle .woocommerce-info::before {
    position: static !important; /* annulla l'absolute di WooCommerce: l'icona scorre inline */
    display: inline-block !important;
    content: "\1F39F\FE0F" !important; /* 🎟️ */
    margin: 0 0.1rem 0 0 !important;
    inset: auto !important;
    font-size: 1.15rem !important;
    line-height: 1 !important;
    opacity: 1 !important;
}

body.fpwoo-store-shell--checkout .woocommerce-form-coupon-toggle .woocommerce-info a.showcoupon {
    color: var(--fpwoo-shell-accent, #2563eb) !important;
    font-weight: 700 !important;
    text-decoration: none !important;
    padding: 0.35rem 0.9rem !important;
    margin: 0 0 0 0.15rem !important;
    border: 1.5px solid var(--fpwoo-shell-accent, #2563eb) !important;
    background: #fff !important;
    border-radius: 999px !important;
    transition: background 0.15s ease, color 0.15s ease, transform 0.15s ease;
}

body.fpwoo-store-shell--checkout .woocommerce-form-coupon-toggle .woocommerce-info a.showcoupon:hover {
    color: var(--fpwoo-shell-accent-hover, #1d4ed8) !important;
    background: rgba(var(--fpwoo-shell-accent-rgb, 37, 99, 235), 0.10) !important;
    border-color: var(--fpwoo-shell-accent-hover, #1d4ed8) !important;
    transform: translateY(-1px);
}

/* Form coupon aperto: card neutra, niente connessione visiva con un banner
   che non esiste più. */
body.fpwoo-store-shell--checkout form.checkout_coupon.woocommerce-form-coupon[style*="block"],
body.fpwoo-store-shell--checkout form.checkout_coupon.woocommerce-form-coupon:not([style*="none"]) {
    margin: 0 0 1.25rem !important;
    padding: 0.85rem 1rem !important;
    background: rgba(15, 23, 42, 0.025) !important;
    border: 1px solid rgba(15, 23, 42, 0.08) !important;
    border-radius: var(--fpwoo-shell-radius-sm, 10px) !important;
    box-shadow: none !important;
}

/* Server-side skeleton placeholders shown until WC Blocks hydrate */
body.fpwoo-store-shell--cart .wp-block-woocommerce-cart:not(.is-loading)
    .fpwoo-block-skeleton,
body.fpwoo-store-shell--checkout .wp-block-woocommerce-checkout:not(.is-loading)
    .fpwoo-block-skeleton {
    display: none !important;
}

.fpwoo-block-skeleton {
    display: grid;
    grid-template-columns: minmax(0, 1.6fr) minmax(260px, 0.9fr);
    gap: 1.5rem;
    margin: 0 0 1.25rem;
}

.fpwoo-block-skeleton__main,
.fpwoo-block-skeleton__side {
    background: #fff;
    border: 1px solid rgba(15, 23, 42, 0.06);
    border-radius: var(--fpwoo-shell-radius, 14px);
    padding: 1.5rem;
    display: flex;
    flex-direction: column;
    gap: 0.85rem;
    box-shadow: 0 1px 0 rgba(15, 23, 42, 0.03);
}

.fpwoo-block-skeleton__line {
    height: 14px;
    border-radius: 6px;
    background: linear-gradient(90deg, rgba(15, 23, 42, 0.06), rgba(15, 23, 42, 0.1), rgba(15, 23, 42, 0.06));
    background-size: 200% 100%;
    animation: fpwooShimmer 1.4s linear infinite;
}

.fpwoo-block-skeleton__line--title {
    height: 22px;
    width: 55%;
}

.fpwoo-block-skeleton__line--short {
    width: 40%;
}

.fpwoo-block-skeleton__line--med {
    width: 70%;
}

.fpwoo-block-skeleton__line--btn {
    height: 44px;
    border-radius: 10px;
    width: 100%;
    margin-top: 0.5rem;
}

.fpwoo-block-skeleton__row {
    display: flex;
    gap: 0.85rem;
    align-items: center;
}

.fpwoo-block-skeleton__thumb {
    width: 64px;
    height: 64px;
    border-radius: 10px;
    background: linear-gradient(90deg, rgba(15, 23, 42, 0.06), rgba(15, 23, 42, 0.1), rgba(15, 23, 42, 0.06));
    background-size: 200% 100%;
    animation: fpwooShimmer 1.4s linear infinite;
    flex: 0 0 auto;
}

.fpwoo-block-skeleton__rowlines {
    display: flex;
    flex-direction: column;
    gap: 0.4rem;
    flex: 1 1 auto;
}

@keyframes fpwooShimmer {
    0% { background-position: 200% 0; }
    100% { background-position: -200% 0; }
}

@media (max-width: 880px) {
    .fpwoo-funnel-hero {
        padding: 1rem 1.1rem 1.15rem;
        gap: 1rem;
    }

    .fpwoo-funnel-hero__title {
        font-size: 1.4rem;
    }

    .fpwoo-funnel-trust {
        padding: 1.1rem;
    }

    .fpwoo-funnel-trust__list {
        grid-template-columns: 1fr 1fr;
        gap: 1rem;
    }

    body.fpwoo-store-shell--checkout form.checkout {
        grid-template-columns: 1fr;
    }

    body.fpwoo-store-shell--checkout form.checkout > h3#order_review_heading,
    body.fpwoo-store-shell--checkout form.checkout > #order_review {
        grid-column: 1;
    }

    body.fpwoo-store-shell--checkout form.checkout > #order_review {
        position: static;
    }

    .fpwoo-block-skeleton {
        grid-template-columns: 1fr;
    }

    .fpwoo-funnel-steps {
        font-size: 0.8rem;
        gap: 0.35rem 0.85rem;
    }

    .fpwoo-funnel-steps__item + .fpwoo-funnel-steps__item::before {
        width: 12px;
        margin-right: 0.35rem;
    }
}

@media (max-width: 520px) {
    .fpwoo-funnel-trust__list {
        grid-template-columns: 1fr;
    }
}

/* ===== Carrello vuoto ===== */
body.fpwoo-store-shell--cart .wp-block-woocommerce-empty-cart-block {
    max-width: 820px;
    margin: 0 auto;
    text-align: center;
    padding: 0.5rem 0 1.5rem;
}

body.fpwoo-store-shell--cart .wc-block-cart__empty-cart__title {
    font-size: 1.45rem !important;
    font-weight: 700 !important;
    color: var(--fpwoo-shell-text, #0f172a) !important;
    margin: 0.75rem 0 1.5rem !important;
}

/* Titolo "Novità in negozio" coerente con lo shell */
body.fpwoo-store-shell--cart .wp-block-woocommerce-empty-cart-block h2,
body.fpwoo-store-shell--cart .wp-block-woocommerce-product-new h2 {
    font-size: 1.15rem !important;
    font-weight: 700 !important;
    margin: 2rem 0 1.1rem !important;
}

/* Griglia "Novità in negozio" */
body.fpwoo-store-shell--cart .wp-block-woocommerce-empty-cart-block .wc-block-grid__products {
    display: grid !important;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 1.1rem;
    list-style: none;
    margin: 1.1rem 0 0;
    padding: 0;
}

body.fpwoo-store-shell--cart .wp-block-woocommerce-empty-cart-block .wc-block-grid__product {
    /* Reset del layout flex nativo dei WC Blocks (flex:1 0 25% + max-width:25%):
       in una griglia CSS quel max-width si calcola sulla cella e schiaccia la
       card a ~48px. La card deve riempire la cella della griglia. */
    flex: 0 1 auto !important;
    max-width: none !important;
    width: auto !important;
    margin: 0 !important;
    padding: 0.9rem !important;
    border: 1px solid var(--fpwoo-shell-border, #e2e8f0);
    border-radius: 12px;
    text-align: center;
    background: #fff;
}

body.fpwoo-store-shell--cart .wp-block-woocommerce-empty-cart-block .wc-block-grid__product-image img {
    border-radius: 8px;
}

body.fpwoo-store-shell--cart .wp-block-woocommerce-empty-cart-block .wp-block-button__link,
body.fpwoo-store-shell--cart .wp-block-woocommerce-empty-cart-block .wp-element-button {
    background: var(--fpwoo-shell-accent, #2563eb) !important;
    border-color: var(--fpwoo-shell-accent, #2563eb) !important;
    color: #fff !important;
    border-radius: 8px;
    font-weight: 600;
}

@media (min-width: 769px) {
    body.fpwoo-store-shell--cart .wp-block-woocommerce-empty-cart-block .wc-block-grid__products {
        grid-template-columns: repeat(4, minmax(0, 1fr));
    }
}
