.bg_cart_wrapper {
    /* max-width gestito dal wrapper esterno via Personalizza  Layout pagina */
    width: 100%;
    max-width: 100%;
    margin: 0;
    padding: 0;
    background-color: var(--mybo-cart-wrapper-bg, #222222);
    border-radius: var(--mybo-cart-wrapper-radius, 8px);
    box-shadow: 0 4px 10px rgba(0,0,0,0.2);
    box-sizing: border-box;
}

.bg_cart {
    /* max-width gestito dal wrapper esterno (mybo-box-office-template-wrapper)
     * tramite Personalizza  Carrello  Layout pagina. Qui width:100% riempie
     * il parent gi ristretto. */
    width: 100%;
    max-width: 100%;
    margin: 0;
    padding: 0;
    box-sizing: border-box;
}

.bg_cart table {
    width: 100%;
    margin: 0;
    border-collapse: collapse;
}

.bg_cart td, .bg_cart th {
    vertical-align: middle;
    padding: 15px;
    border-bottom: 1px solid #444;
}

.bg_cart th {
    line-height: 1.5;
    font-weight: 700;
    text-align: center;
}

.bg_cart th[scope="row"] {
    text-align: left;
}

.bg_cart th .bg-datetime {
    font-weight: 400;
    display: block;
    margin-top: 5px;
    font-size: 14px;
    color: #aaa;
}

.bg-cart-modern {
    margin: 0 auto;
}

#bg-cart-submit-hint {
    display: none;
    text-align: center;
    margin: 15px 0 0 0;
    color: #ff4444;
    font-weight: 600;
    font-size: 14px;
}

#bg-cart-submit-hint.is-visible {
    display: block;
    animation: hint-blink 1s ease-in-out infinite;
}

@keyframes hint-blink {
    0%, 100% {
        opacity: 1;
        color: #ff4444;
    }
    50% {
        opacity: 0.4;
        color: #ff6666;
    }
}

.bg-cart-tickets-box {
    background: var(--mybo-cart-table-bg, #333);
    border: var(--mybo-cart-table-border-width, 2px) solid var(--mybo-cart-table-border-color, #444);
    border-radius: var(--mybo-cart-table-radius, 10px);
    font-family: var(--mybo-cart-table-font, var(--mybo-font-body, inherit));
    margin: var(--mybo-cart-table-margin, 0 0 25px 0);
    overflow: hidden;
    transition: background-color var(--mybo-transition, 0.3s) ease;
}

.bg-cart-event-header {
    align-items: center;
    background: var(--mybo-cart-header-bg, rgba(0, 0, 0, 0.3));
    border: var(--mybo-cart-header-border-width, 0) solid var(--mybo-cart-header-border-color, transparent);
    border-radius: var(--mybo-cart-header-radius, 0);
    font-family: var(--mybo-cart-header-font, var(--mybo-font-heading, inherit));
    display: flex;
    gap: var(--mybo-cart-thumb-gap, 15px);
    padding: var(--mybo-cart-header-padding, 15px);
    margin: var(--mybo-cart-header-margin, 0);
}

.bg-cart-event-image {
    /* height var ricavata da thumb_mobile_size così l'admin può scalare il thumb */
    height: var(--mybo-cart-thumb-size, 100px);
}

.bg-cart-event-info {
    flex: 1;
}

.bg-cart-event-title {
    color: var(--mybo-cart-header-title-color, #22b2ee);
    font-family: var(--mybo-cart-header-font, var(--mybo-font-heading, inherit));
    font-size: var(--mybo-cart-header-title-size, 22px);
    font-weight: var(--mybo-cart-header-title-weight, 700);
}

.bg-cart-event-date {
    color: var(--mybo-cart-header-subtitle-color, #c4c4c5);
    font-size: var(--mybo-cart-header-subtitle-size, 14px);
}

.bg-cart-tickets-header {
    background: var(--mybo-cart-table-head-bg, transparent);
    border-bottom: 1px solid var(--mybo-cart-row-border, rgba(255, 255, 255, 0.08));
    color: var(--mybo-cart-table-head-color, #c4c4c5);
    display: grid;
    font-size: var(--mybo-cart-table-head-size, 13px);
    font-weight: var(--mybo-cart-table-head-weight, 700);
    grid-template-columns: var(--mybo-cart-table-grid-columns, 2fr 1fr 2fr);
    text-transform: var(--mybo-cart-table-head-transform, uppercase);
    max-width: 100%;
    margin: 0;
    padding: var(--mybo-cart-table-head-padding, 8px 0);
}

.bg-cart-tickets-header .bg-cart-col-label {
    background: transparent;
    color: var(--mybo-cart-table-head-color, #c4c4c5);
    padding: 0;
    align-content: center;
}

.bg-cart-tickets-header .bg-cart-col-qty {
    color: var(--mybo-cart-table-head-color, #c4c4c5);
    padding: 8px;
}

.bg-cart-tickets-header .bg-cart-col-price {
    background: transparent;
    color: var(--mybo-cart-table-head-color, #c4c4c5);
    padding: 0;
}

.bg-cart-tickets-body {
    /* margin/padding RIMOSSI hardcoded — gestiti dal nuclear CSS via var
     * --mybo-cart-content-col-padding (vedi schema table_content_col_padding).
     * Ammin può ora settarlo da Personalizza → Cart → Tabella biglietti →
     * 📋 Colonna contenuto. */
}

.bg-cart-ticket-row {
    align-items: center;
    background: var(--mybo-cart-row-bg, transparent);
    color: var(--mybo-cart-row-color, inherit);
    font-size: var(--mybo-cart-row-size, 14px);
    display: grid;
    grid-template-columns: var(--mybo-cart-table-grid-columns, 2fr 1fr 2fr);
    padding: 6px 0;
    transition: background var(--mybo-transition, 0.2s);
    max-width: 100%;
    margin: 0;
}

.bg-cart-col-label {
    color: var(--mybo-cart-label-color, #fff);
    font-weight: var(--mybo-cart-label-weight, 600);
    margin: 0;
    padding: 0;
}

.bg-cart-col-qty {
    align-items: center;
    background: transparent;
    color: var(--mybo-cart-row-color, #c4c4c5);
    display: flex;
    gap: 5px;
    justify-content: center;
    margin: 0;
    padding: 8px 0;
}

.bg-cart-col-price {
    align-items: center;
    color: var(--mybo-cart-price-color, #fff);
    font-size: var(--mybo-cart-price-size, 16px);
    font-weight: var(--mybo-cart-price-weight, 700);
    display: flex;
    flex-wrap: wrap;
    gap: 8px;
    justify-content: flex-start;
    padding: 0 10px;
}

.bg-membership-fee-row .bg-price-display .price {
    margin: 0 2px;
}

.bg-membership-fee-row .bg-price-display {
	margin: 0 auto;
    align-items: center;
	color: #fff;
	display: flex;
	flex-wrap: wrap;
	gap: 8px;
	justify-content: right;
	padding: 0 0px;
}

.bg-membership-discount-row .bg-price-display .price {
	margin: 0 2px;
}

.bg-membership-discount-row .bg-price-display  {
	margin: 0 auto;
    align-items: center;
	color: #fff;
	display: flex;
	flex-wrap: wrap;
	gap: 8px;
	justify-content: right;
	padding: 0 0px;

}

.bg-cart-qty-btn {
    align-items: center;
    border: 1px solid var(--mybo-cart-qty-btn-border, transparent);
    border-radius: var(--mybo-cart-qty-btn-radius, 5px);
    color: var(--mybo-cart-qty-btn-text, #fff);
    cursor: pointer;
    display: flex;
    font-size: var(--mybo-cart-qty-btn-font-size, 18px);
    font-weight: var(--mybo-cart-qty-btn-font-weight, bold);
    height: var(--mybo-cart-qty-btn-size, 32px);
    justify-content: center;
    margin: 0;
    width: var(--mybo-cart-qty-btn-size, 32px);
    transition: background var(--mybo-transition, 0.2s) ease;
}

.bg-cart-qty-btn.minus {
    background: var(--mybo-cart-qty-btn-bg-minus, #e53935);
    color: var(--mybo-cart-qty-btn-text-minus, var(--mybo-cart-qty-btn-text, #fff));
}

.bg-cart-qty-btn.plus {
    background: var(--mybo-cart-qty-btn-bg-plus, #22b2ee);
    color: var(--mybo-cart-qty-btn-text-plus, var(--mybo-cart-qty-btn-text, #fff));
}

.bg-cart-qty-input {
    background: var(--mybo-cart-qty-input-bg, #1a1a1a);
    border: var(--mybo-cart-qty-input-border-width, 1px) solid var(--mybo-cart-qty-input-border-color, var(--mybo-cart-qty-btn-border, #555));
    border-radius: var(--mybo-cart-qty-input-radius, var(--mybo-cart-qty-btn-radius, 5px));
    color: var(--mybo-cart-qty-input-text, #fff);
    font-size: var(--mybo-cart-qty-input-font-size, 16px);
    font-weight: var(--mybo-cart-qty-input-font-weight, bold);
    height: var(--mybo-cart-qty-input-height, 32px);
    margin: 0;
    text-align: center;
    width: var(--mybo-cart-qty-input-width, 50px);
}

.bg-qty-display {
    font-size: 1.1em;
    font-weight: bold;
}

.bg-multiply {
    color: #888;
    font-size: 0.9em;
}

.bg-price-display {
    font-size: 1.1em;
    font-weight: bold;
}

.bg-price-original-strike {
    color: var(--mybo-cart-price-strike-color, #888);
    font-weight: var(--mybo-cart-price-strike-weight, bold);
    margin: 0 0 0 10px;
    opacity: 0.6;
    text-decoration: line-through;
}

.bg-price-discounted {
    color: var(--mybo-cart-price-discount-color, #ff6b35);
    font-weight: var(--mybo-cart-price-discount-weight, bold);
    margin: 0 0 0 10px;
}

.bg-price-new {
    color: var(--mybo-cart-price-color, #fff);
    font-weight: var(--mybo-cart-price-weight, bold);
}

.bg-price-strike {
    color: var(--mybo-cart-price-strike-color, #888);
    cursor: help;
    font-size: 0.85em;
    margin-right: 5px;
    opacity: 0.6;
    text-decoration: line-through;
}

.bg-price-final {
    color: var(--mybo-cart-price-discount-color, #ff6b35);
    cursor: help;
    font-weight: var(--mybo-cart-price-discount-weight, bold);
}

.bg-info-icon {
    font-size: 0.75em;
    margin-left: 3px;
    opacity: 0.7;
    vertical-align: super;
}

.bg-time-badge {
    font-size: 0.85em;
    margin-left: 5px;
}

.bg-time-discount-notice {
    color: #10b981;
    font-size: 0.75em;
    font-style: italic;
    margin-top: 3px;
    text-align: center;
}

.bg-rounding-notice {
    color: var(--mybo-cart-rounding-color, #d9d9d9);
    font-size: var(--mybo-cart-rounding-size, 0.75em);
    font-style: italic;
    margin-top: 12px;
    opacity: 0.7;
    text-align: center;
}

.bg-membership-fee-row {
	background: linear-gradient(145deg, #1a1a1a 0%, #0a0a0a 50%, #151515 100%) !important;
	border: 2px solid transparent !important;
	border-image: linear-gradient(145deg, #d4af37, #f5d67a, #c9a227, #a8860a) 1 !important;
	box-shadow: 0 0 20px rgba(212, 175, 55, 0.4), inset 0 1px 0 rgba(255, 255, 255, 0.05);
	margin: 10px auto;
	padding: 5px 0;
	width: 600px;
	border-radius: 10px;
    grid-template-columns: 2fr 1fr 1fr;
}

.bg-membership-fee-row td {
    background: transparent !important;
    font-style: italic;
}

.bg-membership-fee-row .bg-cart-col-qty {
    background: linear-gradient(145deg, #d4af37, #c9a227, #b8960f) !important;
    border-radius: 5px;
    box-shadow: 0 2px 4px rgba(0, 0, 0, 0.3);
    color: #1a1a1a !important;
    font-weight: bold;
    text-shadow: 0 1px 0 rgba(255, 255, 255, 0.2);
    width: 100%;
}

.bg-membership-discount-row .bg-cart-col-qty {
	background: linear-gradient(145deg, #3fbb3b, #2cc927, #649539) !important;
	border-radius: 5px;
	box-shadow: 0 2px 4px rgba(0, 0, 0, 0.3);
	color: #fff !important;
	font-weight: bold;
	text-shadow: 0 1px 0 rgba(255, 255, 255, 0.2);
    width: 100%;
}

.bg-membership-fee-row .bg-cart-col-label {
    color: #f5d67a !important;
    text-shadow: 0 0 10px rgba(212, 175, 55, 0.3);
}

.bg-membership-fee-row .bg-price-display {
    color: #f5d67a !important;
    text-shadow: 0 0 8px rgba(212, 175, 55, 0.4);
}

.bg-membership-discount-row {
	background: rgba(34, 139, 34, 0.15) !important;
	border: 1px solid rgba(34, 139, 34, 0.3);
	border-radius: 8px;
	margin: 10px auto;
	padding: 5px 0;
	width: 80%;
    grid-template-columns: 2fr 1fr 1fr;
	box-shadow: 0px 0px 15px rgba(67, 212, 55, 0.31), inset 0 0 5px rgba(255, 255, 255, 0.36);
}

.bg-membership-discount-row .bg-price-display {
    color: #90EE90;
}

.bg-cart-Omaggio-row {
    background: var(--mybo-cart-omaggio-bg, linear-gradient(145deg, #0a1a0a 0%, #1a2e1a 50%, #0a1a0a 100%)) !important;
    border: 2px solid var(--mybo-cart-omaggio-border, #4CAF50) !important;
    border-radius: 8px;
    box-shadow: 0 0 15px rgba(76, 175, 80, 0.35), inset 0 1px 0 rgba(255, 255, 255, 0.05);
    margin: 10px auto;
    padding: 8px 0;
    width: 100%;
    max-width: 100%;
    grid-template-columns: var(--mybo-cart-table-grid-columns, 2fr 1fr 1fr);
}

.bg-cart-Omaggio-row .bg-cart-col-label {
    color: var(--mybo-cart-omaggio-text, #90EE90) !important;
    text-shadow: 0 0 8px rgba(76, 175, 80, 0.4);
}

.bg-cart-Omaggio-row .bg-cart-col-qty {
    background: var(--mybo-cart-omaggio-badge-bg, linear-gradient(145deg, #4CAF50, #43A047, #388E3C)) !important;
    border-radius: 5px;
    box-shadow: 0 2px 4px rgba(0, 0, 0, 0.3);
    color: var(--mybo-cart-omaggio-badge-text, #fff) !important;
    font-weight: bold;
    text-shadow: 0 1px 1px rgba(0, 0, 0, 0.2);
}

.bg-cart-Omaggio-row .bg-price-display {
color: var(--mybo-cart-omaggio-text, #90EE90) !important;
text-shadow: 0 0 6px rgba(76, 175, 80, 0.4);
}

.bg-cart-Omaggio-row .bg-price-Omaggio {
font-style: italic;
}

.bg-cart-Omaggio-row .bg-cart-col-price {
display: none !important;
}

.bg-modify-Omaggio-row {
background: linear-gradient(145deg, #0a1a0a 0%, #1a2e1a 50%, #0a1a0a 100%) !important;
border: 2px solid #4CAF50 !important;
border-radius: 8px;
padding: 12px 10px;
margin-top: 12px;
box-shadow: 0 4px 12px rgba(0, 0, 0, 0.35);
align-items: center;
}

.bg-modify-Omaggio-row .bg-modify-col-label {
color: #90EE90 !important;
text-shadow: 0 0 8px rgba(76, 175, 80, 0.4);
}

.bg-modify-Omaggio-row .bg-modify-controls {
justify-content: center;
gap: 10px;
}

.bg-modify-Omaggio-row .bg-Omaggio-count {
display: inline-block;
min-width: 48px;
text-align: center;
background: linear-gradient(145deg, #4CAF50, #43A047, #388E3C) !important;
color: #fff;
padding: 8px 12px;
border-radius: 6px;
font-weight: 700;
box-shadow: 0 2px 4px rgba(0, 0, 0, 0.3);
}

.bg-modify-Omaggio-row .bg-Omaggio-input {
display: none;
}

.bg-modify-Omaggio-row .bg-multiply,
.bg-modify-Omaggio-row .bg-price-display,
.bg-modify-Omaggio-row .bg-price-Omaggio {
display: none !important;
}

.bg-user-discount-row {
background: linear-gradient(145deg, #0d2818 0%, #1a4d2e 50%, #0f3d1f 100%) !important;
border: 1px solid transparent !important;
border-image: linear-gradient(145deg, #2ecc71, #58d68d, #27ae60, #1e8449) 1 !important;
border-radius: 8px;
box-shadow: 0 0 15px rgba(46, 204, 113, 0.25), inset 0 1px 0 rgba(255, 255, 255, 0.03);
margin-bottom: 10px;
padding: 15px 0;
    border-radius: 8px;
    box-shadow: 0 0 15px rgba(46, 204, 113, 0.25), inset 0 1px 0 rgba(255, 255, 255, 0.03);
    margin-bottom: 10px;
    padding: 15px 0;
}

.bg-user-discount-row td {
    background: transparent !important;
    font-style: italic;
}

.bg-user-discount-row .bg-cart-col-qty {
    background: linear-gradient(145deg, #2ecc71, #27ae60, #1e8449) !important;
    border-radius: 5px;
    box-shadow: 0 2px 4px rgba(0, 0, 0, 0.3);
    color: #fff !important;
    font-weight: bold;
    text-shadow: 0 1px 1px rgba(0, 0, 0, 0.2);
}

.bg-user-discount-row .bg-cart-col-label {
    color: #7dcea0 !important;
    text-shadow: 0 0 8px rgba(46, 204, 113, 0.3);
}

.bg-user-discount-row .bg-cart-col-price {
    background: rgba(46, 204, 113, 0.15) !important;
    border-radius: 5px;
}

.bg-user-discount-row .bg-price-display {
    color: #7dcea0 !important;
    text-shadow: 0 0 6px rgba(46, 204, 113, 0.4);
}

.bg-cart-separator {
    border-top: 1px dashed #555;
    margin: 15px 0;
    padding-top: 15px;
}

.bg-qty-label {
    font-size: 1.0em;
    font-weight: bold;
}

.bg-membership-icon,
.bg-discount-icon {
    font-size: 1.2em;
    margin: 0px -3px 0px 0px;;
}

/* RIMOSSA regola legacy `.bg_cart .wp-post-image` (margin:30px / max-width:500px /
 * width:150%). Si applicava a tutte le <img wp-post-image> dentro .bg_cart,
 * sovrascrivendo le var --mybo-cart-image-col-* e --mybo-cart-thumb-* dell'admin.
 * Oggi le immagini cart sono stilizzate da:
 * - .bg-cart-image-mobile img → thumb header mobile (--mybo-cart-thumb-*)
 * - .bg-cart-image-column img → immagine grande desktop (--mybo-cart-image-col-*)
 */

.bg_cart tr.removed {
    display: none;
}

.bg_payment_methods {
    display: flex;
    gap: 20px;
    margin: 30px 0;
}

.bg_payment_method {
    flex: 1;
    padding: 20px;
    border: 2px solid #444;
    border-radius: 8px;
    text-align: center;
    cursor: pointer;
    transition: all 0.3s ease;
}

.bg_payment_method:hover {
    border-color: #f19300;
    background: #2a2a2a;
    transform: translateY(-2px);
}

.bg_payment_method.active {
    border-color: #f19300;
    background: #373737;
    box-shadow: 0 0 10px rgba(241, 147, 0, 0.3);
}

.bg_payment_method.bottega {
    background-color: #666;
    color: white;
}

.bg_payment_method.paypal {
    background-color: #0070ba;
    color: white;
}

/* ============================================================================
 * BOTTONI SELEZIONE METODO DI PAGAMENTO
 * ============================================================================ */

.payment-method-title {
    color: #fff;
    font-size: 16px;
    font-weight: 600;
    margin-bottom: 15px;
}

.gateway-selector {
    margin: 20px auto;
}

.gateway-selector.gateway-count-1 {
    max-width: 50%;
}

.gateway-selector.gateway-count-2 {
    max-width: 75%;
}

.gateway-selector ul {
    display: flex;
    flex-wrap: wrap;
    gap: 15px;
    list-style: none;
    margin: 0;
    padding: 0;
}

.gateway-selector ul li {
    flex: 1 1 var(--mybo-gw-btn-width, 140px);
    min-width: var(--mybo-gw-btn-width, 140px);
    /* Larghezza minima personalizzabile (default 140px): permette 2 bottoni
       affiancati anche in container stretti (es. sidebar Teatro ~330px). */
}

.gateway-selector ul li a {
    align-items: center;
    background: var(--mybo-gw-bg, linear-gradient(145deg, #2a2a2a, #1a1a1a));
    border: var(--mybo-gw-border-width, 2px) solid var(--mybo-gw-border, #444);
    border-radius: var(--mybo-gw-radius, 10px);
    box-sizing: border-box;
    color: var(--mybo-gw-text, #fff);
    font-family: var(--mybo-gw-font, var(--mybo-font-body, inherit));
    display: flex;
    flex-direction: column;
    gap: 6px;
    font-size: var(--mybo-gw-font-size, 15px);
    font-weight: var(--mybo-gw-font-weight, 600);
    height: var(--mybo-gw-btn-height, 90px);
    justify-content: center;
    padding: var(--mybo-gw-padding, 12px 20px);
    text-decoration: none;
    box-shadow: var(--mybo-gw-shadow, none);
    transition: all var(--mybo-transition, 0.3s) ease;
}

.gateway-selector ul li a:hover {
    background: var(--mybo-gw-bg-hover, linear-gradient(145deg, #3a3a3a, #2a2a2a));
    border-color: var(--mybo-gw-border-hover, #f19300);
    color: var(--mybo-gw-text-hover, #fff);
    box-shadow: var(--mybo-gw-shadow-hover, 0 4px 15px rgba(241, 147, 0, 0.2));
    transform: translateY(-2px);
}

.gateway-selector ul li.active a,
.gateway-selector ul li a.active {
    background: var(--mybo-gw-bg-active, linear-gradient(145deg, #3a3a3a, #2a2a2a)) !important;
    border-color: var(--mybo-gw-border-active, #f19300) !important;
    color: var(--mybo-gw-text-active, #fff) !important;
}

.gateway-selector ul li:not(.active) a {
    background: var(--mybo-gw-inactive-bg, linear-gradient(145deg, #555, #333)) !important;
    border-color: var(--mybo-gw-inactive-border, #666) !important;
    color: var(--mybo-gw-inactive-text, #aaa) !important;
    box-shadow: none !important;
}

.gateway-selector ul li:not(.active) a:hover {
    background: var(--mybo-gw-inactive-bg-hover, linear-gradient(145deg, #666, #444)) !important;
    border-color: var(--mybo-gw-inactive-border-hover, #888) !important;
    color: var(--mybo-gw-inactive-text-hover, #fff) !important;
}

.gateway-selector ul li.active a[data-assign="paypal"] {
    background: linear-gradient(145deg, #0085db, #0070ba) !important;
    border-color: #0070ba !important;
    box-shadow: 0 4px 20px rgba(0, 112, 186, 0.5) !important;
    color: #fff !important;
}

.gateway-selector ul li.active a[data-assign="stripe"] {
    background: linear-gradient(145deg, #635bff, #4b44d6) !important;
    border-color: #635bff !important;
    box-shadow: 0 4px 20px rgba(99, 91, 255, 0.45) !important;
    color: #fff !important;
}

.gateway-selector ul li.active a[data-assign="offline"] {
    background: linear-gradient(145deg, #f19300, #d98300) !important;
    border-color: #f19300 !important;
    box-shadow: 0 4px 20px rgba(241, 147, 0, 0.5) !important;
    color: #fff !important;
}

.gateway-selector ul li.active a[data-assign="satispay"] {
    background: linear-gradient(145deg, #f12b2b, #d32424) !important;
    border-color: #f12b2b !important;
    box-shadow: 0 4px 20px rgba(241, 43, 43, 0.5) !important;
    color: #fff !important;
}

.bg-gateway-logo-wrap {
    display: flex;
    align-items: center;
    justify-content: center;
    min-height: 28px;
}

.bg-gateway-logo {
    height: 26px;
    width: auto;
    display: block;
}

.bg-gateway-logo-wrap .bg-logo-satispay {
    height: 32px;
}

.bg-gateway-logo-wrap .bg-logo-paypal {
    height: 30px;
}

.bg-gateway-logo-wrap .bg-cash-icon {
    height: 34px;
}

.bg-gateway-logo-wrap .bg-gateway-custom-logo {
    height: 32px;
    width: auto;
    max-width: 120px;
    object-fit: contain;
    display: block;
}

.bg-gateway-label {
    font-size: var(--mybo-gw-font-size, 13px);
    font-weight: var(--mybo-gw-font-weight, 600);
    opacity: 0.85;
    letter-spacing: 0.3px;
}

.bg-gateway-cards {
    display: flex;
    align-items: center;
    gap: 6px;
}

.bg-card-logo {
    height: 26px;
    width: auto;
    border-radius: 3px;
}

.gateway-selector ul li:not(.active) .bg-gateway-logo,
.gateway-selector ul li:not(.active) .bg-card-logo {
    opacity: 0.5;
    filter: grayscale(60%);
    transition: all 0.3s ease;
}

.gateway-selector ul li:not(.active):hover .bg-gateway-logo,
.gateway-selector ul li:not(.active):hover .bg-card-logo {
    opacity: 0.9;
    filter: grayscale(0%);
}

.gateway-selector ul li:not(.active):hover .bg-card-logo {
    opacity: 0.9;
    filter: grayscale(0%);
}

/* Logo Satispay PNG: rosso quando inattivo, bianco (naturale) quando attivo */
.bg-logo-satispay {
    height: 28px;
    object-fit: contain;
    transition: filter 0.3s ease;
    width: auto;
}

.gateway-selector ul li:not(.active) a[data-assign="satispay"] .bg-logo-satispay {
    filter: brightness(0) saturate(100%) invert(21%) sepia(95%) saturate(5764%) hue-rotate(355deg) brightness(98%) contrast(93%);
    opacity: 0.7;
}

.gateway-selector ul li:not(.active):hover a[data-assign="satispay"] .bg-logo-satispay {
    filter: brightness(0) saturate(100%) invert(21%) sepia(95%) saturate(5764%) hue-rotate(355deg) brightness(98%) contrast(93%);
    opacity: 1;
}

.gateway-selector ul li.active a[data-assign="satispay"] .bg-logo-satispay {
    filter: none;
}

.bg_cart_form label,
.box_posti_vicino label,
.box_promo label,
.box_additional label,
.bg-extra-field label {
    display: block;
    margin-bottom: 10px;
    font-weight: 500;
    color: #ddd;
}

#bg_promo {
    width: 200px;
}

.bg_cart_form input[type="text"] {
    background-color: #fff;
    border: 1px solid #444;
    border-radius: 6px;
    color: #000000;
    font-size: 16px;
    max-width: 95%;
    padding: 12px;
    transition: border-color 0.3s ease;
    width: 100%;
}

.bg_cart_form input[type="text"]:focus,
.bg_cart_form input[type="email"]:focus {
    border-color: #f19300;
    box-shadow: 0 0 5px rgba(241, 147, 0, 0.5);
    outline: none;
}

#bg_additional,
#bg_additional_modify,
.bg-extra-field textarea {
    background-color: #fff;
    border: 1px solid #444;
    border-radius: 6px;
    box-sizing: border-box;
    color: #000000;
    font-size: 16px;
    padding: 12px;
    resize: vertical;
    transition: border-color 0.3s ease;
    width: 100%;
    max-width: 95%;
}

#bg_additional:focus,
#bg_additional_modify:focus,
.bg-extra-field textarea:focus {
    border-color: #f19300;
    box-shadow: 0 0 5px rgba(241, 147, 0, 0.5);
    outline: none;
}

.bg_cart_form input[type="submit"] {
    background: linear-gradient(145deg, #22c55e, #16a34a);
    border: none;
    border-radius: 6px;
    color: white;
    cursor: pointer;
    font-size: 22px;
    margin-top: 15px;
    max-width: 450px;
    padding: 20px 25px;
    transition: all 0.3s ease;
    width: 100%;
    box-shadow: 0 4px 15px rgba(34, 197, 94, 0.3);
}

.bg_cart_form input[type="submit"]:hover {
    background: linear-gradient(145deg, #16a34a, #15803d);
    box-shadow: 0 6px 20px rgba(34, 197, 94, 0.4);
    transform: translateY(-2px);
}

.bg_cart_form input[type="submit"].waiting {
    background: #cccccc;
    border: 1px solid #aaaaaa;
    box-shadow: none;
    color: #777777;
    cursor: wait;
    opacity: 0.9;
    pointer-events: none;
    transform: none;
}

input[name="bg_submit"]:disabled {
    cursor: text;
    opacity: .5;
}

.box_posti_vicino p,
.box_additional p {
    display: block;
    margin: 0 0 10px 0;
    color: #ddd;
}

.bg_cart_form .box-container {
    display: flex;
    flex-wrap: nowrap;
    gap: 30px;
    width: 100%;
    margin: 30px 0;
}

/* Wrapper campi extra (template condiviso block-extra-fields.php) */
.bg-extra-fields-wrapper {
    /* Layout a colonne configurabile dalla pagina Personalizza (group "row_columns")
     * via --mybo-cart-extras-row-cols. Default 2 colonne, responsive per device. */
    display: grid;
    grid-template-columns: repeat(var(--mybo-cart-extras-row-cols, 2), minmax(0, 1fr));
    gap: var(--mybo-cart-notes-wrapper-gap, 20px);
    width: 100%;
    margin: var(--mybo-cart-notes-wrapper-margin, 20px 0);
}

.bg-extra-fields-wrapper .bg-extra-field {
    background: var(--mybo-cart-notes-box-bg, #373737);
    border: var(--mybo-cart-notes-box-border-width, 0) solid var(--mybo-cart-notes-box-border-color, transparent);
    border-radius: var(--mybo-cart-notes-box-radius, 8px);
    box-shadow: 0 4px 8px rgba(0,0,0,0.1);
    box-sizing: border-box;
    max-width: var(--mybo-cart-notes-box-max-width, 100%);
    padding: var(--mybo-cart-notes-box-padding, 20px);
}

.bg-extra-fields-wrapper .bg-extra-field label {
    display: block;
    margin-bottom: var(--mybo-cart-notes-label-margin-bottom, 10px);
    color: var(--mybo-cart-notes-label-color, #ddd);
    font-family: var(--mybo-cart-notes-label-font, inherit);
    font-size: var(--mybo-cart-notes-label-size, 14px);
    font-weight: var(--mybo-cart-notes-label-weight, 500);
    text-align: var(--mybo-cart-notes-label-align, left);
    text-transform: var(--mybo-cart-notes-label-transform, none);
    letter-spacing: var(--mybo-cart-notes-label-letter-spacing, 0);
}

.bg-extra-fields-wrapper .bg-extra-field input[type="text"],
.bg-extra-fields-wrapper .bg-extra-field textarea {
    background-color: var(--mybo-cart-notes-bg, #fff);
    border: var(--mybo-cart-notes-border-width, 1px) solid var(--mybo-cart-notes-border, #444);
    border-radius: var(--mybo-cart-notes-radius, 6px);
    box-sizing: border-box;
    color: var(--mybo-cart-notes-text, #000);
    font-family: var(--mybo-cart-notes-font, inherit);
    font-size: var(--mybo-cart-notes-size, 16px);
    font-weight: var(--mybo-cart-notes-weight, 400);
    text-align: var(--mybo-cart-notes-text-align, left);
    text-transform: var(--mybo-cart-notes-text-transform, none);
    letter-spacing: var(--mybo-cart-notes-letter-spacing, 0);
    padding: var(--mybo-cart-notes-padding, 12px);
    width: 100%;
    max-width: var(--mybo-cart-notes-max-width, 100%);
}

.bg-extra-fields-wrapper .bg-extra-field input[type="text"]::placeholder,
.bg-extra-fields-wrapper .bg-extra-field textarea::placeholder {
    color: var(--mybo-cart-notes-placeholder, #888);
    opacity: 1;
}

.bg-extra-fields-wrapper .bg-extra-field input[type="text"]:focus,
.bg-extra-fields-wrapper .bg-extra-field textarea:focus {
    border-color: var(--mybo-cart-notes-border-focus, #f19300);
    box-shadow: 0 0 5px rgba(241, 147, 0, 0.5);
    outline: none;
}

/* Legacy: regola .box_posti_vicino / .box_additional rimossa 2026-05-30.
   Sovrascriveva il grid-template-columns del .bg-extra-fields-wrapper
   (flex:0 0 50% + max-width:50%) → 2 box "scartati" fuori posizione
   dal grid. Ora il layout deriva interamente dal wrapper grid + dai
   field admin 'notes_box_*' / 'notes_wrapper_*' in mybo-customize. */

/* Colonna Gettoni + Codice Sconto (stacked) */
.bg-column-tokens-promo {
    display: flex;
    flex-direction: column;
    gap: 15px;
}

.bg-column-tokens-promo .bg-discount-field {
    background: #373737;
    border-radius: 8px;
    padding: 15px 20px;
}

/* Box Codice Promo (template block-promo-code.php) */
.bg-promo-box {
    background: var(--mybo-cart-promo-bg, #d4d4d4);
    border: 1px solid var(--mybo-cart-promo-border, transparent);
    border-radius: var(--mybo-cart-promo-radius, 5px);
    color: var(--mybo-cart-promo-text, inherit);
    font-family: var(--mybo-cart-promo-font, var(--mybo-font-body, inherit));
    padding: var(--mybo-cart-promo-padding, 15px 20px);
    text-align: center;
}

.bg-promo-box .bg-promo-intro {
    display: block !important;
    color: var(--mybo-cart-promo-text, #555);
    font-size: 0.9em;
    margin: 0 0 12px 0;
    font-style: italic;
    line-height: 1.4 !important;
    height: auto !important;
}

.bg-promo-box .bg-promo-input-wrapper {
    display: flex;
    flex-direction: column;
    align-items: center;
    gap: 8px;
}

.bg-promo-box label {
    color: var(--mybo-cart-promo-title-color, #000);
    font-weight: var(--mybo-cart-promo-label-weight, 900);
}

.bg-promo-box input[type="text"] {
    background-color: var(--mybo-cart-promo-input-bg, var(--mybo-input-bg, #fff));
    border: 1px solid var(--mybo-cart-promo-input-border, var(--mybo-input-border, #444));
    border-radius: var(--mybo-cart-promo-input-radius, var(--mybo-input-radius, 6px));
    box-sizing: border-box;
    color: var(--mybo-cart-promo-input-text, var(--mybo-input-text, #000));
    font-size: 16px;
    max-width: 200px;
    padding: 12px;
    text-align: center;
    text-transform: uppercase;
    width: 100%;
}

.bg-promo-box input[type="text"]:focus {
    border-color: var(--mybo-cart-promo-input-border-focus, #f19300);
    box-shadow: 0 0 5px rgba(241, 147, 0, 0.5);
    outline: none;
}

.bg-promo-box .bg-promo-message {
    color: #22b2ee;
    font-size: 0.95em;
    margin-top: 10px;
    min-height: 20px;
}

.bg-promo-box .bg-promo-message.success,
.bg-promo-box .bg-promo-message:not(:empty) {
    color: #22b2ee;
}

.bg-promo-box .bg-promo-message.error {
    color: #ef4444;
}

/* Wrapper per il box codice sconto quando è da solo (senza sistema fidelizzazione) */
.bg-promo-only-wrapper {
    display: block;
    margin: 15px 0;
    width: 100%;
}

.bg-promo-only-wrapper .bg-promo-box {
    margin: 0 auto;
    max-width: 100%;
    padding: 25px 40px;
    
}

/* Box Totale Biglietti (template block-cart-total.php) */
.bg-cart-total-wrapper {
    background: var(--mybo-cart-total-bg, #d4d4d4);
    border: 1px solid var(--mybo-cart-total-border, transparent);
    border-radius: var(--mybo-cart-total-radius, 5px);
    font-family: var(--mybo-cart-total-font, var(--mybo-font-body, inherit));
    margin: var(--mybo-cart-total-margin, 15px 0 0 0);
    padding: var(--mybo-cart-total-padding, 15px 20px);
    max-width: var(--mybo-cart-total-max-width, 100%);
}

.bg-cart-total-wrapper .bg_cart_total {
    color: var(--mybo-cart-total-label-color, #000);
    font-size: var(--mybo-cart-total-label-size, 16px);
    display: flex;
    align-items: center;
    justify-content: flex-end;
    gap: 10px;
    flex-wrap: wrap;
}

.bg-cart-total-wrapper .bg_total_number {
    color: var(--mybo-cart-total-price-color, #22b2ee);
    font-size: var(--mybo-cart-total-price-size, 24px);
    font-weight: var(--mybo-cart-total-price-weight, 700);
}

/* Numero biglietti: stessa evidenza del prezzo */
#bg_total_tickets {
    color: var(--mybo-cart-total-price-color, #22b2ee);
    font-size: var(--mybo-cart-total-price-size, 24px);
    font-weight: var(--mybo-cart-total-price-weight, 700);
}

.bg-cart-total-wrapper .bg-total-tickets-label,
.bg-cart-total-wrapper .bg-total-price-label {
    font-weight: var(--mybo-cart-total-label-weight, 700);
    color: var(--mybo-cart-total-label-color, #000);
}

.bg-cart-total-wrapper .bg-total-separator {
    margin: 0 6px;
    color: var(--mybo-cart-total-separator-color, inherit);
}

/* Layout due colonne per modifica prenotazione */
.bg-cart-total-wrapper.bg-modify-total .bg-total-columns {
    display: flex;
    gap: 30px;
    justify-content: center;
}

.bg-cart-total-wrapper .bg-total-col {
    flex: 1;
    max-width: 200px;
    text-align: center;
}

.bg-cart-total-wrapper .bg-total-label {
    display: block;
    font-size: 0.9em;
    margin-bottom: 5px;
    opacity: 0.8;
}

.bg-cart-total-wrapper .bg-total-old .bg-total-value {
    color: var(--mybo-cart-total-old-color, #888);
    text-decoration: line-through;
}

.bg-cart-total-wrapper .bg-total-new .bg_total_number {
    color: #4ade80;
    font-size: 1.3em;
    font-weight: 700;
}

/* Layout tabella per modifica prenotazione (Precedente / Nuovo) */
.bg-cart-total-wrapper.bg-modify-total .bg-totals-table {
    width: 100%;
    border-collapse: collapse;
    color: #000;
    text-align: center;
}

.bg-cart-total-wrapper.bg-modify-total .bg-totals-table thead th {
    background: rgba(255, 255, 255, 0.35);
    text-transform: uppercase;
    font-weight: 700;
    font-size: 0.95em;
    letter-spacing: 0.5px;
    padding: 12px 10px;
    border-bottom: 1px solid #c6c6c6;
}

.bg-cart-total-wrapper.bg-modify-total .bg-totals-table tbody th,
.bg-cart-total-wrapper.bg-modify-total .bg-totals-table tbody td {
    padding: 14px 12px;
    border-top: 1px solid #dcdcdc;
}

.bg-cart-total-wrapper.bg-modify-total .bg-totals-table th:first-child,
.bg-cart-total-wrapper.bg-modify-total .bg-totals-table td:first-child {
    text-align: left;
    font-weight: 600;
}

/* Linea divisoria tra colonne Precedente/Nuovo */
.bg-cart-total-wrapper.bg-modify-total .bg-totals-table th:nth-child(2),
.bg-cart-total-wrapper.bg-modify-total .bg-totals-table th:nth-child(3),
.bg-cart-total-wrapper.bg-modify-total .bg-totals-table td:nth-child(2),
.bg-cart-total-wrapper.bg-modify-total .bg-totals-table td:nth-child(3) {
    text-align: center;
}

.bg-cart-total-wrapper.bg-modify-total .bg-totals-table th:nth-child(3),
.bg-cart-total-wrapper.bg-modify-total .bg-totals-table td:nth-child(3) {
    border-left: 1px solid #c6c6c6;
}

/* Precedente: testo più piccolo e grigio */
.bg-cart-total-wrapper.bg-modify-total .bg-totals-table td:nth-child(2) {
    font-size: 0.9em;
    color: #666;
}

/* Badge per prezzo precedente barrato */
.bg-cart-total-wrapper .bg-totale-attuale {
    display: inline-block;
    padding: 6px 10px;
    background: #bdbdbd;
    color: #3f3f3f;
    text-decoration: line-through;
    border-radius: 6px;
    font-weight: 700;
}

/* Prezzo nuovo evidenziato */
.bg-cart-total-wrapper .bg-totale-nuovo {
    color: #22b2ee;
    font-size: 22px;
    font-weight: bold;
}

/* Layout tre colonne per modifica (RIEPILOGO / ATTUALE / NUOVO) */
.bg-cart-total-wrapper .bg-totals-header,
.bg-cart-total-wrapper .bg-totals-row {
    color: #000;
    display: grid;
    grid-template-columns: 1fr 1fr 1fr;
    gap: 15px;
    padding: 10px 0;
}

.bg-cart-total-wrapper .bg-totals-header {
    border-bottom: 1px solid #999;
    font-weight: 600;
    text-transform: uppercase;
    font-size: 0.85em;
}

.bg-cart-total-wrapper .bg-totals-col-label {
    text-align: left;
}

.bg-cart-total-wrapper .bg-totals-col-attuale,
.bg-cart-total-wrapper .bg-totals-col-nuovo {
    text-align: center;
}

.bg-cart-total-wrapper .bg-totale-attuale {
    color: #666;
    text-decoration: line-through;
}

.bg-cart-total-wrapper .bg-totale-nuovo {
    color: #22b2ee;
    font-size: 22px;
    font-weight: bold;
}

.promo-container {
    display: flex;
    gap: 10px;
    align-items: center;
}

#bg_verify_promo {
    background-color: var(--mybo-cart-promo-btn-bg, #444);
    color: var(--mybo-cart-promo-btn-text, #fff);
    border: none;
    padding: 12px 20px;
    border-radius: var(--mybo-cart-promo-btn-radius, 6px);
    cursor: pointer;
    transition: all var(--mybo-transition, 0.3s) ease;
}

#bg_verify_promo:hover {
    background-color: var(--mybo-cart-promo-btn-bg-hover, #f19300);
}

.bg_submit {
    margin: 1em 0;
    text-align: center;
}

/* ============================================================================
 * SELETTORI GATEWAY - Commentati il 2025-01-07
 * Questi stili sono per il vecchio selettore di gateway.
 * Potrebbero essere ancora utilizzati in alcuni contesti legacy.
 * ============================================================================ */

/* .gateway-selector ul {
    display: flex;
    gap: 15px;
    justify-content: center;
    list-style: none;
    margin: 0;
    padding: 0;
}

.gateway-selector .active {
    background: rgba(0, 0, 0, .001);
    font-weight: 700;
}

.gateway-selector .active a {
    cursor: text;
    text-decoration: none;
}

.gateway-selector li a {
    border: 2px solid #ddd;
    border-radius: 6px;
    color: #666;
    display: block;
    font-size: 16px;
    line-height: 40px;
    padding: 0;
    text-align: center;
    text-decoration: none;
    transition: all 0.3s ease;
    width: 250px;
}

.gateway-selector li a:hover {
    border-color: #2271b1;
    color: #2271b1;
    transform: translateY(-2px);
    box-shadow: 0 2px 8px rgba(0,0,0,0.1);
}

.gateway-selector li.active a {
    background: #2271b1;
    border-color: #2271b1;
    color: #fff !important;
}

.gateway-selector a {
    color: #737373 !important;
    background: #515151 ;
    padding: 10px;
    border-radius: 4px;
} */

/* ============================================================================
 * CLASSI LEGACY CARRELLO TABELLA - Commentate il 2025-01-07
 * Queste classi appartengono al vecchio sistema a tabella.
 * Il nuovo sistema usa .bg-cart-modern con layout grid/flex.
 * ============================================================================ */

/* .bg_cart tr.removed {
    display: none;
}

.amm_pag {
    text-align: center;
    margin-top: 60px;
} */

.bg-cart-buttons {
    display: flex;
    gap: 12px;
    justify-content: center;
    flex-wrap: wrap;
    margin-top: 15px;
}

.bg-cart-buttons a.button,
.bg-cart-buttons .bg-clear-cart-button,
.bg-cart-buttons .button.bg-goto-cart-button,
.bg-cart-buttons .bg-goto-cart-button {
    flex: 1;
    min-width: 140px;
    max-width: 200px;
    background: var(--mybo-cart-sec-bg, transparent);
    color: var(--mybo-cart-sec-text, inherit);
    padding: var(--mybo-cart-sec-padding, 12px 24px);
    border-radius: var(--mybo-cart-sec-radius, 4px);
    font-size: var(--mybo-cart-sec-font-size, 15px);
    font-weight: var(--mybo-cart-sec-font-weight, 500);
    text-align: center;
    text-decoration: none;
    transition: all var(--mybo-transition, 0.3s) ease;
    border: 1px solid var(--mybo-cart-sec-border, transparent);
    cursor: pointer;
    height: 50px;
    display: flex;
    align-items: center;
    justify-content: center;
}

.bg-cart-buttons a.button:hover,
.bg-cart-buttons .bg-clear-cart-button:hover,
.bg-cart-buttons .button.bg-goto-cart-button:hover,
.bg-cart-buttons .bg-goto-cart-button:hover {
    background: var(--mybo-cart-sec-bg-hover, inherit);
}

/* Rimossi 2026-05-27 (vedi mybo-ajax.php):
 * .bg-cart-buttons a.button (+ hover/active)
 * .bg-cart-buttons .bg-clear-cart-button (+ hover)
 * .bg-cart-buttons .button.bg-goto-cart-button (+ hover)
 * .bg-cart-buttons .bg-goto-cart-button (+ hover)
 * .bg-clear-cart-form
 * Erano il vecchio "popup conflitto carrello" multi-evento, ora obsoleto.
 *  .bg-goto-modify-button (Modifica Prenotazione) resta valida via le regole
 * comuni del wrapper .bg-cart-buttons sopra. */

.bg-controls {
    display: flex;
    align-items: center;
    justify-content: center;
    gap: 15px;
}

.bg-controls button {
    width: 35px;
    height: 35px;
    font-size: 18px;
    background-color: #444;
    color: #fff;
    border: none;
    border-radius: 4px;
    cursor: pointer;
    transition: all 0.2s ease;
}

.bg-controls button:hover {
    background-color: #f19300;
}

.bg-quantity {
    font-size: 18px;
    font-weight: bold;
    min-width: 30px;
    text-align: center;
}

.bg-item-title {
    font-size: 18px;
    font-weight: bold;
    margin-bottom: 10px;
}

.bg-item-date {
    color: #aaa;
    font-size: 14px;
    margin-bottom: 10px;
}

.bg-original-price {
    text-decoration: line-through;
    color: #aaa;
    margin-right: 10px;
}

.bg-discounted-price {
    color: #f19300;
    font-weight: bold;
}

.bg_cart_total {
    text-align: right;
    font-weight: 700;
    padding: .25em 5px;
    font-size: 1.2em;
    margin-bottom: 0px;
    display: flex;
    align-items: center;
    gap: 10px;
    color: black;
}

.bg_cart_total table {
    margin: 0;
    width: 100%;
}

.bg_cart_total th,
.bg_cart_total td {
    padding: 12px;
    text-align: right;
}

.bg_cart_total tr:last-child {
    border-top: 2px solid #444;
    font-size: 20px;
}

.bg_cart_total tr:last-child .bg_total_number {
    font-size: 24px;
}

.bg_total_number {
    color: #22b2ee;
    font-weight: bold;
    font-size: 22px;
}

.bg_cart_label {
    text-align: right;
    font-size: 1.1em;
}

.bg_ticket_handling {
    text-align: right;
    font-size: 1.1em;
}

.bg_cart_handling {
    font-size: 1.1em;
    text-align: right;
}

.bg_cart_savings {
    color: #f00;
    font-size: 18px;
    font-weight: bold;
}

.bg-cart-total {
    font-size: 1.3em;
    font-weight: bold;
    color: #800900;
    margin-bottom: 10px;
}

.bg-cart-error {
    background-color: #fff;
    border: 1px solid var(--mybo-cart-err-border, transparent);
    border-radius: var(--mybo-cart-err-radius, 8px);
    box-shadow: 0 4px 6px rgba(0,0,0,0.1);
    padding: 24px;
    max-width: 400px;
    margin: 20px auto;
    text-align: center;
}

.bg-cart-error p {
    color: var(--mybo-cart-err-text, #fff);
    background-color: var(--mybo-cart-err-bg, #800900);
    padding: var(--mybo-cart-err-padding, 12px);
    margin: -25px -24px -8px -24px;
    border-radius: var(--mybo-cart-err-radius, 8px) var(--mybo-cart-err-radius, 8px) 0 0;
    font-size: 18px;
    line-height: 1.2;
}

.bg-error-popup {
    position: fixed;
    top: 50%;
    left: 50%;
    transform: translate(-50%, -50%);
    max-width: 600px;
    width: 90%;
    background-color: #fff;
    border-radius: 6px;
    box-shadow: 0 4px 15px rgba(0,0,0,0.2);
    z-index: 10000;
    overflow: hidden;
    text-align: center;
}

.bg-error-popup-header {
    background-color: #c0392b;
    color: white;
    padding: 12px 15px;
    font-weight: bold;
    position: relative;
    text-align: center;
}

.bg-error-popup-title {
    margin: 0;
    padding: 0;
    line-height: 1.2;
    font-size: 1.3em;
}

.bg-error-popup-content {
    padding: 25px;
    line-height: 1.6;
    color: #333;
    text-align: center;
}

.bg-error-popup-content p {
    margin-bottom: 15px;
    font-size: 1.1em;
}

.bg-error-popup-content strong {
    font-weight: bold;
    color: #c0392b;
}

.bg-error-popup-overlay {
    position: fixed;
    top: 0;
    left: 0;
    right: 0;
    bottom: 0;
    background-color: rgba(0,0,0,0.6);
    z-index: 9999;
    display: none;
}

.bg-error-popup-close {
    position: absolute;
    top: 10px;
    right: 10px;
    background: none;
    border: none;
    color: white;
    font-size: 24px;
    cursor: pointer;
    opacity: 0.8;
    transition: opacity 0.2s;
}

.bg-error-popup-close:hover {
    opacity: 1;
}

.bg-event-date {
    color: #cccccc;
    font-size: 0.9em;
    margin-bottom: 10px;
}

.bg-payment-retry-page {
    display: flex;
    flex-direction: column;
    align-items: center;
    justify-content: center;
    max-width: 600px;
    margin: 40px auto;
    padding: 40px 20px;
    text-align: center;
}

.bg-payment-retry-header {
    display: flex;
    flex-direction: column;
    align-items: center;
    justify-content: center;
    margin-bottom: 30px;
}

.bg-payment-retry-icon {
    font-size: 80px;
    margin-bottom: 20px;
}

.bg-payment-retry-header h1 {
    color: #ff9800;
    font-size: 28px;
    font-weight: 600;
    margin: 0 0 10px;
}

.bg-payment-retry-content {
    color: #ddd;
    line-height: 1.6;
}

.bg-payment-retry-subtitle {
    color: #ffb74d;
    font-size: 18px;
    font-weight: 600;
    margin: 6px 0 10px;
    text-align: center;
}

.bg-payment-retry-content .bg-payment-retry-main,
.bg-payment-retry-content p {
    text-align: center;
}

.bg-payment-retry-content p {
    margin: 8px 0;
}

.bg-payment-retry-main {
    color: #fff;
    font-size: 18px;
    font-weight: 600;
    margin-bottom: 15px;
}

/* NOTE: .bg-payment-retry-options + .bg-payment-retry-actions rimossi
   nel maggio 2026 quando i 3 box risposta (cancel/failed/payment-retry)
   sono stati semplificati e il bottone "Vai a Prenotazioni" è stato
   eliminato. Stile/spaziatura del box ora gestiti via pannello
   Personalizza → "Box pagamento non completato". */

.bg-membership-row-content {
    align-items: center;
    display: flex;
    justify-content: space-between;
    padding: 15px 20px;
    width: 100%;
}

.bg-membership-label {
    align-items: center;
    display: flex;
    flex: 1;
    gap: 8px;
}

.bg-membership-icon {
    font-size: 1.2em;
}

.bg-membership-discount-row .bg-membership-text {
    color:#00ff61;
}

.bg-membership-price {
    color: #667eea;
    font-size: 1em;
    font-weight: 600;
    margin-left: auto;
    min-width: 80px;
    text-align: right;
}

.bg-membership-price.bg-membership-discount {
    color: #22c55e;
}

.bg_cart .bg-inherited-referral-row,
.bg_cart tr.bg-inherited-referral-row,
.bg-cart-table .bg-inherited-referral-row,
table.bg-cart-table .bg-inherited-referral-row {
    background: transparent !important;
    background-color: transparent !important;
    border: none !important;
    box-shadow: none !important;
}

.bg_cart .bg-inherited-referral-row td,
.bg_cart tr.bg-inherited-referral-row td,
.bg-cart-table .bg-inherited-referral-row td {
    background: transparent !important;
    background-color: transparent !important;
    border: none !important;
    border-radius: 0 !important;
    box-shadow: none !important;
    padding: 0 !important;
}

.bg-tokens-discounts-row {
    /* Layout a colonne configurabile dalla pagina Personalizza (group "row_columns")
     * via --mybo-cart-tokens-row-cols. Default 3 colonne, responsive per device. */
    display: grid;
    grid-template-columns: repeat(var(--mybo-cart-tokens-row-cols, 3), minmax(0, 1fr));
    gap: 20px;
    margin: 15px 0;
}

.bg-tokens-discounts-row > .bg-tokens-section {
    flex: 1;
    margin: 0;
}

.bg-tokens-discounts-row > .bg-total-discounts-summary {
    flex: 1;
    margin: 0;
}

.bg-total-discounts-summary {
    background: var(--mybo-cart-disc-bg, linear-gradient(135deg, #1a472a 0%, #2d5a3d 100%));
    border: var(--mybo-cart-disc-border-width, 1px) solid var(--mybo-cart-disc-border, #3a7a4a);
    border-radius: var(--mybo-cart-disc-radius, 8px);
    color: var(--mybo-cart-disc-label-color, #fff);
    font-family: var(--mybo-cart-disc-font, var(--mybo-font-body, inherit));
    margin: var(--mybo-cart-disc-margin, 15px 0);
    padding: var(--mybo-cart-disc-padding, 15px 20px);
    max-width: var(--mybo-cart-disc-max-width, 100%);
}

.bg-discount-summary-header {
    align-items: center;
    color: var(--mybo-cart-disc-title-color, #a8d8b8);
    display: flex;
    font-size: 18px;
    font-weight: 600;
    gap: 10px;
    justify-content: center;
    letter-spacing: 0.5px;
    margin-bottom: 15px;
    text-align: center;
    text-transform: uppercase;
}

.bg-discount-summary-icon {
    font-size: 22px;
}

.bg-discount-summary-items {
    margin-bottom: 12px;
}

.bg-discount-item {
    align-items: center;
    border-bottom: 1px solid rgba(255,255,255,0.1);
    display: flex;
    justify-content: space-between;
    padding: 6px 0;
}

.bg-discount-item:last-child,
.bg-discount-summary-item:last-child {
    border-bottom: none;
}

.bg-discount-item-label,
.bg-discount-label {
    color: var(--mybo-cart-disc-label-color, #d0e8d8);
    font-size: 14px;
}

.bg-discount-item-value,
.bg-discount-value {
    color: var(--mybo-cart-disc-value-color, #7cfc00);
    font-size: 15px;
    font-weight: 600;
}

.bg-discount-summary-item {
    align-items: center;
    border-bottom: 1px solid rgba(255,255,255,0.1);
    display: flex;
    gap: 15px;
    justify-content: space-between;
    padding: 8px 0;
}

.bg-discount-summary-item .bg-discount-value {
    margin-left: 10px;
}

.bg-discount-summary-final {
    align-items: center;
    border-top: 2px solid rgba(255,255,255,0.2);
    display: flex;
    justify-content: space-between;
    margin-top: 5px;
    padding-top: 12px;
}

.bg-final-total-label {
    color: #fff;
    font-size: 16px;
    font-weight: 600;
}

.bg-final-total-value {
    color: #7cfc00;
    font-size: 20px;
    font-weight: 700;
}

@keyframes pulse {
    0% { transform: scale(1); }
    50% { transform: scale(1.05); }
    100% { transform: scale(1); }
}

@keyframes fadeInOut {
    0% { opacity: 0.7; }
    50% { opacity: 1; }
    100% { opacity: 0.7; }
}

.bg-countdown-timer {
    background-color: #f8f8f8;
    border: 1px solid #ddd;
    border-radius: 8px;
    margin: 20px auto;
    max-width: 250px;
    padding: 15px;
    text-align: center;
}

.bg-countdown-timer .time {
    background-color: #fff;
    border-radius: 6px;
    box-shadow: 0 3px 6px rgba(0,0,0,0.15);
    color: #c0392b;
    display: block;
    font-family: 'Courier New', monospace;
    font-size: 42px;
    font-weight: bold;
    line-height: 1;
    padding: 10px 5px;
}

/* Sfondo pagina carrello + container padding + gap (configurabile via
 * Personalizza  Carrello  Layout pagina). Si applica al body delle pagine
 * con classe .mybo-page-cart o .mybo-payment-flow (assegnate dal filtro
 * body_class in mybo-box-office-page.php). */
body.mybo-page-cart,
body.mybo-payment-flow {
	background-color: var(--mybo-cart-page-bg, inherit) !important;
}

.amm_pag {
	text-align: center;
	margin: 90px 0 0 0;
	font-size: var(--mybo-cart-admin-link-size, 13px);
}
.amm_pag a {
	color: var(--mybo-cart-admin-link-color, #888);
	font-style: italic;
	text-decoration: underline;
	transition: color var(--mybo-transition, 0.2s) ease;
}
.amm_pag a:hover {
	color: var(--mybo-cart-admin-link-color-hover, #f19300);
}

.bg-countdown-timer .time.pulse {
    animation: pulse 0.2s ease-in-out;
}

.bg-countdown-timer .time.time-ending {
    color: #ff0000;
    font-weight: bolder;
}

.bg-countdown-timer .time:contains("Tempo scaduto") {
    animation: fadeInOut 1.5s infinite;
    color: #009900;
}

.timer-label {
    color: #555;
    font-size: 1em;
    margin-bottom: 5px;
}

.bg-modify-Omaggio-row .bg-modify-controls {
    justify-content: center;
}

.bg-modify-Omaggio-row .bg-omaggio-readonly {
    text-align: center;
    background: #e9e9e9;
    border: 1px solid #ccc;
    border-radius: 4px;
    pointer-events: none;
}

.bg-update-buttons {
    display: flex;
    justify-content: flex-end;
}

.bg-update-buttons button {
    align-items: center;
    background-color: #444444;
    border: none;
    border-radius: 4px;
    color: #ffffff;
    cursor: pointer;
    display: flex;
    font-size: 18px;
    font-weight: bold;
    height: 45px;
    justify-content: center;
    margin-left: 8px;
    transition: background-color 0.2s ease;
    width: 45px;
}

.bg-update-buttons button.remove {
    align-self: center;
    background-color: #c93030;
    font-size: 14px;
    height: 25px;
    margin-left: 15px;
    position: relative;
    top: 0;
    width: 25px;
}

.bg-update-buttons button.more {
    background-color: #22b2ee;
}

.bg-update-buttons button.less {
    background-color: #67696a;
}

.bg-update-buttons button:hover {
    filter: brightness(1.2);
}

.bg-ticket-details .price {
    align-items: baseline;
    display: inline-flex;
    gap: 6px;
    white-space: nowrap;
}

.original-price {
    color: #999999;
    font-size: 0.9em;
    margin-right: 0;
    text-decoration: line-through;
}

.discounted-price {
    color: #ff9900;
    font-weight: bold;
}

.bg_purchase_path {
    margin-bottom: 1em;
}

.bg_purchase_path span {
    background: rgba(255,255,255,.1);
    display: inline-block;
    padding: .5em 0;
    text-align: center;
    width: 33.33333333%;
}

.bg_purchase_path .inactive {
    background: rgba(0,0,0,.3);
}

.bg_purchase_path .active {
    background: rgba(0,0,0,.1);
}

.return-to-cart {
    margin: auto;
    width: 80%;
}

p.return-to-cart a {
    background-color: #890505;
    border: 1px solid #ffffff;
    border-radius: 4px;
    color: #FFFFFF;
    cursor: pointer;
    display: inline-block;
    font-family: sans-serif;
    font-size: 18px;
    font-weight: normal;
    line-height: 1.2;
    padding: 10px 20px;
    text-align: center;
    text-decoration: none;
    white-space: nowrap;
}

.bg-cart-footer {
    background: #d4d4d4;
    border-radius: 5px;
    border-top: 1px solid #eee;
    margin-top: 10px;
    padding: 5px 15px;
    text-align: right;
}

.bg-discount-field {
    align-items: center;
    display: flex;
    gap: 10px;
}

.bg-discount-field label {
    color: #000 !important;
    display: block;
    font-weight: 900 !important;
    margin: 0;
}

#bg_posti_vicino::placeholder,
#bg_additional::placeholder {
    color: #999 !important;
    opacity: 1;
}

#bg_posti_vicino,
#bg_additional {
    color: #333 !important;
}

.transaction-purchase.panel {
    margin: 50px auto;
    width: 80%;
}

/* =========================================================================
   PAGINA SHOP / SINGOLO PRODOTTO — Layout autonomo dal tema
   Stili base per i template store/* del plugin (single-product, archive-product,
   content-single-product). Look pulito che funziona con qualsiasi tema.
   ========================================================================= */

.mybo-page-title-container {
	background: #1a1a1a;
	padding: 50px 0;
	margin: 0 0 30px;
	text-align: center;
}
.mybo-page-title-inner {
	max-width: 1200px;
	margin: 0 auto;
	padding: 0 20px;
}
.mybo-page-title {
	font-size: 32px;
	font-weight: 700;
	color: #ffffff;
	margin: 0;
	padding: 0;
}
.mybo-page-subtitle {
	font-size: 16px;
	color: #cccccc;
	margin: 8px 0 0;
	font-weight: 400;
}

.mybo-shop-content {
	max-width: 1200px;
	margin: 0 auto;
	padding: 0 20px 40px;
	box-sizing: border-box;
}
.mybo-shop-content.mybo-sidebar-left .mybo-shop-inner { display: flex; flex-direction: row-reverse; gap: 30px; }
.mybo-shop-inner { display: block; }
.mybo-shop-main { flex: 1; min-width: 0; }
.mybo-shop-sidebar { width: 280px; flex-shrink: 0; }

.mybo-product-messages-top {
	max-width: 1200px;
	margin: 0 auto;
	padding: 0 20px;
}
.mybo-product-top {
	max-width: 1200px;
	margin: 0 auto;
	padding: 0 20px;
	display: grid;
	grid-template-columns: 1fr 1fr;
	gap: 30px;
	align-items: start;
}
.mybo-product-bottom {
	max-width: 1200px;
	margin: 30px auto 0;
	padding: 0 20px;
}
.mybo-product-summary {
	color: #ffffff;
}

.mybo-clearfix { clear: both; }

@media (max-width: 768px) {
	.mybo-product-top { grid-template-columns: 1fr; }
	.mybo-shop-content.mybo-sidebar-left .mybo-shop-inner { flex-direction: column; }
	.mybo-shop-sidebar { width: 100%; }
	.mybo-page-title { font-size: 24px; }
	.mybo-page-title-container { padding: 30px 0; }
}

/* Banner titolo pagina carrello — selettori generici WP + legacy tema vayvo
   come fallback (funziona con qualsiasi tema). */
body.woocommerce-cart .entry-header,
body.woocommerce-cart .page-header,
body.woocommerce-cart header.page-header,
body.woocommerce-cart .mybo-page-title-container,
body.woocommerce-cart .mybo-cart-header,
body.woocommerce-cart #page-title-pro,
body.woocommerce-cart #progression-studios-page-title-container {
    padding-bottom: 20px !important;
    padding-top: 20px !important;
}

body.woocommerce-cart .entry-title,
body.woocommerce-cart .page-title,
body.woocommerce-cart h1.entry-title,
body.woocommerce-cart h1.page-title,
body.woocommerce-cart .mybo-page-title,
body.woocommerce-cart #page-title-pro h1 {
    margin: 0 !important;
}

.bg-rewards-level-row {
    box-sizing: border-box !important;
    margin: 0 0 20px 0 !important;
    max-width: 100% !important;
    padding: 0 !important;
    width: 100% !important;
}

.bg-rewards-level-row > .sm-cart-loyalty-message,
.bg-rewards-level-row > .bg-level-discount-section {
    box-sizing: border-box !important;
    margin: 0 !important;
}

.bg-rewards-level-row > .bg-level-discount-section {
    box-sizing: border-box !important;
    margin: 0 !important;
}

/* Layout tre colonne uguali per Bonus/Gettoni+Promo/Sconti */
.bg-tokens-discounts-row.bg-three-columns {
    display: grid;
    grid-template-columns: 1fr 1fr 1fr;
    gap: 20px;
    align-items: stretch;
}

.bg-tokens-discounts-row.bg-three-columns > .bg-level-discount-section,
.bg-tokens-discounts-row.bg-three-columns > .bg-tokens-section,
.bg-tokens-discounts-row.bg-three-columns > .bg-column-tokens-promo,
.bg-tokens-discounts-row.bg-three-columns > .bg-total-discounts-summary {
    box-sizing: border-box;
    display: flex;
    flex-direction: column;
    margin: 0 !important;
    min-width: 0;
}

/* Colonna centrale con gettoni + promo impilati */
.bg-column-tokens-promo {
    display: flex;
    flex-direction: column;
    gap: 15px;
    height: 100%;
}

.bg-column-tokens-promo > * {
    flex: 1;
    display: flex;
    flex-direction: column;
}

/* Box interni che si espandono in altezza */
.bg-level-discount-section,
.bg-total-discounts-summary {
    display: flex;
    flex-direction: column;
    height: 100%;
}

.bg-level-discount-section > *:last-child,
.bg-total-discounts-summary > *:last-child {
    flex: 1;
}

.bg-level-discount-inactive,
.bg-tokens-inactive {
    opacity: 0.85;
}

.bg-level-discount-message.no-discount,
.bg-tokens-message.no-tokens,
.bg-discount-summary-empty {
    color: var(--mybo-cart-bonus-level-text-color, #999);
    font-size: 13px;
    font-style: italic;
    line-height: 1.4;
    padding: 10px;
    text-align: center;
}

/* ============================================================================
 * CLASSI CARRELLO TABELLA LEGACY - Commentate il 2025-01-07
 * Queste classi appartengono al vecchio sistema a tabella .bg-cart-table.
 * Il nuovo sistema usa .bg-cart-modern con layout grid/flex.
 * Mantiene solo .bg-cart-table per compatibilità in contesti admin.
 * ============================================================================ */

/* .bg-cart-table {
    border-collapse: collapse;
    margin-bottom: 20px;
    width: 100%;
}

.bg-cart-table thead {
    display: none;
}

.bg-event-row {
    background-color: #333333;
    border-bottom: 2px solid #444444;
    transition: background-color 0.3s ease;
}

.bg-event-row:hover {
    background-color: #3a3a3a;
}

.bg-event-info {
    padding: 15px;
    position: relative;
}

.bg-event-main {
    align-items: flex-start;
    display: flex;
    margin-bottom: 15px;
}

.bg-event-image {
    flex: 0 0 80px;
    margin-right: 15px;
}

.bg-event-image img {
    border-radius: 4px;
    box-shadow: 0 2px 5px rgba(0,0,0,0.2);
    height: auto;
    max-width: 100%;
}

.bg-event-details {
    flex: 1;
}

.bg-event-title {
    color: #f19300;
    font-size: 1.2em;
    font-weight: bold;
    margin-bottom: 5px;
}

.bg-tickets-container {
    border-top: 1px solid #444444;
    margin-left: 95px;
    padding-top: 10px;
    width: calc(100% - 95px);
}

.bg-ticket-row {
    align-items: center;
    border-bottom: 1px dotted #444444;
    display: flex;
    padding: 8px 0;
}

.bg-ticket-row:last-child {
    border-bottom: none;
}

.bg-ticket-type {
    flex: 0 0 25%;
    font-size: 0.95em;
}

.bg-ticket-details {
    color: #dddddd;
    flex: 1;
}

.bg-ticket-buttons {
    flex: 0 0 120px;
    text-align: right;
} */

/* ============================================================================
 * STILI FORM ACQUISTO BIGLIETTI (da mybo-button.php)
 * ============================================================================ */

/* Prezzo originale barrato (sconto a tempo) */
.bg-price-original-strike-inline {
    font-size: 0.8em;
    opacity: 0.5;
    text-decoration: line-through;
}

/* Prezzo scontato evidenziato */
.bg-price-discounted-inline {
    color: #ff6b35;
    font-size: 1.0em;
    font-weight: bold;
}

/* Messaggio promo inline (dentro la colonna prezzo, sotto il prezzo) */
.bg-time-discount-notice-inline {
    color: #10b981;
    flex-basis: 100%;
    font-size: 0.75em;
    font-style: italic;
    margin-top: -15px;
}

/* =====================================================================
   DESTINATARI BIGLIETTI
   ===================================================================== */
.bg-ticket-recipients {
    font-size: 12px;
    color: #999;
    font-style: italic;
    margin-top: 2px;
    line-height: 1.3;
}

/* ============================================================================
 * CLASSI PAGINA PRODOTTO
 * Queste classi sono per la pagina prodotto semplificata (mybo-button.php).
 * ============================================================================ */

.bg-order-simplified {
    background: #1a1a1a;
    border-radius: 8px;
    padding: 20px;
}

.bg-tickets-section {
    color: #fff;
}

.bg-tickets-title {
    font-size: 1.4em;
    margin: 0 0 8px 0;
    color: #f19300;
    font-weight: bold;
    text-align: center;
}

.bg-tickets-description {
    font-size: 0.9em;
    color: #aaa;
    margin: 0 0 20px 0;
    font-style: italic;
    text-align: center;
}

.bg-tickets-cta-note {
    text-align: center;
    font-weight: 600;
    color: #f19300;
    text-transform: uppercase;
    letter-spacing: 0.05em;
    margin: 10px 0 15px;
}

.bg-tickets-list {
    display: flex;
    flex-direction: column;
    gap: 12px;
    margin-bottom: 20px;
}

.bg-ticket-item {
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    background: #2a2a2a;
    border-radius: 6px;
    padding: 15px;
    border-left: 4px solid #f19300;
}

.bg-ticket-item.bg-sold-out {
    opacity: 0.6;
    border-left-color: #666;
}

.bg-ticket-label {
    flex: 1;
    font-weight: bold;
    font-size: 1.1em;
    color: #fff;
    min-width: 150px;
}

.bg-ticket-price {
    font-size: 1.2em;
    font-weight: bold;
    color: #f19300;
    margin-left: auto;
    padding-left: 15px;
}

.bg-ticket-item .bg-ticket-recipients {
    flex-basis: 100%;
    margin-top: 8px;
    padding-top: 8px;
    border-top: 1px solid #3a3a3a;
    color: #888;
}

.bg-ticket-status.bg-esaurito {
    background: #dc3545;
    color: #fff;
    font-size: 0.75em;
    padding: 3px 8px;
    border-radius: 4px;
    margin-left: 10px;
    text-transform: uppercase;
    font-weight: bold;
}

.bg-simple-form {
    text-align: center;
    margin-top: 15px;
}

.bg-buy-button {
    background: var(--mybo-cart-submit-bg, #16a34a);
    color: var(--mybo-cart-submit-text, #fff);
    border: var(--mybo-cart-submit-border-width, 0) solid var(--mybo-cart-submit-border, transparent);
    padding: var(--mybo-cart-submit-padding, 15px 40px);
    font-family: var(--mybo-cart-submit-font, var(--mybo-font-body, inherit));
    font-size: var(--mybo-cart-submit-font-size, 18px);
    font-weight: var(--mybo-cart-submit-font-weight, 700);
    border-radius: var(--mybo-cart-submit-radius, 6px);
    cursor: pointer;
    transition: all var(--mybo-transition, 0.3s) ease;
    text-transform: var(--mybo-cart-submit-text-transform, uppercase);
    width: 100%;
    max-width: var(--mybo-cart-submit-max-width, 320px);
    margin: var(--mybo-cart-submit-margin, 0 auto);
}

.bg-buy-button:hover {
    background: var(--mybo-cart-submit-bg-hover, #0d8035);
    color: var(--mybo-cart-submit-text-hover, #fff);
    transform: translateY(-2px);
    box-shadow: 0 4px 15px rgba(22, 163, 74, 0.4);
}

.bg-buy-button .bg-processing {
    display: none;
    margin-left: 10px;
}

.bg-buy-button .bg-processing img {
    width: 20px;
    height: 20px;
    vertical-align: middle;
}

/* ============================================================================
 * VENDITE CHIUSE - Pagina evento quando le vendite sono terminate
 * ============================================================================ */
.bg-order-closed .bg-tickets-list {
    opacity: 0.5;
    pointer-events: none;
}
.bg-order-closed .bg-ticket-closed {
    border-left: 3px solid #555;
}

.bg-sales-closed-notice {
    display: flex;
    flex-direction: column;
    align-items: center;
    justify-content: center;
    gap: 10px;
    background: linear-gradient(135deg, #2a1a1a 0%, #1a0a0a 100%);
    border: 1px solid #b91c1c;
    border-radius: 10px;
    padding: 18px 22px;
    margin: 20px 0;
    text-align: center;
}

.bg-sales-closed-icon {
    font-size: 1.8em;
    flex-shrink: 0;
}

.bg-sales-closed-text {
    color: #fca5a5;
    font-size: 1.05em;
    line-height: 1.5;
}

.bg-sales-closed-text strong {
    color: #fff;
}

.bg-buy-button-disabled {
    background: #555 !important;
    color: #999 !important;
    cursor: not-allowed !important;
    display: block;
    margin: 0 auto;
    opacity: 0.7;
    transform: none !important;
    box-shadow: none !important;
}

.bg-buy-button-disabled:hover {
    background: #555 !important;
    transform: none !important;
    box-shadow: none !important;
}

/* ============================================================================
 * MEMBERSHIP BOXES - Layout affiancato fuori dal carrello
 * ============================================================================ */
.bg-membership-boxes-wrapper {
    display: flex;
    gap: 15px;
    margin: 15px 0;
    width: 100%;
    display: none;
}

.bg-membership-box {
    align-items: center;
    border-radius: 8px;
    display: flex;
    flex: 1;
    gap: 10px;
    justify-content: center;
    padding: 15px 20px;
}

/* Box Tessera - Colori oro/giallo */
.bg-membership-fee-box {
    background: linear-gradient(145deg, #1a1a1a 0%, #0a0a0a 50%, #151515 100%);
    border: 2px solid transparent;
    border-image: linear-gradient(145deg, #d4af37, #f5d67a, #c9a227, #a8860a) 1;
    box-shadow: 0 0 15px rgba(212, 175, 55, 0.2), inset 0 1px 0 rgba(255, 255, 255, 0.03);
}

.bg-membership-fee-box .bg-membership-text {
    color: #f5d67a;
    font-weight: 600;
    text-shadow: 0 0 10px rgba(212, 175, 55, 0.3);
}

.bg-membership-fee-box .bg-qty-label {
    background: linear-gradient(145deg, #d4af37, #c9a227, #b8960f);
    border-radius: 5px;
    box-shadow: 0 2px 4px rgba(0, 0, 0, 0.3);
    color: #fff;
    font-weight: bold;
    padding: 8px 12px;
    text-shadow: 0 1px 1px rgba(0, 0, 0, 0.2);
}

.bg-membership-fee-box .bg-price-display {
    color: #f5d67a;
    font-size: 1.1em;
    font-weight: 700;
    text-shadow: 0 0 8px rgba(212, 175, 55, 0.4);
}

/* Box Sconto - Colori verde */
.bg-membership-discount-box {
    background: rgba(34, 139, 34, 0.15);
    border: 1px solid rgba(34, 139, 34, 0.3);
    box-shadow: 0 0 15px rgba(67, 212, 55, 0.31), inset 0 0 5px rgba(255, 255, 255, 0.36);
}

.bg-membership-discount-box .bg-membership-text {
    color: #00ff61;
    font-weight: 600;
}

.bg-membership-discount-box .bg-qty-label {
    background: linear-gradient(145deg, #3fbb3b, #2cc927, #649539);
    border-radius: 5px;
    box-shadow: 0 2px 4px rgba(0, 0, 0, 0.3);
    color: #fff;
    font-weight: bold;
    padding: 8px 12px;
    text-shadow: 0 1px 1px rgba(0, 0, 0, 0.2);
}

.bg-membership-discount-box .bg-price-display {
    color: #90EE90;
    font-size: 1.1em;
    font-weight: 700;
}

.bg-membership-box .bg-membership-icon {
    font-size: 1.3em;
}

.bg-membership-box .bg-qty-label {
    min-width: 80px;
    text-align: center;
}
.bg-price-original-strike-inline .price  {
  color: #909090 !important;
}

.bg-ticket-price .price,
.bg-price-discounted-inline .price {
  color: #f19300 !important;
}

/* ============================================================================
 * LAYOUT CARRELLO CON IMMAGINE LATERALE
 * ============================================================================ */

/* Base (mobile first) */
.bg-cart-layout-wrapper {
    display: block;
    width: 100%;
    margin: var(--mybo-cart-image-col-margin, 0 0 15px 0);
}

.bg-cart-image-column {
    display: none;
}

.bg-cart-content-column {
    width: 100%;
}

/* Locandina mobile dentro header — set completo di controlli ammin. */
.bg-cart-image-mobile img {
    width: var(--mybo-cart-thumb-size, 80px);
    height: var(--mybo-cart-thumb-height, 80px);
    max-width: var(--mybo-cart-thumb-max-width, 100%);
    aspect-ratio: var(--mybo-cart-thumb-aspect-ratio, 1/1);
    object-fit: var(--mybo-cart-thumb-object-fit, cover);
    margin: var(--mybo-cart-thumb-margin, 0);
    border: var(--mybo-cart-thumb-border-width, 0) solid var(--mybo-cart-thumb-border-color, transparent);
    border-radius: var(--mybo-cart-thumb-radius, 6px);
    box-shadow: var(--mybo-cart-thumb-shadow, none);
    display: block;
}
.bg-cart-image-mobile {
    display: flex;
    justify-content: var(--mybo-cart-thumb-align, flex-start);
    width: 100%;
}
.bg-cart-event-header { gap: var(--mybo-cart-thumb-gap, 10px); }

/* Desktop: immagine grande visibile, piccola nascosta */
@media (min-width: 769px) {
    /* Header evento - barra titolo FULL WIDTH e centrata */
    .bg-cart-event-header {
        justify-content: center;
        margin-bottom: 15px;
        padding: 15px;
        text-align: center;
        width: 100%;
    }

    /* Nasconde l'immagine piccola su desktop */
    .bg-cart-image-mobile {
        display: none !important;
    }

    .bg-cart-event-info {
        text-align: center;
        width: 100%;
    }

    .bg-cart-event-title {
        font-size: 1.8em !important;
        margin-bottom: 8px;
    }

    /* Wrapper due colonne */
    .bg-cart-layout-wrapper {
        display: flex;
        gap: var(--mybo-cart-image-col-gap, 25px);
        width: 100%;
    }

    /* Colonna immagine grande - solo desktop */
    .bg-cart-image-column {
        display: block;
        flex: 0 0 var(--mybo-cart-image-col-width, 180px);
        max-width: var(--mybo-cart-image-col-width, 180px);
    }

    .bg-cart-image-column img {
        border-radius: var(--mybo-cart-image-col-radius, 8px);
        box-shadow: var(--mybo-cart-image-col-shadow, 0 4px 15px rgba(0, 0, 0, 0.4));
        border: var(--mybo-cart-image-col-border-width, 0) solid var(--mybo-cart-image-col-border-color, transparent);
        height: auto;
        width: 100%;
    }

    /* Colonna contenuto biglietti */
    .bg-cart-content-column {
        flex: 1;
        min-width: 0;
    }
}

/* ============================================================================
 * SOLD OUT BOX
 * ============================================================================ */

.bg-soldout {
    margin: 20px 0;
    padding: 0;
}

.bg-soldout-box {
    align-items: center;
    animation: soldout-pulse 2s ease-in-out infinite;
    background: linear-gradient(135deg, #8b0000 0%, #cc0000 50%, #8b0000 100%);
    border: 3px solid #ff4444;
    border-radius: 12px;
    box-shadow: 0 0 20px rgba(255, 0, 0, 0.5), inset 0 0 20px rgba(0, 0, 0, 0.3);
    display: flex;
    flex-direction: column;
    gap: 8px;
    justify-content: center;
    padding: 25px 30px;
    text-align: center;
}

.bg-soldout-icon {
    font-size: 48px;
    line-height: 1;
    text-shadow: 0 0 10px rgba(255, 255, 255, 0.5);
}

.bg-soldout-title {
    animation: soldout-glow 1.5s ease-in-out infinite alternate;
    color: #fff;
    font-family: 'Impact', 'Arial Black', sans-serif;
    font-size: 42px;
    font-weight: 900;
    letter-spacing: 6px;
    line-height: 1.1;
    text-shadow: 2px 2px 4px rgba(0, 0, 0, 0.5), 0 0 20px rgba(255, 255, 255, 0.3);
    text-transform: uppercase;
}

.bg-soldout-subtitle {
    color: rgba(255, 255, 255, 0.9);
    font-size: 16px;
    font-weight: 400;
    letter-spacing: 1px;
}

@keyframes soldout-pulse {
    0%, 100% {
        box-shadow: 0 0 20px rgba(255, 0, 0, 0.5), inset 0 0 20px rgba(0, 0, 0, 0.3);
        transform: scale(1);
    }
    50% {
        box-shadow: 0 0 40px rgba(255, 0, 0, 0.8), inset 0 0 20px rgba(0, 0, 0, 0.3);
        transform: scale(1.02);
    }
}

@keyframes soldout-glow {
    0% {
        text-shadow: 2px 2px 4px rgba(0, 0, 0, 0.5), 0 0 20px rgba(255, 255, 255, 0.3);
    }
    100% {
        text-shadow: 2px 2px 4px rgba(0, 0, 0, 0.5), 0 0 40px rgba(255, 255, 255, 0.8), 0 0 60px rgba(255, 200, 200, 0.5);
    }
}

/* ============================================================================
 * ULTIMI BIGLIETTI BOX
 * ============================================================================ */

.bg-last-tickets {
    margin: 20px 0;
    padding: 0;
}

.bg-last-tickets-box {
    align-items: center;
    animation: last-tickets-pulse 1.5s ease-in-out infinite;
    background: linear-gradient(135deg, #ff6600 0%, #ff9900 50%, #ffcc00 100%);
    border: 3px solid #ffdd00;
    border-radius: 12px;
    box-shadow: 0 0 25px rgba(255, 153, 0, 0.6), inset 0 0 15px rgba(255, 255, 255, 0.2);
    display: flex;
    flex-direction: column;
    gap: 5px;
    justify-content: center;
    padding: 20px 25px;
    text-align: center;
}

.bg-last-tickets-icon {
    animation: fire-flicker 0.5s ease-in-out infinite alternate;
    font-size: 40px;
    line-height: 1;
}

.bg-last-tickets-title {
    animation: last-tickets-glow 1s ease-in-out infinite alternate;
    color: #1a0a00;
    font-family: 'Impact', 'Arial Black', sans-serif;
    font-size: 32px;
    font-weight: 900;
    letter-spacing: 4px;
    line-height: 1.1;
    text-shadow: 1px 1px 0 rgba(255, 255, 255, 0.5);
    text-transform: uppercase;
}

.bg-last-tickets-count {
    color: #1a0a00;
    font-size: 18px;
    font-weight: 500;
}

.bg-last-tickets-count strong {
    background: rgba(0, 0, 0, 0.2);
    border-radius: 6px;
    color: #fff;
    font-size: 24px;
    font-weight: 900;
    padding: 4px 12px;
    text-shadow: 1px 1px 2px rgba(0, 0, 0, 0.5);
}

@keyframes last-tickets-pulse {
    0%, 100% {
        box-shadow: 0 0 25px rgba(255, 153, 0, 0.6), inset 0 0 15px rgba(255, 255, 255, 0.2);
        transform: scale(1);
    }
    50% {
        box-shadow: 0 0 40px rgba(255, 153, 0, 0.9), inset 0 0 20px rgba(255, 255, 255, 0.3);
        transform: scale(1.02);
    }
}

@keyframes last-tickets-glow {
    0% {
        text-shadow: 1px 1px 0 rgba(255, 255, 255, 0.5);
    }
    100% {
        text-shadow: 1px 1px 0 rgba(255, 255, 255, 0.5), 0 0 15px rgba(255, 255, 255, 0.8);
    }
}

@keyframes fire-flicker {
    0% {
        transform: scale(1) rotate(-3deg);
    }
    100% {
        transform: scale(1.1) rotate(3deg);
    }
}

/* ============================================================================
 * LIMITE BIGLIETTI WARNING - OVERLAY
 * ============================================================================ */

.bg-limit-warning {
    align-items: center;
    background: rgba(0, 0, 0, 0.85);
    border-radius: 8px;
    bottom: 0;
    display: flex;
    justify-content: center;
    left: 0;
    position: absolute;
    right: 0;
    top: 0;
    z-index: 100;
}

.bg-limit-warning-box {
    align-items: center;
    animation: limit-pulse 1.5s ease-in-out infinite;
    background: linear-gradient(135deg, #b71c1c 0%, #e53935 50%, #b71c1c 100%);
    border: 3px solid #ff5252;
    border-radius: 12px;
    box-shadow: 0 0 30px rgba(229, 57, 53, 0.8);
    display: flex;
    flex-direction: column;
    gap: 8px;
    max-width: 90%;
    padding: 25px 35px;
    text-align: center;
}

.bg-limit-warning-icon {
    font-size: 40px;
    line-height: 1;
}

.bg-limit-warning-title {
    animation: limit-glow 1s ease-in-out infinite alternate;
    color: #fff;
    font-family: 'Impact', 'Arial Black', sans-serif;
    font-size: 28px;
    font-weight: 900;
    letter-spacing: 3px;
    line-height: 1.1;
    text-shadow: 2px 2px 4px rgba(0, 0, 0, 0.5);
    text-transform: uppercase;
}

.bg-limit-warning-text {
    color: rgba(255, 255, 255, 0.95);
    font-size: 16px;
    font-weight: 500;
}

@keyframes limit-pulse {
    0%, 100% {
        box-shadow: 0 0 30px rgba(229, 57, 53, 0.8);
        transform: scale(1);
    }
    50% {
        box-shadow: 0 0 50px rgba(229, 57, 53, 1);
        transform: scale(1.03);
    }
}

@keyframes limit-glow {
    0% {
        text-shadow: 2px 2px 4px rgba(0, 0, 0, 0.5);
    }
    100% {
        text-shadow: 2px 2px 4px rgba(0, 0, 0, 0.5), 0 0 20px rgba(255, 255, 255, 0.6);
    }
}

/* Position relative per overlay limite biglietti */
.bg-cart-content-column {
    position: relative;
}

/* =============================================================================
   POLITICA RIMBORSI - Sezione e Popup
   ============================================================================= */

/* Sezione link politica rimborsi */
.bg-refund-policy-section {
    margin: 15px 0 !important;
    padding: 10px 0 !important;
    text-align: center !important;
    display: block !important;
    visibility: visible !important;
    opacity: 1 !important;
    height: auto !important;
    overflow: visible !important;
}

.bg-refund-policy-section p,
p.bg-refund-policy-link-container {
    margin: 0 !important;
    display: block !important;
    visibility: visible !important;
    opacity: 1 !important;
    height: auto !important;
}

.bg-refund-policy-section a,
a.bg-refund-policy-link {
    color: var(--mybo-cart-policy-color, #90caf9) !important;
    display: inline-flex !important;
    visibility: visible !important;
    opacity: 1 !important;
    font-family: var(--mybo-cart-policy-font, inherit) !important;
    font-size: var(--mybo-cart-policy-size, 14px) !important;
    font-weight: var(--mybo-cart-policy-weight, 400) !important;
    text-align: var(--mybo-cart-policy-align, center);
    text-transform: var(--mybo-cart-policy-transform, none) !important;
    text-decoration: var(--mybo-cart-policy-decoration, underline) !important;
    letter-spacing: var(--mybo-cart-policy-letter-spacing, 0);
    margin: var(--mybo-cart-policy-margin, 10px 0) !important;
    align-items: center;
    gap: 5px;
    transition: color 0.2s ease;
}

.bg-refund-policy-link:hover {
    color: var(--mybo-cart-policy-color-hover, #64b5f6) !important;
}

.bg-refund-policy-link .dashicons {
    font-size: 16px;
    width: 16px;
    height: 16px;
}

/* Frase accettazione (box giallo) — set completo controlli admin. */
.bg-refund-policy-acceptance {
    background: var(--mybo-cart-accept-bg, rgba(255, 193, 7, 0.1));
    border: var(--mybo-cart-accept-border-width, 1px) solid var(--mybo-cart-accept-border, rgba(255, 193, 7, 0.3));
    border-radius: var(--mybo-cart-accept-radius, 6px);
    padding: var(--mybo-cart-accept-padding, 12px 15px);
    margin: var(--mybo-cart-accept-margin, 15px 0);
    max-width: var(--mybo-cart-accept-max-width, 100%);
    box-shadow: var(--mybo-cart-accept-shadow, none);
    color: var(--mybo-cart-accept-color, #ffc107);
    font-family: var(--mybo-cart-accept-font, inherit);
    font-size: var(--mybo-cart-accept-size, 13px);
    font-weight: var(--mybo-cart-accept-weight, 400);
    text-align: var(--mybo-cart-accept-align, center);
    text-transform: var(--mybo-cart-accept-transform, none);
    letter-spacing: var(--mybo-cart-accept-letter-spacing, 0);
    line-height: var(--mybo-cart-accept-line-height, 1.4);
    box-sizing: border-box;
}

/* Popup overlay */
.bg-refund-policy-popup {
    position: fixed;
    top: 0;
    left: 0;
    width: 100%;
    height: 100%;
    z-index: 999999;
    display: flex;
    align-items: center;
    justify-content: center;
}

.bg-refund-policy-popup-overlay {
    position: absolute;
    top: 0;
    left: 0;
    width: 100%;
    height: 100%;
    background: rgba(0, 0, 0, 0.7);
    backdrop-filter: blur(3px);
}

/* Contenuto popup */
.bg-refund-policy-popup-content {
    position: relative;
    background: #2a2a2a;
    border-radius: 12px;
    box-shadow: 0 10px 40px rgba(0, 0, 0, 0.5);
    max-width: 700px;
    width: 90%;
    max-height: 80vh;
    display: flex;
    flex-direction: column;
    animation: popup-appear 0.3s ease;
}

@keyframes popup-appear {
    from {
        opacity: 0;
        transform: scale(0.9) translateY(-20px);
    }
    to {
        opacity: 1;
        transform: scale(1) translateY(0);
    }
}

/* Pulsante chiusura */
.bg-refund-policy-popup-close {
    position: absolute;
    top: 15px;
    right: 15px;
    width: 32px;
    height: 32px;
    border: none;
    background: rgba(255, 255, 255, 0.1);
    color: #fff;
    font-size: 24px;
    line-height: 1;
    border-radius: 50%;
    cursor: pointer;
    transition: background 0.2s ease;
    z-index: 10;
}

.bg-refund-policy-popup-close:hover {
    background: rgba(255, 255, 255, 0.2);
}

/* Header popup */
.bg-refund-policy-popup-header {
    background: linear-gradient(135deg, #1565c0 0%, #0d47a1 100%);
    padding: 20px 25px;
    text-align: center;
}

/* Titolo popup */
.bg-refund-policy-popup-header h3 {
    margin: 0;
    color: #fff;
    font-size: 20px;
    font-weight: 600;
}

/* Sottotitolo popup (tipo pagamento) */
.bg-refund-policy-subtitle {
    margin: 8px 0 0 0;
    color: rgba(255, 255, 255, 0.8);
    font-size: 14px;
    font-weight: 400;
    font-style: italic;
}

/* Body popup */
.bg-refund-policy-popup-body {
    padding: 25px;
    flex: 1;
    overflow-y: auto;
    color: #e0e0e0;
    font-size: 15px;
    line-height: 1.7;
}

.bg-refund-policy-popup-body h4 {
    color: #90caf9;
    margin: 20px 0 10px 0;
    font-size: 17px;
}

.bg-refund-policy-popup-body h4:first-child {
    margin-top: 0;
}

.bg-refund-policy-popup-body p {
    margin: 0 0 15px 0;
}

.bg-refund-policy-popup-body ul,
.bg-refund-policy-popup-body ol {
    margin: 0 0 15px 0;
    padding-left: 25px;
}

.bg-refund-policy-popup-body li {
    margin-bottom: 8px;
}

.bg-refund-policy-popup-body strong {
    color: #fff;
}

/* Scrollbar personalizzata */
.bg-refund-policy-popup-body::-webkit-scrollbar {
    width: 8px;
}

.bg-refund-policy-popup-body::-webkit-scrollbar-track {
    background: #1a1a1a;
    border-radius: 4px;
}

.bg-refund-policy-popup-body::-webkit-scrollbar-thumb {
    background: #555;
    border-radius: 4px;
}

.bg-refund-policy-popup-body::-webkit-scrollbar-thumb:hover {
    background: #666;
}

/* Body overflow quando popup aperto */
body.bg-popup-open {
    overflow: hidden;
}

/* ============================================================
   BOX EVENTO PRIVATO (Affitto Sala)
   ============================================================ */

.bg-venue-rental-notice {
    align-items: center;
    background: linear-gradient(135deg, var(--mybo-cart-private-bg, #fffbeb) 0%, var(--mybo-cart-private-bg-end, #fef3c7) 100%);
    border: var(--mybo-cart-private-border-width, 2px) solid var(--mybo-cart-private-border, #d97706);
    border-radius: var(--mybo-cart-private-radius, 12px);
    display: flex;
    flex-direction: column;
    gap: var(--mybo-cart-private-gap, 12px);
    margin: var(--mybo-cart-private-margin, 20px auto);
    max-width: var(--mybo-cart-private-max-width, 600px);
    padding: var(--mybo-cart-private-padding, 24px 28px);
    text-align: center;
}

.bg-venue-rental-notice-icon {
    align-items: center;
    background: var(--mybo-cart-private-icon-bg, #fbbf24);
    border-radius: 50%;
    color: var(--mybo-cart-private-icon-color, #92400e);
    display: flex;
    flex-shrink: 0;
    height: var(--mybo-cart-private-icon-size, 48px);
    justify-content: center;
    width: var(--mybo-cart-private-icon-size, 48px);
}

.bg-venue-rental-notice-icon svg {
    stroke: var(--mybo-cart-private-icon-color, #92400e);
    width: var(--mybo-cart-private-icon-svg-size, 28px);
    height: var(--mybo-cart-private-icon-svg-size, 28px);
}

.bg-venue-rental-notice-content {
    flex: 1;
    text-align: center;
}

.bg-venue-rental-notice-title {
    color: var(--mybo-cart-private-title-color, #92400e);
    display: block;
    font-size: var(--mybo-cart-private-title-size, 17px);
    font-weight: var(--mybo-cart-private-title-weight, 700);
    letter-spacing: var(--mybo-cart-private-title-letter-spacing, 1px);
    margin-bottom: 8px;
    text-transform: var(--mybo-cart-private-title-transform, uppercase);
}

.bg-venue-rental-notice-text {
    color: var(--mybo-cart-private-text-color, #78350f);
    font-size: var(--mybo-cart-private-text-size, 15px);
    line-height: var(--mybo-cart-private-text-lh, 1.5);
    margin: 0;
}

.bg-venue-rental-notice-text strong {
    color: var(--mybo-cart-private-title-color, #92400e);
}

/* ============================================================================
 * BOX AGGIORNAMENTO TELEFONO
 * ============================================================================ */

.bg-phone-update-box {
    background: linear-gradient(135deg, #fff3cd 0%, #ffeeba 100%);
    border: 2px solid #ffc107;
    border-left: 5px solid #e65100;
    border-radius: 8px;
    display: flex;
    gap: 15px;
    margin: 15px 0 20px;
    padding: 20px;
}

.bg-phone-update-icon {
    flex-shrink: 0;
    font-size: 2em;
    line-height: 1;
}

.bg-phone-update-content {
    flex: 1;
}

.bg-phone-update-content strong {
    color: #e65100;
    display: block;
    font-size: 1.1em;
    margin-bottom: 6px;
}

.bg-phone-update-content p {
    color: #5d4037;
    font-size: 0.95em;
    line-height: 1.4;
    margin: 0 0 12px;
}

.bg-phone-update-field {
    align-items: center;
    display: flex;
    gap: 10px;
}

.bg-phone-update-field input[type="tel"] {
    background: #fff;
    border: 2px solid #ccc;
    border-radius: 6px;
    color: #333;
    flex: 1;
    font-size: 1.1em;
    letter-spacing: 1px;
    max-width: 200px;
    padding: 10px 14px;
    transition: border-color 0.3s;
}

.bg-phone-update-field input[type="tel"]:focus {
    border-color: #ffc107;
    outline: none;
}

.bg-phone-update-field input[type="tel"].bg-valid {
    border-color: #28a745;
}

.bg-phone-update-field input[type="tel"].bg-invalid {
    border-color: #dc3545;
}

.bg-phone-update-field button {
    background: #e65100;
    border: none;
    border-radius: 6px;
    color: #fff;
    cursor: pointer;
    font-size: 0.95em;
    font-weight: 600;
    padding: 10px 20px;
    transition: background 0.3s, opacity 0.3s;
}

.bg-phone-update-field button:hover:not(:disabled) {
    background: #bf360c;
}

.bg-phone-update-field button:disabled {
    cursor: not-allowed;
    opacity: 0.5;
}

.bg-phone-update-msg {
    font-size: 0.9em;
    margin-top: 8px;
    min-height: 20px;
}

.bg-phone-update-msg.error {
    color: #dc3545;
}

.bg-phone-update-msg.success {
    color: #28a745;
    font-weight: 600;
}

.bg-phone-update-box.bg-phone-updated {
    background: linear-gradient(135deg, #d4edda 0%, #c3e6cb 100%);
    border-color: #28a745;
    border-left-color: #28a745;
}

@keyframes bg-phone-shake {
    0%, 100% { transform: translateX(0); }
    10%, 30%, 50%, 70%, 90% { transform: translateX(-5px); }
    20%, 40%, 60%, 80% { transform: translateX(5px); }
}

/* ============================================================================
 * HIGH-SPECIFICITY OVERRIDE
 * Garantisce che le variabili customize del tab "Carrello" vincano sulle
 * regole del tema/Elementor/Vayvo. Usa body.mybo-page-cart come prefix +
 * !important sulle propriet che il tema sovrascrive comunemente (color,
 * font-family, font-size, background, border).
 * ============================================================================ */

body.mybo-page-cart .bg-cart-event-title {
    color: var(--mybo-cart-header-title-color) !important;
    font-family: var(--mybo-cart-header-font, var(--mybo-font-heading, inherit)) !important;
    font-size: var(--mybo-cart-header-title-size) !important;
    font-weight: var(--mybo-cart-header-title-weight) !important;
}

body.mybo-page-cart .bg-cart-event-date {
    color: var(--mybo-cart-header-subtitle-color) !important;
    font-size: var(--mybo-cart-header-subtitle-size) !important;
}

body.mybo-page-cart .bg-cart-event-header {
    background: var(--mybo-cart-header-bg) !important;
    border-color: var(--mybo-cart-header-border-color) !important;
    border-radius: var(--mybo-cart-header-radius) !important;
    margin: var(--mybo-cart-header-margin) !important;
    max-width: var(--mybo-cart-header-max-width) !important;
}

body.mybo-page-cart .bg-cart-tickets-box {
    background: var(--mybo-cart-table-bg) !important;
    border-color: var(--mybo-cart-table-border-color) !important;
    border-radius: var(--mybo-cart-table-radius) !important;
    font-family: var(--mybo-cart-table-font, var(--mybo-font-body, inherit)) !important;
}
/* Rule rimossa: usava --mybo-cart-table-max-width (var del field table_max_width
 * che è stato rimosso dallo schema per evitare lo shrink moltiplicativo con
 * Box carrello max-width). La larghezza dell'intera card si controlla da
 * Layout pagina → 📦 Box carrello → Larghezza max. */

body.mybo-page-cart .bg-cart-tickets-header,
body.mybo-page-cart .bg-cart-tickets-header .bg-cart-col-label,
body.mybo-page-cart .bg-cart-tickets-header .bg-cart-col-qty,
body.mybo-page-cart .bg-cart-tickets-header .bg-cart-col-price {
    color: var(--mybo-cart-table-head-color) !important;
    font-size: var(--mybo-cart-table-head-size) !important;
    font-weight: var(--mybo-cart-table-head-weight) !important;
    text-transform: var(--mybo-cart-table-head-transform) !important;
}

body.mybo-page-cart .bg-cart-col-label,
body.mybo-page-cart .bg-cart-col-label strong {
    color: var(--mybo-cart-label-color) !important;
    font-weight: var(--mybo-cart-label-weight) !important;
}

body.mybo-page-cart .bg-cart-col-price {
    color: var(--mybo-cart-price-color) !important;
    font-size: var(--mybo-cart-price-size) !important;
    font-weight: var(--mybo-cart-price-weight) !important;
}

body.mybo-page-cart .bg-cart-total-wrapper {
    background: var(--mybo-cart-total-bg) !important;
    border-color: var(--mybo-cart-total-border) !important;
    border-radius: var(--mybo-cart-total-radius) !important;
    font-family: var(--mybo-cart-total-font, var(--mybo-font-body, inherit)) !important;
    margin: var(--mybo-cart-total-margin) !important;
    max-width: var(--mybo-cart-total-max-width) !important;
}

body.mybo-page-cart .bg-cart-total-wrapper .bg_cart_total {
    color: var(--mybo-cart-total-label-color) !important;
    font-size: var(--mybo-cart-total-label-size) !important;
}

body.mybo-page-cart .bg-cart-total-wrapper .bg_total_number,
body.mybo-page-cart #bg_total_tickets {
    color: var(--mybo-cart-total-price-color) !important;
    font-size: var(--mybo-cart-total-price-size) !important;
    font-weight: var(--mybo-cart-total-price-weight) !important;
}

body.mybo-page-cart .bg-cart-total-wrapper .bg-total-tickets-label,
body.mybo-page-cart .bg-cart-total-wrapper .bg-total-price-label {
    color: var(--mybo-cart-total-label-color) !important;
}

body.mybo-page-cart .bg-cart-total-wrapper .bg-total-old .bg-total-value {
    color: var(--mybo-cart-total-old-color) !important;
}

body.mybo-page-cart .bg-promo-box {
    background: var(--mybo-cart-promo-bg) !important;
    border-color: var(--mybo-cart-promo-border) !important;
    border-radius: var(--mybo-cart-promo-radius) !important;
    color: var(--mybo-cart-promo-text) !important;
    font-family: var(--mybo-cart-promo-font, var(--mybo-font-body, inherit)) !important;
    margin: var(--mybo-cart-promo-margin) !important;
    max-width: var(--mybo-cart-promo-max-width) !important;
}
body.mybo-page-cart .bg-promo-box label,
body.mybo-page-cart .bg-promo-box .bg-promo-intro {
    color: var(--mybo-cart-promo-title-color) !important;
}
body.mybo-page-cart #bg_verify_promo {
    background-color: var(--mybo-cart-promo-btn-bg) !important;
    color: var(--mybo-cart-promo-btn-text) !important;
    border-radius: var(--mybo-cart-promo-btn-radius) !important;
}

body.mybo-page-cart .bg-total-discounts-summary {
    background: var(--mybo-cart-disc-bg) !important;
    border-color: var(--mybo-cart-disc-border) !important;
    border-radius: var(--mybo-cart-disc-radius) !important;
    font-family: var(--mybo-cart-disc-font, var(--mybo-font-body, inherit)) !important;
    margin: var(--mybo-cart-disc-margin) !important;
    max-width: var(--mybo-cart-disc-max-width) !important;
}
body.mybo-page-cart .bg-discount-summary-header { color: var(--mybo-cart-disc-title-color) !important; }
body.mybo-page-cart .bg-discount-item-label,
body.mybo-page-cart .bg-discount-label { color: var(--mybo-cart-disc-label-color) !important; }
body.mybo-page-cart .bg-discount-item-value,
body.mybo-page-cart .bg-discount-value { color: var(--mybo-cart-disc-value-color) !important; }
body.mybo-page-cart .bg-final-total-value { color: var(--mybo-cart-disc-total-color) !important; }

body.mybo-page-cart .gateway-selector ul li a {
    background: var(--mybo-gw-bg) !important;
    border-color: var(--mybo-gw-border) !important;
    border-radius: var(--mybo-gw-radius) !important;
    color: var(--mybo-gw-text) !important;
    font-family: var(--mybo-gw-font, var(--mybo-font-body, inherit)) !important;
    font-size: var(--mybo-gw-font-size, 15px) !important;
    font-weight: var(--mybo-gw-font-weight, 600) !important;
    height: var(--mybo-gw-btn-height, 90px) !important;
    box-shadow: var(--mybo-gw-shadow, none) !important;
}
body.mybo-page-cart .gateway-selector ul li {
    flex: 1 1 var(--mybo-gw-btn-width, 140px) !important;
    min-width: var(--mybo-gw-btn-width, 140px) !important;
}
/* Testo etichetta bottone (il font-size dell'<a> non lo tocca: ha size propria) */
body.mybo-page-cart .gateway-selector .bg-gateway-label {
    font-size: var(--mybo-gw-font-size, 13px) !important;
    font-weight: var(--mybo-gw-font-weight, 600) !important;
}
/* Hover (bottone normale/attivabile) */
body.mybo-page-cart .gateway-selector ul li a:hover {
    background: var(--mybo-gw-bg-hover) !important;
    border-color: var(--mybo-gw-border-hover) !important;
    color: var(--mybo-gw-text-hover) !important;
    box-shadow: var(--mybo-gw-shadow-hover, 0 4px 15px rgba(241, 147, 0, 0.2)) !important;
}
/* Bottoni NON selezionati (più metodi, uno attivo) */
body.mybo-page-cart .gateway-selector ul li:not(.active) a {
    background: var(--mybo-gw-inactive-bg) !important;
    border-color: var(--mybo-gw-inactive-border) !important;
    color: var(--mybo-gw-inactive-text) !important;
}
body.mybo-page-cart .gateway-selector ul li:not(.active) a:hover {
    background: var(--mybo-gw-inactive-bg-hover) !important;
    border-color: var(--mybo-gw-inactive-border-hover) !important;
    color: var(--mybo-gw-inactive-text-hover) !important;
}
body.mybo-page-cart .gateway-selector ul li.active a,
body.mybo-page-cart .gateway-selector ul li a.active {
    background: var(--mybo-gw-bg-active) !important;
    border-color: var(--mybo-gw-border-active) !important;
    color: var(--mybo-gw-text-active) !important;
    box-shadow: var(--mybo-gw-shadow-active, none) !important;
}

body.mybo-page-cart .bg-buy-button {
    background: var(--mybo-cart-submit-bg) !important;
    color: var(--mybo-cart-submit-text) !important;
    border-color: var(--mybo-cart-submit-border) !important;
    border-radius: var(--mybo-cart-submit-radius) !important;
    font-family: var(--mybo-cart-submit-font, var(--mybo-font-body, inherit)) !important;
    font-size: var(--mybo-cart-submit-font-size) !important;
    font-weight: var(--mybo-cart-submit-font-weight) !important;
    text-transform: var(--mybo-cart-submit-text-transform) !important;
    margin: var(--mybo-cart-submit-margin) !important;
    max-width: var(--mybo-cart-submit-max-width) !important;
}
body.mybo-page-cart .bg-buy-button:hover {
    background: var(--mybo-cart-submit-bg-hover) !important;
    color: var(--mybo-cart-submit-text-hover) !important;
}

body.mybo-page-cart .bg-cart-qty-btn.minus {
    background: var(--mybo-cart-qty-btn-bg-minus) !important;
    color: var(--mybo-cart-qty-btn-text-minus) !important;
    border-radius: var(--mybo-cart-qty-btn-radius) !important;
}
body.mybo-page-cart .bg-cart-qty-btn.plus {
    background: var(--mybo-cart-qty-btn-bg-plus) !important;
    color: var(--mybo-cart-qty-btn-text-plus) !important;
    border-radius: var(--mybo-cart-qty-btn-radius) !important;
}
body.mybo-page-cart .bg-cart-qty-input {
    background: var(--mybo-cart-qty-input-bg) !important;
    color: var(--mybo-cart-qty-input-text) !important;
    border-radius: var(--mybo-cart-qty-btn-radius) !important;
}

body.mybo-page-cart .amm_pag a {
    color: var(--mybo-cart-admin-link-color) !important;
    font-size: var(--mybo-cart-admin-link-size) !important;
}
body.mybo-page-cart .amm_pag a:hover {
    color: var(--mybo-cart-admin-link-color-hover) !important;
}

/* Box ricompensa: anche le regole .sm-cart-loyalty-* hanno override */
body.mybo-page-cart .sm-cart-loyalty-message {
    background: var(--mybo-cart-reward-bg) !important;
    border-color: var(--mybo-cart-reward-border) !important;
    border-radius: var(--mybo-cart-reward-radius) !important;
    font-family: var(--mybo-cart-reward-font, var(--mybo-font-body, inherit)) !important;
    margin: var(--mybo-cart-reward-margin) !important;
    max-width: var(--mybo-cart-reward-max-width) !important;
}

body.mybo-page-cart .gateway-selector {
    margin: var(--mybo-gw-margin) !important;
    max-width: var(--mybo-gw-max-width) !important;
}

body.mybo-page-cart .bg-level-discount-section {
    margin: var(--mybo-cart-bonus-level-margin) !important;
    max-width: var(--mybo-cart-bonus-level-max-width) !important;
}

body.mybo-page-cart .bg-tokens-section {
    margin: var(--mybo-cart-bonus-margin) !important;
    max-width: var(--mybo-cart-bonus-max-width) !important;
}
body.mybo-page-cart .sm-cart-loyalty-title { color: var(--mybo-cart-reward-badge-color) !important; }
body.mybo-page-cart .sm-cart-loyalty-content { color: var(--mybo-cart-reward-label-color) !important; }
body.mybo-page-cart .sm-reward-item,
body.mybo-page-cart .sm-cart-loyalty-rewards { color: var(--mybo-cart-reward-value-color) !important; }