@import url('https://fonts.googleapis.com/css2?family=Dancing+Script:wght@400;700&display=swap');

/* --- bg-unified.css --- */
body {
    max-width: 100%;
    overflow-x: hidden;
}

.wrap {
    box-sizing: border-box;
    clear: both;
    margin: 20px 0;
    max-width: 100%;
    padding: 0;
}

.screen-reader-text {
    border: 0;
    clip: rect(1px, 1px, 1px, 1px);
    clip-path: inset(50%);
    height: 1px;
    margin: -1px;
    overflow: hidden;
    padding: 0;
    position: absolute !important;
    width: 1px;
    word-wrap: normal !important;
}

.jcd-wide {
    max-width: 100%;
    width: calc(100% - 20px);
}
.jcd-narrow {
    width: 20%;
}

.wrap.biglietteria .postbox-container {
    max-width: 100% !important;
    width: calc(100% - 20px) !important;
}

.wrap.biglietteria-levels .postbox-container {
    max-width: 100% !important;
    width: calc(100% - 20px) !important;
}

.wrap .postbox-container.jcd-wide {
    max-width: 100% !important;
    width: calc(100% - 20px) !important;
}

.bg-back,
.show-button,
.bg-processing,
.bg_cart tr.removed,
.tickets-remaining.hiding,
.hiding .tickets-remaining,
dt,
legend,
caption,
.bg_email_check span,
.report-by-date h3,
.report-by-customer h3,
.report-by-event h3,
.ticket-orders legend,
.bg-payment-form legend,
.biglietteria dt {
    font-weight: 700;
}

.bg-ticket-data,
.panel {
    border: 1px solid rgba(0, 0, 0, .2);
}

.ticket-orders fieldset,
.bg-payment-form fieldset {
    margin: 1em 0;
}

.bg-ticket-data,
.bg-trigger-container {
    padding: .5em;
}

.bg_paid,
.bg_status,
.bg_receipt {
    text-align: center;
}

#bg_paid,
#bg_status {
    width: 6em;
}
#bg_receipt {
    width: 18em;
}

.biglietteria .postbox {
    margin: 10px 5px 0 0;
}
.biglietteria .postbox .inside {
    overflow: visible !important;
}
.biglietteria .meta-box-sortables {
    min-height: 0;
}

.bg-sales-report,
.report-by-event table,
.report-by-date table {
    width: 100%;
    border-collapse: collapse;
    margin: 20px 0;
    background-color: #fff;
}

.bg-sales-report tbody tr.bg-report-row.completed,
.report-by-event table tbody tr.bg-report-row.completed,
.report-by-date table tbody tr.bg-report-row.completed,
.bg-sales-report tbody tr.completed,
.report-by-event table tbody tr.completed,
.report-by-date table tbody tr.completed,
.bg-sales-report tbody tr.bg-report-row.completed > td,
.report-by-event table tbody tr.bg-report-row.completed > td,
.report-by-date table tbody tr.bg-report-row.completed > td,
.bg-sales-report tbody tr.completed > td,
.report-by-event table tbody tr.completed > td,
.report-by-date table tbody tr.completed > td {
  background-color: #dff0d8 !important;
}
.bg-sales-report tbody tr.bg-report-row.completed:nth-child(even),
.report-by-event table tbody tr.bg-report-row.completed:nth-child(even),
.report-by-date table tbody tr.bg-report-row.completed:nth-child(even),
.bg-sales-report tbody tr.completed:nth-child(even),
.report-by-event table tbody tr.completed:nth-child(even),
.report-by-date table tbody tr.completed:nth-child(even),
.bg-sales-report tbody tr.bg-report-row.completed:nth-child(even) > td,
.report-by-event table tbody tr.bg-report-row.completed:nth-child(even) > td,
.report-by-date table tbody tr.bg-report-row.completed:nth-child(even) > td,
.bg-sales-report tbody tr.completed:nth-child(even) > td,
.report-by-event table tbody tr.completed:nth-child(even) > td,
.report-by-date table tbody tr.completed:nth-child(even) > td {
  background-color: #d4e9cd !important;
}

.bg-sales-report tbody tr.bg-report-row.failed,
.report-by-event table tbody tr.bg-report-row.failed,
.report-by-date table tbody tr.bg-report-row.failed,
.bg-sales-report tbody tr.failed,
.report-by-event table tbody tr.failed,
.report-by-date table tbody tr.failed,
.bg-sales-report tbody tr.bg-report-row.failed > td,
.report-by-event table tbody tr.bg-report-row.failed > td,
.report-by-date table tbody tr.bg-report-row.failed > td,
.bg-sales-report tbody tr.failed > td,
.report-by-event table tbody tr.failed > td,
.report-by-date table tbody tr.failed > td {
  background-color: #f8d7da !important;
}
.bg-sales-report tbody tr.bg-report-row.failed:nth-child(even),
.report-by-event table tbody tr.bg-report-row.failed:nth-child(even),
.report-by-date table tbody tr.bg-report-row.failed:nth-child(even),
.bg-sales-report tbody tr.failed:nth-child(even),
.report-by-event table tbody tr.failed:nth-child(even),
.report-by-date table tbody tr.failed:nth-child(even),
.bg-sales-report tbody tr.bg-report-row.failed:nth-child(even) > td,
.report-by-event table tbody tr.bg-report-row.failed:nth-child(even) > td,
.report-by-date table tbody tr.bg-report-row.failed:nth-child(even) > td,
.bg-sales-report tbody tr.failed:nth-child(even) > td,
.report-by-event table tbody tr.failed:nth-child(even) > td,
.report-by-date table tbody tr.failed:nth-child(even) > td {
  background-color: #f4c7cb !important;
}

.bg-sales-report tr,
.report-by-event tr,
.report-by-date tr {
    background-color: #fff;
    transition: background-color 0.2s ease;
}

.bg-sales-report tr:nth-child(even),
.report-by-event tr:nth-child(even),
.report-by-date tr:nth-child(even) {
    background-color: #f9f9f9;
}

.bg-sales-report tr:hover,
.report-by-event tr:hover,
.report-by-date tr:hover {
    background-color: #f5f5f5;
}

.bg-sales-report th,
.report-by-event th,
.report-by-date th {
    padding: 10px;
    border: 1px solid #ddd;
    text-align: left;
    background-color: #f8f8f8;
    font-weight: 600;
}

.report-by-event td,
.report-by-date td {
    padding: 8px;
    border: 1px solid #ddd;
    text-align: left;
}

.bg-sales-report .bg-id,
.report-by-event .bg-id,
.report-by-date .bg-id {
    width: 30px;
    max-width: 30px;
    min-width: 30px;
    padding: 5px;
}

.bg-sales-report .bg-price,
.report-by-event .bg-price,
.report-by-date .bg-price {
    text-align: right;
    width: 80px;
}

.payment-status {
    padding: 4px 8px;
    border-radius: 4px;
    display: inline-block;
    font-weight: 600;
}

.completed {
    background-color: #dff0d8;
    color: #3c763d;
}

.failed {
    background-color: #f2dede;
    color: #a94442;
}

.refunded {
    background-color: rgba(255, 235, 150, 0.5);
    color: #000000;
    }

.da-pagare {
    background-color: #fcf8e3;
    color: #8a6d3b;
}

.bg-sales-report td {
    border: 1px solid #ddd;
    padding: 10px;
    text-align: left;
}

.bg-sales-report .bg-date {
    width: 130px;
}
.bg-sales-report .bg-type {
    width: auto;
    min-width: 100px;
    max-width: none;
    text-align: left;
    line-height: 1.4;
    white-space: nowrap;
}

.bg-sales-report thead th {
    background: #e9e9e9;
    text-align: center !important;
}

.bg-sales-report .bg-tickets {
    text-align: left;
    width: 70px;
    line-height: 1.2;
}

.bg-sales-report .bg-n_tickets {
    width: 50px;
    max-width: 50px;
    text-align: center;
  }

.bg-sales-report .bg-status {
    width: 55px;
}

.bg-sales-report th.sortable {
    cursor: pointer;
    position: relative;
    padding-right: 20px !important;
    text-align: center !important;
}
.bg-sales-report th.sortable:after {
    content: '⇕';
    position: absolute;
    right: 5px;
    color: #999;
}
.bg-sales-report th.sorting-asc:after {
    content: '↑';
    color: #333;
}
.bg-sales-report th.sorting-desc:after {
    content: '↓';
    color: #333;
}

.bg-sales-report tr.bg-report-row.even {
    background-color: #f9f9f9;
}

.bg-sales-report tr.bg-report-row.odd {
    background-color: #ffffff;
}

.bg-sales-report tr.bg-report-row:hover {
    background-color: #f5f5f5;
}

.tablenav.bottom {
    clear: both;
    margin: 8px 0;
    min-height: 30px;
    display: block !important;
}
.tablenav-pages {
    float: right;
    margin: 0 0 9px;
    display: flex;
    align-items: center;
}
.tablenav-pages .pagination-links {
    display: inline-flex;
    align-items: center;
    gap: 5px;
    margin-left: 15px;
}
.tablenav-pages .button {
    min-width: 30px;
    height: 30px;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    padding: 0 3px;
    text-decoration: none;
}
.tablenav-pages .button.disabled {
    color: #a0a5aa !important;
    border-color: #ddd !important;
    background: #f7f7f7 !important;
    box-shadow: none !important;
    cursor: default;
    pointer-events: none;
}
.tablenav-pages .current-page {
    width: 50px;
    height: 28px;
    text-align: center;
    padding: 0 5px;
}
.tablenav-pages .displaying-num {
    margin-right: 10px;
    color: #555;
}
.paging-input {
    display: inline-flex;
    align-items: center;
    gap: 5px;
}

.report-by-date form,
.report-by-event form,
.report-by-client form,
.report-by-customer form {
    max-width: 100%;
    box-sizing: border-box;
    padding: 10px;
}

.report-by-date select,
.report-by-date input[type="date"],
.report-by-date input[type="text"],
.report-by-event select,
.report-by-event input[type="date"],
.report-by-event input[type="text"],
.report-by-client select,
.report-by-client input[type="date"],
.report-by-client input[type="text"],
.report-by-customer select,
.report-by-customer input[type="date"],
.report-by-customer input[type="text"] {
    max-width: 100%;
    width: 100%;
    box-sizing: border-box;
    margin-bottom: 10px;
}

.report-by-date input[type="checkbox"],
.report-by-event input[type="checkbox"],
.report-by-client input[type="checkbox"] {
    margin: 0 5px 0 0;
}

.report-by-date label,
.report-by-event label,
.report-by-client label,
.report-by-customer label {
    display: block;
    margin-bottom: 5px;
}

.bg-message.error-thanks {
    display: none; 
}

.bg-message.error-thanks:not(:empty) {
    display: block; 
    background: #800900;
    color: #fff;
    padding: .75em 1em !important;
    margin-bottom: .5em;
    font-size: 1.1em;
    border-radius: 3px;
}

.bg-message {
    background: #800900;
    color: #fff;
    padding: .75em 1em !important;
    margin-bottom: .5em;
    font-size: 1.1em;
    border: 2px solid;
}
.bg-message.success {
    border-color: green;
}
.bg-message.error {
    border-color: #800900;
}
.bg-message.admin-message {
    background: #e8f5e9;
    margin-left: 20px;
}
.bg-message.user-message {
    background: #e3f2fd;
    margin-right: 20px;
}
.bg-message-header {
    display: flex;
    justify-content: space-between;
    margin-bottom: 5px;
    font-size: 12px;
    color: #666;
}

.bg-error-notice {
    color: #ff0000;
    font-weight: bold;
    margin: 10px 0;
    padding: 10px;
    background-color: #ffe6e6;
    border: 1px solid #ff0000;
    border-radius: 4px;
    display: none;
}

.bg-cart-error {
    background-color: #fff;
    border-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: #fff;
    background-color: #800900;
    padding: 12px;
    margin: -25px -24px -8px -24px;
    border-radius: 8px 8px 0 0;
    font-size: 18px;
    line-height: 1.2;
}

/* Rimosse 2026-05-28: regole legacy popup conflitto carrello.
 * .bg-cart-buttons a.button / .bg-clear-cart-button / .bg-goto-cart-button
 * NON pi usate dopo l'eliminazione del flusso multi-evento. La regola
 * base .bg-cart-buttons (display:flex) sopra resta per il bottone
 * Modifica Prenotazione (.bg-goto-modify-button) che la usa ancora. */

@media screen and (max-width: 480px) {
    .bg-cart-error {
        margin: 10px;
        padding: 16px;
    }
}

.bg-tabs {
    margin-top: 1em;
}
.bg-tabs .tabs {
    margin: 0 !important;
    padding: 0 4px;
    position: relative;
    top: 1px;
}
.bg-tabs .tabs li {
    display: inline;
    margin: 0 auto;
    line-height: 1;
}
.bg-tabs .tabs a {
    display: inline-block;
    padding: 8px 10px;
    border-radius: 4px 4px 0 0;
    border: 1px solid #ccc;
    background: #f3f3f3;
}
.bg-tabs .tabs a.active {
    border-bottom: 1px solid #fefefe;
    background: #fefefe;
}
.bg-tabs .wptab {
    background: #fff;
    padding: 12px;
    margin-bottom: 10px;
    border: 1px solid #ccc;
}

.bg-report-selector {
    display: flex;
    flex-wrap: wrap;
    gap: 20px;
    margin: 20px 0;
    width: 100%;
}
.report-by-date,
.report-by-customer,
.report-by-event {
    flex: 1;
    min-width: 300px;
    margin: 0;
    padding: 20px;
    background: #fff;
    border: 1px solid #e2e4e7;
    border-radius: 8px;
    box-shadow: 0 1px 3px rgba(0, 0, 0, 0.1);
}

.report-by-date h3,
.report-by-customer h3,
.report-by-event h3 {
    margin: 0 0 20px 0;
    padding-bottom: 15px;
    color: #23282d;
    font-size: 1.2em;
    font-weight: 600;
    border-bottom: 2px solid #e2e4e7;
}

.bg-report-summary {
    max-width: 330px;
    margin: 20px 0;
    padding: 12px;
    background: #fff;
    border: 1px solid #e2e4e7;
    border-radius: 4px;
    box-shadow: 0 1px 2px rgba(0,0,0,0.05);
}
.bg-report-summary ul {
    margin: 0;
    padding: 0;
    list-style: none;
}
.bg-report-summary li {
    margin: 4px 0;
    padding: 4px 0;
    border-bottom: 1px solid #f0f0f1;
}

.bg-filter-available {
    margin: 10px 0;
    padding: 5px;
    background: #f9f9f9;
    border: 1px solid #ddd;
    border-radius: 3px;
}
.bg-filter-available label {
    display: flex;
    align-items: center;
    gap: 8px;
    cursor: pointer;
}

.mt {
    color: #fff;
    background: #000;
    padding: 2px 4px;
    border-radius: 3px;
    width: 6em;
    display: inline-block;
    box-shadow: 1px 1px #333;
    text-shadow: none;
}
.pending {
    background: #009;
}
.refunded {
    background: rgba(255, 235, 150, 0.5);

}
.failed {
    background: #f00;
}
.completed {
    background: #070;
}
.other {
    background: #555;
}

.bg-response-processing:after {
    overflow: hidden;
    display: inline-block;
    vertical-align: bottom;
    animation: ellipsis steps(4,end) 900ms infinite;
    content: "\2026";
    width: 0px;
}
@keyframes ellipsis {
    to {
        width: 20px;
    }
}

/* .bg-payment-methods, .widefat.bg-pricing, .bg-pricing tr.fade,
   .widefat .bg-controls .button: regole spostate in css/mybo-event-edit.css */

.bg-trigger-container {
    background: #00000007;
    border-radius: 5px;
}

.widefat.bg-discounts .delete-code .dashicons {
    color: #800900;
}
.widefat.bg-discounts tbody th {
    vertical-align: top;
}

.bg-owed {
    font-size: 1.5em;
    font-weight: 700;
    text-align: center;
    margin: .5em 0;
    padding: .5em;
    background: rgba(255, 255, 70, .3);
}

/* .bg_post_fields .bg-field: regole spostate in css/mybo-event-edit.css */

#bg_paid,
#bg_status {
    width: 6em;
}
#bg_receipt {
    width: 18em;
}
.bg_paid,
.bg_status,
.bg_receipt {
    text-align: center;
    vertical-align: middle;
}
#bg_send_subject,
#bg_send_email,
#bg_subject,
#bg_email {
    width: 100%;
}
.bg-emails,
.bg-names {
    display: flex;
    flex-wrap: wrap;
    align-items: top;
    column-gap: 20px;
    margin-bottom: 20px;
}
.bg-emails input,
.bg-names input {
    width: 100%;
}

.bg-help li {
    list-style-type: disc;
    margin-left: 2em;
}
.admin-bar .bg_sandbox_enabled {
    top: 32px;
}

.panels:after {
    content: '';
    display: table;
    clear: both;
}
.panel {
    border-bottom: 1px solid rgba(0, 0, 0, .2);
    margin: .5em 0 1em;
}
.panel .inner {
    padding: 0 0 .5em;
}
.panel .inner h4 {
    padding: .2em;
    margin: 0 0 1.33em;
    background: #fff;
}

.tickets-remaining.hiding,
.hiding .tickets-remaining {
    display: none;
}

.ticket-orders label {
    display: inline-block;
    width: 10em;
    margin-right: .5em;
}

.bg-ticket-quantity-wrapper {
    display: flex;
    align-items: center;
    gap: 4px;
    margin-right: 10px;
}

input[type="number"].bg-ticket-quantity {
    appearance: none;
    -webkit-appearance: none !important;
    -moz-appearance: textfield !important;
    text-align: center;
    width: 45px;
    height: 30px;
    padding: 0 5px;
    border: 1px solid rgba(255,255,255,0.2);
    border-radius: 4px;
    background: rgba(255,255,255,0.1);
    color: #fff;
    font-size: 14px;
    margin: 0;
}
input[type="number"].bg-ticket-quantity::-webkit-inner-spin-button,
input[type="number"].bg-ticket-quantity::-webkit-outer-spin-button {
    -webkit-appearance: none !important;
    appearance: none !important;
    margin: 0 !important;
    display: none !important;
}

   .bg-thank-you-page {
    max-width: 1200px;
    margin: 40px auto;
    padding: 30px;
    background: #1c1c1c;
    border-radius: 10px;
    box-shadow: 0 2px 20px rgba(0,0,0,0.3);
    text-align: center;
    border: 1px solid #333;
}

.bg-thank-you-header {
    background: #2271b1;
    margin: -50px -31px 25px -31px;
    padding: 20px 20px;
    border-radius: 10px 10px 0 0;
    color: white;
}

.bg-thank-you-icon {
    width: 65px;
    height: 65px;
    line-height: 65px;
    font-size: 40px;
    background: rgba(255,255,255,0.1);
    color: white;
    border-radius: 50%;
    margin: 0 auto 0px;
    border: 2px solid rgba(255,255,255,0.2);
   
}

.bg-thank-you-header h1 {
    font-size: 36px;
    color: white;
    margin: 0 0 10px;
}
.bg-subtitle {
    font-size: 18px;
    color: rgba(255,255,255,0.9);
    margin: 0;
}

.bg-order-details h2 {
    font-size: 24px;
    color: #fff;
}
.bg-order-grid {
    /* Layout a colonne configurabile dalla pagina Personalizza (tab Carrello,
     * group "row_columns") via --mybo-cart-thanks-row-cols. Default 5 colonne:
     * i 5 box del riepilogo stanno tutti su una riga sola.
     * NB: numero di colonne ESPLICITO (non auto-fit) — con auto-fit il 5° box
     * andava a capo appena il contenitore scendeva sotto la soglia. */
    display: grid;
    grid-template-columns: repeat(var(--mybo-cart-thanks-row-cols, 5), minmax(0, 1fr));
    gap: var(--mybo-cart-thanks-row-gap, 16px);
    margin-bottom: 30px;
}
.bg-detail-box {
    background: var(--mybo-cart-thanks-box-bg, #1c1c1c);
    padding: var(--mybo-cart-thanks-box-padding, 16px);
    border-radius: var(--mybo-cart-thanks-box-radius, 8px);
    box-shadow: 0 2px 10px rgba(0,0,0,0.2);
    border: var(--mybo-cart-thanks-box-border-width, 1px) solid var(--mybo-cart-thanks-box-border-color, #333);
}
.bg-detail-label {
    font-size: var(--mybo-cart-thanks-label-size, 13px);
    color: var(--mybo-cart-thanks-label-color, #999);
    margin-bottom: 8px;
}
.bg-detail-value {
    font-size: var(--mybo-cart-thanks-value-size, 17px);
    color: var(--mybo-cart-thanks-value-color, #fff);
    font-weight: 600;
}
.bg-ticket-button-container {
    margin-top: 30px;
}
.bg-ticket-button {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    padding: 15px 30px;
    background: #2271b1;
    color: white !important;
    text-decoration: none;
    border-radius: 8px;
    font-size: 18px;
    font-weight: 600;
    transition: all 0.3s ease;
    border: 1px solid rgba(255,255,255,0.1);
}
.bg-ticket-button:hover {
    background: #135e96;
    transform: translateY(-2px);
    box-shadow: 0 4px 15px rgba(0,0,0,0.3);
    border-color: rgba(255,255,255,0.2);
}
.bg-ticket-icon {
    font-size: 24px;
    margin-right: 10px;
}

.ticket-container {
    display: flex;
    flex-wrap: wrap;
    gap: 20px;
    max-width: 1200px;
    margin: 0 auto;
    padding: 20px;
}
.ticket-details {
    flex: 1;
    min-width: 300px;
    max-width: calc(50% - 10px);
    box-sizing: border-box;
}
.ticket-info {
    background: #fff;
    padding: 20px;
    border-radius: 8px;
    box-shadow: 0 2px 4px rgba(0,0,0,0.1);
    margin-bottom: 20px;
}
.theater-address {
    margin: 20px 0;
    line-height: 1.6;
}

button[name="bg_add_to_cart"].bg-invalid-purchase {
    background-color: #800900 !important;
    color: #ffffff !important;
    cursor: not-allowed;
    line-height: 1.4;
    white-space: normal;
    padding: 15px;
    display: flex;
    flex-direction: column;
    justify-content: center;
    align-items: center;
    min-height: 60px;
}
button[name="bg_add_to_cart"].bg-invalid-purchase:hover {
 background-color: #800900 !important;
}
.bg-purchaser {
    width: auto;
    min-width: 120px;
    max-width: none;
    white-space: nowrap;
}

.sortable-table th.sortable {
    cursor: pointer;
    position: relative;
    padding-right: 20px;
}
.sortable-table th.sortable .sort-icon {
    position: absolute;
    right: 5px;
    top: 50%;
    transform: translateY(-50%);
    width: 0;
    height: 0;
    border-left: 5px solid transparent;
    border-right: 5px solid transparent;
}
.sortable-table th.sortable:hover .sort-icon {
    border-top: 5px solid #999;
}
.sortable-table th.sortable.asc .sort-icon {
    border-bottom: 5px solid #333;
}
.sortable-table th.sortable.desc .sort-icon {
    border-top: 5px solid #333;
}
.sortable-table th.asc {
    background-color: #f0f0f0;
}
.sortable-table th.desc {
    background-color: #f0f0f0;
}
.sortable-table tbody tr:hover {
    background-color: #f5f5f5;
}

.table-container {
    margin-bottom: 20px;
    position: relative;
}

.table-container + .tablenav.bottom {
    display: block !important;
}
.wrap {
    overflow: visible !important;
}
#post-body-content {
    margin-bottom: 20px;
}
.metabox-holder {
    clear: both;
}
body.wp-admin {
    --wp-admin-theme-width: calc(100% - 300px);
}

body.post-type-bg-payments .notice.e-notice,
body.post-type-bg-tickets .notice.e-notice,
#wrap.biglietteria .notice.e-notice {
    display: none !important;
}

body.post-type-bg-payments .notice.e-notice.e-notice--dismissible.e-notice--extended,
body.post-type-bg-tickets .notice.e-notice.e-notice--dismissible.e-notice--extended,
.biglietteria .notice.e-notice.e-notice--dismissible.e-notice--extended {
    display: none !important;
}

.postbox-container.full-width {
    width: calc(100% - 10px);
}

.extra-info-item {
    padding: 3px 0;
    border-bottom: 1px solid #eee;
    font-size: 13px;
    line-height: 1.4;
}
.extra-info-item:last-child {
    border-bottom: none;
}
.extra-info-item strong {
    color: #666;
    margin-right: 5px;
}
table.wp-list-table .column-extra_info {
    width: 20%;
    min-width: 200px;
}

.bg-sales-report .bg-type br + * {
    margin-top: 3px;
}
.bg-sales-report .bg-type .bg-money-format {
    color: #666;
    font-size: 0.95em;
}
.bg-summary-label {
    color: #666;
    font-size: 14px;
}
.bg-summary-value {
    font-size: 14px;
}
.bg-summary-value strong {
    color: #000;
    font-size: 16px;
    font-weight: 600;
}

.ui-tabs {
    padding: 0;
    border: none;
    background: transparent;
}
.ui-tabs .ui-tabs-nav {
    padding: 0;
    border: none;
    background: transparent;
    border-bottom: 1px solid #ccc;
    margin-bottom: 20px;
}
.ui-tabs .ui-tabs-nav li {
    margin: 0 4px -1px 0;
    border-color: #ccc;
    background: #e5e5e5;
}
.ui-tabs .ui-tabs-nav li.ui-tabs-active {
    background: #fff;
    border-bottom: 1px solid #fff;
}
.ui-tabs .ui-tabs-nav li a {
    padding: 8px 12px;
    outline: none;
    color: #555;
    text-decoration: none;
}
.ui-tabs .ui-tabs-nav li.ui-tabs-active a {
    color: #000;
}
.ui-tabs .ui-tabs-panel {
    padding: 20px 0;
    border: none;
    background: transparent;
}
.bg-settings-section {
    display: block;
    margin-bottom: 20px;
}
.bg-settings-section.hidden {
    display: none;
}

#bg_debug_container {
    margin: 20px 0;
    padding: 15px;
    border: 1px solid #ddd;
    border-radius: 4px;
    background-color: #f9f9f9;
    max-height: 500px;
    overflow: auto;
}

#bg_debug_container h3 {
    margin-top: 0;
    border-bottom: 1px solid #ddd;
    padding-bottom: 10px;
    color: #23282d;
}

#bg_debug_results {
    margin-top: 15px;
    max-height: 300px;
    overflow-y: auto;
    padding: 10px;
    background-color: #fff;
    border: 1px solid #e5e5e5;
    border-radius: 3px;
}

/* Rimossi 2026-05-28: .bg-clear-cart-button / .bg-clear-cart-form legacy
 * (popup conflitto carrello multi-evento gi eliminato). */

.bg-booking-form {
    max-width: 800px;
    margin: 0 auto;
    padding: 20px;
    background: #ffffff;
    border-radius: 8px;
    box-shadow: 0 2px 10px rgba(0,0,0,0.1);
}

.info_extra {
    align-items: stretch;
    column-gap: 20px;
    display: flex;
    flex-wrap: nowrap;
    justify-content: space-between;
    margin: 20px 0;
}

.bg-payment-method {
    flex: 1;
    padding: 15px;
    border: 2px solid #ddd;
    border-radius: 6px;
    text-align: center;
    cursor: pointer;
    transition: all 0.3s ease;
}

.bg-payment-method:hover {
    border-color: #2271b1;
    background: #f8f8f8;
}

.bg-payment-method.active {
    border-color: #2271b1;
    background: #f0f7ff;
}

.bg-payment-method.bottega {
    background-color: #666;
    color: white;
}

.bg-payment-method.paypal {
    background-color: #0070ba;
    color: white;
}

/* Box Ricevuta Biglietti — TUTTE le proprietà via var() così l'admin può
   sovrascriverle dalla pagina Personalizza (gruppo ticket_info_message). */
.bg-ticket-info {
    margin: var(--mybo-cart-tim-margin, 20px 0);
    padding: var(--mybo-cart-tim-padding, 15px);
    background: var(--mybo-cart-tim-bg, transparent);
    color: var(--mybo-cart-tim-color, #d80f00);
    font-size: var(--mybo-cart-tim-size, 14px);
    font-family: var(--mybo-cart-tim-font, inherit);
    font-weight: var(--mybo-cart-tim-weight, 400);
    text-align: var(--mybo-cart-tim-align, center);
    text-transform: var(--mybo-cart-tim-transform, none);
    letter-spacing: var(--mybo-cart-tim-letter-spacing, 0);
    line-height: var(--mybo-cart-tim-line-height, 1.4);
    max-width: var(--mybo-cart-tim-max-width, 100%);
    border: var(--mybo-cart-tim-border-width, 0) solid var(--mybo-cart-tim-border-color, transparent);
    border-radius: var(--mybo-cart-tim-radius, 0);
    box-shadow: var(--mybo-cart-tim-shadow, none);
}

.payment-method-title {
    text-align: center;
    font-size: 1.2em;
    margin: 20px 0 10px;
    color: #fff;
}

.bg_cart_form input[type="text"],
.bg_cart_form input[type="email"] {
    width: 500px;
    padding: 10px;
    margin-bottom: 0px;
    border: 1px solid #ddd;
    border-radius: 4px;
    font-size: 16px;
    color:#800900
}

.ticket-type-message {
    text-align: var(--mybo-cart-tim-align, center);
    font-size: var(--mybo-cart-tim-size, 18px);
}

.pac-icon,
.pac-item-query + span {
    display: none !important;
}

#billing_address_1 {
    position: relative;
    z-index: 1000;
}

.pac-container:after {
    display: none !important;
}

.bg_cart caption {
    font-weight: 700;
    text-align: center;
    font-size: 3.2em;
}

.bg-payment-form input.button, input[type="submit"] {
    display: inline-block;
    text-align: center;
    white-space: nowrap;
    color: #FFFFFF;
    text-decoration: none;
    line-height: 1.2;
    font-weight: normal;
    font-family: sans-serif;
    font-size: 18px;
    background-color: #890505;
    border-radius: 4px;
    padding: 10px 20px;
    border: 1px solid #ffffff;
    cursor: pointer;
    text-transform: uppercase;
}
.bg-payment-form input.button:hover, input[type="submit"]:hover {
 background-color: #580303;
 }
.bg-payment-form input.button > strong,  input[type="submit"] > strong {
 font-size: 24px;
}

.bg-payment-form {
    text-align: right;
    margin-top: 25px;
}

.bg-emails, .bg-names {
    display: flex;
    flex-wrap: wrap;
    align-items: top;
    column-gap: 30px;
    margin-bottom: 0px;
}

.bg-emails input, .bg-names input, input#bg_phone {
    color: black;
}

.bg-message {
    padding: 0.75em 10% !important;
}

.column-status .mt,
.payment-status {
    display: inline-block;
    padding: 4px 8px;
    border-radius: 4px;
    color: #fff;
    font-size: 12px;
    font-weight: 600;
    text-align: center;
    min-width: 80px;
}

.column-status .mt.pending,
.payment-status.pending {
    background-color: #0073aa;
}

.column-status .mt.completed,
.payment-status.completed {
    background-color: #46b450;
}

.column-status .mt.failed,
.payment-status.failed {
    background-color: #dc3232;
}

.column-status .mt.refunded,
.payment-status.refunded {
    background-color: #ffb900;
}

.column-status .mt.partially-refunded,
.payment-status.partially-refunded {
    background-color: #ff8c00;
    color: #fff;
}

.column-status .mt.free,
.payment-status.free {
    background-color: #17a2b8;
    color: #fff;
}

.column-status .mt.turned-back,
.payment-status.turned-back,
.column-status .mt.turned,
.payment-status.turned {
    background-color: #343a40;
    color: #fff;
}

.offline {
    color: #666;
    font-size: 12px;
    font-style: italic;
}

/* Nascondi titoli page-title generici nella pagina di ringraziamento.
   Selettori GENERICI WordPress — autonomi da qualsiasi tema/page builder. */
body.bg-response-thanks .entry-header,
body.bg-response-thanks .page-header,
body.bg-response-thanks header.page-header,
body.bg-response-thanks .entry-title,
body.bg-response-thanks .page-title,
body.bg-response-thanks h1.entry-title,
body.bg-response-thanks h1.page-title,
body.bg-response-thanks .post-title,
body.bg-response-thanks .mybo-page-title,
body.bg-response-thanks .mybo-page-title-container {
    display: none !important;
}

#dati-cf {
    margin-bottom: 20px;
    clear: both;
    width: 100%;
    float: left;
}

#dati-cf input[readonly] {
    background-color: #e9ecef !important;
    border: 1px solid #dee2e6 !important;
    color: #495057 !important;
    cursor: not-allowed !important;
    pointer-events: none !important;
    user-select: none !important;
    -webkit-user-select: none !important;
    -moz-user-select: none !important;
    -ms-user-select: none !important;
    opacity: 0.8 !important;
}

#dati-cf label {
    color: #6c757d !important;
    user-select: none !important;
    -webkit-user-select: none !important;
    -moz-user-select: none !important;
    -ms-user-select: none !important;
    display: block;
    margin-bottom: 5px;
}

/* Riquadro dei dati ricavati dal codice fiscale. La regola c'era, ma sul nome
   di classe del vecchio negozio: tolta con quel giro, e rimessa qui col nome
   nostro insieme alla rinomina in includes/mybo-cf-user-flow.php. */
#dati-cf .mybo-extra-fields {
    margin-bottom: 20px;
}

#cf-error {
    color: #dc3545;
    margin-top: 5px;
    padding: 8px;
    border-radius: 4px;
    background-color: #f8d7da;
    border: 1px solid #f5c6cb;
}

#cf-loading {
    color: #004085;
    margin-top: 5px;
    padding: 8px;
    border-radius: 4px;
    background-color: #cce5ff;
    border: 1px solid #b8daff;
}

#codice_fiscale {
    text-transform: uppercase;
}

.pac-container {
    z-index: 9999;
    font-family: -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, "Helvetica Neue", Arial, sans-serif;
    border-radius: 4px;
    box-shadow: 0 2px 6px rgba(0, 0, 0, 0.15);
    border: 1px solid #dee2e6;
    margin-top: 2px;
    background-color: #fff;
    width: auto !important;
    min-width: 300px;
}

.pac-item {
    padding: 8px 12px;
    cursor: pointer;
    font-size: 14px !important;
    line-height: 1.4 !important;
    border-top: 1px solid #f0f0f0;
    display: flex;
    align-items: center;
}

.pac-item:first-child {
    border-top: none;
}

.pac-item:hover {
    background-color: #f8f9fa;
}

.pac-icon {
    display: none;
}

.pac-item-query {
    font-size: 14px !important;
    color: #333;
    padding-right: 3px;
    margin-right: 0;
    flex: 1;
}

.pac-matched {
    font-weight: bold;
    color: #0056b3;
}

.pac-logo:after {
    display: none;
}

#billing_city:disabled,
#billing_state:disabled {
    background-color: #f8f9fa;
    border-color: #dee2e6;
    color: #6c757d;
    opacity: 0.75;
    pointer-events: none;
    user-select: none;
}

#billing_city:disabled::selection,
#billing_state:disabled::selection {
    background: none;
}

#billing_city,
#billing_state {
    background-color: #f8f9fa;
    border-color: #dee2e6;
    color: #495057;
}

#billing_city:focus,
#billing_state:focus {
    background-color: #f8f9fa;
    border-color: #dee2e6;
    box-shadow: none;
}

#form-registrazione {
    display: inline-table;
}

/* .bg-discount-table e regole correlate: spostate in css/mybo-event-edit.css */

.bg-discount-message {
    margin-top: 10px;
    padding: 8px 12px;
    border-radius: 4px;
    background-color: #e8f5e9;
    color: #2e7d32;
    border: 1px solid #c8e6c9;
}

.bg-success {
    background-color: #e8f5e9;
    color: #2e7d32;
    border: 1px solid #c8e6c9;
}

.bg-error {
    background-color: #ffebee;
    color: #c62828;
    border: 1px solid #ffcdd2;
}

.bg-loading {
    color: #666;
    font-style: italic;
}

.bg_total_number {
    font-size: 1.2em;
    font-weight: 600;
    color: #0069bf;
}

#arm_form_field_container_108:before {
	display:block;
	content:"Username: demo —  Password: demo";
	text-align:center;
	font-size:13px;
	padding:0px 0px 15px 0px;
}

body.page-id-15 .arm_form_field_container_password {display:none !important;}

.arm_field_file_display .armFileRemoveContainer {color:#ffffff !important;}

div#woo_pp_ec_button_checkout {
    text-align: center;
}

/* Lascito del vecchio sistema di vendita (la regola era agganciata al page ID
   di Elementor): stila i bottoni "Aggiungi al carrello" nelle griglie prodotti,
   oggi tramite le classi proprietary mybo-*. */
.mybo-product-grid .button {
  color: #FFFFFF;
  background-color: #7c0800;
  border-color: #000000;
  border-radius: 0;
  padding: 15px 25px;
  margin-top: 0;
}

div#wpestream_live_counting {
    display: none !important;
}

.product-thumbnail {
    width: 15%;
}

/* MIGRATO da .elementor-448 → selettore generico. */
.mybo-product-grid-button,
.mybo-product-grid .button {
    text-transform: uppercase;
}

.entry-content > .container,
main.site-main > .container,
.bg-cart-page > .container,
.width-container-pro {
    width: 100%;
}

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

.cart-empty {
  width: 80%;
  margin: auto;
  text-align: center;
  font-size: 25px;
}

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

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

a.button.product_type_simple {
  display: block;
    background-color: #7c0800 !important;
    border-radius: 0px;
    min-width: 80px;
    min-height: 47px;
    line-height: 47px;
    right: auto;
    left: 0;
    margin: 12% 0px 0 0;
}

/* Lascito del vecchio sistema di vendita (la regola era agganciata al page ID
   di Elementor): stila i bottoni "Aggiungi al carrello" nelle griglie prodotti,
   oggi tramite le classi proprietary mybo-*. */
.mybo-product-grid .button {
  color: #FFFFFF;
  background-color: #7c0800;
  border-color: #000000;
  border-radius: 0;
  padding: 15px 25px;
  margin-top: 0;
}

#box_prenotazione_Spettacoli {
  background: white;
  margin-top: -8px;
  width: 100%;
  max-width: 100%;
  font-size: 15px;
}

#Box_data_Spettacoli {
  background: #000 none repeat scroll 0 0;
  border: 0px solid #fff;
  border-radius: 0%;
  -webkit-border-radius: 0px;
  -moz-border-radius: 0;
  opacity: 1 !important;
  color: #000;
  height: auto;
  margin: 2px;
  padding: 5px;
  width: 95px;
  z-index: 1000000;
}

.giorno_settimana_Spettacoli {
  color: #fff;
  font-size: 85%;
  line-height: 0;
  text-transform: uppercase;
  text-align: center;
  border: 0;
}

.giorno_Spettacoli {
  color: #de0000;
  display: block;
  font-size: 200%;
  font-weight: bold;
  line-height: 0.2;
  margin-bottom: 0px;
  text-align: center;
  border: 0;
}
.mese_Spettacoli {
  color: #fff;
  font-size: 70%;
  text-transform: uppercase;
  text-align: center;
  line-height: 0;
  border: 0;
}
.anno_Spettacoli {
  color: #fff;
  font-size: 85%;
  text-transform: uppercase;
  text-align: center;
  line-height: 0;
  border: 0;
}
.ore_scritta_Spettacoli {
  color: #fff;
  font-size: 70%;
  text-align: center;
  line-height: 0;
  border: 0;
}
.TabDataSpettacoli {
  padding: 0;
}
.TabDettagliSpettacoli {
  padding: 0;
  width: 100%;
}

.sp_titolo {
  padding: 5px 5px 5px 0px;
}
.sp_sottotitolo {
  line-height: 1;
  border: 0;
  color: black;
  text-align: center;
  padding: 0;
}

.sp_prezzo {
  padding: 0;
  color: black;
}

.sp_genere {
  color: black;
  line-height: 1;
  text-align: center;
  font-size: 80%;
  padding: 0;
}

/* Lascito del vecchio sistema di vendita: selettore generico per le miniature
   dei prodotti (la regola era agganciata al page ID di Elementor). */
.mybo-product-grid-thumbnail {
  margin-bottom: -54px !important;
}

/* Lascito del vecchio sistema di vendita (la regola era agganciata al page ID
   di Elementor): stila i bottoni "Aggiungi al carrello" nelle griglie prodotti,
   oggi tramite le classi proprietary mybo-*. */
.mybo-product-grid .button {
  color: #FFFFFF;
  background-color: #7c0800;
  border-color: #000000;
  border-radius: 0;
  padding: 15px 25px;
  margin-top: 0;
}

/* Lascito del vecchio sistema di vendita: bordo bianco intorno alle miniature
   dei prodotti (la regola era agganciata al page ID di Elementor). */
.mybo-product-grid-thumbnail {
  border-style: solid;
  border-width: 3px;
  border-color: #FFFFFF;
  border-radius: 0;
  margin-bottom: 0;
}

.spett_magia #box_prenotazione_Spettacoli {
  margin-top: -8px!important;
}

#Box_dettagli_Spettacoli {
  padding: 0 !important;
  margin: 0;
}

@media (max-width: 767px) {
  
  #box_prenotazione_Spettacoli {
  background: white;
  margin-top: -8px;
  width: 100%;
  max-width: 100%;
  font-size: 15px;
}

#Box_data_Spettacoli {
  background: #000 none repeat scroll 0 0;
  border: 0px solid #fff;
  border-radius: 0%;
  -webkit-border-radius: 0px;
  -moz-border-radius: 0;
  opacity: 1 !important;
  color: #000;
  height: auto;
  margin: 2px;
  padding: 5px;
  width: 108px;
  z-index: 1000000;
}

.giorno_settimana_Spettacoli {
  color: #fff;
  font-size: 85%;
  line-height: 0;
  text-transform: uppercase;
  text-align: center;
  border: 0;
}

.giorno_Spettacoli {
  color: #de0000;
  display: block;
  font-size: 200%;
  font-weight: bold;
  line-height: 0.2;
  margin-bottom: 0px;
  text-align: center;
  border: 0;
}
.mese_Spettacoli {
  color: #fff;
  font-size: 80%;
  text-transform: uppercase;
  text-align: center;
  line-height: 0;
  border: 0;
}
.anno_Spettacoli {
  color: #fff;
  font-size: 85%;
  text-transform: uppercase;
  text-align: center;
  line-height: 0;
  border: 0;
}
.ore_scritta_Spettacoli {
  color: #fff;
  font-size: 80%;
  text-align: center;
  line-height: 0;
  border: 0;
}
.TabDataSpettacoli {
  padding: 0;
}
.TabDettagliSpettacoli {
  padding: 0;
  width: 100%;
}

.sp_titolo {
  font-size: 160%;
  padding: 5px 5px 5px 0px;
}
.sp_sottotitolo {
  line-height: 1;
  border: 0;
  color: black;
  text-align: center;
  padding: 0;
  font-size: 110%;
}

.sp_prezzo {
  padding: 0;
  color: black;
}

.sp_genere {
  color: black;
  line-height: 1;
  text-align: center;
  font-size: 80%;
  padding: 0;
}
}

.btn-registrati {
    display: inline-block !important;
    padding: 2px 10px;
    background-color: #28a745;
    color: #ffffff !important;
    text-decoration: none !important;
    border-radius: 2px;
    font-weight: bold;
    font-size: 23px !important;
    text-align: center;
}

.btn-registrati:hover {
    background-color: #218838 !important; 
    color: #ffffff !important; 
    text-decoration: none !important; 
}

@media (max-width: 768px) {
    .btn-registrati {
        display: inline-block; 
        margin-left: 5px; 
    }
}

.widefat.bg-sales-report tbody tr.bg-report-row.completed,
.widefat.bg-sales-report tbody tr.completed,
.report-by-event table.widefat tbody tr.bg-report-row.completed,
.report-by-event table.widefat tbody tr.completed,
.report-by-date table.widefat tbody tr.bg-report-row.completed,
.report-by-date table.widefat tbody tr.completed,
.widefat.bg-sales-report tbody tr.bg-report-row.completed > td,
.widefat.bg-sales-report tbody tr.completed > td,
.report-by-event table.widefat tbody tr.bg-report-row.completed > td,
.report-by-event table.widefat tbody tr.completed > td,
.report-by-date table.widefat tbody tr.bg-report-row.completed > td,
.report-by-date table.widefat tbody tr.completed > td {
  background-color: #dff0d8 !important;
}
.widefat.bg-sales-report tbody tr.bg-report-row.completed:nth-child(even),
.widefat.bg-sales-report tbody tr.completed:nth-child(even),
.report-by-event table.widefat tbody tr.bg-report-row.completed:nth-child(even),
.report-by-event table.widefat tbody tr.completed:nth-child(even),
.report-by-date table.widefat tbody tr.bg-report-row.completed:nth-child(even),
.report-by-date table.widefat tbody tr.completed:nth-child(even),
.widefat.bg-sales-report tbody tr.bg-report-row.completed:nth-child(even) > td,
.widefat.bg-sales-report tbody tr.completed:nth-child(even) > td,
.report-by-event table.widefat tbody tr.bg-report-row.completed:nth-child(even) > td,
.report-by-event table.widefat tbody tr.completed:nth-child(even) > td,
.report-by-date table.widefat tbody tr.bg-report-row.completed:nth-child(even) > td,
.report-by-date table.widefat tbody tr.completed:nth-child(even) > td {
  background-color: #d4e9cd !important;
}

.widefat.bg-sales-report tbody tr.bg-report-row.failed,
.widefat.bg-sales-report tbody tr.failed,
.report-by-event table.widefat tbody tr.bg-report-row.failed,
.report-by-event table.widefat tbody tr.failed,
.report-by-date table.widefat tbody tr.bg-report-row.failed,
.report-by-date table.widefat tbody tr.failed,
.widefat.bg-sales-report tbody tr.bg-report-row.failed > td,
.widefat.bg-sales-report tbody tr.failed > td,
.report-by-event table.widefat tbody tr.bg-report-row.failed > td,
.report-by-event table.widefat tbody tr.failed > td,
.report-by-date table.widefat tbody tr.bg-report-row.failed > td,
.report-by-date table.widefat tbody tr.failed > td {
  background-color: #f8d7da !important;
}
.widefat.bg-sales-report tbody tr.bg-report-row.failed:nth-child(even),
.widefat.bg-sales-report tbody tr.failed:nth-child(even),
.report-by-event table.widefat tbody tr.bg-report-row.failed:nth-child(even),
.report-by-event table.widefat tbody tr.failed:nth-child(even),
.report-by-date table.widefat tbody tr.bg-report-row.failed:nth-child(even),
.report-by-date table.widefat tbody tr.failed:nth-child(even),
.widefat.bg-sales-report tbody tr.bg-report-row.failed:nth-child(even) > td,
.widefat.bg-sales-report tbody tr.failed:nth-child(even) > td,
.report-by-event table.widefat tbody tr.bg-report-row.failed:nth-child(even) > td,
.report-by-event table.widefat tbody tr.failed:nth-child(even) > td,
.report-by-date table.widefat tbody tr.bg-report-row.failed:nth-child(even) > td,
.report-by-date table.widefat tbody tr.failed:nth-child(even) > td {
  background-color: #f4c7cb !important;
}

.bg-discount-icon {
    display: inline-block;
    margin-right: 3px;
    cursor: help;
    font-size: 14px;
    vertical-align: middle;
}

.bg-discount-icon:hover {
    transform: scale(1.2);
    transition: transform 0.2s ease;
}

td.bg-price,
td.bg-paid {
    white-space: nowrap;
}

.bg-level-badge {
    display: inline-block;
    padding: 2px 6px;
    border-radius: 4px;
    font-size: 10px;
    font-weight: bold;
    color: white;
    cursor: help;
    vertical-align: middle;
    text-shadow: 0 1px 1px rgba(0,0,0,0.3);
    box-shadow: 0 1px 2px rgba(0,0,0,0.2);
    margin-right: 5px;
}

.bg-level-badge:hover {
    transform: scale(1.1);
    transition: transform 0.2s ease;
    box-shadow: 0 2px 4px rgba(0,0,0,0.3);
}

.bg-new-customer-badge {
    cursor: help;
    font-size: 1em;
    vertical-align: middle;
}

.introjs-tooltip {
    min-width: 350px;
    max-width: 500px !important;
    padding: 20px !important;
    border-radius: 8px !important;
    box-shadow: 0 10px 30px rgba(0,0,0,0.4) !important;
}

.introjs-tooltiptext {
    color: #1a1a1a !important; 
    font-size: 15px !important;
    line-height: 1.6 !important;
    font-weight: 400 !important;
    font-family: -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, Oxygen-Sans, Ubuntu, Cantarell, "Helvetica Neue", sans-serif;
}

.introjs-tooltip-header {
    color: #000 !important;
    font-weight: 700 !important;
    margin-bottom: 10px;
}

.introjs-button {
    font-size: 14px !important;
    padding: 8px 16px !important;
    font-weight: 600 !important;
    text-shadow: none !important;
    border-radius: 4px !important;
}

.introjs-nextbutton, .introjs-donebutton {
    background: #0073aa !important;
    color: #fff !important;
    border: none !important;
}

.introjs-nextbutton:hover, .introjs-donebutton:hover {
    background: #005177 !important;
}

.introjs-prevbutton {
    color: #555 !important;
    background: #f1f1f1 !important;
    border: 1px solid #ddd !important;
}

.introjs-arrow.top { border-bottom-color: #fff !important; }
.introjs-arrow.bottom { border-top-color: #fff !important; }
.introjs-arrow.left { border-right-color: #fff !important; }
.introjs-arrow.right { border-left-color: #fff !important; }
/* --- bg-forms.css --- */
/* Stili form specifici - gli stili comuni sono in bg-unified.css */

.bg_email_check {
    display: block;
}

.bg_email_check span {
    font-weight: 700;
    padding: .33rem;
    display: none;
}

.bg_email_check .dashicons,
.bg_email_check .dashicons:before {
    line-height: inherit;
}

.bg_email_check .ok {
    color: #f2f2f2;
    background: #217e21;
}

.bg_email_check .notemail,
.bg_email_check .mismatch {
    color: #f2f2f2;
    background: #800900;
}

.ticket-orders fieldset,
.bg-payment-form fieldset {
    margin: 1em 0;
}

.ticket-orders label {
    display: inline-block;
    width: 10em;
    margin-right: .5em;
}

.bg-back,
.show-button,
.bg-processing,
.bg_cart tr.removed,
.tickets-remaining.hiding,
.hiding .tickets-remaining,
dt,
legend,
caption,
.bg_email_check span,
.ticket-orders legend,
.bg-payment-form legend,
.biglietteria dt {
    font-weight: 700;
}


/* --- bg-cart.css --- */
.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);
}

/* 2026-08-06 — Difesa dai temi per i comandi della quantita.
   Hello Elementor (il tema della produzione) resetta i controlli dei form:
     button, [type="button"] { padding: .5rem 1rem }
     input[type="number"]    { width: 100%; border: 1px solid #666; padding: .5rem 1rem }
   Quel padding gonfiava i bottoni +/- oltre la misura scelta in Personalizza
   (e li faceva piu larghi che alti), e quella larghezza trasformava la casella
   del numero in un campo lungo col bordo grigio a vista, anche col bordo
   impostato su "trasparente". Su Twenty Twenty-Two (staging) non si vedeva
   niente: il difetto usciva solo sul sito vero.
   Serve piu peso, non !important: il tema colpisce con [type="button"] (0,1,0)
   e input[type="number"] (0,1,1), che pareggiano o battono le classi qui
   sopra. Aggiungendo contenitore + elemento si arriva a (0,2,1) e si sta sopra
   qualunque sia l ordine dei fogli.
   Qui stanno SOLO proprieta strutturali: misura, carattere, raggio, bordo e
   colori continuano ad arrivare dalle var di Personalizza. */
.bg-cart-col-qty button.bg-cart-qty-btn {
    box-sizing: border-box;
    padding: 0;
    line-height: 1;
    flex: 0 0 auto;
    width: var(--mybo-cart-qty-btn-size, 32px);
    height: var(--mybo-cart-qty-btn-size, 32px);
    min-width: var(--mybo-cart-qty-btn-size, 32px);
    min-height: var(--mybo-cart-qty-btn-size, 32px);
    -webkit-appearance: none;
    appearance: none;
}

.bg-cart-col-qty input.bg-cart-qty-input {
    box-sizing: border-box;
    padding: 0;
    flex: 0 0 auto;
    width: var(--mybo-cart-qty-input-width, 50px);
    min-width: var(--mybo-cart-qty-input-width, 50px);
    height: var(--mybo-cart-qty-input-height, 32px);
    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));
}

.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;
}

/* «È previsto un minimo di spesa di 7 € a persona, da pagare in sala.»
   Stessa forma e stessa posizione della riga promo qui sopra — sotto
   l'etichetta del biglietto, non piu' in un riquadro staccato in fondo al
   listino — ma color ambra, che e' il colore della famiglia consumazione in
   tutto il plugin (email, biglietto, ricevuta): verde su un avviso che dice
   «devi spendere» si leggerebbe come uno sconto.
   Tutte queste proprieta' sono comandabili da Personalizza -> Stile Box
   Biglietti, gruppo «Avviso consumazione»: qui c'e' solo la base. */
.bg-ticket-consumption-notice {
    color: #fbbf24;
    font-size: 0.75em;
    font-style: italic;
    margin-top: 4px;
}

.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;
}

/* =============================================================================
   RIGA ABBONAMENTO — la gemella DORATA della riga Omaggio qui sopra.
   =============================================================================
   Stessa struttura, stessa cura, altro colore: sfondo sfumato, bordo pieno,
   alone attorno alla riga, la quantita' dentro una pastiglia, il testo con
   un'ombra luminosa e la colonna prezzo nascosta (vale zero: mostrarlo sarebbe
   solo rumore). Un abbonamento e' qualcosa di prezioso, e la riga lo dice.

   NESSUN COLORE E' SCRITTO A MANO: ogni valore passa da una variabile
   --mybo-cart-subscription-*, che la pagina Personalizza scrive
   (mybo_customize_schema() -> gruppo membership_box -> sezione «📒 Abbonamento
   usato»). Quello che si legge dopo la virgola e' il RIPIEGO, il valore che
   vale solo se il pannello non ha ancora emesso niente — un oro che l'admin
   non puo' cambiare sarebbe un difetto, non una scelta di stile.

   L'alone e l'ombra del testo stanno dentro una variabile INTERA (non solo il
   loro colore): un'ombra e' distanza + sfocatura + colore insieme, e spezzarla
   avrebbe dato all'admin tre comandi per una cosa sola. La virgola dentro il
   ripiego non e' un problema: in CSS tutto quello che segue la prima virgola
   di var() e' il ripiego, virgole comprese.

   La riga nasce con style="display:none" dal template e la mostra il browser
   (js/mybo-subscription-cart.js) quando il cliente sceglie quanti ingressi
   usare: qui non si decide se si vede, solo come si vede. */
.bg-cart-subscription-row {
    background: var(--mybo-cart-subscription-bg, linear-gradient(145deg, #1a1508 0%, #33290f 50%, #1a1508 100%)) !important;
    border: 2px solid var(--mybo-cart-subscription-border, #d4af37) !important;
    border-radius: 8px;
    box-shadow: var(--mybo-cart-subscription-glow, 0 0 15px rgba(212, 175, 55, 0.35), inset 0 1px 0 rgba(255, 255, 255, 0.06));
    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-subscription-row .bg-cart-col-label {
    color: var(--mybo-cart-subscription-text, #f5d67a) !important;
    text-shadow: var(--mybo-cart-subscription-text-glow, 0 0 8px rgba(212, 175, 55, 0.45));
}

/* La pastiglia della quantita'. Niente ombra propria scritta qui: la forma
   della pastiglia (spazio interno, angoli, corpo, peso, ombre) e' gia' un
   comando condiviso delle tre righe speciali — «🔢 Badge quantita'» — e il
   pannello la emette con !important su tutte. Riscriverla qui vorrebbe dire
   scrivere un colore a mano per un'ombra che sul sito non si vede comunque. */
.bg-cart-subscription-row .bg-cart-col-qty {
    background: var(--mybo-cart-subscription-badge-bg, linear-gradient(145deg, #f0d264, #d4af37, #b8912a)) !important;
    border-radius: 5px;
    color: var(--mybo-cart-subscription-badge-text, #3a2c00) !important;
    font-weight: bold;
}

.bg-cart-subscription-row .bg-price-display {
    color: var(--mybo-cart-subscription-text, #f5d67a) !important;
    text-shadow: var(--mybo-cart-subscription-text-glow, 0 0 8px rgba(212, 175, 55, 0.45));
}

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

.bg-cart-subscription-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);
}

/* 2026-08-06 — I due comandi «Gap tra sezioni» e «Colore separatori
   orizzontali» (Personalizza -> Prenota/Modifica -> Layout pagina) avevano
   una variabile che NESSUNA regola leggeva: si spostava il cursore e non
   succedeva niente. Il separatore orizzontale che il carrello stampa
   davvero e' questo (mybo-user-discounts.php), quindi e' qui che i due
   comandi devono arrivare. I valori di scorta restano quelli di prima. */
.bg-cart-separator {
    border-top: 1px dashed var(--mybo-cart-separator, #555);
    margin: var(--mybo-cart-section-gap, 15px) 0;
    padding-top: var(--mybo-cart-section-gap, 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;
}

/* 2026-07-23: rimossi gli stati :hover e :not(.active) dei bottoni gateway.
   I bottoni esistono solo dentro la finestra "Scegli uno di questi metodi",
   dove ogni <li> nasce con class="active" (mybo-cart.php) e al click si va
   subito alla pagina di pagamento: quegli stati non erano mai visibili.
   Rimossi anche i relativi controlli dalla pagina Personalizza. */

.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.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;
}

/* ============================================================
   MODAL SCELTA PAGAMENTO ("Come vuoi pagare?") — stile app.
   Si apre al click su "Completa la Prenotazione" quando l'evento
   ha 2+ metodi di pagamento. Proprietà visive controllabili da
   Personalizza → Carrello (gruppo "Finestra scelta pagamento").
   ============================================================ */

.bg-payment-modal-overlay {
    position: fixed;
    inset: 0;
    display: flex;
    align-items: center;
    justify-content: center;
    padding: 20px;
    background: var(--mybo-paymodal-overlay, rgba(0, 0, 0, 0.75));
    z-index: 999990; /* sotto il popup politica rimborsi (999999) */
}

.bg-payment-modal-overlay[hidden] {
    display: none;
}

.bg-payment-modal {
    background: var(--mybo-paymodal-bg, #1e1e1e);
    border: var(--mybo-paymodal-border-width, 1px) solid var(--mybo-paymodal-border, #444);
    border-radius: var(--mybo-paymodal-radius, 14px);
    box-shadow: var(--mybo-paymodal-shadow, 0 10px 40px rgba(0, 0, 0, 0.55));
    padding: var(--mybo-paymodal-padding, 24px);
    width: 100%;
    max-width: var(--mybo-paymodal-max-width, 520px);
    max-height: 90vh;
    overflow-y: auto;
    text-align: center;
}

.bg-payment-modal .bg-payment-modal-title {
    margin-bottom: 15px;
}

/* Dentro il modal i limiti di larghezza per conteggio bottoni non servono */
.bg-payment-modal .gateway-selector,
.bg-payment-modal .gateway-selector.gateway-count-1,
.bg-payment-modal .gateway-selector.gateway-count-2 {
    max-width: 100%;
    margin: 0 0 16px;
}

/* Bottoni in GRIGLIA a celle uguali (colonne da Personalizza, default 2):
   ogni bottone ha la stessa identica dimensione, niente ultimo bottone
   allargato dal flex-wrap. Il prefisso "body" alza la specificità sopra
   body.mybo-page-cart .gateway-selector ul li e sopra le regole strutturali
   di bg-smartphone.css. */
body .bg-payment-modal .gateway-selector ul {
    display: grid !important;
    grid-template-columns: repeat(var(--mybo-paymodal-cols, 2), minmax(0, 1fr));
    gap: var(--mybo-paymodal-gap, 15px);
}

body .bg-payment-modal .gateway-selector ul li {
    flex: none !important;
    width: auto !important;
    min-width: 0 !important;
    max-width: none !important;
}

.bg-payment-modal .bg-refund-policy-section {
    margin: 10px 0 0;
}

.bg-payment-modal .bg-refund-policy-acceptance {
    margin: 8px 0 14px;
}

.bg-payment-modal-cancel {
    display: block;
    width: 100%;
    background: var(--mybo-paymodal-cancel-bg, transparent);
    color: var(--mybo-paymodal-cancel-text, #aaaaaa);
    border: var(--mybo-paymodal-cancel-border-width, 1px) solid var(--mybo-paymodal-cancel-border, #555555);
    border-radius: var(--mybo-paymodal-cancel-radius, 10px);
    font-size: var(--mybo-paymodal-cancel-size, 15px);
    font-weight: var(--mybo-paymodal-cancel-weight, 600);
    font-family: var(--mybo-gw-font, var(--mybo-font-body, inherit));
    padding: var(--mybo-paymodal-cancel-padding, 12px 20px);
    cursor: pointer;
    transition: all var(--mybo-transition, 0.3s) ease;
}

.bg-payment-modal-cancel:hover {
    background: var(--mybo-paymodal-cancel-bg-hover, rgba(255, 255, 255, 0.06));
    color: var(--mybo-paymodal-cancel-text-hover, #ffffff);
    border-color: var(--mybo-paymodal-cancel-border-hover, #888888);
}

/* Blocca lo scroll della pagina sotto quando il modal è aperto */
body.bg-payment-modal-open {
    overflow: hidden;
}

.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);
}

/* 2026-07-23: rimosse anche .bg-total-columns / .bg-total-col / .bg-total-label
   / .bg-total-new / .bg-total-old — nessun template PHP né JS le genera. */

/* 2026-07-23: rimossa tutta la sezione "tabella modifica prenotazione"
   (.bg-modify-total .bg-totals-table, .bg-totals-header/row/col-*,
   .bg-totale-attuale, .bg-totale-nuovo). Il markup che la generava stava nel
   ramo $is_modify di templates/block-cart-total.php, mai eseguito: entrambi i
   chiamanti passano context='cart'. Rimossi anche i controlli della pagina
   Personalizza (gruppo modify_booking). */

.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 a.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 .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-original-price {
    text-decoration: line-through;
    color: #aaa;
    margin-right: 10px;
}

.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;
}

/* Chip "+X €" della commissione di prevendita: accanto al prezzo scontato
   nella catena (mai un prezzo barrato — la commissione non si sconta). */
.bg-price-fee {
	font-weight: 600;
	white-space: nowrap;
	opacity: 0.9;
}

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

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

.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;
}

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

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

.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 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-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 .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_posti_vicino::placeholder,
#bg_additional::placeholder {
    color: #999 !important;
    opacity: 1;
}

/* 2026-08-06 — Il colore del testo di questi due campi lo decide l'admin
   (Personalizza -> Prenota/Modifica -> Note e campi extra -> «Colore testo»),
   ma qui c'era un #333 scolpito su un selettore di ID: un ID batte qualunque
   numero di classi, quindi vinceva sempre lui e il comando non faceva niente.
   Ora la regola legge la stessa variabile, cosi' chi vince dice comunque
   quello che l'admin ha scelto; il #333 resta come valore di scorta per le
   pagine dove le variabili non arrivano. */
#bg_posti_vicino,
#bg_additional {
    color: var(--mybo-cart-notes-text, #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 {
	font-size: 32px;
	font-weight: 700;
	color: #ffffff;
	margin: 0;
	padding: 0;
}

@media (max-width: 768px) {
	.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). */

.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-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-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-ticket-row {
    align-items: center;
    border-bottom: 1px dotted #444444;
    display: flex;
    padding: 8px 0;
}

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

/* ============================================================================
 * 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;
}

/* Avviso consumazione al pubblico: oggi lo usa SOLO lo shortcode
   [mybo_consumption_notice], per chi vuole quella frase in un punto suo di una
   pagina. Dalla pagina evento se n'era gia' andato — dal 2026-08-08 la frase
   esce sotto le righe di biglietto scelte dall'admin, e li' la comanda Stile
   Box Biglietti -> "Avviso consumazione (sotto il nome biglietto)".
   Il gruppo di comandi che stava in Personalizza -> Carrello e' stato tolto il
   2026-08-08 (scelta di Fabio): descriveva un riquadro che nella pagina evento
   non c'era piu'. Da qui in poi questi valori sono fissi. Se un domani lo
   shortcode meritera' i suoi comandi, si rimettono le CSS var qui. */
.mybo-consumption-policy-notice {
    display: flex;
    align-items: flex-start;
    gap: 10px;
    background: #2a2205;
    border: 1px solid #f59e0b;
    border-radius: 6px;
    color: #fde68a;
    font-size: 14px;
    padding: 12px 16px;
    margin: 15px 0;
    line-height: 1.5;
}

.mybo-consumption-policy-icon {
    flex-shrink: 0;
    font-size: 1.2em;
}

.mybo-consumption-policy-text {
    flex: 1;
}

/* Presa visione consumazione (Task 12): la casella che il cliente deve
   spuntare PRIMA di pagare, mostrata subito sopra il pulsante nella pagina
   carrello, quando l'evento la richiede. La frase esatta che si legge qui
   finisce congelata sull'ordine come prova (_mybo_consumption_ack).
   Come per l'avviso qui sopra, ogni proprieta' visiva passa da una CSS var
   controllabile da Personalizza -> Carrello -> "Presa visione consumazione":
   qui restano solo i fallback. Le regole di LAYOUT (flex, allineamento,
   dimensione minima del tocco) restano fisse: sono comportamento, non stile. */
.mybo-consumption-ack {
    background: var(--mybo-consumption-ack-bg, #2a2205);
    border: 1px solid var(--mybo-consumption-ack-border, #f59e0b);
    border-radius: 6px;
    padding: var(--mybo-consumption-ack-padding, 12px 16px);
    margin: var(--mybo-consumption-ack-margin, 15px 0);
}

.mybo-consumption-ack-label {
    display: flex;
    align-items: flex-start;
    gap: 10px;
    cursor: pointer;
    margin: 0;
}

/* Interruttore, non spunta (2026-08-08).
   Resta un <input type="checkbox"> nel markup — cosi' non si perde niente di
   quello che il browser gia' fa da solo: `required` che blocca l'invio, il
   valore che parte col form, il tasto spazio, la lettura degli screen reader.
   Cambia solo come si disegna. Le stesse regole valgono anche in Modifica
   prenotazione, che usa le stesse classi.
   La larghezza segue l'altezza (1,8×): un solo comando per l'admin, e la
   pallina non esce mai dai binari.
   I selettori portano contenitore + elemento (0,2,1) per lo stesso motivo
   gia' scritto sopra per i bottoni +/-: temi e pannelli colpiscono le caselle
   con input[type="checkbox"] (0,1,1), che batterebbe la sola classe. Piu'
   peso, non !important. */
.mybo-consumption-ack input.mybo-consumption-ack-input {
    flex-shrink: 0;
    -webkit-appearance: none;
    appearance: none;
    position: relative;
    /* Bersaglio abbastanza grande da centrare col dito su un telefono, dove
       questo interruttore e' obbligatorio per completare l'ordine. */
    height: var(--mybo-consumption-ack-switch-h, 24px);
    width: calc(var(--mybo-consumption-ack-switch-h, 24px) * 1.8);
    margin: 0;
    padding: 0;
    border: 0;
    border-radius: 999px;
    background: var(--mybo-consumption-ack-switch-off, #4b5563);
    cursor: pointer;
    transition: background 0.2s ease;
}

.mybo-consumption-ack input.mybo-consumption-ack-input::before {
    content: '';
    position: absolute;
    top: 50%;
    left: 3px;
    width: calc(var(--mybo-consumption-ack-switch-h, 24px) - 6px);
    height: calc(var(--mybo-consumption-ack-switch-h, 24px) - 6px);
    border-radius: 50%;
    background: var(--mybo-consumption-ack-switch-knob, #ffffff);
    transform: translateY(-50%);
    transition: left 0.2s ease;
}

.mybo-consumption-ack input.mybo-consumption-ack-input:checked {
    background: var(--mybo-consumption-ack-accent, #f59e0b);
}

.mybo-consumption-ack input.mybo-consumption-ack-input:checked::before {
    left: calc(100% - var(--mybo-consumption-ack-switch-h, 24px) + 3px);
}

/* Il contorno di messa a fuoco serve a chi naviga con la tastiera: senza
   `appearance` il browser non lo disegna piu' da solo. */
.mybo-consumption-ack input.mybo-consumption-ack-input:focus-visible {
    outline: 2px solid var(--mybo-consumption-ack-accent, #f59e0b);
    outline-offset: 2px;
}

/* Chi ha chiesto meno animazioni al sistema non se le prende. */
@media (prefers-reduced-motion: reduce) {
    .mybo-consumption-ack input.mybo-consumption-ack-input,
    .mybo-consumption-ack input.mybo-consumption-ack-input::before { transition: none; }
}

.mybo-consumption-ack-text {
    flex: 1;
    color: var(--mybo-consumption-ack-text-color, #fde68a);
    font-size: var(--mybo-consumption-ack-font-size, 14px);
    line-height: 1.5;
}

/* NB: la riga "comprende 1x Calice di vino ..." sotto l'etichetta del
   biglietto (nel carrello e nella pagina evento) non ha regole proprie di
   proposito: porta anche .bg-ticket-recipients ed eredita la resa dei
   destinatari. La classe .mybo-consumption-row-text serve solo a riconoscerla. */

/* ==========================================================================
   ABBONAMENTI (Task 11)
   ========================================================================== */

/* L'ORO DI QUESTA FAMIGLIA NON NASCE QUI. Ogni ripiego scritto sotto e' la
   copia di un valore di fabbrica che vive nello schema di Personalizza
   (mybo_customize_schema(), gruppo `subscription`), e sul sito vince SEMPRE
   quello: il pannello emette i valori nel blocco :root, quindi il ripiego non
   entra in gioco mai. Sono qui per il caso in cui il pannello non giri (e per
   chi legge il foglio e vuole sapere che colore aspettarsi), non per decidere.
   Cambiare solo questi non si vede in pagina — e' il difetto gia' pagato con la
   sfumatura della riga Omaggio. I due posti si muovono insieme, e
   tests/verify-subscription-customize.php lo pretende.

   Avvertenza "questa serata non e' compresa nell'abbonamento", sulla scheda
   dello spettacolo, accanto all'avviso consumazione qui sopra: stessa
   famiglia, stessa forma, stessa regola sulle CSS var.
   Il colore e' l'oro della riga "Abbonamento" del carrello: chi ha un
   abbonamento riconosce le sue cose dal colore. L'ambra della consumazione
   resta un'altra cosa — dice "in sala paghi qualcosa in piu'" — e due messaggi
   diversi non devono sembrare lo stesso. */
.mybo-subscription-exclusion-notice {
    display: flex;
    align-items: flex-start;
    gap: 10px;
    background: var(--mybo-subscription-notice-bg, #2a2210);
    border: var(--mybo-subscription-notice-border-width, 1px) solid var(--mybo-subscription-notice-border, #d4af37);
    border-radius: var(--mybo-subscription-notice-radius, 6px);
    color: var(--mybo-subscription-notice-text, #f5d67a);
    font-size: var(--mybo-subscription-notice-font-size, 14px);
    padding: var(--mybo-subscription-notice-padding, 12px 16px);
    margin: var(--mybo-subscription-notice-margin, 15px 0);
    line-height: var(--mybo-subscription-notice-line-height, 1.5);
}

.mybo-subscription-exclusion-icon {
    flex-shrink: 0;
    font-size: var(--mybo-subscription-notice-icon-size, 1.2em);
}

.mybo-subscription-exclusion-text {
    flex: 1;
}

/* Il riquadro nel carrello: "Il tuo abbonamento". Compare solo a chi ne ha uno
   valido (includes/subscription/mybo-subscription-booking.php). */
.mybo-subscription-cart-box {
    background: var(--mybo-subscription-box-bg, #2a2210);
    border: var(--mybo-subscription-box-border-width, 1px) solid var(--mybo-subscription-box-border, #d4af37);
    border-radius: var(--mybo-subscription-box-radius, 8px);
    padding: var(--mybo-subscription-box-padding, 15px);
    margin: var(--mybo-subscription-box-margin, 15px 0);
    color: var(--mybo-subscription-box-text, #f5d67a);
}

/* L'intestazione del riquadro, sullo schema di quella degli sconti
   (.bg-discounts-widget-header): icona + titolo in una riga sua. Ha le SUE
   variabili e non quelle del titolo di ogni abbonamento, perche' sono due
   livelli diversi: se condividessero i comandi, alzando il titolo del riquadro
   si alzerebbero anche i nomi dei singoli abbonamenti e la gerarchia sparirebbe. */
.mybo-subscription-cart-header {
    display: flex;
    align-items: center;
    gap: var(--mybo-subscription-box-header-gap, 10px);
    margin: var(--mybo-subscription-box-header-margin, 0 0 12px 0);
}

/* Le misure sono in px e non in em, e sono quelle MISURATE sul riquadro degli
   sconti che gli sta accanto (icona 21, titolo 16/700, nota 14 grigia): in em
   dipendevano dal corpo del riquadro e uscivano un terzo piu' grandi. */
.mybo-subscription-cart-header-icon {
    font-size: var(--mybo-subscription-box-header-icon-size, 21px);
}

.mybo-subscription-cart-header-title {
    color: var(--mybo-subscription-box-header-color, #ffe9a8);
    font-size: var(--mybo-subscription-box-header-size, 16px);
    font-weight: var(--mybo-subscription-box-header-weight, 700);
}

.mybo-subscription-cart-header-hint {
    color: var(--mybo-subscription-box-header-hint-color, #cccccc);
    font-size: var(--mybo-subscription-box-header-hint-size, 14px);
    font-weight: 400;
}

.mybo-subscription-cart-title {
    margin: var(--mybo-subscription-box-title-margin, 0 0 8px 0);
    font-size: var(--mybo-subscription-box-title-size, 16px);
    font-weight: var(--mybo-subscription-box-title-weight, 700);
    color: var(--mybo-subscription-box-title-color, #ffe9a8);
}

.mybo-subscription-cart-meta {
    margin: var(--mybo-subscription-box-meta-margin, 0 0 10px 0);
    font-size: var(--mybo-subscription-box-meta-size, 13px);
    line-height: var(--mybo-subscription-box-meta-line-height, 1.5);
}

/* Su una serata esclusa il riquadro non ha selettore: resta la frase che
   toglie l'ansia ("I tuoi ingressi restano intatti"), e va letta.
   La stampa mybo_subscription_cart_box_html(): fino al 2026-08-08 questa
   regola vestiva una classe che nessuno emetteva piu', cioe' due comandi in
   Personalizza che l'admin muoveva senza veder cambiare niente. */
.mybo-subscription-cart-safe {
    margin: var(--mybo-subscription-box-safe-margin, 6px 0 0 0);
    font-weight: var(--mybo-subscription-box-safe-weight, 600);
    color: var(--mybo-subscription-box-safe-color, #ffe9a8);
}

/* Il selettore. display:flex e la misura minima del tocco sono comportamento
   (si usa col dito su un telefono), non stile: restano fissi. */
.mybo-subscription-cart-field {
    display: flex;
    align-items: center;
    gap: 10px;
    flex-wrap: wrap;
    margin: 0;
}

.mybo-subscription-cart-field select {
    min-height: 40px;
    padding: var(--mybo-subscription-select-padding, 6px 10px);
    border-radius: var(--mybo-subscription-select-radius, 6px);
    border: var(--mybo-subscription-select-border-width, 1px) solid var(--mybo-subscription-select-border, #d4af37);
    background: var(--mybo-subscription-select-bg, #1f1a0c);
    color: var(--mybo-subscription-select-text, #ffe9a8);
    font-size: var(--mybo-subscription-select-font-size, 15px);
}

.mybo-subscription-cart-hint {
    margin: var(--mybo-subscription-box-hint-margin, 8px 0 0 0);
    font-size: var(--mybo-subscription-box-hint-size, 12px);
    opacity: var(--mybo-subscription-box-hint-opacity, 0.85);
}

/* LA RIGA CHE SPIEGA, SULLE SERATE ESCLUSE — e' l'unica cosa che il cliente
   legge dentro il riquadro quando l'abbonamento li' non vale. Condivideva la
   classe della nota a pie' di pagina, e quindi si presentava piccola e
   sbiadita: la risposta a "posso usarlo?" non e' una nota. Ha comandi suoi. */
.mybo-subscription-cart-hint--excluded {
    color: var(--mybo-subscription-excluded-color, #ffe9a8);
    font-size: var(--mybo-subscription-excluded-size, 14px);
    font-weight: var(--mybo-subscription-excluded-weight, 600);
    opacity: var(--mybo-subscription-excluded-opacity, 1);
}

.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-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;
}
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-width: var(--mybo-cart-reward-border-width, 1px) !important;
    border-radius: var(--mybo-cart-reward-radius) !important;
    font-family: var(--mybo-cart-reward-font, var(--mybo-font-body, inherit)) !important;
    gap: var(--mybo-cart-reward-gap, 10px) !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; }
/* --- bg-loyalty.css --- */
.sm-cart-loyalty-message {
    display: flex;
    flex-direction: row;
    align-items: center;
    justify-content: center;
    text-align: center;
    background: var(--mybo-cart-reward-bg, linear-gradient(135deg, rgba(212, 168, 75, 0.12), rgba(255, 215, 0, 0.08)));
    border: 1px solid var(--mybo-cart-reward-border, rgba(212, 168, 75, 0.3));
    border-radius: var(--mybo-cart-reward-radius, 8px);
    font-family: var(--mybo-cart-reward-font, var(--mybo-font-body, inherit));
    padding: var(--mybo-cart-reward-padding, 10px 15px);
    gap: 10px;
    margin: 15px 0;
    flex-wrap: wrap;
}

.sm-cart-loyalty-title {
    font-size: 13px;
    font-weight: 600;
    color: var(--mybo-cart-reward-badge-color, #d4a84b);
    text-transform: uppercase;
    margin: 0;
    display: flex;
    align-items: center;
    gap: 6px;
}

.sm-cart-loyalty-title .sm-cart-loyalty-icon {
    font-size: 16px;
    /* Mostra/Nascondi tutte le icone reward (gift, gettone, stella) */
    display: var(--mybo-cart-reward-icons-display, inline-block);
}

.sm-cart-loyalty-content {
    display: flex;
    align-items: center;
    gap: 6px;
    margin: 0;
    color: var(--mybo-cart-reward-label-color, inherit);
}

.sm-cart-loyalty-rewards {
    color: var(--mybo-cart-reward-value-color, #d4a84b);
    font-size: 13px;
    margin: 0;
}

.sm-reward-item {
    font-size: 13px;
    color: var(--mybo-cart-reward-value-color, inherit);
}

/* Wrapper opzionale per le emoji 🪙 ⭐ all'interno di .sm-reward-item:
 * se il rendering PHP usa <span class="sm-reward-icon">, possono essere
 * nascoste insieme alla gift icon. */
.sm-reward-icon {
    display: var(--mybo-cart-reward-icons-display, inline-block);
}

.sm-reward-plus {
    color: #888;
    margin: 0 3px;
    font-size: 12px;
}

.bg_cart_form .bg-rewards-level-row {
    width: calc(100%);
}

.bg-rewards-level-row > .sm-cart-loyalty-message {
    flex: 1;
    min-width: 280px;
    margin: 0;
    box-sizing: border-box;
}

.bg-rewards-level-row > .bg-level-discount-section {
    flex: 1;
    box-sizing: border-box;
    min-width: 280px;
    margin: 0;
}

/* Media query spostata in bg-smartphone.css */

.sm-cart-free-event-box {
    display: flex;
    align-items: center;
    gap: 12px;
    background: linear-gradient(135deg, rgba(100, 149, 237, 0.12), rgba(70, 130, 180, 0.08));
    border: 1px solid rgba(100, 149, 237, 0.35);
    border-radius: 8px;
    padding: 12px 16px;
    margin: 10px 0;
}

.sm-free-event-icon {
    display: flex;
    align-items: center;
    justify-content: center;
    width: 40px;
    height: 40px;
    background: rgba(100, 149, 237, 0.2);
    border-radius: 50%;
    color: #6495ED;
    flex-shrink: 0;
}

.sm-free-event-icon svg {
    width: 20px;
    height: 20px;
}

.sm-free-event-content {
    display: flex;
    flex-direction: column;
    gap: 2px;
}

.sm-free-event-title {
    font-weight: 600;
    color: #6495ED;
    font-size: 14px;
}

.sm-free-event-desc {
    color: rgba(255, 255, 255, 0.7);
    font-size: 13px;
}

.bg-tokens-section {
    background: #1e1e1e;
    border: 3px solid #e6a817;
    border-radius: 6px;
    padding: 18px 20px;
    margin: 0;
    box-sizing: border-box;
    max-width: 100%;
    overflow: hidden;
}

.bg-tokens-header {
    display: flex;
    align-items: center;
    justify-content: center;
    gap: 10px;
    margin-bottom: 8px;
    flex-wrap: wrap;
}

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

.bg-tokens-title {
    font-size: 18px;
    font-weight: 600;
    color: #e6a817;
    text-transform: uppercase;
}

.bg-tokens-available {
    background: transparent;
    color: #888;
    padding: 0;
    font-size: 14px;
    font-weight: 400;
    text-align: center;
    margin-bottom: 15px;
}

.bg-tokens-slider-container {
    display: flex;
    align-items: center;
    gap: 20px;
    flex-wrap: wrap;
}

.bg-tokens-slider-wrapper {
    flex: 1;
    min-width: 200px;
}

.bg-tokens-slider {
    width: 100%;
    height: 6px;
    border-radius: 3px;
    background: #333;
    outline: none;
    -webkit-appearance: none;
    appearance: none;
    cursor: pointer;
}

.bg-tokens-slider::-webkit-slider-thumb {
    -webkit-appearance: none;
    appearance: none;
    width: 28px;
    height: 28px;
    border-radius: 50%;
    background: #e6a817;
    cursor: pointer;
    border: none;
    box-shadow: 0 1px 4px rgba(0,0,0,0.4);
    transition: transform 0.15s;
}

.bg-tokens-slider::-webkit-slider-thumb:hover {
    transform: scale(1.15);
}

.bg-tokens-slider::-moz-range-thumb {
    width: 28px;
    height: 28px;
    border-radius: 50%;
    background: #e6a817;
    cursor: pointer;
    border: none;
    box-shadow: 0 1px 4px rgba(0,0,0,0.4);
}

.bg-tokens-slider-labels {
    display: flex;
    justify-content: space-between;
    align-items: center;
    margin-top: 10px;
}

.bg-tokens-label-min {
    color: #666;
    font-size: 12px;
    min-width: 20px;
}

.bg-tokens-label-max {
    color: #666;
    font-size: 12px;
    min-width: 20px;
    text-align: right;
}

.bg-tokens-selected {
    display: flex;
    align-items: center;
    gap: 6px;
}

.bg-tokens-count {
    font-size: 32px;
    font-weight: 700;
    color: #e6a817;
    line-height: 1;
}

.bg-tokens-label {
    font-size: 14px;
    color: #999;
    align-self: center;
}

.bg-tokens-discount-container {
    display: flex;
    justify-content: center;
    margin-top: 0px;
    margin-bottom: 20px;
}

.bg-tokens-discount-preview {
    background: #2d7a2d;
    color: white;
    padding: 6px 14px;
    border-radius: 4px;
    font-size: 13px;
    font-weight: 500;
    display: flex;
    gap: 4px;
    opacity: 0;
    transition: opacity 0.2s ease;
}

.bg-tokens-discount-preview.active {
    opacity: 1;
}

.bg-tokens-discount-value {
    font-weight: 600;
}

/* Media queries spostate in bg-smartphone.css e bg-tablet.css */

.bg-tokens-inactive {
    opacity: 0.85;
}

.bg-tokens-message.no-tokens {
    font-size: 13px;
    color: #999;
    text-align: center;
    padding: 10px;
    font-style: italic;
    line-height: 1.4;
}

.bg-level-discount-section {
    background: linear-gradient(135deg, #1a1a2e 0%, #16213e 100%);
    border-radius: 12px;
    padding: 20px;
    margin: 20px 0;
    border: 1px solid #333;
    text-align: center;
}

.bg-level-discount-box-title {
    font-size: 18px;
    font-weight: 600;
    color: #a8d8b8;
    text-transform: uppercase;
    letter-spacing: 0.5px;
    margin-bottom: 12px;
    display: flex;
    align-items: center;
    justify-content: center;
    gap: 10px;
}

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

.bg-level-discount-header {
    display: flex;
    align-items: center;
    justify-content: center;
    gap: 10px;
    margin-bottom: 15px;
}

.bg-level-discount-title {
    font-size: 18px;
    font-weight: bold;
    color: #c0a060;
}

.bg-level-discount-content {
    display: flex;
    flex-direction: column;
    align-items: center;
    gap: 12px;
}

.bg-level-discount-value {
    display: flex;
    align-items: baseline;
    justify-content: center;
    gap: 8px;
}

.bg-level-discount-amount {
    font-size: 28px;
    font-weight: bold;
    color: #4ade80;
}

.bg-level-discount-label {
    font-size: 14px;
    color: #888;
}

.bg-level-discount-info {
    font-size: 13px;
    text-align: center;
    color: #666;
    font-style: italic;
}

.bg-level-bar-bonus {
    margin-top: 12px;
    padding: 8px 12px;
    background: rgba(255, 165, 0, 0.1);
    border-radius: 6px;
    color: #ffa500;
    font-size: 14px;
    display: flex;
    align-items: center;
    justify-content: center;
    gap: 8px;
}

.bg-level-bar-icon {
    font-size: 18px;
}

.bg-level-discount-message.no-discount {
    font-size: 13px;
    color: #999;
    font-style: italic;
    line-height: 1.4;
}

.bg-level-discount-message.already-used {
    background: rgba(255, 165, 0, 0.1);
    border: 1px solid rgba(255, 165, 0, 0.3);
    border-radius: 8px;
    padding: 12px 15px;
    color: #ffa500;
    font-size: 14px;
}

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

/* Media query spostata in bg-smartphone.css */

.sm-referral-field-wrapper {
    margin: 20px 0;
}

.sm-referral-field {
    background: linear-gradient(135deg, rgba(100, 149, 237, 0.15), rgba(65, 105, 225, 0.1));
    border: 1px solid rgba(100, 149, 237, 0.4);
    border-radius: 10px;
    padding: 15px 20px;
}

.sm-referral-field label {
    display: block;
    color: #fff !important;
    font-weight: 600;
    margin-bottom: 10px;
    font-size: 1em;
}

.sm-referral-icon {
    font-size: 1.2em;
}

.sm-referral-input-row {
    display: flex;
    gap: 10px;
    margin-bottom: 10px;
}

.sm-referral-input-row input {
    flex: 1;
    padding: 8px 12px;
    border: 1px solid #444;
    border-radius: 5px;
    background: #1a1a1a !important;
    color: #fff !important;
    font-size: 1em;
}

.sm-referral-input-row button {
    padding: 8px 15px;
    background: linear-gradient(135deg, #6495ED, #4169E1);
    color: #fff;
    border: none;
    border-radius: 5px;
    cursor: pointer;
    font-weight: 600;
}

.sm-referral-input-row button:hover {
    background: linear-gradient(135deg, #7BA3EF, #5179F1);
}

.sm-referral-hint {
    color: #888;
    font-size: 0.85em;
    margin: 0;
}

#sm_referral_result {
    margin-bottom: 10px;
}

#sm_referral_result.success {
    color: #5cb85c;
    font-weight: 600;
}

#sm_referral_result.error {
    color: #d9534f;
}

.sm-referral-applied {
    color: #5cb85c;
    font-size: 1.1em;
    padding: 10px 0;
}

.sm-referral-applied .sm-referral-icon {
    font-size: 1.3em;
    margin-right: 5px;
}

/* Layout 3 colonne - definito in bg-cart.css con display: grid */
/* Qui solo override minimi se necessari */

/* Media query spostata in bg-tablet.css */

.bg-loyalty-history-page {
    max-width: 800px;
}

.bg-loyalty-summary {
    display: flex;
    gap: 20px;
    margin-bottom: 30px;
    flex-wrap: wrap;
}

.bg-loyalty-summary-item {
    display: flex;
    flex-direction: column;
    align-items: center;
    padding: 20px 30px;
    border-radius: 12px;
    background: linear-gradient(135deg, #1a1a2e 0%, #16213e 100%);
    color: #fff;
    min-width: 120px;
}

.bg-loyalty-summary-item .bg-loyalty-icon {
    font-size: 2em;
    margin-bottom: 5px;
}

.bg-loyalty-summary-item .bg-loyalty-value {
    font-size: 2em;
    font-weight: bold;
}

.bg-loyalty-summary-item .bg-loyalty-label {
    font-size: 0.9em;
    opacity: 0.8;
    text-transform: uppercase;
    letter-spacing: 1px;
}

.bg-loyalty-tokens {
    background: linear-gradient(135deg, #d4a84b 0%, #b8860b 100%) !important;
}

.bg-loyalty-stars {
    background: linear-gradient(135deg, #6495ED 0%, #4169E1 100%) !important;
}

.bg-loyalty-history-list {
    display: flex;
    flex-direction: column;
    gap: 10px;
}

.bg-loyalty-history-row {
    display: flex;
    align-items: center;
    gap: 0;
    padding: 8px 12px;
    border-radius: 6px;
    background: #fff;
    border-left: 5px solid #ccc;
    box-shadow: 0 1px 2px rgba(0,0,0,0.05);
    margin-bottom: 4px; 
    transition: transform 0.2s ease;
}

.bg-loyalty-row-revoke {
    border-left-color: #e74c3c;
    background: #fdedec; 
}
.bg-loyalty-row-revoke .bg-loyalty-row-type { color: #c0392b; }

.bg-loyalty-row-discount {
    border-left-color: #e67e22;
    background: #fef5e7; 
}
.bg-loyalty-row-discount .bg-loyalty-row-type { color: #d35400; }

.bg-loyalty-row-referral {
    border-left-color: #9b59b6;
    background: #f4ecf7; 
}
.bg-loyalty-row-referral .bg-loyalty-row-type { color: #8e44ad; }

.bg-loyalty-row-referral-created {
    border-left-color: #ff79c6;
    background: #fce4ec; 
}
.bg-loyalty-row-referral-created .bg-loyalty-row-type { color: #d81b60; }

.bg-loyalty-row-level {
    border-left-color: #f1c40f;
    background: #fef9e7; 
}
.bg-loyalty-row-level .bg-loyalty-row-type { color: #b7950b; }

.bg-loyalty-row-manual {
    border-left-color: #34495e;
    background: #ebedef; 
}
.bg-loyalty-row-manual .bg-loyalty-row-type { color: #2c3e50; }

.bg-loyalty-row-negative {
    border-left-color: #e74c3c;
    background: #fdedec;
}
.bg-loyalty-row-neutral {
    border-left-color: #95a5a6;
    background: #f4f6f7;
}

.bg-loyalty-row-icon {
    font-size: 1.4em; 
    margin-right: 10px; 
    line-height: 1;
}

.bg-loyalty-row-content {
    flex: 1;
    min-width: 0;
    display: flex;
    flex-direction: column; 
    gap: 4px;
}

.bg-loyalty-row-header {
    display: flex;
    align-items: center;
    flex-wrap: wrap;
    gap: 8px;
    width: 100%;
}

.bg-loyalty-row-type {
    font-weight: 600;
    color: #333;
}

.bg-loyalty-row-date {
    font-size: 0.85em;
    color: #666;
}

.bg-loyalty-row-details {
    display: flex;
    flex-direction: row; 
    flex-wrap: wrap;
    gap: 10px;
    font-size: 0.85em; 
    color: #555;
    margin-top: 0; 
    align-items: center;
}

.bg-loyalty-row-values {
    display: flex;
    flex-direction: row; 
    align-items: center;
    gap: 8px; 
    flex-shrink: 0;
    margin-left: auto; 
}

.bg-loyalty-row-tokens {
    align-items: center;
    border-radius: 4px;
    display: inline-flex;
    font-size: 0.9em;
    font-weight: 600;
    gap: 4px;
    padding: 4px 8px;
    white-space: nowrap;
}

.bg-loyalty-row-stars {
    align-items: center;
    border-radius: 4px;
    display: inline-flex;
    font-size: 0.9em;
    font-weight: 600;
    gap: 4px;
    padding: 4px 8px;
    white-space: nowrap;
}

.bg-loyalty-row-tokens.positive {
    background: rgba(40, 167, 69, 0.1);
    color: #28a745;
}

.bg-loyalty-row-stars.positive {
    background: rgba(40, 167, 69, 0.1);
    color: #28a745;
}

.bg-loyalty-row-tokens.negative {
    background: rgba(220, 53, 69, 0.1);
    color: #dc3545;
}

.bg-loyalty-row-stars.negative {
    background: rgba(220, 53, 69, 0.1);
    color: #dc3545;
}

.bg-loyalty-no-history {
    padding: 30px;
    text-align: center;
    background: #f8f9fa;
    border-radius: 8px;
    color: #666;
}

/* Media query spostata in bg-smartphone.css */


/* --- bg-discounts.css --- */
.bg-user-discounts-wrapper {
    margin: 20px 0;
}

.bg-user-discounts-box {
    background: linear-gradient(135deg, rgba(76, 175, 80, 0.15), rgba(56, 142, 60, 0.1));
    border: 1px solid rgba(76, 175, 80, 0.4);
    border-radius: 10px;
    padding: 12px 15px;
}

.bg-user-discounts-header {
    display: flex;
    align-items: center;
    gap: 10px;
    margin-bottom: 10px;
    color: #fff;
    font-size: 1em;
}

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

.bg-discount-hint {
    font-size: 0.85em;
    opacity: 0.7;
    font-weight: normal;
    margin-left: 5px;
}

.bg-user-discounts-list {
    display: flex;
    flex-direction: column;
    gap: 8px;
}

.bg-discount-option {
    display: flex;
    flex-direction: column;
    padding: 12px 15px;
    background: rgba(0, 0, 0, 0.2);
    border: 2px solid transparent;
    border-radius: 8px;
    cursor: pointer;
    transition: all 0.2s ease;
}

.bg-discount-option:hover {
    background: rgba(0, 0, 0, 0.3);
    border-color: rgba(76, 175, 80, 0.5);
}

.bg-discount-option.selected {
    background: rgba(76, 175, 80, 0.2);
    border-color: #4CAF50;
}

.bg-discount-main-row {
    display: flex;
    align-items: center;
    gap: 10px;
    width: 100%;
}

.bg-discount-option input[type="checkbox"] {
    width: 18px;
    height: 18px;
    accent-color: #4CAF50;
    flex-shrink: 0;
}

.bg-discount-value {
    background: linear-gradient(135deg, #4CAF50, #388E3C);
    color: #fff;
    padding: 4px 10px;
    border-radius: 15px;
    font-weight: bold;
    font-size: 0.85em;
    white-space: nowrap;
    flex-shrink: 0;
}

.bg-discount-label {
    color: #fff;
    flex: 1;
}

/* .bg-discount-expires ora definito più sotto nel file */

.bg-discount-none .bg-discount-label {
    color: #888;
    font-style: italic;
}

.bg-my-discounts h3 {
    color: #d4a84b;
    margin-bottom: 15px;
}

.bg-discounts-grid {
    display: grid;
    grid-template-columns: repeat(auto-fill, minmax(200px, 1fr));
    gap: 15px;
}

.bg-discount-card {
    background: linear-gradient(135deg, rgba(76, 175, 80, 0.2), rgba(56, 142, 60, 0.15));
    border: 1px solid rgba(76, 175, 80, 0.4);
    border-radius: 12px;
    padding: 20px;
    text-align: center;
}

.bg-discount-card-value {
    font-size: 2em;
    font-weight: bold;
    color: #4CAF50;
    margin-bottom: 10px;
}

.bg-discount-card-label {
    color: #fff;
    margin-bottom: 10px;
}

.bg-discount-card-expires {
    color: #ff9800;
    font-size: 0.85em;
}

.bg-no-discounts {
    color: #888;
    font-style: italic;
}

.bg-discounts-widget {
    background: linear-gradient(135deg, rgba(76, 175, 80, 0.15), rgba(56, 142, 60, 0.1));
    border: 1px solid rgba(76, 175, 80, 0.4);
    border-radius: 12px;
    padding: 15px;
    margin-bottom: 20px;
}

.bg-discounts-widget-header {
    display: flex;
    align-items: center;
    gap: 10px;
    margin-bottom: 12px;
}

.bg-discounts-widget-icon {
    font-size: 1.5em;
}

.bg-discounts-widget-title {
    color: #fff;
    font-weight: 600;
    font-size: 1.1em;
}

.bg-discounts-widget-list {
    display: flex;
    flex-direction: column;
    gap: 8px;
}

.bg-discounts-widget-item {
    display: flex;
    align-items: center;
    gap: 10px;
    padding: 8px 12px;
    background: rgba(0, 0, 0, 0.2);
    border-radius: 8px;
}

.bg-discounts-widget-value {
    background: linear-gradient(135deg, #4CAF50, #388E3C);
    color: #fff;
    padding: 4px 10px;
    border-radius: 12px;
    font-weight: bold;
    font-size: 0.9em;
}

.bg-discounts-widget-details {
    flex: 1;
}

.bg-discounts-widget-label {
    color: #ccc;
    font-size: 0.9em;
}

.bg-discounts-widget-expires {
    font-size: 0.85em;
    color: #888;
}

.bg-discounts-widget-expires.expiring-soon {
    color: #dc3545;
}

.bg-cart-discount-row {
    background: rgba(45, 122, 45, 0.1);
}

.bg-user-discount-row {
    background: rgba(45, 122, 45, 0.1);
}

.bg-cart-discount-row .bg-discount-label {
    color: #2d7a2d;
}

.bg-user-discount-row .bg-discount-label {
    color: #2d7a2d;
}

.bg-cart-discount-row .bg-discount-value {
    color: #2d7a2d;
    font-weight: bold;
    text-align: right;
}

.bg-user-discount-row .bg-discount-value {
    color: #2d7a2d;
    font-weight: bold;
    text-align: right;
}

/* Stili discount-row, discount-table, discount-message, bg-loading, bg-commission-message, bg-discount-bar già in bg-unified.css */

@keyframes bg-blink-soft {
    0%, 100% { opacity: 1; }
    50% { opacity: 0.3; }
}

.bg-blink-soft {
    animation: bg-blink-soft 0.8s ease-in-out infinite;
}

/* Stile base per scadenza - il selettore specifico .bg-user-discounts-list sovrascrive */

.bg-discount-expires.bg-blink-soft {
    color: #ff6b6b;
}

.bg-user-discounts-list .bg-discount-option {
    display: flex !important;
    flex-direction: column !important;
    padding: 8px 12px;
    background: rgba(0, 0, 0, 0.3);
    border-radius: 8px;
    margin-bottom: 6px;
    cursor: pointer;
}

.bg-user-discounts-list .bg-discount-main-row {
    display: flex;
    flex-direction: row;
    align-items: center;
    width: 100%;
}

.bg-user-discounts-list .bg-discount-option input[type="checkbox"] {
    flex-shrink: 0;
    margin: 0 10px 0 0;
    width: 16px;
    height: 16px;
    accent-color: #28a745;
}

.bg-user-discounts-list .bg-discount-value {
    display: inline-block;
    margin-right: 10px;
    white-space: nowrap;
    font-weight: bold;
    padding: 4px 10px;
    border-radius: 15px;
    background: #28a745;
    color: white;
    font-size: 0.75em;
}

.bg-user-discounts-list .bg-discount-label {
    font-size: 0.85em;
    color: #ddd;
}

.bg-user-discounts-list .bg-discount-referrer {
    font-size: 0.85em;
    color: #aaa;
    margin-left: 8px;
    font-style: italic;
}

.bg-user-discounts-list .bg-discount-expires {
    font-size: 0.8em;
    color: #888;
    margin-left: auto;
    padding-right: 5px;
}

.bg-ticket-discounts-list {
    font-size: 0.9em;
    line-height: 1.5;
    margin: 10px 0;
    color: #555;
}

/* Messaggio restrizione sconti extra */
.bg-discount-restriction-notice {
    background: linear-gradient(135deg, #fef3c7 0%, #fde68a 100%);
    border: 2px solid #f59e0b;
    border-radius: 10px;
    padding: 15px 20px;
    margin: 15px 0;
    display: flex;
    flex-direction: column;
    align-items: center;
    justify-content: center;
    text-align: center;
    gap: 8px;
}

.bg-discount-restriction-notice .bg-restriction-icon {
    font-size: 28px;
    line-height: 1;
}

.bg-discount-restriction-notice .bg-restriction-title {
    font-weight: 700;
    font-size: 1.05em;
    color: #92400e;
    margin: 0;
}

.bg-discount-restriction-notice .bg-restriction-text {
    font-size: 0.9em;
    color: #b45309;
    margin: 0;
}

/* ================================================
   BOX CODICE PROMO - Stile unificato carrello/modifica
   ================================================ */
.bg-promo-code-section {
    background-color: #373737;
    padding: 15px 20px;
    border-radius: 8px;
    margin: 15px 0;
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    gap: 10px;
}

.bg-promo-code-section label {
    color: #fff;
    margin: 0;
}

.bg-promo-code-section input[type="text"] {
    background: #222;
    border: 1px solid #555;
    border-radius: 5px;
    color: #fff;
    font-size: 1em;
    padding: 8px 12px;
    width: 150px;
    max-width: 200px;
}

.bg-promo-code-section input[type="text"]:focus {
    border-color: #f19300;
    outline: none;
}

.bg-promo-code-section #bg_discount_message,
.bg-promo-code-section #bg_promo_message {
    font-size: 0.9em;
    margin-left: 5px;
}

.bg-discount-freeticket-row .bg-discount-value {
    display: none; /* Nascondi il prezzo per i biglietti omaggio */
}


/* --- bg-thank-you.css --- */
/* Stili thank-you già in bg-unified.css - rimossi duplicati */

.bg-thanks-page {
    margin: 2em 0;
    padding: 1.5em;
    background: #222;
    border-radius: 8px;
}

/* MIGRATO da .elementor-widget-heading → selettori generici di titolo pagina.
   Nasconde i titoli della pagina nella view di ringraziamento — indipendente
   da Elementor o qualsiasi altro page builder. */
body.bg-response-thanks .entry-title,
body.bg-response-thanks .page-title,
body.bg-response-thanks h1.entry-title,
body.bg-response-thanks .post-title,
body.bg-response-thanks .mybo-page-title,
/* Nascondi banner titolo della pagina di ringraziamento.
   Selettori generici WP — funziona con qualsiasi tema. */
body.bg-response-thanks .entry-header,
body.bg-response-thanks .page-header,
body.bg-response-thanks header.page-header,
body.bg-response-thanks .entry-title,
body.bg-response-thanks .page-title,
body.bg-response-thanks h1.entry-title,
body.bg-response-thanks h1.page-title,
body.bg-response-thanks .mybo-page-title,
body.bg-response-thanks .mybo-page-title-container {
    display: none !important;
}

/* Media query spostata in bg-smartphone.css */

.bg-thanks-page.light {
    margin: 2em 0;
    padding: 1.5em;
    background: #f9f9f9;
    border: 1px solid #ddd;
    border-radius: 4px;
}

.bg-thanks-page.light h2 {
    color: #4CAF50;
    margin-top: 0;
}

.bg-payment-status {
    padding: 0.5em 1em;
    margin: 1em 0;
    border-radius: 4px;
}

.bg-status-completed {
    background: #e8f5e9;
    border-left: 4px solid #4CAF50;
}

.bg-status-pending {
    background: #fff8e1;
    border-left: 4px solid #FFC107;
}

.bg-status-free {
    background: #e3f2fd;
    border-left: 4px solid #2196F3;
}

.bg-status-unknown {
    background: #f5f5f5;
    border-left: 4px solid #9E9E9E;
}

.bg-receipt-link .button {
    display: inline-block;
    padding: 0.5em 1em;
    background: #4CAF50;
    color: white;
    text-decoration: none;
    border-radius: 4px;
}

.bg-receipt-link .button:hover {
    background: #388E3C;
}

/* --- bg-myaccount.css --- */
/* MIGRATO da .elementor-element → forza la larghezza al 100% per qualsiasi
   container/wrapper che racchiude la pagina My Account, indipendentemente
   da Elementor o altri page builder. */
.mybo-account-page .mybo-box-office-container,
.mybo-account-page .mybo-account-wrapper {
  width: 100% !important;
  max-width: 100% !important;
}

.mybo-account-page .bg-myaccount-wrap h2 {
  margin: 0 0 14px !important;
  padding: 12px 16px !important;
  background: #2f2f2f !important;
  color: #eaeaea !important;
  border: 1px solid #3a3a3a !important;
  border-radius: 4px !important;
  font-size: 18px !important;
}

.mybo-account-page .bg-myaccount-wrap .bg-notice {
  margin: 10px 0 14px !important;
  padding: 12px 14px !important;
  border-radius: 6px !important;
  border: 1px solid #3a3a3a !important;
  background: #2b2b2b !important;
  color: #e6e6e6 !important;
}
.mybo-account-page .bg-myaccount-wrap .bg-notice.bg-error {
  border-color: #e53935 !important;
  background: rgba(229,57,53,0.08) !important;
  color: #ffb3b1 !important;
}

.mybo-account-page .bg-myaccount-wrap .bg-modal { position: fixed; inset: 0; z-index: 9999; display: flex; align-items: center; justify-content: center; padding: 16px; }
.mybo-account-page .bg-myaccount-wrap .bg-modal[aria-hidden="true"] { display: none; }
.mybo-account-page .bg-myaccount-wrap .bg-modal__overlay { position: absolute; inset: 0; background: rgba(0,0,0,.6); }
.mybo-account-page .bg-myaccount-wrap .bg-modal__dialog {
  position: relative;
  width: min(520px, 96vw);
  max-height: 85vh;
  margin: 0 auto;
  background: #1f1f1f;
  border: 1px solid #3a3a3a;
  border-radius: 10px;
  box-shadow: 0 10px 30px rgba(0,0,0,.45);
  color: #e9eef2;
  overflow: auto;
}
.mybo-account-page .bg-myaccount-wrap .bg-modal__header { padding: 14px 16px; border-bottom: 1px solid #333; }
.mybo-account-page .bg-myaccount-wrap .bg-modal__header h3 { margin: 0; font-size: 18px; }
.mybo-account-page .bg-myaccount-wrap .bg-modal__body { padding: 14px 16px; color: #ffb3b1; }
.mybo-account-page .bg-myaccount-wrap .bg-modal__footer { padding: 12px 16px; border-top: 1px solid #333; display: flex; justify-content: flex-end; }
.mybo-account-page .bg-myaccount-wrap #bg-restore-close.button { border-color: #e53935; color: #e53935; background: transparent; min-width: 120px; height: 40px; }
.mybo-account-page .bg-myaccount-wrap #bg-restore-close.button:hover { background: #e53935; color: #fff; }

.mybo-account-page .bg-myaccount-wrap .bg-modal.bg-modal--center .bg-modal__dialog {
  position: fixed;
  top: 50%;
  left: 50%;
  transform: translate(-50%, -50%);
  margin: 0;
}

body.bg-modal-open { overflow: hidden; }

/* Media query spostata in bg-smartphone.css */

.mybo-account-page .mybo-account-content {
  padding-left: 16px !important;
  padding-right: 8px !important;
  background: none !important;
}

.mybo-account-page .mybo-account-navigation ul li a {
  padding: 12px 14px !important;
  display: block;
}
.mybo-account-page .mybo-account-navigation ul li.is-active a,
.mybo-account-page .mybo-account-navigation ul li a:hover {
  background: rgba(66, 153, 225, 0.12);
}

.mybo-account-page .mybo-account-navigation ul li.is-active a {
  border-left: 0 !important;
}

.mybo-account-page .bg-myaccount-wrap {
  overflow-x: auto;
  -webkit-overflow-scrolling: touch;
}

.mybo-account-page .bg-myaccount-wrap table.my_account_orders {
  width: 100% !important;
  border-collapse: collapse !important;
  background: #262626 !important;
  color: #ddd !important;
  border: 1px solid #3a3a3a !important;
  table-layout: fixed;
}

.mybo-account-page .bg-myaccount-wrap table.shop_table {
  width: 100%;
  border-collapse: collapse;
  background: #2c2c2c;
  border: 1px solid #3a3a3a;
  border-radius: 6px;
  overflow: visible;
}
.mybo-account-page .bg-myaccount-wrap table.shop_table thead th {
  background: #3a3a3a;
  color: #f5f5f5;
  font-weight: 600;
  padding: 12px 14px;
}
.mybo-account-page .bg-myaccount-wrap table.shop_table td {
  padding: 12px 14px;
  border-top: 1px solid #3a3a3a;
}

.mybo-account-page .bg-myaccount-wrap table.my_account_orders thead th {
  background: #333 !important;
  color: #f0f0f0 !important;
  font-weight: 600 !important;
  text-transform: none !important;
  padding: 12px 14px !important;
  border-bottom: 1px solid #3f3f3f !important;
  text-align: center;
}

.mybo-account-page .bg-myaccount-wrap table.my_account_orders tbody td {
  padding: 12px 14px !important;
  border-bottom: 1px solid #3a3a3a !important;
  vertical-align: middle !important;
  text-align: center;
}

.mybo-account-page .bg-myaccount-wrap table.my_account_orders tbody tr:not(.is-canceled) td {
  color: #e9eef2 !important; 
}

.mybo-account-page .bg-myaccount-wrap table.my_account_orders tbody tr:hover {
  background: #2d2d2d !important;
}

.mybo-account-page .bg-myaccount-wrap table.my_account_orders tbody tr:nth-child(odd) {
  background: #2a2a2a !important;
}
.mybo-account-page .bg-myaccount-wrap table.my_account_orders tbody tr:nth-child(even) {
  background: #252525 !important;
}

.mybo-account-page .bg-myaccount-wrap table.my_account_orders thead th {
  position: sticky;
  top: 0;
  z-index: 2;
}

.mybo-account-page .bg-myaccount-wrap table.my_account_orders td {
  overflow: hidden;
  text-overflow: ellipsis;
  word-wrap: break-word;
}

.mybo-account-page .bg-myaccount-wrap table.my_account_orders td.actions {
  white-space: normal;
  text-align: center;
}

.mybo-account-page .bg-myaccount-wrap table.my_account_orders td.actions > div {
  display: inline-flex !important;
  flex-direction: column;
  align-items: center;
  gap: 8px;
}

.mybo-account-page .bg-myaccount-wrap table.my_account_orders td.actions > div > div {
  display: inline-flex !important;
  gap: 8px;
  justify-content: center;
}

.mybo-account-page .bg-myaccount-wrap table.my_account_orders tr.is-canceled {
  background: #2a2323 !important; 
}
.mybo-account-page .bg-myaccount-wrap table.my_account_orders tr.is-canceled td:not(.actions) {
  color: #8a8f96 !important; 
}
.mybo-account-page .bg-myaccount-wrap table.my_account_orders tr.is-canceled td.actions {
  vertical-align: middle;
}

.mybo-account-page .bg-myaccount-wrap table.my_account_orders tr.is-event-cancelled {
  background: linear-gradient(135deg, #1a1a2e 0%, #2d1f3d 100%) !important;
}
.mybo-account-page .bg-myaccount-wrap table.my_account_orders tr.is-event-cancelled td:not(.actions) {
  color: #a78bba !important;
}
.bg-event-cancelled-icon {
  cursor: help;
  font-size: 14px;
  margin-left: 4px;
  vertical-align: middle;
}
.mybo-account-page .bg-myaccount-wrap .bg-status.canceled {
  display: inline-block;
  padding: 4px 8px;
  border: 1px solid #e53935;
  color: #e53935;
  border-radius: 6px;
  font-weight: 600;
  margin-right: 8px;
  line-height: 0.8;
  text-align: center;
}

.mybo-account-page .bg-myaccount-wrap .bg-status.pending {
  display: inline-block;
  padding: 4px 8px;
  border: 1px solid #ff9800;
  color: #ff9800;
  border-radius: 6px;
  font-weight: 600;
  margin-right: 8px;
  line-height: 0.8;
  text-align: center;
}

.mybo-account-page .bg-myaccount-wrap .bg-status.completed {
  display: inline-block;
  padding: 4px 8px;
  border: 1px solid #4caf50;
  color: #4caf50;
  border-radius: 6px;
  font-weight: 600;
  margin-right: 8px;
  line-height: 0.8;
  text-align: center;
}

.mybo-account-page .bg-myaccount-wrap .bg-text-canceled {
  display: inline-block !important;
  color: #e53935 !important;
  font-weight: 600 !important;
  font-size: 14px !important;
  line-height: 1.3 !important;
  text-align: center !important;
  padding: 8px 16px !important;
  min-width: 110px !important;
  box-sizing: border-box !important;
}

.mybo-account-page .bg-myaccount-wrap .bg-text-failed {
  display: inline-block !important;
  color: #e53935 !important;
  font-weight: 600 !important;
  font-size: 14px !important;
  line-height: 1.3 !important;
  text-align: center !important;
  padding: 8px 16px !important;
  min-width: 110px !important;
  box-sizing: border-box !important;
}

.mybo-account-page .bg-myaccount-wrap .button.bg-edit,
.mybo-account-page .bg-myaccount-wrap a.button.bg-edit {
  background: transparent !important;
  color: #2196f3 !important;
  border: 1px solid #2196f3 !important;
  padding: 6px 10px !important;
  line-height: 1.4 !important;
  border-radius: 4px !important;
  margin: 0 !important;
  transition: all .2s ease !important;
  min-width: 80px !important;
  height: auto !important;
  display: inline-block !important;
  text-align: center !important;
  font-size: 13px !important;
}

.mybo-account-page .bg-myaccount-wrap .button.bg-edit:hover,
.mybo-account-page .bg-myaccount-wrap a.button.bg-edit:hover {
  background: #2196f3 !important;
  color: #fff !important;
  border-color: #2196f3 !important;
}

.mybo-account-page .bg-myaccount-wrap .button.bg-cancel,
.mybo-account-page .bg-myaccount-wrap button.button.bg-cancel {
  background: transparent !important;
  color: #e53935 !important;
  border: 1px solid #e53935 !important;
  padding: 6px 10px !important;
  line-height: 1.4 !important;
  border-radius: 4px !important;
  margin: 0 !important;
  transition: all .2s ease !important;
  min-width: 80px !important;
  height: auto !important;
  display: inline-block !important;
  text-align: center !important;
  font-size: 13px !important;
}

.mybo-account-page .bg-myaccount-wrap .button.bg-cancel:hover,
.mybo-account-page .bg-myaccount-wrap button.button.bg-cancel:hover {
  background: #e53935 !important;
  color: #fff !important;
  border-color: #e53935 !important;
}

.mybo-account-page .bg-myaccount-wrap .button.bg-pay,
.mybo-account-page .bg-myaccount-wrap button.button.bg-pay {
  background: transparent !important;
  color: #4caf50 !important;
  border: 1px solid #4caf50 !important;
  padding: 6px 10px !important;
  line-height: 1.4 !important;
  border-radius: 4px !important;
  margin: 0 !important;
  transition: all .2s ease !important;
  font-weight: 600 !important;
  min-width: 80px !important;
  width: 100% !important;
  height: auto !important;
  display: inline-block !important;
  text-align: center !important;
  font-size: 13px !important;
}

.mybo-account-page .bg-myaccount-wrap .button.bg-pay:hover,
.mybo-account-page .bg-myaccount-wrap button.button.bg-pay:hover {
  background: #4caf50 !important;
  color: #fff !important;
  border-color: #4caf50 !important;
}

.mybo-account-page .bg-myaccount-wrap .button.bg-restore,
.mybo-account-page .bg-myaccount-wrap button.button.bg-restore {
  background: transparent !important;
  color: #ff9800 !important;
  border: 1px solid #ff9800 !important;
  padding: 6px 10px !important;
  line-height: 1.4 !important;
  border-radius: 4px !important;
  margin: 0 !important;
  transition: all .2s ease !important;
  min-width: 80px !important;
  height: auto !important;
  display: inline-block !important;
  text-align: center !important;
  font-size: 13px !important;
}

.mybo-account-page .bg-myaccount-wrap .button.bg-restore:hover,
.mybo-account-page .bg-myaccount-wrap button.button.bg-restore:hover {
  background: #ff9800 !important;
  color: #fff !important;
  border-color: #ff9800 !important;
}

.mybo-account-page .bg-myaccount-wrap .button.bg-delete {
  background: transparent !important;
  color: #e53935 !important;
  border: 1px solid #e53935 !important;
  padding: 6px 10px !important;
  line-height: 1.4 !important;
  border-radius: 4px !important;
  margin: 0 !important;
  transition: all .2s ease !important;
  min-width: 80px !important;
  height: auto !important;
  display: inline-block !important;
  text-align: center !important;
  font-size: 13px !important;
}

.mybo-account-page .bg-myaccount-wrap .button.bg-delete:hover {
  background: #e53935 !important;
  color: #fff !important;
  border-color: #e53935 !important;
}

.button.bg-edit:focus-visible {
  outline: 2px solid #57bde0;
  outline-offset: 2px;
}

.button.bg-delete:focus-visible {
  outline: 2px solid #57bde0;
  outline-offset: 2px;
}

.button.bg-pay:focus-visible {
  outline: 2px solid #57bde0;
  outline-offset: 2px;
}

.button.bg-restore:focus-visible {
  outline: 2px solid #57bde0;
  outline-offset: 2px;
}

.button.bg-cancel:focus-visible {
  outline: 2px solid #57bde0;
  outline-offset: 2px;
}

.mybo-account-page .mybo-account-navigation a:focus-visible {
  outline: 2px solid #57bde0;
  outline-offset: 2px;
}

.mybo-account-page .bg-myaccount-wrap table.my_account_orders tr.is-completed td:not(.actions) {
  color: #7CFF7A !important; 
}
.mybo-account-page .bg-myaccount-wrap table.my_account_orders tr.is-completed td.actions {
  vertical-align: middle;
}

.mybo-account-page .bg-myaccount-wrap a.button.bg-edit.is-disabled[aria-disabled="true"],
.mybo-account-page .bg-myaccount-wrap a.button.bg-edit.is-disabled {
  pointer-events: none;
  color: #7a8b92 !important;
  border-color: #55666b !important;
  background: transparent !important;
}
.mybo-account-page .bg-myaccount-wrap button.bg-cancel[disabled],
.mybo-account-page .bg-myaccount-wrap button.bg-cancel[aria-disabled="true"] {
  pointer-events: none;
  color: #7a8b92 !important;
  border-color: #55666b !important;
  background: transparent !important;
}

.button.bg-edit[disabled] {
  background: transparent !important;
  border-color: #555 !important;
  color: #888 !important;
  cursor: not-allowed;
  opacity: .75;
}

.button.bg-delete[disabled] {
  background: transparent !important;
  border-color: #555 !important;
  color: #888 !important;
  cursor: not-allowed;
  opacity: .75;
}

.button.bg-edit[aria-disabled="true"] {
  background: transparent !important;
  border-color: #555 !important;
  color: #888 !important;
  cursor: not-allowed;
  opacity: .75;
}

.button.bg-delete[aria-disabled="true"] {
  background: transparent !important;
  border-color: #555 !important;
  color: #888 !important;
  cursor: not-allowed;
  opacity: .75;
}

.mybo-account-page .bg-myaccount-wrap input[type="text"],
.mybo-account-page .bg-myaccount-wrap input[type="number"],
.mybo-account-page .bg-myaccount-wrap textarea,
.mybo-account-page .bg-myaccount-wrap select {
  background: #f5f6f7 !important;
  color: #222 !important;
  border: 1px solid #cfd3d8 !important;
  border-radius: 6px !important;
  padding: 10px 12px !important;
  box-shadow: inset 0 1px 0 rgba(255,255,255,.3);
}
.mybo-account-page .bg-myaccount-wrap input[type="text"]::placeholder,
.mybo-account-page .bg-myaccount-wrap textarea::placeholder {
  color: #8a8f96;
}
.mybo-account-page .bg-myaccount-wrap input[type="text"]:focus,
.mybo-account-page .bg-myaccount-wrap input[type="number"]:focus,
.mybo-account-page .bg-myaccount-wrap textarea:focus,
.mybo-account-page .bg-myaccount-wrap select:focus {
  border-color: #4299e1 !important;
  outline: none;
  box-shadow: 0 0 0 2px rgba(66,153,225,.15);
}

.mybo-account-page .bg-myaccount-wrap input[type="number"] {
  max-width: 110px;
  text-align: right;
}

input[type=number]::-webkit-outer-spin-button,
input[type=number]::-webkit-inner-spin-button {
  -webkit-appearance: none;
  margin: 0;
}
input[type=number] { -moz-appearance: textfield; appearance: textfield; }

.mybo-account-page .bg-myaccount-wrap h3 {
  color: #fff;
  font-size: 20px;
  margin: 18px 0 12px;
}
.mybo-account-page .bg-myaccount-wrap h3 + p,
.mybo-account-page .bg-myaccount-wrap h3 + div,
.mybo-account-page .bg-myaccount-wrap .bg-info-card {
  background: #2d2d2d;
  border: 1px solid #3a3a3a;
  border-radius: 8px;
  padding: 14px;
}

/* Larghezze colonne tabella prenotazioni (7 colonne) */
.mybo-account-page .bg-myaccount-wrap table.my_account_orders th:nth-child(1),
.mybo-account-page .bg-myaccount-wrap table.my_account_orders td:nth-child(1) { width: 8%; }  /* Ordine */
.mybo-account-page .bg-myaccount-wrap table.my_account_orders th:nth-child(2),
.mybo-account-page .bg-myaccount-wrap table.my_account_orders td:nth-child(2) { width: 18%; } /* Data/Ora */
.mybo-account-page .bg-myaccount-wrap table.my_account_orders th:nth-child(3),
.mybo-account-page .bg-myaccount-wrap table.my_account_orders td:nth-child(3) { width: 25%; } /* Evento */
.mybo-account-page .bg-myaccount-wrap table.my_account_orders th:nth-child(4),
.mybo-account-page .bg-myaccount-wrap table.my_account_orders td:nth-child(4) { width: 7%; }  /* Biglietti */
.mybo-account-page .bg-myaccount-wrap table.my_account_orders th:nth-child(5),
.mybo-account-page .bg-myaccount-wrap table.my_account_orders td:nth-child(5) { width: 7%; }  /* Totale */
.mybo-account-page .bg-myaccount-wrap table.my_account_orders th:nth-child(6),
.mybo-account-page .bg-myaccount-wrap table.my_account_orders td:nth-child(6) { width: 12%; } /* Stato */
.mybo-account-page .bg-myaccount-wrap table.my_account_orders th:nth-child(7),
.mybo-account-page .bg-myaccount-wrap table.my_account_orders td:nth-child(7) { width: 21%; } /* Azioni */

/* Badge stato pagamento - colori come nei report */
.bg-payment-status {
  display: inline-block;
  padding: 6px 12px;
  border-radius: 20px;
  font-size: 12px;
  font-weight: 600;
  text-transform: uppercase;
  letter-spacing: 0.5px;
  white-space: nowrap;
}

.bg-payment-completed {
  background: #dff0d8;  /* Verde */
  color: #3c763d;
  border: 1px solid #d4e9cd;
}

.bg-payment-pending {
  background: #d9edf7;  /* Blu - Da pagare */
  color: #31708f;
  border: 1px solid #bce8f1;
}

.bg-payment-free {
  background: #e2e3e5;  /* Grigio - Gratuito */
  color: #6c757d;
  border: 1px solid #d6d8db;
}

.bg-payment-failed {
  background: #f8d7da;  /* Rosso */
  color: #a94442;
  border: 1px solid #f4c7cb;
}

.bg-payment-canceled {
  background: #f0f0f1;  /* Grigio neutro - Annullato (nessun pagamento da rimborsare) */
  color: #6c757d;
  border: 1px solid #d6d8db;
}

/* Annullato ma con rimborso ancora da fare/parziale: ambra = azione richiesta */
.bg-payment-refund-pending {
  background: #fcf8e3;
  color: #8a6d3b;
  border: 1px solid #faebcc;
}

/* Rimborso TOTALE completato: azzurro = pratica chiusa */
.bg-payment-refunded {
  background: #d1ecf1;
  color: #0c5460;
  border: 1px solid #bee5eb;
}

/* Prenotazione valida ma rimborsata in parte: arancione */
.bg-payment-partial-refund {
  background: #ffe8cc;
  color: #b35900;
  border: 1px solid #ffd8a8;
}

.bg-payment-unknown {
  background: #e2e3e5;
  color: #6c757d;
  border: 1px solid #d6d8db;
}

/* Media queries spostate in bg-smartphone.css e bg-tablet.css */

.mybo-account-page .bg-myaccount-wrap table.shop_table td.actions {
  vertical-align: middle;
}
.mybo-account-page .bg-myaccount-wrap table.shop_table td.actions > a.button.bg-edit { font-weight: 600; }

.mybo-account-page .bg-myaccount-wrap table.shop_table td.actions > a.button,
.mybo-account-page .bg-myaccount-wrap table.shop_table td.actions > form {
  flex: 1 1 0;
  display: flex;
  min-width: 0;
}

.mybo-account-page .bg-myaccount-wrap table.shop_table td.actions > a.button {
  width: 100%;
  align-items: center;
  justify-content: center;
  height: 40px !important;
  padding: 0 12px !important;
  line-height: 40px !important; 
  box-sizing: border-box;
  margin: 0;
  white-space: nowrap;
  overflow: hidden;
  text-overflow: ellipsis;
}

.mybo-account-page .bg-myaccount-wrap table.shop_table td.actions > form > button.button {
  flex: 1 1 auto;
  display: flex;
  align-items: center;
  justify-content: center;
  height: 40px !important;
  padding: 0 12px !important;
  line-height: 40px !important; 
  box-sizing: border-box;
  margin: 0;
  white-space: nowrap;
  overflow: hidden;
  text-overflow: ellipsis;
}

.mybo-account-page .bg-myaccount-wrap table.my_account_orders td.actions {
  vertical-align: middle;
}

.mybo-account-page .bg-myaccount-wrap table.shop_table td.ticket-type { text-align: center; }
.mybo-account-page .bg-myaccount-wrap table.shop_table td.ticket-qty { text-align: right; }
.mybo-account-page .bg-myaccount-wrap table.shop_table td.ticket-qty input[type="number"] { max-width: 90px; text-align: center; }

.mybo-account-page .bg-myaccount-wrap .ticket-type-wrap { display: inline-flex; flex-direction: column; align-items: center; gap: 4px; }
.mybo-account-page .bg-myaccount-wrap .ticket-type-wrap .ticket-type-label { font-weight: 500; color: #dfe3e6; }
.mybo-account-page .bg-myaccount-wrap .ticket-type-wrap .ticket-prices { font-size: 13px; }

/* Media queries spostate in bg-smartphone.css e bg-largescreen.css */

.mybo-account-page .bg-myaccount-wrap .ticket-type-wrap .price-old { color: #9aa0a6; text-decoration: line-through; margin-right: 6px; }
.mybo-account-page .bg-myaccount-wrap .ticket-type-wrap .price-new { color: #7fdcff; font-weight: 600; }
.mybo-account-page .bg-myaccount-wrap .ticket-type-wrap .price-now { color: #cfd3d8; }

@media (prefers-reduced-motion: reduce) {
  .button.bg-edit,
  .button.bg-delete,
  .button.bg-pay,
  .button.bg-restore,
  .button.bg-cancel {
    transition: none;
  }
}

.mybo-account-page .bg-tour-restart-container {
  display: flex;
  justify-content: center;
  align-items: center;
  margin-bottom: 16px;
  padding: 0;
}

.mybo-account-page #bg-restart-tour.button {
  width: 90px;
  height: 90px;
  border-radius: 50% !important;           
  padding: 0 !important;
  display: flex;
  align-items: center;
  justify-content: center;
  text-align: center;
  font-size: 18px;
  line-height: 1.2;
  border: 2px solid #ff8a80 !important;
  background: linear-gradient(135deg, #ff6659 0%, #d32f2f 50%, #b71c1c 100%) !important;
  color: #ffffff !important;
  box-shadow:
    inset 0 2px 4px rgba(255,255,255,0.25),
    inset 0 -3px 6px rgba(0,0,0,0.3),
    0 6px 16px rgba(0,0,0,0.5);
  text-transform: none;
  font-weight: 700;
  letter-spacing: 0.02em;
  cursor: pointer;
}

/* Stili Modifica Prenotazione spostati in css/bg-modify-booking.css */

/* ============================================================================
   PAGINA INFO BONUS
   ============================================================================ */
.bg-info-bonus-page {
  max-width: 900px;
}
.bg-info-bonus-page h2 {
  margin: 0 0 20px !important;
  padding: 14px 18px !important;
  background: linear-gradient(135deg, #2f2f2f 0%, #1a1a1a 100%) !important;
  color: #f5d742 !important;
  border: 1px solid #3a3a3a !important;
  border-radius: 6px !important;
  font-size: 20px !important;
}
.bg-info-bonus-content {
  background: #1f1f1f;
  border: 1px solid #333;
  border-radius: 8px;
  color: #e0e0e0;
  line-height: 1.7;
  padding: 20px 24px;
}
.bg-info-bonus-content h2,
.bg-info-bonus-content h3,
.bg-info-bonus-content h4 {
  color: #f5d742;
  margin-top: 1.2em;
}
.bg-info-bonus-content h2:first-child,
.bg-info-bonus-content h3:first-child,
.bg-info-bonus-content h4:first-child {
  margin-top: 0;
}
.bg-info-bonus-content ul,
.bg-info-bonus-content ol {
  margin-left: 20px;
  padding-left: 0;
}
.bg-info-bonus-content li {
  margin-bottom: 8px;
}
.bg-info-bonus-content a {
  color: #64b5f6;
}
.bg-info-bonus-content a:hover {
  color: #90caf9;
  text-decoration: underline;
}
.bg-info-bonus-content table {
  border-collapse: collapse;
  margin: 16px 0;
  width: 100%;
  table-layout: auto;
}
.bg-info-bonus-content {
  overflow-x: auto;
}
.bg-info-bonus-content p,
.bg-info-bonus-content hr {
  display: block !important;
}
.bg-info-bonus-content th,
.bg-info-bonus-content td {
  border: 1px solid #444 !important;
  padding: 14px 20px !important;
  text-align: left;
  vertical-align: middle;
}
.bg-info-bonus-content th {
  background: #2a2a2a;
  color: #f5d742;
  white-space: nowrap;
}
.bg-info-bonus-content tr:nth-child(even) td {
  background: #252525;
}
/* Colonna Livello: larghezza auto, non troncare */
.bg-info-bonus-content td:first-child,
.bg-info-bonus-content th:first-child {
  white-space: nowrap;
  min-width: 160px;
}
/* Colonna Stelle: centrata */
.bg-info-bonus-content td:nth-child(2),
.bg-info-bonus-content th:nth-child(2) {
  text-align: center;
  white-space: nowrap;
}
/* Colonna Bonus: occupa spazio rimanente */
.bg-info-bonus-content td:nth-child(3),
.bg-info-bonus-content th:nth-child(3) {
  width: 100%;
}
.bg-info-bonus-content img {
  border-radius: 6px;
  max-width: 100%;
}

/* ============================================================================
   STILI DA mybo-membership-frontend.php
   ============================================================================ */

/* Google Font per scrittura a mano */


/* ========================================
   FORM CAMBIO PASSWORD
   ======================================== */
.bg-password-form {
    background: #1a1a1a;
    border: 1px solid #333;
    border-radius: 6px;
    padding: 20px;
    max-width: 400px;
}
.bg-password-form h2 {
    margin: 0 0 15px 0;
    padding-bottom: 10px;
    border-bottom: 2px solid #d4a84b;
    color: #fff;
    font-size: 1.1em;
}
.bg-password-form .bg-form-row {
    margin-bottom: 12px;
}
.bg-password-form label {
    display: block;
    margin-bottom: 5px;
    color: #aaa;
    font-size: 0.85em;
}
.bg-password-form input[type="password"] {
    width: 100%;
    padding: 10px 12px;
    border: 1px solid #444;
    border-radius: 4px;
    background: #2a2a2a;
    color: #fff;
    font-size: 0.95em;
    box-sizing: border-box;
}
.bg-password-form input:focus {
    border-color: #d4a84b;
    outline: none;
}
.bg-password-form .bg-message {
    padding: 10px 15px;
    border-radius: 4px;
    margin-bottom: 15px;
    font-size: 0.9em;
}
.bg-password-form .bg-message.success {
    background: rgba(76, 175, 80, 0.2);
    border: 1px solid #4caf50;
    color: #4caf50;
}
.bg-password-form .bg-message.error {
    background: rgba(244, 67, 54, 0.2);
    border: 1px solid #f44336;
    color: #f44336;
}
.bg-password-form .bg-buttons {
    display: flex;
    gap: 10px;
    margin-top: 20px;
}
.bg-password-form button {
    background: #d4a84b;
    color: #000;
    border: none;
    padding: 10px 20px;
    font-size: 0.9em;
    font-weight: 600;
    border-radius: 4px;
    cursor: pointer;
}
.bg-password-form button:hover {
    background: #e5b95c;
}
.bg-password-form .bg-back-link {
    display: inline-flex;
    align-items: center;
    padding: 10px 15px;
    background: transparent;
    border: 1px solid #555;
    color: #aaa !important;
    text-decoration: none !important;
    font-size: 0.85em;
    border-radius: 4px;
}
.bg-password-form .bg-back-link:hover {
    border-color: #888;
    color: #fff !important;
}

/* ========================================
   MODAL CONDIVISIONE REFERRAL
   ======================================== */
.bg-share-modal-overlay {
    position: fixed;
    top: 0;
    left: 0;
    width: 100%;
    height: 100%;
    background: rgba(0,0,0,0.7);
    z-index: 100000;
    display: flex;
    align-items: center;
    justify-content: center;
    backdrop-filter: blur(3px);
}
.bg-share-modal-content {
    background: #fff;
    width: 90%;
    max-width: 500px;
    border-radius: 12px;
    padding: 0;
    box-shadow: 0 10px 25px rgba(0,0,0,0.2);
    animation: bgPopIn 0.3s cubic-bezier(0.175, 0.885, 0.32, 1.275);
    overflow: hidden;
    font-family: inherit;
}
@keyframes bgPopIn {
    from { transform: scale(0.8); opacity: 0; }
    to { transform: scale(1); opacity: 1; }
}
.bg-share-modal-header {
    background: #4CAF50;
    color: white;
    padding: 20px;
    text-align: center;
}
.bg-success-icon {
    background: rgba(255,255,255,0.2);
    width: 90px;
    height: 90px;
    border-radius: 50%;
    margin: 0 auto 10px;
    display: flex;
    align-items: center;
    justify-content: center;
}
/* Override del default dashicons WP (font-size/width/height: 20px fissi) */
.bg-success-icon .dashicons,
.bg-success-icon .dashicons-yes,
.bg-success-icon .dashicons:before {
    font-size: 64px !important;
    width: 64px !important;
    height: 64px !important;
    line-height: 1 !important;
    color: #ffffff;
}
.bg-share-modal-header h3 {
    margin: 0;
    color: white;
    font-size: 20px;
}
.bg-share-modal-body {
    padding: 20px;
    color: #333;
}
.bg-share-modal-body ol {
    margin-left: 20px;
    margin-bottom: 15px;
    text-align: left;
}
.bg-share-modal-body li {
    margin-bottom: 5px;
}
.bg-share-preview-box label {
    display: block;
    font-weight: bold;
    margin-bottom: 5px;
    font-size: 12px;
    color: #666;
    text-align: left;
}
.bg-share-preview-box textarea {
    width: 100%;
    height: 80px;
    background: #f5f5f5;
    border: 1px solid #ddd;
    border-radius: 4px;
    padding: 8px;
    font-size: 13px;
    resize: none;
    color: #555;
}
.bg-share-modal-footer {
    background: #f9f9f9;
    padding: 15px 20px;
    border-top: 1px solid #eee;
    display: flex;
    justify-content: space-between;
    align-items: center;
}
.bg-whatsapp-btn {
    background-color: #25D366 !important;
    color: white !important;
    border: none !important;
}
.bg-whatsapp-btn:hover {
    background-color: #128C7E !important;
}

/* ========================================
   SEZIONE TESSERA ASSOCIATIVA
   ======================================== */
.bg-membership-card-section {
    margin: 30px 0;
}

/* Layout a due colonne: Tessera + Livelli */
.bg-membership-layout {
    display: grid;
    grid-template-columns: 1fr 1fr;
    gap: 30px;
    align-items: start;
}
.bg-membership-card-column {
    min-width: 0;
}
.bg-membership-levels-column {
    min-width: 0;
}

/* ========================================
   WIDGET SALVADANAIO
   ======================================== */
.sm-wallet-widget {
    background: linear-gradient(135deg, #0a0a0a 0%, #1a1a2e 100%);
    border: 1px solid rgba(212, 168, 75, 0.4);
    border-radius: 12px;
    padding: 20px;
    margin-bottom: 20px;
}
.sm-wallet-title {
    color: #d4a84b;
    font-size: 1.2em;
    margin: 0 0 15px 0;
    display: flex;
    align-items: center;
    gap: 10px;
}
.sm-wallet-title::before {
    content: '💰';
    font-size: 1.1em;
}

/* Box Codice Invito */
.sm-referral-code-box {
    background: linear-gradient(135deg, rgba(100, 149, 237, 0.15), rgba(65, 105, 225, 0.1));
    border: 1px solid rgba(100, 149, 237, 0.4);
    border-radius: 12px;
    padding: 15px;
    margin-bottom: 15px;
    text-align: center;
}
.sm-referral-code-box h3 {
    color: #fff;
    font-size: 1em;
    margin: 0 0 10px 0;
}
.sm-referral-code-value {
    background: #111;
    color: #6495ED;
    font-size: 1.4em;
    font-weight: 700;
    letter-spacing: 2px;
    padding: 10px 15px;
    border-radius: 8px;
    display: inline-block;
    margin-bottom: 10px;
    font-family: monospace;
}
.sm-referral-code-info {
    color: #c0c0c0;
    font-size: 0.9em;
    margin: 10px 0;
    line-height: 1.5;
    padding: 10px;
    background: rgba(100, 149, 237, 0.1);
    border-radius: 6px;
    border-left: 3px solid #6495ed;
}

/* Stats: Gettoni e Stelle */
.sm-wallet-stats {
    display: grid;
    grid-template-columns: 1fr 1fr;
    gap: 15px;
    margin-bottom: 15px;
}
.sm-wallet-box {
    background: #111;
    border-radius: 10px;
    padding: 15px;
    text-align: center;
    border: 1px solid #333;
}
.sm-wallet-tokens {
    border-color: rgba(212, 168, 75, 0.3);
}
.sm-wallet-stars {
    border-color: rgba(255, 215, 0, 0.3);
}
.sm-wallet-icon {
    font-size: 2em;
    margin-bottom: 5px;
}
.sm-wallet-value {
    font-size: 2.2em;
    font-weight: 700;
    color: #fff;
    line-height: 1;
}
.sm-wallet-tokens .sm-wallet-value {
    color: #d4a84b;
}
.sm-wallet-stars .sm-wallet-value {
    color: #ffd700;
}
.sm-wallet-label {
    color: #888;
    font-size: 0.85em;
    margin-top: 5px;
    text-transform: uppercase;
    letter-spacing: 1px;
}
.sm-wallet-hint {
    color: #555;
    font-size: 0.7em;
    margin-top: 3px;
}

/* Livello attuale nel wallet */
.sm-wallet-level {
    display: flex;
    align-items: center;
    justify-content: center;
    gap: 10px;
    padding: 10px;
    background: rgba(212, 168, 75, 0.1);
    border-radius: 8px;
    margin-bottom: 15px;
}
.sm-wallet-level-badge {
    background: linear-gradient(135deg, #d4a84b, #8b6914);
    color: #000;
    font-size: 0.75em;
    font-weight: 700;
    padding: 4px 10px;
    border-radius: 4px;
}
.sm-wallet-level-name {
    color: #fff;
    font-size: 1.1em;
    font-weight: 600;
}

/* Barra progresso */
.sm-wallet-progress {
    background: #111;
    border-radius: 8px;
    padding: 12px;
}
.sm-progress-label {
    color: #888;
    font-size: 0.8em;
    margin-bottom: 8px;
}
.sm-progress-label strong {
    color: #d4a84b;
}
.sm-progress-bar {
    background: #222;
    border-radius: 10px;
    height: 8px;
    overflow: hidden;
    margin-bottom: 6px;
}
.sm-progress-fill {
    background: linear-gradient(90deg, #d4a84b, #ffd700);
    height: 100%;
    border-radius: 10px;
    transition: width 0.5s ease;
}
.sm-progress-hint {
    color: #666;
    font-size: 0.75em;
    text-align: right;
}

/* Livello massimo raggiunto */
.sm-wallet-max-level {
    display: flex;
    align-items: center;
    justify-content: center;
    gap: 8px;
    padding: 12px;
    background: linear-gradient(135deg, rgba(212, 168, 75, 0.2), rgba(255, 215, 0, 0.1));
    border-radius: 8px;
    border: 1px solid rgba(212, 168, 75, 0.3);
}
.sm-max-icon {
    font-size: 1.3em;
}
.sm-max-text {
    color: #d4a84b;
    font-size: 0.9em;
    font-weight: 600;
}

/* ========================================
   WIDGET LIVELLI FIDELIZZAZIONE
   ======================================== */
.sm-levels-widget {
    background: #0a0a0a;
    border: 1px solid rgba(212, 168, 75, 0.3);
    border-radius: 12px;
    padding: 20px;
}
.sm-levels-title {
    color: #d4a84b;
    font-size: 1.2em;
    margin: 0 0 8px 0;
    display: flex;
    align-items: center;
    gap: 10px;
}
.sm-levels-title::before {
    content: '⭐';
    font-size: 1.1em;
}
.sm-levels-intro {
    color: #888;
    font-size: 0.85em;
    margin: 0 0 20px 0;
    line-height: 1.4;
}

/* Singolo livello */
.sm-level-item {
    background: #111;
    border: 1px solid #333;
    border-radius: 8px;
    padding: 12px 15px;
    transition: all 0.3s ease;
}
.sm-level-item:hover {
    border-color: rgba(212, 168, 75, 0.5);
    background: #151515;
}

/* Livello attuale */
.sm-level-current {
    border-color: #d4a84b;
    background: rgba(212, 168, 75, 0.15);
    box-shadow: 0 0 15px rgba(212, 168, 75, 0.3);
    position: relative;
}
.sm-level-current::after {
    content: '◀ SEI QUI';
    position: absolute;
    right: 10px;
    top: 10px;
    font-size: 0.65em;
    font-weight: 700;
    color: #d4a84b;
    background: rgba(0,0,0,0.5);
    padding: 4px 8px;
    border-radius: 4px;
    letter-spacing: 1px;
    animation: pulse-hand 1.5s ease-in-out infinite;
}
@keyframes pulse-hand {
    0%, 100% { transform: scale(1); opacity: 1; }
    50% { transform: scale(1.15); opacity: 0.8; }
}
.sm-level-current .sm-level-badge {
    background: linear-gradient(135deg, #ffd700, #d4a84b);
}

/* Header livello */
.sm-level-header {
    display: flex;
    align-items: center;
    gap: 10px;
    margin-bottom: 6px;
}
.sm-level-badge {
    background: linear-gradient(135deg, #d4a84b, #8b6914);
    color: #000;
    font-size: 0.7em;
    font-weight: 700;
    padding: 3px 8px;
    border-radius: 4px;
    text-transform: uppercase;
}
.sm-level-name {
    color: #fff;
    font-size: 1em;
    font-weight: 600;
}

/* Requisito stelle */
.sm-level-requirement {
    margin-bottom: 8px;
}
.sm-stars-range {
    color: #888;
    font-size: 0.8em;
}

/* Lista bonus */
.sm-level-bonuses {
    list-style: none;
    margin: 0;
    padding: 0;
    display: flex;
    flex-wrap: wrap;
    gap: 6px 12px;
}
.sm-level-bonuses li {
    color: #aaa;
    font-size: 0.75em;
    display: flex;
    align-items: center;
    gap: 4px;
}
.sm-bonus-tokens { color: #f0ad4e; }
.sm-bonus-booking { color: #5bc0de; }
.sm-bonus-bar { color: #d9534f; }
.sm-bonus-seat { color: #5cb85c; }

/* Descrizione livello */
.sm-level-description {
    color: #666;
    font-size: 0.75em;
    margin: 8px 0 0 0;
    font-style: italic;
    line-height: 1.4;
    display: none;
}

/* Info conversione */
.sm-levels-conversion-info {
    margin-top: 15px;
    padding: 10px 12px;
    background: rgba(212, 168, 75, 0.1);
    border: 1px solid rgba(212, 168, 75, 0.2);
    border-radius: 6px;
    display: flex;
    align-items: center;
    gap: 8px;
}
.sm-conversion-icon {
    font-size: 1.1em;
}
.sm-conversion-text {
    color: #d4a84b;
    font-size: 0.8em;
}

/* ========================================
   SEZIONE LIVELLI - DUE COLONNE
   ======================================== */
.sm-levels-section {
    margin-top: 25px;
}
.sm-levels-two-columns {
    padding: 25px;
}
.sm-levels-two-columns .sm-levels-grid {
    display: grid;
    grid-template-columns: repeat(2, 1fr);
    gap: 15px;
}
.sm-levels-two-columns .sm-level-item {
    padding: 15px;
}
.sm-levels-two-columns .sm-level-header {
    margin-bottom: 8px;
}
.sm-levels-two-columns .sm-level-bonuses-compact {
    color: #aaa;
    font-size: 0.8em;
    margin-top: 8px;
    line-height: 1.5;
}

/* ========================================
   TESSERA CARD VISUAL
   ======================================== */
.bg-membership-full-card {
    margin: 20px 0;
}
.bg-membership-card-visual {
    background: linear-gradient(135deg, #667eea 0%, #764ba2 100%);
    color: white;
    padding: 30px;
    border-radius: 16px;
    box-shadow: 0 10px 40px rgba(0,0,0,0.3);
    max-width: 400px;
    font-family: 'Segoe UI', sans-serif;
    position: relative;
}
.bg-card-header {
    display: flex;
    align-items: center;
    margin-bottom: 30px;
}
.bg-card-logo {
    font-size: 2em;
    margin-right: 10px;
}
.bg-card-title {
    font-size: 1.2em;
    font-weight: bold;
    text-transform: uppercase;
    letter-spacing: 1px;
}
.bg-card-number {
    font-size: 1.5em;
    font-weight: bold;
    letter-spacing: 2px;
    margin-bottom: 20px;
}
.bg-card-holder {
    font-size: 1.1em;
    text-transform: uppercase;
    margin-bottom: 20px;
}
.bg-card-dates {
    display: flex;
    gap: 30px;
    margin-bottom: 15px;
}
.bg-card-label {
    display: block;
    font-size: 0.7em;
    opacity: 0.8;
    text-transform: uppercase;
}
.bg-card-value {
    font-size: 0.9em;
}
.bg-card-status {
    position: absolute;
    top: 20px;
    right: 20px;
    padding: 5px 15px;
    border-radius: 20px;
    font-size: 0.8em;
    font-weight: bold;
}
.bg-card-status-active {
    background: #28a745;
}
.bg-card-status-expired {
    background: #dc3545;
}
.bg-membership-details {
    margin-top: 30px;
}
.bg-membership-details h3 {
    margin-bottom: 15px;
}
.bg-membership-details table {
    width: 100%;
    max-width: 500px;
}
.bg-membership-details th {
    text-align: left;
    padding: 10px;
    background: #f8f9fa;
    width: 40%;
}
.bg-membership-details td {
    padding: 10px;
}

/* Badge stato tessera */
.bg-card-status-badge {
    position: absolute;
    top: 12px;
    right: 12px;
    z-index: 2;
}
.bg-status-active {
    display: inline-block;
    background: linear-gradient(135deg, #228b22, #1a6b1a);
    color: #fff;
    padding: 4px 12px;
    border-radius: 3px;
    font-size: 0.6em;
    font-weight: 700;
    letter-spacing: 1px;
    box-shadow: 0 2px 8px rgba(34, 139, 34, 0.4);
}

/* Tipo tessera in alto */
.bg-card-type-top {
    color: #888888;
    font-size: 0.7em;
    letter-spacing: 3px;
    margin-bottom: 8px;
    font-weight: 400;
}

/* Blocco titolo compatto */
.bg-card-title-block {
    margin-bottom: 8px;
}

/* TEATRO */
.bg-card-teatro {
    color: #ffffff;
    font-size: 1.1em;
    letter-spacing: 6px;
    font-weight: 300;
    margin-bottom: 0;
    line-height: 1.2;
}

/* SALOTTO MAGICO - Testo dorato grande */
.bg-card-salotto {
    font-size: 1.9em;
    font-weight: 700;
    letter-spacing: 2px;
    background: linear-gradient(180deg, #f4e4bc 0%, #d4a84b 40%, #8b6914 100%);
    -webkit-background-clip: text;
    -webkit-text-fill-color: transparent;
    background-clip: text;
    margin-bottom: 2px;
    font-family: 'Times New Roman', serif;
    line-height: 1.1;
}

/* Sottotitolo */
.bg-card-subtitle {
    color: #d4a84b;
    font-size: 0.55em;
    letter-spacing: 1.5px;
    font-weight: 400;
    line-height: 1.2;
}

/* Separatore */
.bg-card-separator {
    color: #d4a84b;
    font-size: 0.7em;
    letter-spacing: 8px;
    margin: 10px 0;
    opacity: 0.6;
}

/* Nome intestatario - FONT SCRITTO A MANO */
.bg-card-holder-label {
    color: #666666;
    font-size: 0.55em;
    letter-spacing: 2px;
    display: block;
    margin-bottom: 0;
}
.bg-card-holder-name {
    color: #ffffff;
    font-size: 2.3em;
    font-weight: 900;
    letter-spacing: 0;
    font-family: 'Dancing Script', cursive;
    line-height: 1;
}

/* Numero tessera */
.bg-card-number-section {
    margin-bottom: 8px;
}
.bg-card-number-label {
    color: #666666;
    font-size: 0.6em;
    letter-spacing: 2px;
    display: block;
    margin-bottom: 0;
}
.bg-card-number-value {
    color: #d4a84b;
    font-size: 1.4em;
    font-weight: 700;
    font-family: 'Courier New', monospace;
    letter-spacing: 3px;
}

/* Date validità e Presidente */
.bg-card-validity {
    display: flex;
    justify-content: center;
    align-items: flex-end;
    gap: 25px;
}
.bg-card-date {
    text-align: center;
}
.bg-card-date-label {
    color: #555555;
    font-size: 0.5em;
    letter-spacing: 1px;
    display: block;
    margin-bottom: 2px;
}
.bg-card-date-value {
    color: #aaaaaa;
    font-size: 0.85em;
    font-weight: 500;
}

/* Presidente */
.bg-card-president {
    text-align: center;
    margin-left: 15px;
}
.bg-card-president-label {
    color: #555555;
    font-size: 0.45em;
    letter-spacing: 1px;
    display: block;
    margin-bottom: 2px;
}
.bg-card-president-name {
    color: #d4a84b;
    font-size: 1.1em;
    font-family: 'Dancing Script', cursive;
    font-weight: 700;
}

/* Info sconto sotto la tessera */
.bg-membership-discount-info {
    display: flex;
    align-items: center;
    justify-content: center;
    gap: 10px;
    margin-top: 15px;
    padding: 12px 18px;
    background: rgba(212, 168, 75, 0.1);
    border: 1px solid rgba(212, 168, 75, 0.3);
    border-radius: 4px;
}
.bg-discount-icon {
    font-size: 1.2em;
}
.bg-discount-text {
    color: #d4a84b;
    font-size: 0.8em;
    font-weight: 500;
    letter-spacing: 1px;
}

/* ========================================
   STILE MENU DEL PERSONAL BOX OFFICE
   ======================================== */
.mybo-account-navigation ul {
    list-style: none;
    padding: 0;
    margin: 0;
    background: #0a0a0a;
    border-radius: 10px;
    overflow: hidden;
    border: 1px solid rgba(212, 168, 75, 0.3);
}
.mybo-account-navigation ul li {
    margin: 0;
    border-bottom: 1px solid rgba(255, 255, 255, 0.05);
}
.mybo-account-navigation ul li:last-child {
    border-bottom: none;
}
.mybo-account-navigation ul li a {
    display: block;
    padding: 15px 20px;
    color: #ccc;
    text-decoration: none;
    font-size: 0.95em;
    transition: all 0.3s ease;
    position: relative;
}
.mybo-account-navigation ul li a:hover {
    background: rgba(212, 168, 75, 0.1);
    color: #d4a84b;
    padding-left: 25px;
}
.mybo-account-navigation ul li.is-active a {
    background: linear-gradient(90deg, rgba(212, 168, 75, 0.2), transparent);
    color: #d4a84b;
    font-weight: 600;
    border-left: 3px solid #d4a84b;
}
.mybo-account-navigation ul li.mybo-account-nav-link--customer-logout a {
    color: #888;
}
.mybo-account-navigation ul li.mybo-account-nav-link--customer-logout a:hover {
    color: #dc3545;
    background: rgba(220, 53, 69, 0.1);
}

/* Header riga tessera */
.bg-card-header-row {
    display: flex;
    justify-content: space-between;
    align-items: center;
    flex-wrap: wrap;
    gap: 10px;
    margin-bottom: 20px;
    padding-bottom: 12px;
    border-bottom: 2px solid #8b0000;
}
.bg-membership-card-section h3 {
    color: #ffffff;
    font-size: 1.3em;
    margin: 0;
    display: flex;
    align-items: center;
    gap: 10px;
}
.bg-membership-card-section h3::before {
    content: '🎫';
    font-size: 1.2em;
}

/* Stampa inline */
.bg-print-inline {
    display: flex;
    align-items: center;
    gap: 10px;
}
.bg-print-hint-inline {
    color: #888;
    font-size: 0.75em;
    font-style: italic;
}
.bg-print-button-small {
    background: linear-gradient(135deg, #d4a84b, #8b6914);
    color: #000;
    border: none;
    width: 36px;
    height: 36px;
    border-radius: 50%;
    font-size: 1em;
    cursor: pointer;
    transition: all 0.3s ease;
    display: flex;
    align-items: center;
    justify-content: center;
}
.bg-print-button-small:hover {
    background: linear-gradient(135deg, #f4e4bc, #d4a84b);
    transform: scale(1.1);
}

/* ========================================
   STATO: NESSUNA TESSERA
   ======================================== */
.bg-membership-none {
    background: #1a1a2e;
    border: 1px dashed #444;
    border-radius: 12px;
    padding: 30px;
    text-align: center;
}
.bg-no-card-icon {
    font-size: 3em;
    margin-bottom: 15px;
    opacity: 0.5;
}
.bg-membership-none p {
    color: #aaa;
    margin: 5px 0;
}
.bg-no-card-hint {
    font-size: 0.9em;
    color: #666 !important;
}

/* ========================================
   TESSERA ATTIVA - STILE DRINK CARD
   ======================================== */
.bg-membership-card-wrapper {
    max-width: 480px;
}
.bg-membership-card-display {
    background: #000000;
    border-radius: 6px;
    padding: 6px;
    box-shadow: 0 20px 60px rgba(0, 0, 0, 0.6);
}

/* Cornice dorata esterna - PIÙ SPESSA */
.bg-card-frame {
    border: 6px solid;
    border-image: linear-gradient(135deg, #8b6914 0%, #d4a84b 20%, #f4e4bc 40%, #d4a84b 60%, #8b6914 80%, #d4a84b 100%) 1;
    padding: 3px;
    position: relative;
}
.bg-card-frame::before {
    content: '';
    position: absolute;
    top: 3px;
    left: 3px;
    right: 3px;
    bottom: 3px;
    border: 2px solid rgba(212, 168, 75, 0.4);
    pointer-events: none;
}

/* Cornice interna */
.bg-card-frame-inner {
    background: #000000;
    padding: 20px 25px 18px;
    text-align: center;
    position: relative;
}

/* Decorazioni angoli */
.bg-card-frame-inner::before,
.bg-card-frame-inner::after {
    content: '❧';
    position: absolute;
    color: #d4a84b;
    font-size: 1.2em;
    opacity: 0.5;
}
.bg-card-frame-inner::before {
    top: 8px;
    left: 12px;
}
.bg-card-frame-inner::after {
    bottom: 8px;
    right: 12px;
    transform: rotate(180deg);
}

/* ========================================
   RESPONSIVE - MOBILE (Membership)
   ======================================== */
@media (max-width: 900px) {
    .bg-membership-layout {
        grid-template-columns: 1fr;
        gap: 25px;
    }
}
@media (max-width: 768px) {
    .sm-levels-two-columns .sm-levels-grid {
        grid-template-columns: 1fr;
    }
}
@media (max-width: 600px) {
    .sm-wallet-widget {
        padding: 15px;
    }
    .sm-wallet-stats {
        gap: 10px;
    }
    .sm-wallet-box {
        padding: 12px 10px;
    }
    .sm-wallet-value {
        font-size: 1.8em;
    }
    .sm-wallet-icon {
        font-size: 1.5em;
    }
    .sm-levels-widget {
        padding: 15px;
    }
    .sm-level-item {
        padding: 10px 12px;
    }
    .sm-level-bonuses {
        flex-direction: column;
        gap: 4px;
    }
    /* Padding per tutta la bacheca del Personal Box Office */
    .mybo-account-content {
        padding: 0 15px;
    }
    .mybo-account-navigation {
        margin: 0 15px 20px;
    }
    .mybo-account-navigation ul li a {
        padding: 12px 15px;
        font-size: 0.9em;
    }
    .bg-membership-card-section {
        padding: 0;
    }
    .bg-card-header-row {
        flex-direction: column;
        align-items: flex-start;
        gap: 15px;
    }
    .bg-print-inline {
        width: 100%;
        justify-content: space-between;
    }
}

/* ============================================================================
   STILI DEI CAMPI AGGIUNTIVI DELL'ANAGRAFICA
   ============================================================================ */

/* ========================================
   MODAL CODICE FISCALE DUPLICATO
   ======================================== */
.bg-cf-duplicate-overlay {
    position: fixed;
    top: 0;
    left: 0;
    width: 100%;
    height: 100%;
    background: rgba(0, 0, 0, 0.8);
    backdrop-filter: blur(8px);
    -webkit-backdrop-filter: blur(8px);
    z-index: 100000;
    display: flex;
    justify-content: center;
    align-items: center;
    padding: 20px;
    box-sizing: border-box;
    animation: bgFadeIn 0.3s ease-out;
}

@keyframes bgFadeIn {
    from { opacity: 0; }
    to { opacity: 1; }
}

.bg-cf-duplicate-modal {
    background: linear-gradient(145deg, #1a1a1a 0%, #2d2d2d 100%);
    border: 1px solid #d4a84b;
    border-radius: 16px;
    padding: 40px 35px;
    max-width: 420px;
    width: 100%;
    text-align: center;
    position: relative;
    box-shadow: 
        0 25px 50px rgba(0, 0, 0, 0.5),
        0 0 0 1px rgba(212, 168, 75, 0.3),
        inset 0 1px 0 rgba(255, 255, 255, 0.05);
    animation: bgSlideUp 0.4s cubic-bezier(0.34, 1.56, 0.64, 1);
}

@keyframes bgSlideUp {
    from { 
        opacity: 0;
        transform: translateY(30px) scale(0.95);
    }
    to { 
        opacity: 1;
        transform: translateY(0) scale(1);
    }
}

.bg-cf-duplicate-close {
    position: absolute;
    top: 12px;
    right: 12px;
    width: 32px;
    height: 32px;
    border: none;
    background: rgba(255, 255, 255, 0.1);
    color: #888;
    font-size: 24px;
    line-height: 1;
    border-radius: 50%;
    cursor: pointer;
    transition: all 0.2s ease;
    display: flex;
    align-items: center;
    justify-content: center;
}

.bg-cf-duplicate-close:hover {
    background: rgba(212, 168, 75, 0.2);
    color: #d4a84b;
    transform: rotate(90deg);
}

.bg-cf-duplicate-icon {
    width: 70px;
    height: 70px;
    margin: 0 auto 20px;
    background: linear-gradient(135deg, rgba(212, 168, 75, 0.2) 0%, rgba(212, 168, 75, 0.1) 100%);
    border-radius: 50%;
    display: flex;
    align-items: center;
    justify-content: center;
    border: 2px solid rgba(212, 168, 75, 0.3);
}

.bg-cf-duplicate-icon svg {
    width: 35px;
    height: 35px;
    color: #d4a84b;
}

.bg-cf-duplicate-title {
    color: #ffffff;
    font-size: 22px;
    font-weight: 700;
    margin: 0 0 15px 0;
    letter-spacing: 0.5px;
}

.bg-cf-duplicate-text {
    color: #aaaaaa;
    font-size: 15px;
    line-height: 1.6;
    margin: 0 0 25px 0;
}

.bg-cf-duplicate-contact {
    background: rgba(212, 168, 75, 0.1);
    border: 1px solid rgba(212, 168, 75, 0.2);
    border-radius: 12px;
    padding: 18px 20px;
    margin-bottom: 25px;
}

.bg-cf-duplicate-contact-label {
    display: block;
    color: #888;
    font-size: 13px;
    margin-bottom: 10px;
}

.bg-cf-duplicate-phone {
    display: inline-flex;
    align-items: center;
    gap: 10px;
    color: #d4a84b;
    font-size: 24px;
    font-weight: 700;
    text-decoration: none;
    transition: all 0.2s ease;
}

.bg-cf-duplicate-phone:hover {
    color: #e5c36b;
    transform: scale(1.05);
}

.bg-cf-phone-icon {
    width: 22px;
    height: 22px;
}

.bg-cf-duplicate-btn {
    background: linear-gradient(135deg, #d4a84b 0%, #b8923f 100%);
    color: #000;
    border: none;
    padding: 14px 40px;
    border-radius: 50px;
    font-size: 15px;
    font-weight: 700;
    cursor: pointer;
    transition: all 0.3s ease;
    text-transform: uppercase;
    letter-spacing: 1px;
    box-shadow: 0 4px 15px rgba(212, 168, 75, 0.3);
}

.bg-cf-duplicate-btn:hover {
    background: linear-gradient(135deg, #e5c36b 0%, #d4a84b 100%);
    transform: translateY(-2px);
    box-shadow: 0 6px 20px rgba(212, 168, 75, 0.4);
}

/* Responsive CF Duplicate Modal */
@media (max-width: 480px) {
    .bg-cf-duplicate-modal {
        padding: 30px 25px;
        margin: 10px;
    }
    
    .bg-cf-duplicate-icon {
        width: 60px;
        height: 60px;
    }
    
    .bg-cf-duplicate-icon svg {
        width: 28px;
        height: 28px;
    }
    
    .bg-cf-duplicate-title {
        font-size: 18px;
    }
    
    .bg-cf-duplicate-phone {
        font-size: 20px;
    }
    
    .bg-cf-duplicate-btn {
        padding: 12px 30px;
        font-size: 14px;
    }
}

/* ========================================
   MODAL CODICE FISCALE GENERICO
   ======================================== */
.bg-modal {
    display: block;
    position: fixed;
    z-index: 9999;
    left: 0;
    top: 0;
    width: 100%;
    height: 100%;
    background-color: rgba(0,0,0,0.85);
    overflow-y: auto;
}

.bg-modal-content {
    background-color: #1a1a1a;
    margin: 5% auto;
    padding: 25px;
    border-radius: 8px;
    width: 90%;
    max-width: 500px;
    max-height: 90vh;
    overflow-y: auto;
    position: relative;
    box-shadow: 0 4px 20px rgba(0, 0, 0, 0.4);
    border: 1px solid #333;
}

.bg-avviso {
    background-color: #2d3748;
    border-left: 4px solid #4299e1;
    padding: 15px;
    margin-bottom: 25px;
    color: #e2e8f0;
    font-size: 18px;
    line-height: 1.5;
    border-radius: 4px;
    text-align: justify;
}

.bg-modal input {
    width: 100%;
    padding: 10px 12px;
    border: 1px solid #404040;
    border-radius: 6px;
    box-sizing: border-box;
    font-size: 15px;
    color: #e2e8f0;
    background-color: #2d2d2d;
    transition: all 0.2s ease;
}

.bg-modal input:focus {
    border-color: #4299e1;
    outline: none;
    box-shadow: 0 0 0 2px rgba(66, 153, 225, 0.2);
    background-color: #333;
}

.bg-modal input[readonly] {
    background-color: #262626 !important;
    border: 1px solid #404040 !important;
    color: #9ca3af !important;
    cursor: not-allowed !important;
}

.bg-modal label {
    display: block;
    margin-bottom: 8px;
    font-weight: 600;
    color: #e2e8f0;
    font-size: 14px;
}

.bg-modal .button {
    width: 100%;
    margin-top: 10px;
    margin-bottom: 10px;
    padding: 12px;
    border-radius: 6px;
    cursor: pointer;
    font-weight: 600;
    font-size: 15px;
    transition: all 0.2s ease;
}

.bg-modal .button-primary {
    background-color: #4299e1;
    color: #ffffff;
    border: 1px solid #4299e1;
}

.bg-modal .button-secondary {
    background-color: transparent;
    color: #4299e1;
    border: 2px solid #4299e1;
}

.bg-modal .button-primary:hover {
    background-color: #3182ce;
    border-color: #3182ce;
}

.bg-modal .button-secondary:hover {
    background-color: rgba(66, 153, 225, 0.1);
    color: #63b3ed;
    border-color: #63b3ed;
}

.bg-modal h2 {
    color: #e2e8f0;
    font-size: 20px;
    margin-bottom: 20px;
    font-weight: 600;
}

/* Responsive Modal CF */
@media screen and (max-width: 768px) {
    .bg-modal-content {
        margin: 0 auto;
        width: 93%;
        height: 100vh;
        max-height: 100vh;
        border-radius: 0;
        background-color: #1a1a1a;
        padding: 5px;
    }
    
    .bg-modal .form-row-first,
    .bg-modal .form-row-last {
        width: 100%;
    }
}

/* ========================================
   MODAL INFORMATIVA REGISTRAZIONE
   ======================================== */
#bg-reg-info-modal.bg-modal {
    display: block;
    position: fixed;
    z-index: 9999;
    left: 0;
    top: 0;
    width: 100%;
    height: 100%;
    background-color: rgba(0,0,0,0.85);
    overflow-y: auto;
}
#bg-reg-info-modal .bg-modal-content {
    background-color: #1a1a1a;
    margin: 5% auto;
    padding: 25px;
    border-radius: 8px;
    width: 90%;
    max-width: 520px;
    max-height: 90vh;
    overflow-y: auto;
    position: relative;
    box-shadow: 0 4px 20px rgba(0, 0, 0, 0.4);
    border: 1px solid #333;
}
#bg-reg-info-modal .bg-avviso {
    background-color: #2d3748;
    border-left: 4px solid #4299e1;
    padding: 15px;
    margin-bottom: 20px;
    color: #e2e8f0;
    font-size: 16px;
    line-height: 1.5;
    border-radius: 4px;
    text-align: justify;
}
#bg-reg-info-modal h2 { color:#e2e8f0; font-size:20px; margin-bottom:16px; font-weight:600; }
#bg-reg-info-modal .button-primary { background-color:#4299e1; color:#fff; border:1px solid #4299e1; padding:12px; border-radius:6px; font-weight:600; }
#bg-reg-info-modal .button-primary:hover { background-color:#3182ce; border-color:#3182ce; }
@media screen and (max-width: 768px) {
    #bg-reg-info-modal .bg-modal-content { margin:0 auto; width:93%; height:100vh; max-height:100vh; border-radius:0; padding:12px; }
}

/* ========================================
   FORM MODIFICA DATI DEL SOCIO
   ======================================== */

.form-row-thirds {
    float: left;
    width: 31.333%;
    margin-right: 2%;
}

.form-row-thirds:last-child {
    margin-right: 0;
}

@media screen and (max-width: 768px) {
    .form-row-thirds {
        width: 100%;
        margin-right: 0;
    }
}

.bg-mobile-account-tabs button.active {
    background: #4299e1;
    color: #fff;
}

.bg-mobile-account-tabs button:hover:not(.active) {
    background: #3a3a3a;
    color: #e2e8f0;
}

/* --- bg-smartphone.css --- */
/**
 * Biglietteria - Stili Smartphone
 * Breakpoint: max-width 768px e inferiori
 * ============================================================================
 */

/* Smartphone (max-width: 768px) */
@media screen and (max-width: 768px) {
    /* ====================================================================
     * NOTA IMPORTANTE — Regole "interfering" rimosse il 2026-05-29
     *
     * Prima qui c'erano molte regole "!important" che fissavano:
     *   - width/max-width al 95% o 100% per i container del carrello
     *   - font-size per .bg-cart-event-title e .bg-cart-event-date
     *   - padding/min-height per i bottoni submit
     * Queste regole sovrascrivevano i settaggi della pagina di
     * personalizzazione (Personalizza → Carrello, vista Smartphone),
     * impedendo all'admin di modificare quei valori per device.
     *
     * Da oggi quei valori sono gestiti ESCLUSIVAMENTE dalle CSS variables
     * responsive emesse in :root via @media (vedi mybo_customize_inject_css)
     * e dalle nuclear rules generate da mybo_customize_build_cart_nuclear_css.
     *
     * In questo file restano SOLO le regole strutturali di layout (display,
     * flex-direction, hide/show di elementi mobile-only) — niente più
     * proprietà visive hardcoded che interferiscano con l'admin.
     * ==================================================================== */

    /* Admin page wrapper — non frontend cart */
    .postbox-container.full-width {
        box-sizing: border-box;
        padding: 10px 0;
        width: 100%;
    }

    /* Box interni a flex container: 100% del loro parent.
     * Mantenuto perché è una regola strutturale (l'utente non ha controllo
     * device-specific sui width interni dei flex children) e non interferisce
     * con campi della pagina personalizzazione (nessun field per questi width). */
    .bg-extra-field,
    .bg-membership-box,
    .bg-user-discounts-box {
        width: 100% !important;
        max-width: 100% !important;
        margin-left: 0 !important;
        margin-right: 0 !important;
        box-sizing: border-box;
    }

    /* Griglia 3 colonne → colonna singola su smartphone (regola strutturale).
     * Non vincola width: ogni elemento usa il proprio *_max_width della pagina
     * Personalizza per device. */
    .bg-tokens-discounts-row,
    .bg-tokens-discounts-row.bg-three-columns {
        display: flex !important;
        flex-direction: column !important;
    }

    /* Children della griglia: occupano tutta la colonna (strutturale). */
    .bg-tokens-discounts-row > .bg-level-discount-section,
    .bg-tokens-discounts-row > .bg-tokens-section,
    .bg-tokens-discounts-row > .bg-column-tokens-promo,
    .bg-tokens-discounts-row > .bg-total-discounts-summary,
    .bg-tokens-discounts-row.bg-three-columns > .bg-level-discount-section,
    .bg-tokens-discounts-row.bg-three-columns > .bg-column-tokens-promo,
    .bg-tokens-discounts-row.bg-three-columns > .bg-total-discounts-summary {
        flex: none !important;
    }

    /* Layout carrello — nasconde colonna immagine grande (strutturale). */
    .bg-cart-image-column {
        display: none !important;
    }

    /* Header evento in colonna su mobile (strutturale). */
    .bg-cart-event-header {
        display: flex !important;
        flex-direction: column !important;
        align-items: center;
        text-align: center;
        position: relative;
    }

    /* Immagine evento mobile-only (elemento separato per mobile, strutturale). */
    .bg-cart-image-mobile {
        display: block !important;
        width: 100%;
        text-align: center;
        position: relative !important;
        float: none !important;
    }

    .bg-cart-image-mobile img {
        /* width e border-radius ora gestiti via var(--mybo-cart-thumb-*) dal
         * file bg-cart.css. NB: width usa 'auto' di default ma se admin imposta
         * --mybo-cart-thumb-size (es. mobile 200px) vince quel valore. */
        max-width: 100% !important;
        height: auto !important;
        margin: 0 auto;
        display: block;
        float: none !important;
        position: relative !important;
    }

    /* Rimuove altezza fissa dell'immagine su mobile (strutturale). */
    .bg-cart-event-image {
        height: auto !important;
        width: 100%;
    }

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

    /* Box extra (Stai vicino, Altre info) — colonna invece di riga (strutturale). */
    .bg-extra-fields-wrapper {
        flex-direction: column !important;
    }

    .bg-extra-fields-wrapper .bg-extra-field {
        width: 100% !important;
        min-width: 100% !important;
    }

    .postbox-container.full-width .postbox {
        background: #fff;
        border: 1px solid #ddd;
        border-radius: 4px;
        box-shadow: 0 1px 3px rgba(0,0,0,0.1);
        margin: 30px auto 30px;
        padding: 0px;
    }

    .tablenav.bottom {
        margin: 6px;
        min-height: 0px;
    }

    .postbox-container.full-width h2 {
        background: #f8f8f8;
        border-bottom: 1px solid #ddd;
        font-size: 14px;
        line-height: 1.4;
        margin: 0;
        padding: 12px 15px;
    }

    .report-by-event,
    .report-by-date,
    .email-purchasers {
        display: flex;
        flex-direction: column;
        gap: 15px;
    }

    .postbox-container.full-width .form-field {
        margin-bottom: 15px;
    }

    .postbox-container.full-width label {
        display: block;
        font-weight: 500;
        margin-bottom: 5px;
    }

    .postbox-container.full-width select,
    .postbox-container.full-width input[type="text"],
    .postbox-container.full-width input[type="date"],
    .postbox-container.full-width input[type="email"] {
        background-color: #fff;
        border: 1px solid #ddd;
        border-radius: 4px;
        box-shadow: inset 0 1px 2px rgba(0,0,0,0.07);
        margin-bottom: 10px;
        padding: 8px;
        width: 100%;
    }

    .postbox-container.full-width .checkbox-container {
        align-items: center;
        background: #f8f8f8;
        border: 1px solid #ddd;
        border-radius: 4px;
        display: flex;
        margin-bottom: 15px;
        padding: 10px;
    }

    .postbox-container.full-width .checkbox-container input[type="checkbox"] {
        margin-right: 10px;
    }

    .postbox-container.full-width .button-primary {
        background: #2271b1;
        border-color: #2271b1;
        color: #fff;
        height: auto;
        margin-bottom: 10px;
        padding: 10px;
        text-align: center;
        width: 100%;
    }

    .postbox-container.full-width .button {
        height: auto;
        margin-bottom: 10px;
        padding: 10px;
        text-align: center;
        width: 100%;
    }

    .bg-tabs {
        background: #fff;
        border: 1px solid #ddd;
        border-radius: 4px;
        box-shadow: 0 1px 3px rgba(0,0,0,0.1);
        margin: 0;
        max-width: 100%;
        overflow: hidden;
        width: 100%;
    }

    .bg-tabs .tabs {
        background: #f8f8f8;
        border-bottom: 1px solid #ddd;
        display: flex;
        margin: 0;
        overflow-x: auto;
        padding: 10px 10px 5px;
        -webkit-overflow-scrolling: touch;
    }

    .bg-tabs .wptab {
        background: #fff;
        overflow-x: auto;
        padding: 10px;
        position: relative;
        width: 100%;
        -webkit-overflow-scrolling: touch;
    }

    .bg-sales-report {
        border-collapse: collapse;
        margin: 0;
        min-width: 600px;
        width: 100%;
    }

    .bg-sales-report th {
        border: 1px solid #ddd;
        font-size: 14px;
        padding: 8px;
        text-align: left;
        white-space: nowrap;
    }

    .bg-sales-report td {
        border: 1px solid #ddd;
        font-size: 14px;
        padding: 8px;
        text-align: left;
        white-space: nowrap;
    }

    .bg-sales-report thead th {
        background: #f5f5f5;
        font-weight: bold;
        position: sticky;
        top: 0;
        z-index: 1;
    }

    .bg-sales-report tbody tr:nth-child(even) {
        background: #fafafa;
    }

    .wptab::before {
        background: #f0f0f0;
        border-bottom: 1px solid #ddd;
        color: #666;
        content: "← Scorri →";
        display: block;
        font-size: 14px;
        margin: -10px -10px 10px -10px;
        padding: 5px;
        text-align: center;
    }

    .bg-totals-container {
        background: #fff;
        border: 1px solid #ddd;
        border-radius: 4px;
        box-shadow: 0 1px 3px rgba(0,0,0,0.1);
        margin: 15px 0;
        padding: 15px;
    }

    .jcd-narrow {
        width: 100%;
    }

    .jcd-wide {
        width: 100%;
    }

    .tablenav .tablenav-pages .button {
        font-size: 18px;
        height: 44px;
        min-width: 44px;
        width: 44px;
    }

    .tablenav .tablenav-pages .tablenav-pages-navspan {
        font-size: 18px;
        height: 44px;
        min-width: 44px;
        width: 44px;
    }

    .tablenav-pages .pagination-links {
        display: block ruby;
        font-size: 16px;
    }

    .bg-thank-you-page {
        margin: 20px;
        padding: 20px;
    }

    .bg-thank-you-header {
        margin: -20px -20px 30px -20px;
        padding: 30px 20px;
    }

    .bg-thank-you-header h1 {
        font-size: 28px;
    }

    /* Riepilogo "Prenotazione Completata" — i 5 box impilati su smartphone
     * (regola strutturale, come .bg-tokens-discounts-row qui sopra).
     * Il padding dei box NON viene toccato: e' controllato da admin via
     * --mybo-cart-thanks-box-padding con variante per device. */
    .bg-order-grid {
        grid-template-columns: 1fr;
    }

    .bg-error-popup {
        max-width: none;
        top: 45%;
        width: 95%;
    }

    .bg-error-popup-content {
        padding: 15px;
    }

    .bg-countdown-timer .time {
        font-size: 36px;
    }

    /* Personal Box Office su cellulare */
    

    .bg-mobile-account-tabs {
        background: #f8f8f8 !important;
        border-radius: 5px !important;
        display: flex !important;
        gap: 10px !important;
        justify-content: center !important;
        margin-bottom: 20px !important;
        padding: 10px !important;
    }

    .bg-mobile-account-tabs button {
        background: #fff !important;
        border: 2px solid #ddd !important;
        border-radius: 4px !important;
        cursor: pointer !important;
        flex: 1 !important;
        font-size: 16px !important;
        font-weight: 600 !important;
        padding: 12px 20px !important;
        transition: all 0.3s ease !important;
    }

    .bg-mobile-account-tabs button.active {
        background: #4299e1 !important;
        border-color: #4299e1 !important;
        color: #fff !important;
    }

    .bg-mobile-account-tabs button:not(.active) {
        color: #666 !important;
    }

    #dati-cf .form-row {
        margin-bottom: 10px !important;
    }

    #dati-cf input {
        font-size: 14px !important;
        padding: 8px !important;
    }

    .bg-switch-form-msg-mobile {
        background: rgba(66, 153, 225, 0.1) !important;
        border: 1px solid rgba(66, 153, 225, 0.3) !important;
        border-radius: 5px !important;
        padding: 12px !important;
    }

    .bg-switch-form-msg-mobile strong {
        color: #4299e1 !important;
        font-weight: 700 !important;
    }

    /* Padding gestito dalla pagina Personalizza → Box Office → Layout
     * via --mybo-bo-container-padding. Nessun override hardcoded qui. */

    /* Sconti utente mobile */
    .bg-user-discounts-wrapper {
        margin: 15px 0;
    }

    .bg-user-discounts-box {
        border-radius: 8px;
        padding: 10px;
    }

    .bg-user-discounts-header {
        align-items: flex-start;
        flex-direction: column;
        font-size: 0.9em;
        gap: 5px;
    }

    .bg-discount-hint {
        display: block;
        margin-left: 0;
    }

    .bg-user-discounts-list {
        gap: 6px;
    }

    .bg-user-discounts-wrapper .bg-discount-option {
        padding: 8px 10px !important;
    }

    .bg-user-discounts-wrapper .bg-discount-main-row {
        align-items: center !important;
        display: flex !important;
        flex-direction: row !important;
        flex-wrap: nowrap !important;
        gap: 6px !important;
    }

    .bg-user-discounts-wrapper .bg-discount-option input[type="checkbox"] {
        flex-shrink: 0 !important;
        height: 16px !important;
        min-width: 16px !important;
        width: 16px !important;
    }

    .bg-user-discounts-wrapper .bg-discount-value {
        flex-shrink: 0 !important;
        font-size: 0.65em !important;
        padding: 3px 6px !important;
        white-space: nowrap !important;
    }

    .bg-user-discounts-wrapper .bg-discount-label {
        flex: 1 1 auto !important;
        font-size: 0.8em !important;
        min-width: 0 !important;
    }

    .bg-user-discounts-wrapper .bg-discount-expires {
        font-size: 0.7em !important;
        margin-left: 22px !important;
        margin-top: 4px !important;
    }

    .bg-discount-expires-soon {
        font-size: 0.8em;
    }

    .bg-discounts-widget {
        margin-bottom: 15px;
        padding: 12px;
    }

    .bg-discounts-widget-header {
        gap: 8px;
        margin-bottom: 10px;
    }

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

    .bg-discounts-widget-title {
        font-size: 1em;
    }

    .bg-discounts-widget-list {
        gap: 6px;
    }

    .bg-discounts-widget-item {
        align-items: flex-start;
        flex-direction: column;
        gap: 6px;
        padding: 10px;
    }

    .bg-discounts-widget-value {
        font-size: 0.85em;
        padding: 3px 8px;
    }

    .bg-discounts-widget-details {
        width: 100%;
    }

    .bg-discounts-widget-label {
        font-size: 0.85em;
    }

    .bg-discounts-widget-type {
        font-size: 0.8em;
    }

    .bg-discounts-widget-expires {
        font-size: 0.8em;
    }

    /* Pulsanti metodo di pagamento — testo più grande su mobile.
       NB: la larghezza è ora gestita dalla regola più specifica @480px
       sotto (flex 1 1 50%), per permettere 2 bottoni in riga anche su
       smartphone. Vecchia regola "width: 85% !important" rimossa perché
       forzava un solo bottone per riga su qualsiasi schermo <768px. */
    .gateway-selector li a {
        font-size: 16px !important;
    }
}

/* Smartphone piccolo (max-width: 480px) */
@media screen and (max-width: 480px) {
    
    .biglietteria .table-container {
        width: 100% !important;
        max-width: 100% !important;
        overflow-x: auto !important;
        overflow-y: visible !important;
        max-height: none !important;
        overscroll-behavior: auto !important;
        -webkit-overflow-scrolling: touch;
        scrollbar-width: thin;
        touch-action: auto; 
        margin: 0 !important;
        padding: 0 !important;
        box-sizing: border-box;
        position: relative;
    }
    
    .biglietteria .table-container > table {
        width: auto !important;
        max-width: none !important;
        min-width: 1024px !important;
        display: inline-table !important;
        table-layout: auto !important;
        border-collapse: separate;
        border-spacing: 0;
    }
    .biglietteria .table-container > table th,
    .biglietteria .table-container > table td {
        white-space: nowrap !important;
        text-overflow: ellipsis;
        overflow: hidden;
    }
    
    #wpbody-content,
    .wrap {
        padding-left: 0px !important;
        padding-right: 0px !important;
        margin: 0 !important;
    }

    .bg-report-wrapper,
    .bg-report-main,
    .bg-report-sidebar,
    .bg-report-selector {
        margin: 0 !important;
        padding-left: 10px !important;
        padding-right: 10px !important;
        width: 100% !important;
        max-width: 100% !important;
        box-sizing: border-box;
    }

    .bg-sales-report {
        margin: 0 !important;
        width: auto !important;            
        max-width: none !important;        
        min-width: 900px !important;       
        border-collapse: separate;          
        border-spacing: 0;                  
        table-layout: auto !important;      
        display: inline-table !important;   
    }
    
    .bg-report-wrapper,
    .bg-report-main,
    .bg-tabs .wptab,
    .report-by-event,
    .report-by-date {
        display: block;
        width: 100% !important;
        max-width: 100% !important;
        position: relative;
        overflow-x: auto !important;        
        overflow-y: visible !important;
        -webkit-overflow-scrolling: touch;
        scrollbar-width: thin; 
        touch-action: auto; 
        overscroll-behavior-x: contain; 
        box-sizing: border-box;
        padding-left: 0 !important;
        padding-right: 0 !important;
    }
    .bg-sales-report th,
    .bg-sales-report td {
        padding: 8px !important;
        white-space: nowrap !important;     
        overflow: hidden;                    
        text-overflow: ellipsis;             
        font-size: 14px;
        background: #fff;                    
        box-sizing: border-box;              
    }

    .biglietteria .table-container { position: relative; }
    
    .bg-sales-report th.bg-id,
    .bg-sales-report td.bg-id,
    .bg-sales-report .bg-id { 
        position: sticky !important;
        left: 0 !important;
        z-index: 5; 
        width: 52px !important;             
        min-width: 52px !important;
        max-width: 52px !important;
        border-right: 1px solid #e5e5e5;
        background: #fff !important;
    }
    
    .bg-sales-report th.bg-purchaser,
    .bg-sales-report td.bg-purchaser,
    .bg-sales-report .bg-purchaser { 
        position: sticky !important;
        left: 52px !important; 
        z-index: 4;
        width: 210px !important;            
        min-width: 200px !important;
        max-width: 240px !important;
        border-right: 1px solid #e5e5e5;
        background: #fff !important;
    }
    
    .bg-sales-report th.bg-purchaser,
    .bg-sales-report td.bg-purchaser {
        box-shadow: 3px 0 4px -2px rgba(0,0,0,0.08);
    }

    .bg-sales-report th.bg-price,
    .bg-sales-report td.bg-price {
        width: 90px !important;
        min-width: 90px !important;
        max-width: 90px !important;
    }

    .biglietteria .postbox .inside,
    .biglietteria .postbox .inside .inside {
        overflow-x: auto !important;
        overflow-y: visible !important;
        -webkit-overflow-scrolling: touch;
        scrollbar-width: thin;
        padding-left: 0 !important;
        padding-right: 0 !important;
        touch-action: auto; 
    }
    .biglietteria .postbox {
        overflow: visible !important; 
    }
    
    .biglietteria .postbox .inside table,
    .biglietteria .postbox .inside table.widefat {
        width: auto !important;
        max-width: none !important;
        min-width: 1024px !important; 
        display: inline-table !important;
        table-layout: auto !important;
        border-collapse: separate;
        border-spacing: 0;
    }

    .biglietteria .metabox-holder .postbox-container {
        width: 100% !important;
        max-width: 100% !important;
        float: none !important;
        display: block !important;
    }
    .biglietteria .metabox-holder.columns-2 .postbox-container,
    .biglietteria .metabox-holder.columns-3 .postbox-container {
        width: 100% !important;
        float: none !important;
        clear: both !important;
    }

    .bg-sales-report thead th {
        position: static !important;
    }

    .report-by-date,
    .report-by-customer,
    .report-by-event {
        padding: 10px !important;
        margin: 6px 0 !important;
        width: 100% !important;            
        max-width: 100% !important;
        flex: none !important;             
    }
    .bg-report-selector {
        display: block !important;         
        width: 100% !important;
        max-width: 100% !important;
        gap: 10px !important;
        grid-template-columns: 1fr !important; 
        flex-direction: column !important;      
    }

    body, html, #wpcontent, #wpbody, #wpbody-content {
        overflow-x: hidden !important;
        max-width: 100vw !important;
        overflow-y: auto !important; 
    }

    .bg_cart_form {
        padding: 0 !important;
        border-radius: 4px !important;
        margin: 15px 0 !important;
        width: 100% !important;
        box-sizing: border-box !important;
    }
    
    .bg_cart_form input {
        width: 100%;
        padding: 4px !important;
        margin: 8px 0 15px !important;
        border-radius: 4px !important;
        font-size: 0px;
        height: auto;
    }

    .bg_cart_form textarea {
        width: 100%;
        padding: 12px !important;
        margin: 8px 0 15px !important;
        border-radius: 4px !important;
        font-size: 16px; 
    }
    /* Casella del numero: misura decisa in Personalizza (tab Carrello, gruppo Tabella).
       I valori di scorta sono quelli dello schema, non un formato "mobile" a parte.
       Attenzione: questo blocco vale solo fino a 480px, quindi non copre la fascia
       481-768px: li' comanda direttamente bg-cart.css con le stesse var. */
    .bg-cart-qty-input {
        width: var(--mybo-cart-qty-input-width, 50px) !important;
        font-size: var(--mybo-cart-qty-input-font-size, 16px) !important;
        height: var(--mybo-cart-qty-input-height, 32px) !important;
    }
    .bg_cart_form label {
        display: block !important;
        margin-bottom: 4px !important;
        font-size: 14px !important;
    }

    .bg_cart {
        margin: 10px 0 !important;
        padding: 0 !important;
        border-radius: 4px !important;
        overflow: hidden !important;
        width: 100% !important;
        box-sizing: border-box !important;
    }

    .bg-cart-buttons {
        flex-direction: column !important;
        gap: 10px !important;
    }
    /* .bg-clear-cart-button / .bg-goto-cart-button rimossi 2026-05-27 (popup
     * conflitto carrello obsoleto). Lasciate solo regole comuni a .bg-cart-buttons
     * usate ancora dal bottone Modifica Prenotazione. */

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

    .bg-update-buttons button {
        width: 60px;
        height: 60px;
        margin-left: 10px;
        font-size: 22px;
    }
    .bg_cart_form input[type="submit"] {
        height: 80px;
    }
    
    .bg-discount-total-row {
        display: block !important;
        flex-direction: column !important;
        gap: 15px !important;
    }

    .bg-discount-field {
        width: 100% !important;
    }

    .bg-discount-field label {
        display: block !important;
        margin-bottom: 8px !important;
        font-weight: bold !important;
    }

    .bg-discount-field input {
        width: 100% !important;
        max-width: 200px !important;
        text-transform: uppercase !important;
    }

    .bg-cart-total,
    .bg_cart_total {
        display: flex !important;
        flex-wrap: wrap !important;
        justify-content: center !important;
        align-items: center !important;
        gap: 5px !important;
        width: 100% !important;
        margin-top: 10px !important;
        text-align: center !important;
        padding: 15px !important;
    }
    
    /* Due righe: nasconde separatore e forza a capo dopo numero biglietti */
    .bg_cart_total .bg-total-separator {
        display: none !important;
    }
    
    .bg_cart_total .bg_total_tickets::after {
        content: "" !important;
        flex-basis: 100% !important;
        height: 8px !important;
    }
    
    .bg_cart_total .bg_total_tickets,
    .bg_cart_total .bg_total_number {
        font-size: var(--mybo-cart-total-price-size, 1.4em) !important;
        color: var(--mybo-cart-total-price-color, #22b2ee) !important;
        font-weight: var(--mybo-cart-total-price-weight, bold) !important;
    }

    .bg_cart .bg-controls {
        margin: 10px 0 !important;
        gap: 10px !important;
    }
    
    .bg_cart .bg-controls button {
        width: 40px !important;
        height: 40px !important;
        font-size: 20px !important;
        border-radius: 50% !important;
    }
    
    .bg_cart td input[type="number"],
    .bg_cart td .input-text {
        width: 55px !important;
        height: 40px !important;
        font-size: 16px !important;
    }

    .info_extra {
        flex-direction: column !important;
        gap: 15px !important;
        margin-top: 20px !important;
        width: 100% !important;
        box-sizing: border-box !important;
    }

    #bg_posti_vicino, #bg_additional {
        width: 100% !important;
        box-sizing: border-box !important;
    }
    
    .box_posti_vicino, .box_additional {
        max-width: 100% !important;
        margin-bottom: 0px !important;
        padding: 15px 15px 0px;
    }

    .bg_cart th[scope="row"] {
        font-size: 16px !important;
    }
    
    .bg_cart th .bg-datetime {
        display: block !important;
        margin-top: 5px !important;
        font-size: 14px !important;
        color: #aaa !important;
        width: 100% !important;
        box-sizing: border-box !important;
        word-wrap: break-word !important;
    }

    .empty-cart {
        color: white !important;
        background-color: #303030 !important;
        padding: 15px !important;
        margin: 15px 0 !important;
        text-align: center !important;
        border-radius: 4px !important;
        font-size: 16px !important;
    }

    #bg-content-container {
        background-color: #202020 !important;
        color: white !important;
        padding: 15px !important;
        border-radius: 4px !important;
        margin: 15px 0 !important;
    }

    .bg_cart_handling, .bg_ticket_handling {
        color: white !important;
        font-size: 12px;
        text-align: center;
    }

    .bg-error-popup {
        width: 94%;
        top: 40%;
        border-radius: 4px; 
    }

    .bg-error-popup-header {
        padding: 10px;
    }

    .bg-error-popup-title {
        font-size: 1.1em;
    }

    .bg-error-popup-content {
        padding: 5px;
    }

    .gateway-selector {
        width: 95% !important;
        max-width: 95% !important;
        margin-left: auto !important;
        margin-right: auto !important;
    }

    .gateway-selector ul {
        display: flex !important;
        flex-direction: row !important;
        flex-wrap: wrap !important;
        justify-content: center !important;
        gap: 8px !important;
        padding: 10px 0 !important;
        width: 100% !important;
        box-sizing: border-box !important;
    }

    .gateway-selector li {
        flex: 1 1 calc(50% - 8px) !important;
        min-width: calc(50% - 8px) !important;
        max-width: calc(50% - 8px) !important;
        width: auto !important;
        margin: 0 !important;
        /* Smartphone: 2 bottoni in riga di default. Se ce n'è uno solo,
           occuperà metà larghezza; se ce ne sono 3+ wrappano a 2 per riga. */
    }
    
    .gateway-selector li a {
        font-size: 16px !important;
        padding: 12px 10px !important;
        width: 100% !important;
        display: flex !important;
        flex-direction: column !important;
        align-items: center !important;
        justify-content: center !important;
        text-align: center !important;
        box-sizing: border-box !important;
        height: 90px !important;
    }
    
    .payment-method-title {
        font-size: 16px !important;
        margin-bottom: 10px !important;
        text-align: center !important;
    }

    /* Sconti utente smartphone piccolo */
    .bg-user-discounts-box {
        padding: 6px !important;
    }
    
    .bg-user-discounts-header {
        font-size: 0.8em !important;
    }
    
    .bg-user-discounts-wrapper .bg-discount-option {
        padding: 6px 8px !important;
    }
    
    .bg-user-discounts-wrapper .bg-discount-main-row {
        gap: 5px !important;
    }
    
    .bg-user-discounts-wrapper .bg-discount-option input[type="checkbox"] {
        width: 14px !important;
        height: 14px !important;
        min-width: 14px !important;
    }
    
    .bg-user-discounts-wrapper .bg-discount-value {
        font-size: 0.8em !important;
        padding: 4px 10px !important;
    }
    
    .bg-user-discounts-wrapper .bg-discount-label {
        font-size: 0.9em !important;
        line-height: 1.2 !important;
    }
    
    .bg-user-discounts-wrapper .bg-discount-expires {
        font-size: 0.6em !important;
        margin-left: 19px !important;
    }

    .bg-discounts-widget {
        padding: 10px;
    }
    
    .bg-discounts-widget-item {
        padding: 8px;
    }
    
    .bg-discounts-widget-value {
        font-size: 0.8em;
    }
    
    .bg-discounts-widget-label {
        font-size: 0.8em;
    }
    
    .bg-discounts-widget-type,
    .bg-discounts-widget-expires {
        font-size: 0.75em;
    }
}

/* Smartphone molto piccolo (max-width: 320px) */
@media screen and (max-width: 320px) {
    
    .bg-error-popup {
        width: 96%;
        top: 35%;
    }

    .bg-error-popup-title {
        font-size: 1em;
    }

    .bg-error-popup-content p {
        font-size: 0.9em;
        line-height: 1.4;
    }

    .bg-countdown-timer {
        padding: 6px;
        max-width: 180px;
    }

    .bg-countdown-timer .time {
        font-size: 28px;
        padding: 5px;
    }
}

/* ============================================================================
 * CARRELLO MODERNO - SMARTPHONE
 * ============================================================================ */

/* Carrello moderno smartphone (max-width: 768px) - stile come pagina modifica */
@media (max-width: 768px) {

    /* Box-sizing strutturale per i container del cart dentro l'area account.
     * width/max-width/margin/padding gestiti da Personalizza → Carrello/Box Office
     * via --mybo-cart-* e --mybo-bo-* (responsive per device). */
    .mybo-account-page .bg_cart {
        box-sizing: border-box !important;
    }

    /* .mybo-account-content: width/max-width/padding/margin gestiti da
     * Personalizza → Box Office → Area contenuto via --mybo-bo-content-*. */

    /* Bottone conferma modifica - margin/padding strutturali sotto layout mobile.
     * Width gestito dal field submit_max_width (se presente). */
    .bg-modify-actions {
        margin: 20px auto !important;
    }
    
    .bg-modify-actions #bg_modify_submit,
    .bg-modify-actions .button-primary {
        width: 100% !important;
        min-height: 60px !important;
        padding: 18px 20px !important;
        font-size: 20px !important;
        font-weight: bold !important;
        border-radius: 10px !important;
        cursor: pointer;
    }
    
    /* Tasti +/- quantità: misura decisa in Personalizza (tab Carrello, gruppo Tabella).
       I valori di scorta sono quelli dello schema, non un formato "mobile" a parte. */
    .bg-cart-qty-btn {
        width: var(--mybo-cart-qty-btn-size, 32px) !important;
        height: var(--mybo-cart-qty-btn-size, 32px) !important;
        min-width: var(--mybo-cart-qty-btn-size, 32px) !important;
        min-height: var(--mybo-cart-qty-btn-size, 32px) !important;
        font-size: var(--mybo-cart-qty-btn-font-size, 18px) !important;
        font-weight: var(--mybo-cart-qty-btn-font-weight, bold) !important;
        border-radius: var(--mybo-cart-qty-btn-radius, 5px) !important;
        display: flex !important;
        align-items: center !important;
        justify-content: center !important;
    }
    
    .bg-cart-modern {
        padding: 0;
    }
    
    .bg-cart-tickets-box {
        border-radius: 8px;
        margin-bottom: 15px;
    }
    
    .bg-cart-event-header {
        flex-direction: column;
        gap: 10px;
        padding: 12px;
        text-align: center;
    }
    
    .bg-cart-event-image {
        height: var(--mybo-cart-thumb-size, 80px);
        margin: 0 auto;
    }

    .bg-cart-event-title {
        font-size: var(--mybo-cart-header-title-size, 1em);
    }

    .bg-cart-event-date {
        font-size: var(--mybo-cart-header-subtitle-size, 0.85em);
    }
    
    /* Header colonne - nascosto su mobile */
    .bg-cart-tickets-header {
        display: none !important;
    }
    
    /* Righe biglietti - grid a colonna singola su mobile */
    .bg-cart-ticket-row {
        display: grid;
        grid-template-columns: 1fr !important;
        gap: 0 !important;
        padding: 0 !important;
        border-bottom: 1px solid #444;
    }
    
    /* Mantiene nascoste le righe con display:none inline (es. Omaggio a 0) */
    .bg-cart-ticket-row[style*="display:none"],
    .bg-cart-ticket-row[style*="display: none"] {
        display: none !important;
    }

    .bg-membership-discount-row .bg-cart-col-qty {
        color: var(--mybo-cart-membership-badge-text, #fff) !important;
        font-weight: bold;
        width: 85%;
        margin: auto;
    }
    
    /* Riga Omaggio - layout smartphone (solo se visibile) */
  .bg-cart-ticket-row.bg-cart-Omaggio-row {
    display: grid;
    grid-template-columns: 1fr !important;
    width: 80% !important;
    max-width: 100% !important;
    margin: 0 auto !important;
    padding: 0 !important;
    box-sizing: border-box !important;
  }
    
    /* Riga Omaggio - nascosta se valore è 0 */
    .bg-cart-ticket-row.bg-cart-Omaggio-row[style*="display:none"],
    .bg-cart-ticket-row.bg-cart-Omaggio-row[style*="display: none"] {
        display: none !important;
    }
    
    /* Riga Omaggio - colonna qty stile verde */
    .bg-cart-Omaggio-row .bg-cart-col-qty {
        background: var(--mybo-cart-omaggio-badge-bg, linear-gradient(145deg, #4CAF50, #43A047, #388E3C)) !important;
        color: var(--mybo-cart-omaggio-badge-text, #fff) !important;
        font-weight: bold;
        text-align: center;
        width: 100% !important;
        max-width: 100% !important;
        margin: 0 auto !important;
        border-radius: 5px !important;
        padding: 10px 15px !important;
    }
    
    /* Colonna etichetta */
    .bg-cart-col-label {
        font-size: 1.5em !important;
        padding: 12px 15px !important;
        margin-top: 10px !important;
        text-align: center !important;
        background: transparent !important;
    }
    
    /* Colonna quantità */
    .bg-cart-col-qty {
        justify-content: center !important;
        padding: 10px 15px !important;
        margin: 0 !important;
        border-radius: 0 !important;
        background: rgba(0, 0, 0, 0.4) !important;
    }
    
   /* .bg-cart-col-qty::before {
        content: "Quantità: ";
        color: #888;
        font-size: 0.85em;
        margin-right: 5px;
    }*/
    
    /* Colonna prezzo */
    .bg-cart-col-price {
        justify-content: center !important;
        padding: 10px 15px !important;
        margin: 0 0 10px 0 !important;
        background: rgba(255, 255, 255, 0.1) !important;
        border-radius: 0 !important;
        font-size: 22px !important;
    }
    
    .bg-cart-col-price::before {
        content: "Prezzo: ";
        color: #888;
        font-size: 0.85em;
        margin-right: 5px;
    }

    .bg-time-discount-notice-inline {
        color: #10b981;
        flex-basis: 100%;
        font-size: 17px;
        font-style: italic;
        margin-top: -15px;
    }

    .bg-membership-fee-row {

	margin: 10px auto;
	padding: 5px 0;
	width: 95%;
	border-radius: 10px;
	grid-template-columns: 1fr;
}

.bg-membership-fee-row .bg-cart-col-qty {
	border-radius: 5px;
	color: #1a1a1a !important;
	font-weight: bold;
	width: 85%;
    margin: auto;
}


    /* La casella del numero NON si ridimensiona qui: la sua misura arriva dai
       campi "Input quantità" di Personalizza (var --mybo-cart-qty-input-*), che
       bg-cart.css applica a ogni larghezza. Le misure scolpite che stavano qui
       (font 20px, 48x60) scavalcavano il pannello per tutta la fascia 481-768px,
       dove nessun !important le copriva. */

    .bg-price-display {
        font-size: 1em;
        flex-wrap: wrap;
        justify-content: flex-start;
    }
    
    .bg-price-original-strike {
        font-size: 0.85em;
    }
    
    /* Pulsanti carrello - stile come modifica */
    .bg-cart-buttons {
        flex-direction: column;
        gap: 10px;
        margin-top: 15px;
    }
    
    .bg-cart-buttons a.button {
        max-width: 100%;
        min-width: 100%;
        padding: 14px;
        font-size: 16px;
    }
    /* .bg-clear-cart-button / .bg-goto-cart-button rimossi 2026-05-27 */

    /* Footer carrello */
    .bg-cart-footer {
        padding: 15px;
    }
    
    .bg-cart-total-row {
        flex-direction: column;
        gap: 5px;
        text-align: center;
    }
    
    .bg_total_number {
        font-size: 1.4em;
    }
    
    /* Box sconti/gettoni/livello - colonna singola */
    .bg-tokens-discounts-row,
    .bg-tokens-discounts-row.bg-three-columns {
        flex-direction: column;
    }
    
    .bg-tokens-discounts-row > .bg-level-discount-section,
    .bg-tokens-discounts-row > .bg-tokens-section,
    .bg-tokens-discounts-row > .bg-total-discounts-summary {
        min-width: 100%;
    }
}

/* Carrello smartphone molto piccolo (max-width: 380px) */
@media (max-width: 380px) {
    .bg-cart-event-title {
        font-size: 0.9em;
    }
    
    .bg-cart-col-label {
        font-size: 0.85em;
    }
    
    /* Ne' i tasti +/- ne' la casella del numero si ridimensionano qui: la loro
       misura arriva dai campi "Bottoni +/−" e "Input quantità" di Personalizza
       (var --mybo-cart-qty-btn-* e --mybo-cart-qty-input-*), validi anche sotto
       i 380px. Una misura scolpita qui scavalcherebbe il pannello. */


    .bg-price-display {
        font-size: 0.9em;
    }
    
    /* Etichette abbreviate su schermi piccoli */
    .bg-cart-col-qty::before {
        content: "Qtà: ";
    }
}

/* ============================================================================
 * STILI ESTRATTI DA ALTRI FILE CSS
 * ============================================================================ */

/* -------------------------------------------------------------------------
 * Da bg-cart.css - Payment Retry e Membership (max-width: 768px)
 * ------------------------------------------------------------------------- */
@media (max-width: 768px) {
    .bg-payment-retry-page {
        border-radius: 10px;
        margin: 16px;
        max-width: 92vw;
        padding: 18px;
    }
    
    .bg-payment-retry-header h1 {
        font-size: 22px;
    }
    
    .bg-payment-retry-icon {
        font-size: 44px;
        margin-bottom: 10px;
    }

    .bg-payment-retry-subtitle {
        font-size: 16px;
        margin: 4px 0 8px;
    }
    
    .bg-payment-retry-main {
        font-size: 16px;
        margin-bottom: 10px;
    }
    
    .bg-payment-retry-content p {
        font-size: 15px;
        line-height: 1.5;
        margin: 8px 0;
    }
    
    .bg-payment-retry-header {
        margin-bottom: 20px;
        padding-bottom: 14px;
    }
    
    .bg-payment-retry-options {
        margin: 16px 0;
        padding: 16px;
    }
    
    .bg-payment-retry-options li {
        padding: 10px 0;
    }

    .bg-payment-retry-actions .button,
    .bg-payment-retry-actions .bg-button-primary {
        max-width: 320px;
        min-height: 48px;
        padding: 14px 18px;
        width: 100%;
    }

    .bg-payment-retry-content a[href^="tel:"] {
        color: #66bb6a;
        font-weight: 700;
        text-decoration: underline;
    }

    .bg-membership-row-content {
        padding: 12px 15px;
    }
}

/* Da bg-cart.css - Payment Retry piccolo (max-width: 380px) */
@media (max-width: 380px) {
    .bg-payment-retry-header h1 {
        font-size: 20px;
    }
    
    .bg-payment-retry-subtitle {
        font-size: 15px;
    }
    
    .bg-payment-retry-main {
        font-size: 15px;
    }
    
    .bg-payment-retry-content p {
        font-size: 14px;
    }
}

/* Da bg-cart.css - Tokens discounts row (max-width: 700px) */
@media (max-width: 700px) {
    .bg-tokens-discounts-row {
        flex-direction: column;
    }
    
    .bg-tokens-discounts-row > .bg-tokens-section,
    .bg-tokens-discounts-row > .bg-total-discounts-summary {
        min-width: 100%;
    }
}

/* -------------------------------------------------------------------------
 * Da bg-loyalty.css - Loyalty e Tokens (max-width: 600px)
 * ------------------------------------------------------------------------- */
@media (max-width: 600px) {
    .sm-cart-loyalty-message {
        flex-direction: column;
        padding: 8px 12px;
        gap: 5px;
    }
    .sm-reward-item {
        font-size: 0.9em;
    }

    .bg-tokens-section {
        padding: 12px;
        margin: 10px 0;
        width: calc(100% - 2px);
    }
    
    .bg-tokens-section * {
        box-sizing: border-box;
    }
    
    .bg-tokens-header {
        flex-direction: column;
        gap: 6px;
        margin-bottom: 18px;
    }
    
    .bg-tokens-icon {
        font-size: 24px;
    }
    
    .bg-tokens-title {
        font-size: 16px;
    }
    
    .bg-tokens-available {
        font-size: 12px;
        margin-top: 2px;
    }
    
    .bg-tokens-slider-container {
        flex-direction: column;
        align-items: stretch;
        gap: 15px;
    }
    
    .bg-tokens-slider-wrapper {
        width: 100%;
        max-width: 100%;
        padding: 0 5px;
    }
    
    .bg-tokens-slider {
        height: 10px;
        width: 100%;
        max-width: 100%;
    }
    
    .bg-tokens-slider::-webkit-slider-thumb {
        width: 32px;
        height: 32px;
    }
    
    .bg-tokens-slider::-moz-range-thumb {
        width: 32px;
        height: 32px;
    }
    
    .bg-tokens-slider-labels {
        margin-top: 12px;
    }
    
    .bg-tokens-label-min,
    .bg-tokens-label-max {
        font-size: 13px;
    }
    
    .bg-tokens-count {
        font-size: 34px;
    }
    
    .bg-tokens-label {
        font-size: 14px;
    }
    
    .bg-tokens-discount-container {
        margin-top: 12px;
    }
    
    .bg-tokens-discount-preview {
        padding: 8px 16px;
        font-size: 14px;
    }

    .bg-level-discount-section {
        padding: 15px;
    }
    .bg-level-discount-amount {
        font-size: 24px;
    }

    .bg-loyalty-summary {
        flex-direction: column;
    }
    
    .bg-loyalty-summary-item {
        flex-direction: row;
        justify-content: center;
        gap: 15px;
    }
    
    .bg-loyalty-history-row {
        flex-direction: column;
    }
    
    .bg-loyalty-row-values {
        flex-direction: row;
        width: 100%;
        justify-content: flex-start;
        margin-top: 10px;
    }
}

/* -------------------------------------------------------------------------
 * Da bg-myaccount.css - Modal e layout (max-width: 480px)
 * ------------------------------------------------------------------------- */
@media (max-width: 480px) {
    .mybo-account-page .bg-myaccount-wrap .bg-modal { padding: 12px; }
    .mybo-account-page .bg-myaccount-wrap .bg-modal__dialog { width: 96vw; max-height: 80vh; }
    .mybo-account-page .bg-myaccount-wrap .bg-modal__header h3 { font-size: 16px; }
}

/* Da bg-myaccount.css - Tabelle e layout (max-width: 720px) */
@media (max-width: 720px) {
    .mybo-account-page .bg-myaccount-wrap table.my_account_orders th,
    .mybo-account-page .bg-myaccount-wrap table.my_account_orders td { width: 100% !important; text-align: left; }
    
    .mybo-account-page .bg-myaccount-wrap table.my_account_orders {
        background: transparent !important;
        border: 0 !important;
    }
    
    .mybo-account-page .bg-myaccount-wrap table.my_account_orders tr { border-bottom: 0 !important; }
    
    .mybo-account-page .bg-myaccount-wrap table.my_account_orders tr.bg-mobile-sep { display: block; height: 16px; background: transparent; }
    .mybo-account-page .bg-myaccount-wrap table.my_account_orders tr.bg-mobile-sep td { display: block; height: 16px; padding: 0; border: 0; }

    .mybo-account-page .mybo-account-content {
        padding-left: 10px;
        padding-right: 10px;
    }
    
    /* Stack sidebar + content su mobile: layout strutturale (float none + width 100%
     * sono necessari per impilare verticalmente). Le proprietà visive (margin,
     * padding, sfondi, bordi) sono gestite dai field di Personalizza → Box Office. */
    .mybo-account-page .mybo-account-navigation,
    .mybo-account-page .mybo-account-content {
        width: 100% !important;
        float: none !important;
        clear: both !important;
    }
    .mybo-account-page .bg-myaccount-wrap table.my_account_orders thead {
        display: none;
    }
    .mybo-account-page .bg-myaccount-wrap table.my_account_orders,
    .mybo-account-page .bg-myaccount-wrap table.my_account_orders tbody,
    .mybo-account-page .bg-myaccount-wrap table.my_account_orders tr,
    .mybo-account-page .bg-myaccount-wrap table.my_account_orders td {
        display: block;
        width: 100%;
    }
    .mybo-account-page .bg-myaccount-wrap table.my_account_orders tr {
        border-bottom: 1px solid #3a3a3a;
        margin-bottom: 12px;
    }
    .mybo-account-page .bg-myaccount-wrap table.my_account_orders td {
        padding: 10px 12px;
    }
    .mybo-account-page .bg-myaccount-wrap table.my_account_orders td::before {
        content: attr(data-label);
        display: block;
        color: #aaa;
        font-size: 12px;
        margin-bottom: 4px;
    }
    .mybo-account-page .bg-myaccount-wrap table.my_account_orders td.actions {
        margin-top: 6px;
    }

    .mybo-account-page .bg-myaccount-wrap table.shop_table thead {
        display: none;
    }
    .mybo-account-page .bg-myaccount-wrap table.shop_table,
    .mybo-account-page .bg-myaccount-wrap table.shop_table tbody,
    .mybo-account-page .bg-myaccount-wrap table.shop_table tr,
    .mybo-account-page .bg-myaccount-wrap table.shop_table td {
        display: block;
        width: 100%;
    }
    .mybo-account-page .bg-myaccount-wrap table.shop_table tr {
        background: #2b2b2b;
        border: 1px solid #3a3a3a;
        border-radius: 8px;
        padding: 10px;
        margin-bottom: 12px;
        display: flex;
        flex-wrap: wrap;
        align-items: center;
    }
    .mybo-account-page .bg-myaccount-wrap table.shop_table td {
        border-top: 0 !important;
        border-bottom: 0 !important;
        background-image: none !important;
        background-color: transparent !important;
        box-shadow: none !important;
        padding: 8px 6px;
        box-sizing: border-box;
        flex: 1 1 100%;
    }
    .mybo-account-page .bg-myaccount-wrap table.shop_table td::before {
        content: attr(data-label);
        display: block;
        color: #9aa0a6;
        font-size: 12px;
        margin-bottom: 4px;
    }
    .mybo-account-page .bg-myaccount-wrap input[type="number"] { max-width: 100%; text-align: left; font-size: 16px; }
    .mybo-account-page .bg-myaccount-wrap input[type="text"],
    .mybo-account-page .bg-myaccount-wrap textarea { font-size: 16px; }
    .mybo-account-page .bg-myaccount-wrap .button.button-primary,
    .mybo-account-page .bg-myaccount-wrap button[type="submit"] {
        width: 100%;
        padding: 12px;
        font-size: 16px;
        margin-top: 20px;
    }

    .mybo-account-page .bg-myaccount-wrap table.shop_table td.ticket-type,
    .mybo-account-page .bg-myaccount-wrap table.shop_table td.ticket-qty {
        flex: 0 0 50%;
    }
    .mybo-account-page .bg-myaccount-wrap table.shop_table td.ticket-type { text-align: left; padding-right: 8px; display:flex; align-items:center; gap:8px; }
    .mybo-account-page .bg-myaccount-wrap table.shop_table td.ticket-qty { text-align: right; padding-left: 8px; display:flex; justify-content:flex-end; align-items:center; }
    .mybo-account-page .bg-myaccount-wrap table.shop_table td.ticket-type { min-height: 40px; }
    .mybo-account-page .bg-myaccount-wrap table.shop_table td.ticket-qty input[type="number"] { width: 72px; max-width: 72px; text-align: center; height: 40px; line-height: 40px; }
    
    .mybo-account-page .bg-myaccount-wrap .ticket-type-wrap { align-items: flex-start; gap: 2px; }
    .mybo-account-page .bg-myaccount-wrap .ticket-type-wrap .ticket-prices { font-size: 12px; }
    
    .mybo-account-page .bg-myaccount-wrap table.shop_table td:not(.ticket-type):not(.ticket-qty) { flex: 1 1 100%; }
    
    .mybo-account-page .bg-myaccount-wrap table.shop_table td.ticket-type::before,
    .mybo-account-page .bg-myaccount-wrap table.shop_table td.ticket-qty::before { display: none; }
}

/* -------------------------------------------------------------------------
 * Da bg-thank-you.css - Thank you page (max-width: 768px)
 * ------------------------------------------------------------------------- */
@media (max-width: 768px) {
    .bg-thank-you-page {
        margin: 20px 10px;
        padding: 20px;
    }
    
    .bg-thank-you-header {
        margin: -30px -21px 20px -21px;
        padding: 15px;
    }
    
    .bg-thank-you-header h1 {
        font-size: 26px;
    }
    
    /* Duplicato storico della regola sopra (merge di bg-thank-you.css).
     * Solo impilamento: gap ed estetica restano admin-controllabili. */
    .bg-order-grid {
        grid-template-columns: 1fr;
    }

    .ticket-details {
        max-width: 100%;
    }
}

/* -------------------------------------------------------------------------
 * Stili condivisi modifica/carrello (max-width: 768px)
 * ------------------------------------------------------------------------- */
@media (max-width: 768px) {
    .bg-promo-code-section {
        flex-wrap: wrap;
    }
    
    .bg-promo-code-section input[type="text"] {
        max-width: 100%;
        width: 100%;
    }
    
    .bg-price-display {
        max-width: 180px;
        justify-content: flex-start;
    }
    
    .bg-price-original-strike {
        font-size: 0.8em;
    }
    
    .bg-user-discounts-list .bg-discount-option input[type="checkbox"],
    .bg-user-discounts-box input[type="checkbox"] {
        width: 22px !important;
        height: 22px !important;
        min-width: 22px !important;
        transform: scale(1.2);
    }
    
    .bg-user-discounts-list {
        gap: 15px;
    }
    
    .bg-discount-option {
        padding: 12px !important;
    }
    
    /* Membership boxes - su mobile in colonna */
    .bg-membership-boxes-wrapper {
        flex-direction: column;
        gap: 10px;
    }
    
    .bg-membership-box {
        flex-wrap: wrap;
        justify-content: center;
        padding: 12px 15px;
        text-align: center;
    }
}

/* Modifica prenotazione smartphone (max-width: 600px) */
@media (max-width: 600px) {
    .gateway-selector.gateway-count-1,
    .gateway-selector.gateway-count-2 {
        max-width: 95% !important;
    }

    /* Layout-only mobile rules (flex direction + icon centering).
     * Tutti gli override visivi (size, padding, font, gap) sono ora gestiti
     * dalla pagina Personalizza via @media :root CSS variables responsive. */
    .bg-venue-rental-notice {
        flex-direction: column;
        text-align: center;
    }

    .bg-venue-rental-notice-icon {
        margin: 0 auto;
    }
}

/* =========================================================================
 * SCONTI EMAIL RICORRENZE - Responsive smartphone
 * ========================================================================= */
@media screen and (max-width: 768px) {

    /* Contenitore principale */
    .bg-recurring-discounts-wrap {
        max-width: 100% !important;
        padding: 0 8px !important;
        box-sizing: border-box;
    }

    /* Statistiche: griglia 2x2 */
    .bg-re-stats-row {
        display: grid !important;
        grid-template-columns: 1fr 1fr !important;
        gap: 10px !important;
        margin: 12px 0 !important;
    }

    .bg-re-stat-card {
        min-width: 0 !important;
        padding: 12px 10px !important;
    }

    .bg-re-stat-number {
        font-size: 22px !important;
    }

    .bg-re-stat-label {
        font-size: 11px !important;
    }

    .bg-re-stat-euro {
        font-size: 13px !important;
    }

    /* Filtri: in colonna */
    .bg-re-filters {
        padding: 10px !important;
    }

    .bg-re-filters form {
        flex-direction: column !important;
        align-items: stretch !important;
        gap: 8px !important;
    }

    .bg-re-filters select,
    .bg-re-filters input[type="search"] {
        max-width: 100% !important;
        width: 100% !important;
    }

    .bg-re-filters label {
        margin-left: 0 !important;
    }

    /* Wrapper tabella: scorrimento orizzontale */
    .bg-recurring-discounts-wrap .bg-re-table {
        display: block !important;
        overflow-x: auto !important;
        overflow-y: visible !important;
        -webkit-overflow-scrolling: touch;
        border-collapse: separate !important;
        border-spacing: 0 !important;
        width: 100% !important;
    }

    .bg-recurring-discounts-wrap .bg-re-table thead,
    .bg-recurring-discounts-wrap .bg-re-table tbody {
        display: table !important;
        width: auto !important;
        min-width: 900px !important;
    }

    .bg-recurring-discounts-wrap .bg-re-table thead {
        display: table-header-group !important;
    }

    .bg-recurring-discounts-wrap .bg-re-table tbody {
        display: table-row-group !important;
    }

    .bg-recurring-discounts-wrap .bg-re-table tr {
        display: table-row !important;
    }

    .bg-recurring-discounts-wrap .bg-re-table th,
    .bg-recurring-discounts-wrap .bg-re-table td {
        display: table-cell !important;
        white-space: nowrap !important;
        font-size: 13px !important;
        padding: 8px 10px !important;
    }

    /* Prima colonna (Utente) fissa */
    .bg-recurring-discounts-wrap .bg-re-table th.bg-re-col-user,
    .bg-recurring-discounts-wrap .bg-re-table td.bg-re-col-user {
        position: sticky !important;
        left: 0 !important;
        z-index: 5 !important;
        background: #fff !important;
        min-width: 150px !important;
        max-width: 180px !important;
        border-right: 2px solid #ddd !important;
        box-shadow: 3px 0 4px -2px rgba(0,0,0,0.1) !important;
    }

    .bg-recurring-discounts-wrap .bg-re-table thead th.bg-re-col-user {
        background: #f0f0f1 !important;
        z-index: 6 !important;
    }

    /* Righe alternate: background corretto sulla colonna fissa */
    .bg-recurring-discounts-wrap .bg-re-table tbody tr:nth-child(even) td.bg-re-col-user {
        background: #f6f7f7 !important;
    }

    /* Larghezze colonne fisse per scorrimento */
    .bg-re-table .bg-re-col-email { min-width: 120px !important; width: auto !important; }
    .bg-re-table .bg-re-col-type { min-width: 100px !important; width: auto !important; }
    .bg-re-table .bg-re-col-label { min-width: 130px !important; width: auto !important; }
    .bg-re-table .bg-re-col-value { min-width: 80px !important; width: auto !important; }
    .bg-re-table .bg-re-col-created { min-width: 110px !important; width: auto !important; }
    .bg-re-table .bg-re-col-expiry { min-width: 100px !important; width: auto !important; }
    .bg-re-table .bg-re-col-status { min-width: 90px !important; width: auto !important; }
    .bg-re-table .bg-re-col-used { min-width: 110px !important; width: auto !important; }
    .bg-re-table .bg-re-col-payment { min-width: 80px !important; width: auto !important; }

    /* Email sotto il nome utente va a capo */
    .bg-re-user-email {
        display: block !important;
        font-size: 11px !important;
        overflow: hidden !important;
        text-overflow: ellipsis !important;
        max-width: 150px !important;
    }
}

/* =========================================================================
 * AFFITTI SALA - Lista admin responsive smartphone
 * ========================================================================= */
@media screen and (max-width: 782px) {

    /* Contenitore: evita overflow di pagina */
    body.post-type-bg-venue-rental #wpbody-content {
        overflow-x: hidden !important;
        padding: 0 !important;
    }

    body.post-type-bg-venue-rental .wrap {
        margin: 10px 6px !important;
        padding: 0 !important;
    }

    /* Titolo e pulsanti */
    body.post-type-bg-venue-rental .wrap h1.wp-heading-inline {
        font-size: 18px !important;
        display: block !important;
        margin-bottom: 8px !important;
    }

    body.post-type-bg-venue-rental .wrap .page-title-action {
        display: inline-block !important;
        margin-bottom: 10px !important;
    }

    /* Filtri e azioni bulk: in colonna */
    body.post-type-bg-venue-rental .tablenav {
        display: flex !important;
        flex-wrap: wrap !important;
        gap: 6px !important;
        padding: 4px 0 !important;
    }

    body.post-type-bg-venue-rental .tablenav .actions {
        margin: 0 !important;
    }

    body.post-type-bg-venue-rental .subsubsub {
        margin: 0 0 8px !important;
        padding: 0 !important;
        float: none !important;
    }

    body.post-type-bg-venue-rental .search-box {
        float: none !important;
        margin: 8px 0 !important;
        width: 100% !important;
    }

    body.post-type-bg-venue-rental .search-box input[type="search"] {
        width: calc(100% - 90px) !important;
    }

    /* Container tabella: scorrimento orizzontale */
    body.post-type-bg-venue-rental .wp-list-table {
        display: block !important;
        overflow-x: auto !important;
        overflow-y: visible !important;
        -webkit-overflow-scrolling: touch;
        border-collapse: separate !important;
        border-spacing: 0 !important;
        width: 100% !important;
    }

    body.post-type-bg-venue-rental .wp-list-table thead,
    body.post-type-bg-venue-rental .wp-list-table tbody,
    body.post-type-bg-venue-rental .wp-list-table tfoot {
        display: table !important;
        width: auto !important;
        min-width: 700px !important;
    }

    body.post-type-bg-venue-rental .wp-list-table thead {
        display: table-header-group !important;
    }

    body.post-type-bg-venue-rental .wp-list-table tbody {
        display: table-row-group !important;
    }

    body.post-type-bg-venue-rental .wp-list-table tfoot {
        display: table-footer-group !important;
    }

    body.post-type-bg-venue-rental .wp-list-table tr {
        display: table-row !important;
    }

    body.post-type-bg-venue-rental .wp-list-table th,
    body.post-type-bg-venue-rental .wp-list-table td {
        display: table-cell !important;
        font-size: 13px !important;
        padding: 8px 10px !important;
        vertical-align: top !important;
    }

    /* Annulla la regola WP che mette position:absolute sul ::before delle celle */
    body.post-type-bg-venue-rental .wp-list-table tr:not(.inline-edit-row):not(.no-items) td:not(.column-primary)::before {
        display: none !important;
        content: none !important;
    }

    /* Annulla la trasformazione card-layout di WP */
    body.post-type-bg-venue-rental .wp-list-table tr:not(.inline-edit-row):not(.no-items) td:not(.column-primary) {
        padding-left: 10px !important;
    }

    /* Rimuovi il toggle di espansione riga di WP */
    body.post-type-bg-venue-rental .wp-list-table .toggle-row {
        display: none !important;
    }

    /* Checkbox */
    body.post-type-bg-venue-rental .wp-list-table .check-column {
        width: 30px !important;
        min-width: 30px !important;
    }

    /* Colonna Tipo: badge inline, non spezzare icona e testo */
    body.post-type-bg-venue-rental .wp-list-table .column-bg_vr_type span {
        display: inline-flex !important;
        align-items: center !important;
        gap: 4px !important;
        white-space: nowrap !important;
    }

    /* Colonna Telefono: non troncare */
    body.post-type-bg-venue-rental .wp-list-table td.column-bg_vr_phone {
        white-space: nowrap !important;
    }

    /* Colonna Cliente (title) fissa */
    body.post-type-bg-venue-rental .wp-list-table th.column-title,
    body.post-type-bg-venue-rental .wp-list-table td.column-title {
        position: sticky !important;
        left: 0 !important;
        z-index: 5 !important;
        background: #fff !important;
        min-width: 180px !important;
        max-width: 220px !important;
        border-right: 2px solid #ddd !important;
        box-shadow: 3px 0 4px -2px rgba(0,0,0,0.1) !important;
        white-space: normal !important;
    }

    body.post-type-bg-venue-rental .wp-list-table thead th.column-title {
        background: #f0f0f1 !important;
        z-index: 6 !important;
    }

    /* Righe alternate: background corretto sulla colonna fissa */
    body.post-type-bg-venue-rental .wp-list-table tbody tr:nth-child(even) td.column-title {
        background: #f6f7f7 !important;
    }

    /* Righe preventivo (gialle): background corretto sulla colonna fissa */
    body.post-type-bg-venue-rental .wp-list-table tbody tr.bg-vr-quote-row td.column-title {
        background: #fff8e1 !important;
    }

    /* Larghezze colonne per scorrimento */
    body.post-type-bg-venue-rental .wp-list-table .column-bg_vr_type { min-width: 130px !important; width: auto !important; white-space: nowrap !important; }
    body.post-type-bg-venue-rental .wp-list-table .column-bg_vr_phone { min-width: 140px !important; width: auto !important; }
    body.post-type-bg-venue-rental .wp-list-table .column-bg_vr_date { min-width: 110px !important; width: auto !important; white-space: nowrap !important; }
    body.post-type-bg-venue-rental .wp-list-table .column-bg_vr_time { min-width: 150px !important; width: auto !important; }
    body.post-type-bg-venue-rental .wp-list-table .column-date { min-width: 110px !important; width: auto !important; }

    /* Row actions (Modifica, Cestina, ecc) */
    body.post-type-bg-venue-rental .wp-list-table .row-actions {
        white-space: normal !important;
        font-size: 12px !important;
        position: static !important;
        visibility: visible !important;
    }
}

/* Modifica prenotazione smartphone piccolo (max-width: 380px) */


/* --- bg-tablet.css --- */
/**
 * Biglietteria - Stili Tablet
 * Breakpoint: 769px - 1024px
 * ============================================================================
 */

/* Tablet orizzontale (769px - 1024px) */
@media screen and (min-width: 769px) and (max-width: 1024px) {
    /* Container a larghezza piena — selettori generici + legacy tema vayvo. */
    .mybo-content-wrapper,
    body.bg-response-thanks .container,
    .width-container-pro {
        width: 100% !important;
    }
}

/* Tablet/Desktop (min-width: 769px) */
@media screen and (min-width: 769px) {
    .bg-switch-form-msg-desktop {
        background: rgba(66, 153, 225, 0.05) !important;
        padding: 10px !important;
        border-radius: 4px !important;
        border: 1px solid rgba(66, 153, 225, 0.2) !important;
    }
}

/* Admin tablet (max-width: 782px) */
@media screen and (max-width: 782px) {
    .mybo-content-wrapper,
    .width-container-pro {
        width: 100% !important;
    }
    .wrap {
        clear: both;
        margin: 0;
    }
    .bg-summary-grid {
        grid-template-columns: 1fr;
    }
    .bg-summary-item {
        padding: 8px;
    }
    
    .widefat .bg-controls {
        display: flex;
        flex-wrap: wrap;
        gap: 8px;
        justify-content: center;
    }
    .widefat .bg-controls .button {
        min-width: 44px;
        min-height: 44px;
    }
    
    .bg-report-selector {
        gap: 12px;
    }
    .report-by-date,
    .report-by-customer,
    .report-by-event {
        min-width: unset;
        padding: 15px;
    }
    
    .bg-sales-report th,
    .bg-sales-report td {
        padding: 8px;
    }

    .auto-fold #wpcontent {
        padding-left: 0px;
    }
    .postbox .inside h2, .wrap [class$="icon32"] + h2, .wrap h1, .wrap > h2:first-child {
        margin: 0;
        padding: 9px 9px 4px;
    }
}

/* Tablet/Smartphone grande (max-width: 960px) */
@media screen and (max-width: 960px) {
    
    .bg-sales-report {
        display: table;
        width: auto;
    }
    .report-by-event table,
    .report-by-date table {
        display: table;
        width: auto;
    }
    
    .biglietteria img,
    .biglietteria iframe {
        max-width: 100%;
        height: auto;
    }
}

/* Carrello tablet (760px - 1024px) */
@media only screen and (max-width: 760px),
       (min-device-width: 768px) and (max-device-width: 1024px) {
    
    .bg_cart table,
    .bg_cart thead,
    .bg_cart tbody,
    .bg_cart th,
    .bg_cart td,
    .bg_cart tr,
    .bg_cart caption {
        display: block;
    }
    
    .bg_cart thead tr {
        position: absolute;
        top: -9999px;
        left: -9999px;
    }
    
    .bg_cart tr {
        border: 1px solid #444;
        margin-bottom: 15px;
        border-radius: 5px;
        background-color: #373737;
        overflow: hidden;
    }
    
    .bg_cart td{
        border: none;
        border-bottom: 1px solid #444;
        position: relative;
        padding: 40px 10px 10px !important;
        text-align: center;
    }

    .bg_cart th {
        border: none;
        border-bottom: 1px solid #444;
        position: relative;
        padding: 40px 10px 10px !important;
        text-align: center;
    }
    
    .bg_cart td:before,
    .bg_cart th:before {
        position: absolute;
        top: 10px;
        left: 0;
        width: 100%;
        text-align: center;
        font-weight: bold;
        font-size: 13px;
        color: #aaa;
    }
    
    .bg_cart th:nth-of-type(1):before {
        content: "Evento";
    }
    
    .bg_cart td:nth-of-type(1):before {
        content: "";
    }
    
    .bg_cart td:nth-of-type(2):before {
        content: "";
    }

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

    .bg_cart, .bg-after-cart, .bg-payment-form {
        width: 95%;
        margin: auto;
    }

    .bg_cart .bg-controls {
        display: flex;
        justify-content: center;
        align-items: center;
        gap: 15px;
        padding: 10px 0;
    }
    
    .bg_cart .bg-controls button {
        width: 40px;
        height: 40px;
        font-size: 20px;
        border-radius: 50%;
        display: flex;
        align-items: center;
        justify-content: center;
        background-color: #515151;
        color: white;
        border: none;
        cursor: pointer;
    }
    
    .bg_cart td input[type="number"],
    .bg_cart td .input-text {
        width: 60px;
        height: 40px;
        font-size: 18px;
        text-align: center;
        border-radius: 4px;
        border: 1px solid #444;
        background-color: #2c2c2c;
        color: white;
    }

    .info_extra {
        display: flex;
        flex-wrap: wrap;
        gap: 15px;
        margin-top: 20px;
    }
    
    .box_posti_vicino, 
    .box_additional, 
    .box_promo {
        padding: 15px;
        margin-bottom: 15px;
        box-sizing: border-box;
        width: 100%;
        border-radius: 4px;
    }

    .bg-cart-buttons {
        flex-wrap: wrap;
        justify-content: space-between;
        gap: 15px;
        margin-top: 20px;
    }
    
    .bg-cart-buttons a.button,
    .bg-cart-buttons .bg-clear-cart-button,
    .bg-cart-buttons .bg-goto-cart-button {
        flex: 1 1 45%;
        min-width: 45%;
        max-width: none;
        margin: 5px;
        padding: 15px;
        border-radius: 4px;
        height: auto;
        font-size: 16px;
        display: flex;
        align-items: center;
        justify-content: center;
    }

    .gateway-selector ul {
        display: flex;
        flex-wrap: wrap;
        justify-content: center;
        gap: 15px;
        padding: 0;
        margin: 15px 0;
        list-style: none;
    }
    
    .gateway-selector li {
        flex: 1 1 45%;
        min-width: 45%;
        margin: 5px;
    }
    
    .gateway-selector a {
        display: block;
        width: 100%;
        box-sizing: border-box;
        text-align: center;
        padding: 15px;
        font-size: 16px;
        border-radius: 4px;
    }

    #bg_promo {
        width: 100%;
        max-width: 300px;
        margin-bottom: 10px;
    }

    .box_promo #bg_promo_verifier {
        padding: 10px 15px;
        margin-top: 10px;
        width: auto;
        font-size: 14px;
        background-color: #515151;
        border: none;
        color: white;
        border-radius: 4px;
        cursor: pointer;
    }

    .bg_cart th[scope="row"] {
        padding: 40px 10px 15px !important;
        font-size: 18px;
        text-align: center;
        background-color: #222;
        color: white;
        border-bottom: 1px solid #444;
    }
    
    .bg_cart th .bg-datetime {
        display: block;
        margin-top: 5px;
        font-size: 14px;
        color: #aaa;
    }
}

/* ============================================================================
 * CARRELLO MODERNO - TABLET
 * ============================================================================ */

/* Carrello moderno tablet (601px - 900px) */
@media (min-width: 601px) and (max-width: 900px) {
    .bg-cart-modern {
        max-width: 95%;
        margin: 0 auto;
    }
    
    .bg-cart-tickets-box {
        border-radius: 10px;
    }
    
    .bg-cart-event-header {
        gap: 15px;
        padding: 15px;
    }
    
    .bg-cart-event-image {
        height: var(--mybo-cart-thumb-size, 90px);
    }

    .bg-cart-tickets-header {
        grid-template-columns: var(--mybo-cart-table-grid-columns, 1fr 1fr 1.5fr);
    }

    .bg-cart-ticket-row {
        grid-template-columns: var(--mybo-cart-table-grid-columns, 1fr 1fr 1.5fr);
        padding: 10px 15px;
    }

    .bg-cart-col-label {
        font-size: var(--mybo-cart-row-size, 0.9em);
        padding: 10px 0 0 15px;
    }

    .bg-cart-col-price {
        padding: 0 15px;
    }
    
    .bg-cart-buttons {
        flex-wrap: wrap;
        gap: 10px;
    }
    
    .bg-cart-buttons a.button,
    .bg-cart-buttons .bg-clear-cart-button,
    .bg-cart-buttons .bg-goto-cart-button {
        flex: 1 1 45%;
        max-width: 48%;
    }
}

/* Carrello moderno tablet orizzontale (901px - 1024px) */
@media (min-width: 901px) and (max-width: 1024px) {
    .bg-cart-modern {
        max-width: 90%;
        margin: 0 auto;
    }
    
    .bg-cart-ticket-row {
        grid-template-columns: var(--mybo-cart-table-grid-columns, 1fr 1fr 2fr);
    }

    .bg-cart-col-price {
        padding: 0 20px;
    }
}

/* ============================================================================
 * STILI ESTRATTI DA ALTRI FILE CSS
 * ============================================================================ */

/* -------------------------------------------------------------------------
 * Da bg-cart.css - Event info layout (min-width: 768px)
 * ------------------------------------------------------------------------- */
@media screen and (min-width: 768px) {
    .bg-event-info {
        align-items: flex-start;
        display: flex;
        flex-wrap: nowrap;
    }
    
    .bg-event-main {
        flex: 1;
        margin-bottom: 0;
        margin-right: 20px;
        max-width: 60%;
    }

    .bg-tickets-container {
        border-left: 1px solid #444444;
        border-top: none;
        flex: 0 0 35%;
        margin-left: 0;
        margin-top: 0;
        padding-left: 20px;
        padding-top: 0;
        width: auto;
    }

    .bg-ticket-row {
        align-items: center;
        flex-direction: row;
        justify-content: space-between;
        padding: 12px 0;
    }
    
    .bg-ticket-type {
        flex: 0 0 20%;
        font-size: 1em;
        margin-bottom: 0;
    }
    
    .bg-ticket-details {
        flex: 1;
        margin-bottom: 0;
        padding-right: 10px;
    }
    
    .bg-ticket-buttons {
        flex: 0 0 120px;
        text-align: right;
        width: auto;
    }
    
    .bg-update-buttons {
        justify-content: flex-end;
    }
}

/* Da bg-cart.css - Three columns layout (max-width: 900px) */
@media (max-width: 900px) {
    .bg-tokens-discounts-row.bg-three-columns {
        flex-direction: column;
    }
    
    .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-total-discounts-summary {
        min-width: 100%;
    }
}

/* -------------------------------------------------------------------------
 * Da bg-loyalty.css - Tokens slider tablet (768px - 600px)
 * ------------------------------------------------------------------------- */
@media (max-width: 768px) and (min-width: 601px) {
    .bg-tokens-slider-container {
        gap: 15px;
    }
}

/* Da bg-loyalty.css - Three columns layout (max-width: 900px) */
@media (max-width: 900px) {
    .bg-tokens-discounts-row.bg-three-columns {
        flex-direction: column;
    }
    
    .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-total-discounts-summary {
        min-width: 100%;
    }
}

/* -------------------------------------------------------------------------
 * Da bg-myaccount.css - Scroll orizzontale tabella (960px - 721px)
 * ------------------------------------------------------------------------- */
@media (max-width: 960px) and (min-width: 721px) {
    .mybo-account-page .bg-myaccount-wrap {
        overflow-x: auto;
        -webkit-overflow-scrolling: touch;
    }
    .mybo-account-page .bg-myaccount-wrap table.my_account_orders {
        min-width: 720px; 
    }
}

/* Da bg-myaccount.css - Shop table mobile (max-width: 782px) */
@media (max-width: 782px) {
    .mybo-account-page .bg-myaccount-wrap { background: transparent; }
    .mybo-account-page .bg-myaccount-wrap table.shop_table {
        background: transparent;
        border: 0;
        box-shadow: none;
    }
    .mybo-account-page .bg-myaccount-wrap table.shop_table tbody { background: transparent; border: 0; box-shadow: none; }
    .mybo-account-page .bg-myaccount-wrap table.shop_table td { border: 0; background: transparent; }
    .mybo-account-page .bg-myaccount-wrap table.shop_table tr {
        margin-bottom: 16px;
        padding: 12px;
        border: 1px solid #2a2f36;
        border-radius: 10px;
        background: #1e2227;
        box-shadow: 0 2px 6px rgba(0,0,0,0.15);
        box-sizing: border-box;
    }
    .mybo-account-page .bg-myaccount-wrap table.shop_table tr:last-child { margin-bottom: 0; }
}

/* --- bg-largescreen.css --- */
/**
 * Biglietteria - Stili Schermi Grandi
 * Breakpoint: min-width 1025px e superiori
 * ============================================================================
 */

/* Desktop grande (1025px - 1199px) */
@media screen and (min-width: 1025px) and (max-width: 1199px) {
    /* Container a larghezza piena — selettori generici + legacy tema vayvo. */
    .mybo-content-wrapper,
    body.bg-response-thanks .container,
    .width-container-pro {
        width: 100% !important;
    }
}

/* Megaschermo (min-width: 1200px) */

/* Report layout su schermi grandi (max-width: 1200px significa che sopra 1200px usa il default) */
@media screen and (max-width: 1200px) {
    .bg-report-wrapper {
        grid-template-columns: 1fr;
    }
    .bg-report-main,
    .bg-report-sidebar {
        grid-column: 1;
        width: 100%;
    }
    .bg-report-sidebar {
        position: static;
        margin-top: 30px;
    }
}

/* Stampa */
@media print {
    .bg-report-selector,
    .bg-email-purchasers,
    .print-button,
    .bg-back,
    button {
        display: none;
    }
    .bg-sales-report td,
    .bg-sales-report th {
        border: 1px solid #f0f0f0;
    }
    .bg-sales-report tr:nth-of-type(odd) {
        background: #fefefe;
    }
}

/* ============================================================================
 * CARRELLO MODERNO - SCHERMI GRANDI
 * ============================================================================ */

/* Carrello moderno desktop (min-width: 1025px) */

/* ============================================================================
 * STILI ESTRATTI DA ALTRI FILE CSS
 * ============================================================================ */

/* -------------------------------------------------------------------------
 * Da bg-myaccount.css - Shop table desktop (min-width: 783px)
 * ------------------------------------------------------------------------- */
@media (min-width: 783px) {
    .mybo-account-page .bg-myaccount-wrap table.shop_table { display: table; width: 100%; table-layout: auto; }
    .mybo-account-page .bg-myaccount-wrap table.shop_table thead { display: table-header-group; }
    .mybo-account-page .bg-myaccount-wrap table.shop_table tbody { display: table-row-group; }
    .mybo-account-page .bg-myaccount-wrap table.shop_table tr { display: table-row; }
    .mybo-account-page .bg-myaccount-wrap table.shop_table th,
    .mybo-account-page .bg-myaccount-wrap table.shop_table td { display: table-cell; }
    
    .mybo-account-page .bg-myaccount-wrap table.shop_table th.actions,
    .mybo-account-page .bg-myaccount-wrap table.shop_table td.actions { width: 260px; }
    
    .mybo-account-page .bg-myaccount-wrap table.shop_table td:not(.actions) {
        white-space: nowrap;
        overflow: hidden;
        text-overflow: ellipsis;
    }
    .mybo-account-page .bg-myaccount-wrap table.shop_table td.actions {
        justify-content: flex-end;
        gap: 8px;
        white-space: nowrap; 
        overflow: visible; 
    }
    .mybo-account-page .bg-myaccount-wrap table.shop_table td.actions > a.button,
    .mybo-account-page .bg-myaccount-wrap table.shop_table td.actions > form { flex: 0 0 auto; }
}
