/* Placeholder blanc et gras sur tous les inputs du panier */
.mt-details-grid input::placeholder,
.mt-ticket-line input::placeholder,
.mt-ticket-field input::placeholder {
    color: var(--kili-orange);
    font-weight: 700;
    opacity: 1;
}

/* ========================================
     TICKETS - LIGNE BILLET FIDÈLE FIGMA
     ======================================== */
.mt-ticket-line.desktop-version {
    display: grid;
    grid-template-columns: minmax(180px, 1fr) repeat(3, minmax(90px, 1fr)) 100px;
    align-items: right;
    gap: 10px;
    /* Espacement entre les colonnes */
}

.mt-ticket-line.mobile-version {
    display: flex;
    /* Largeur fixe pour les labels, colonnes égales pour les inputs */
    align-items: center;
    gap: var(--kili-space-md);
    /* Espacement entre les colonnes */
}

.mt-ticket-line input[type="text"],
.mt-ticket-line input[type="number"] {
    width: calc(100% - var(--kili-space-md) * 2);
    /* Les inputs prennent toute la largeur de leur colonne */
    text-align: right;
    /* Alignement du texte au centre */
    height: 30px;
    font-size: var(--kili-font-md);
    background: var(--kili-white);
    border-radius: var(--kili-radius-md);
    border: 2px solid var(--kili-orange);
    margin: 0;
    padding: var(--kili-space-md);
    color: var(--kili-black);
    padding: 0 8px;
}

.mt-ticket-line .mt-ticket-label {
    text-align: left;
    /* Alignement des labels à gauche */
    font-weight: 700;
    color: rgba(0, 0, 0, 0.85);
    margin-right: 1rem;
}

.mt-ticket-line .mt-ticket-price {
    font-weight: 800;
    margin-left: 1rem;
    color: var(--kili-orange);
}

.mt-ticket-line input {
    margin: 0 0.5rem;
    padding: 0.5rem;
    border: 1px solid #ccc;
    border-radius: 4px;
}

@media only screen and (max-width: 900px) {
    .mt-ticket-line.desktop-version {
        display: grid;
        grid-template-columns: 150px repeat(3, 1fr) 100px;
        /* Largeur fixe pour les labels, colonnes égales pour les inputs */
        font-size: var(--kili-font-md);
        padding: var(--kili-space-xs);
    }
}

@media only screen and (max-width: 600px) {
    .mt-ticket-line {
        grid-template-columns: 1fr 1fr;
        grid-template-rows: auto auto auto;
        gap: var(--kili-space-xs);
        font-size: var(--kili-font-sm);
    }

    .mt-ticket-line .mt-ticket-label,
    .mt-ticket-line .mt-ticket-price {
        grid-column: span 2;
        text-align: left;
    }
}

/* ========================================
     DETAILS COMMANDE - GRILLE RESPONSIVE
     ======================================== */
.mt-details-grid {
    display: grid;
    grid-template-columns: repeat(3, 1fr);
    gap: var(--kili-space-lg);
    margin: var(--kili-space-xl) 0;
}

.mt-details-grid .mt-grid-row {
    display: contents;
}

.mt-details-grid .mt-grid-col {
    display: flex;
    flex-direction: column;
    gap: var(--kili-space-xs);
    border-radius: var(--kili-radius-sm);
    padding: var(--kili-space-sm) var(--kili-space-md);
}

.mt-details-grid label {
    font-size: var(--kili-font-md);
    font-weight: 600;
    color: var(--kili-black);
    margin-bottom: 2px;
}

.mt-details-grid input {
    height: 48px;
    font-size: var(--kili-font-md);
    border: 1px solid rgba(0, 0, 0, 0.1);
    border-radius: var(--kili-radius-sm);
    background: #fafafa;
    color: var(--kili-black, #111);
    padding: 0 16px;
    box-sizing: border-box;
    outline: none;
    transition: all 0.2s ease;
}

.mt-details-grid input::placeholder {
    color: rgba(0, 0, 0, 0.4);
    font-weight: 400;
}

.mt-details-grid input:focus {
    background: #ffffff;
    border-color: var(--kili-orange, #E64C2E);
    box-shadow: 0 0 0 3px rgba(230, 76, 46, 0.1);
}

@media only screen and (max-width: 900px) {
    .mt-details-grid {
        grid-template-columns: 1fr 1fr;
    }
}

@media only screen and (max-width: 600px) {
    .mt-details-grid {
        grid-template-columns: 1fr;
    }
}

/* ========================================
   VARIABLES KILI/EVENT (héritées)
   ======================================== */
:root {
    --kili-shadow: 0 6px 18px rgba(16, 22, 27, 0.06);
    --kili-space-xs: 2px;
    --kili-space-sm: 4px;
    --kili-space-md: 6px;
    --kili-space-lg: 8px;
    --kili-space-xl: 12px;
    --kili-space-xxl: 16px;
    --kili-radius-sm: 2px;
    --kili-radius-md: 4px;
    --kili-radius-lg: 8px;
    --kili-border-sm: 1px;
    --kili-border-md: 2px;
    --kili-border-lg: 3px;
    --kili-font-xs: 8px;
    --kili-font-sm: 10px;
    --kili-font-md: 12px;
    --kili-font-lg: 14px;
    --kili-font-xl: 16px;
    --kili-font-xxl: 18px;
    --kili-font-xxxl: 20px;
    --kili-shadow-sm: 0 2px 8px rgba(0, 0, 0, 0.06);
    --kili-shadow-md: 0 6px 20px rgba(18, 22, 26, 0.08);
    --kili-shadow-lg: 0 12px 36px rgba(18, 22, 26, 0.08);
    --kili-transition: all 0.22s cubic-bezier(.2, .9, .3, 1);
    --kili-btn-bg: var(--kili-violet);
    --kili-btn-bg-hover: var(--kili-orange);
    --kili-btn-disabled: #ccc;
}

/* ========================================
   CONTAINER PRINCIPAL
   ======================================== */
.my-tickets.kili-bg {
    margin-top: 10vh;
    /* Unified page container used by add-to-cart, cart and payment pages */
    background: transparent;
    /* primary brand color */
    padding: 2rem;
    /* consistent outer spacing */
    display: flex;
    flex-direction: column;
    align-items: center;
    max-width: 1100px;
    /* consistent max width */
    margin: 0 auto;
    /* center on page */
    width: calc(100% - var(--kili-space-sm) * 2);
    /* responsive width with side padding */
    box-sizing: border-box;
    border-radius: var(--kili-radius-lg);
    /* consistent outer radius */
}

.mt-order.my-tickets {
    background: var(--kili-white);
    border-radius: calc(var(--kili-radius-lg) + 4px);
    /* inner card radius */
    box-shadow: var(--kili-shadow-md);
    padding: calc(var(--kili-space-xxl)) calc(var(--kili-space-xl));
    margin: var(--kili-space-lg) 0;
    width: 100%;
    box-sizing: border-box;
    display: flex;
    flex-direction: column;
    gap: var(--kili-space-lg);
}


/* ========================================
   TICKETS - GRILLE
   ======================================== */
.mt-ticket-field {
    background: var(--kili-white);
    border-radius: var(--kili-radius-md);
    box-shadow: none;
    padding: calc(var(--kili-space-md) + 6px) calc(var(--kili-space-lg) + 4px);
    margin-bottom: var(--kili-space-sm);
    display: flex;
    flex-direction: row;
    align-items: center;
    gap: calc(var(--kili-space-md) + 6px);
    border: var(--kili-border-sm) solid rgba(0, 0, 0, 0.04);
}

.mt-ticket-field>* {
    margin-right: var(--kili-space-md);
}

.mt-ticket-field label {
    min-width: 140px;
    font-size: var(--kili-font-lg);
    font-weight: 700;
    color: rgba(0, 0, 0, 0.85);
    margin-bottom: 0;
    text-align: left;
    display: flex;
    align-items: center;
}

.mt-ticket-field input[type="text"],
.mt-ticket-field input[type="number"] {
    width: 90px;
    height: 40px;
    font-size: var(--kili-font-md);
    font-weight: 500;
    text-align: center;
    border: var(--kili-border-sm) solid rgba(110, 110, 187, 0.18);
    border-radius: var(--kili-radius-sm);
    background: var(--kili-white);
    color: var(--kili-black);
    margin-right: var(--kili-space-sm);
}

.mt-ticket-field .mt-ticket-price {
    font-size: var(--kili-font-xl);
    font-weight: 700;
    color: var(--kili-orange);
    margin-left: var(--kili-space-md);
}

@media only screen and (max-width:782px) {
    .entry-content {
        padding: 0;
        margin: auto 0;
        width: 100vw;
    }

    .my-tickets.kili-bg {
        padding-bottom: var(--kili-space-lg);
        width: 100vw;
        max-width: 100vw;
    }

    .mt-order.my-tickets {
        padding: var(--kili-space-lg);
        margin: var(--kili-space-md) auto;
        max-width: 98vw;
        min-width: 0;
    }

    .mt-ticket-field {
        flex-direction: column;
        align-items: stretch;
        gap: var(--kili-space-sm);
        padding: var(--kili-space-md);
    }

    .mt-ticket-field>* {
        margin-right: 0;
        margin-bottom: var(--kili-space-sm);
    }
}


/* ========================================
   ACCESSIBILITÉ
   ======================================== */
.mt-order.my-tickets *:focus {
    outline: 3px solid var(--kili-violet);
    outline-offset: 2px;
}

.mt_cart {
    background: var(--mt-cart-bg);
    border-radius: var(--mt-cart-radius);
    box-shadow: var(--mt-cart-shadow);
    padding: var(--mt-cart-padding);
}

.mt_cart_total {
    font-weight: 700;
    font-size: 1em;
    color: var(--kili-orange);
    padding-right: var(--kili-space-md);
}

.mt_cart th {
    background: var(--kili-gray-light);
    text-align: left;
}

.mt_cart th[scope="row"] {
    border-bottom: 1px solid var(--kili-border);
    padding: 4px;
    background: transparent;
    font-family: monospace;
    border-right: 1px solid var(--kili-gray-light);
}

.mt_cart td {
    padding: 4px;
    border-bottom: 1px solid var(--kili-muted);
    border-right: 1px solid var(--kili-gray-light);
}

.mt_cart button {
    background: var(--mt-cart-btn-bg);
    color: var(--kili-white);
    border-radius: 4px;
    border: none;
    padding: 8px 12px;
    transition: background 0.3s;
}

.mt_cart button:hover {
    background: var(--mt-cart-btn-hover);
}

.mt_cart button:disabled {
    background: var(--mt-cart-btn-disabled);
    cursor: not-allowed;
}

.mt_cart_total,
.mt_cart_label,
.mt_ticket_handling {
    text-align: right;
    padding: var(--kili-space-md);
}

.mt_cart_handling {
    padding: .5rem;
}

.mt-expiration-notice {
    padding: 1rem;
    display: grid;
    grid-template-columns: auto auto;
    gap: 12px;
    margin-bottom: 1rem;
    background: var(--mt-message-bg);
    color: var(--mt-text-color);
}

.mt-expiration-controls {
    justify-items: end;
    display: inline-grid;
}

.mt-expiration-update {
    display: flex;
    align-self: center;
}

.my-tickets .mt-extend-button {
    display: flex;
    align-items: center;
    gap: 6px;
    padding: 6px 18px 6px 15px;
    margin: 0;
}

.mt-expiration-notice p {
    padding: 0;
    margin: 0;
}

.mt-order input,
.mt_cart button,
.mt_cart select,
.mt_cart input {
    padding: 5px;
}


.mt_cart_label,
.mt_ticket_handling {
    font-size: 1.1em;
}

.mt-message {
    background: var(--mt-message-bg);
    color: var(--mt-message-color);
    padding: .75em 1em !important;
    margin-bottom: .5em;
    font-size: 1.1em;
    border: 2px solid;
}

.mt-message.success {
    border-color: var(--mt-success-border);
}

.mt-message.error {
    border-color: var(--mt-error-border);
}

.mt-payment-button {
    padding: 1em 0;
}

.ticket-orders {
    display: flex;
    flex-direction: column;
    gap: var(--kili-space-xl);
    margin-bottom: 33px;
}

/* Confirmation ticket lines used on payment page - reuse card style from .mt-ticket-field */
.mt-ticket-details-list {
    display: flex;
    flex-direction: column;
    gap: var(--kili-space-md);
    padding: var(--kili-space-md);
    width: calc(100% - var(--kili-space-md) * 2);
}

.mt-ticket-details-list .mt-confirm-ticket-line {
    background: var(--kili-white);
    border-radius: var(--kili-radius-md);
    box-shadow: 0 2px 8px rgba(12, 16, 20, 0.04);
    padding: calc(var(--kili-space-md));
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: var(--kili-space-md);
    border: 1px solid rgba(0, 0, 0, 0.04);
    padding: var(--kili-space-md);
}

.mt-ticket-details-list .mt-confirm-left {
    display: flex;
    align-items: center;
    gap: var(--kili-space-sm);
    flex: 1 1 auto;
}

.mt-ticket-details-list .mt-confirm-label {
    min-width: 180px;
    font-weight: 700;
    color: rgba(0, 0, 0, 0.85);
    text-align: left;
}

.mt-ticket-details-list .mt-badges {
    display: flex;
    gap: .5rem;
    align-items: center;
    flex-wrap: wrap;
    width: fit-content;
}

/* Badges should match the color of the panier inputs (orange background, white text) */
.mt-ticket-details-list .mt-badge {
    background: var(--kili-accent);
    color: var(--kili-white);
    padding: .25rem .6rem;
    border-radius: 999px;
    font-weight: 700;
    font-size: .85rem;
}

.mt-ticket-details-list .mt-confirm-price {
    font-weight: 800;
    color: var(--kili-orange);
    min-width: 80px;
    text-align: right;
}

/* Responsiveness: on small screens stack label/badges above price, mirror .mt-ticket-field behavior */
@media only screen and (max-width:782px) {
    .mt-ticket-details-list .mt-confirm-ticket-line {
        flex-direction: column;
        align-items: stretch;
    }

    .mt-ticket-details-list .mt-confirm-left {
        order: 1;
        width: 100%;
    }

    .mt-ticket-details-list .mt-confirm-price {
        order: 2;
        text-align: left;
        margin-top: .5rem;
    }
}

/* Full-width card wrappers for recap and payment on payment page */
.mt-confirmation-card,
.mt-payment-card {
    background: var(--kili-white);
    border-radius: var(--kili-radius-lg);
    box-shadow: var(--kili-shadow-lg);
    padding: var(--kili-space-xl);
    margin: var(--kili-space-md) 0;
    width: 100%;
    box-sizing: border-box;
}

.mt-confirmation-card .mt-ticket-details-list {
    margin: 0;
    gap: var(--kili-space-md);
}

.mt-payment-form {
    margin: 0;
    width: calc(100% - var(--kili-space-md) * 2);
}

@media only screen and (max-width:782px) {

    .mt-confirmation-card,
    .mt-payment-card {
        padding: var(--kili-space-md);
    }
}

.ticket-orders fieldset {
    margin: 1em 0;
    padding: 8px;
    border-radius: 8px;
    background: var(--mt-order-background);
    box-shadow: 4px 4px 4px var(--mt-order-shadow);
    border-width: 1px;
}

.tickets-remaining.hiding,
.hiding .tickets-remaining {
    display: none;
}

.ticket-orders legend {
    font-weight: 700;
    padding: 2px;
}

.mt-ticket-field.mt-sales-closed>*:not(.ticket-pricing, label) {
    opacity: .4;
}

.mt-ticket-field.mt-sales-closed>label,
.mt-ticket-field.mt-sales-closed>.ticket-pricing {
    opacity: .7;
}

.mt-ticket-field {
    display: flex;
    flex-direction: row;
    align-items: center;
    gap: var(--kili-space-lg, 8px);
    background: var(--kili-gray-light);
    border-radius: var(--kili-radius-lg, 8px);
    padding: var(--kili-space-lg, 8px);
    margin-bottom: var(--kili-space-md, 6px);
    transition: var(--kili-transition, all 0.3s ease);
    border: var(--kili-border-sm, 1px) solid transparent;
}

.mt-ticket-field label {
    min-width: 120px;
    font-size: var(--kili-font-lg, 14px);
    font-weight: 700;
    color: var(--kili-black);
    margin-bottom: 0;
    text-align: left;
    display: flex;
    align-items: center;
}

.mt-ticket-field input[type="text"],
.mt-ticket-field input[type="number"] {
    width: 90px;
    height: 40px;
    font-size: var(--kili-font-md, 12px);
    font-weight: 500;
    text-align: center;
    border: var(--kili-border-sm, 1px) solid var(--kili-violet);
    border-radius: var(--kili-radius-sm, 2px);
    background: var(--kili-white);
    color: var(--kili-black);
}

.mt-ticket-field .mt-ticket-price {
    font-size: var(--kili-font-xl, 16px);
    font-weight: 700;
    color: var(--kili-orange);
    margin-left: var(--kili-space-md, 6px);
}

fieldset .mt-ticket-field input:not([type=submit]),
fieldset .mt-ticket-field select {
    margin: 0;
    margin-bottom: 0;
    width: auto;
}

.mt-ticket-field.mt-price-in-label {
    grid-template-columns: 9em 1fr;
}

.mt-title-wrapper {
    display: flex;
    gap: 12px;
    flex-wrap: wrap;
    align-items: center;
}

@media only screen and (max-width:782px) {
    .mt-ticket-field {
        flex-direction: column;
        align-items: stretch;
        gap: var(--kili-space-sm);
    }

    .mt-ticket-field>* {
        margin-right: 0;
        margin-bottom: var(--kili-space-sm);
    }
}

.mt_cart caption {
    font-weight: 700;
    text-align: center;
    font-size: 1.2em;
}

table.mt_cart {
    width: 100%;
    margin: 0;
}

.mt_cart td {
    vertical-align: middle;
}

.mt_cart th {
    line-height: 1.5;
    font-weight: 700;
    text-align: center;
}

.mt_cart th[scope="row"] {
    text-align: left;
}

.mt_cart td.mt-order {
    text-align: end;
}

.mt_cart th .mt-datetime {
    font-weight: 400;
}

.mt-shipping-address .mt-response p,
.mt-order .mt-response p {
    padding: .5rem;
    background-color: var(--mt-message-bg);
    color: var(--mt-message-color);
    border: 2px solid var(--mt-success-border);
    display: flex;
    align-items: center;
    gap: 20px;
    flex-wrap: wrap;
}

.mt-processing {
    display: none;
}

button[name="mt_add_to_cart"] {
    display: flex;
    align-items: center;
    padding: 4px 8px;
    gap: 4px;
    min-height: 32px;
}

button[name="mt_add_to_cart"] img {
    width: 16px !important;
    height: auto;
}

.mt-payment-form fieldset {
    margin: 1em 0;
}

.mt_cart tr.removed {
    display: none;
}

.mt_cart .screen-reader-text {
    border: 0;
    clip-path: inset(50%);
    height: 1px;
    margin: -1px;
    overflow: hidden;
    padding: 0;
    position: absolute !important;
    width: 1px;
    word-wrap: normal !important;
}

.mt-payment-form legend {
    font-weight: 700;
    padding: .5rem 0;
}

.gateway-selector {
    padding: 1rem 0;
}

.gateway-selector ul {
    margin: 0 !important;
    padding: 0 !important;
}

.gateway-selector li {
    margin: 0 .25rem 0 0 !important;
    padding: .25rem !important;
    display: inline-block !important;
    list-style-type: none !important;
    background: rgba(0, 0, 0, .075);
}

.gateway-selector button {
    all: unset;
}

.gateway-selector .active {
    font-weight: 700;
    background: rgba(0, 0, 0, .001);
}

.mt_sandbox_enabled {
    position: relative;
    background: var(--kili-accent);
    color: var(--kili-black);
    padding: .5em 0;
    font-size: 1.4em;
    display: block;
    border-top: 2px solid var(--kili-danger);
    width: 100%;
    text-align: center;
}

.admin-bar .mt_sandbox_enabled {
    top: 32px;
}

.mt_cart label {
    display: block;
}

.mt_cart .checkbox label {
    display: inline-block;
}

.mt_cart .wp-post-image {
    float: left;
    margin-right: .5rem;
}

.create-admin-payment {
    display: inline-flex;
    align-items: center;
    flex-wrap: wrap;
    column-gap: 6px;
    padding: 6px 12px;
    border-radius: 3px;
    background: var(--mt-message-bg);
    color: var(--mt-message-color);
}

.mt-ticket-input {
    display: flex;
}

.mt-ticket-input button,
.mt-update-column button {
    all: unset;
    padding: .333em;
    line-height: 1;
    border: 1px solid var(--mt-field-border);
    color: var(--mt-field-color);
    text-align: center;
    border-radius: 3px;
    background: var(--mt-field-background);
}

.mt-ticket-input button.mt-increment {
    border-radius: 3px 0 0 3px;
    margin-left: 2px;
}

.mt-ticket-input button.mt-decrement {
    border-radius: 0 3px 3px 0;
    border-left: none;
}

.mt_purchase_path {
    margin-bottom: 1rem;
}

.mt_purchase_path {
    display: grid;
    grid-template-columns: repeat(3, auto);
    align-items: center;
}

/* Header logos: ensure the focus + kiliogene logos display when inner divs are present
     Provide explicit background images and max-width so they appear on cart / payment / add-to-cart pages */
.mt-header-with-cart {
    display: flex;
    align-items: center;
    justify-content: space-between;
    height: 110px;
    margin-bottom: 1rem;
    gap: 1rem
}

.mt-header-with-cart .mt-logo-focus,
.mt-header-with-cart .mt-logo-kiliogene {
    background-repeat: no-repeat;
    background-position: center;
    background-size: contain;
    flex: 0 0 auto;
    width: 250px;
    max-width: 30%;
    height: 150px
}

.mt-header-with-cart .mt-logo-focus {
    background-image: url('https://festival-focus.fr/wp-content/uploads/2026/04/cropped-Design-sans-titre-156x156.png')
}

.mt-header-with-cart .mt-logo-kiliogene {
    /*background-image: url('https://kiliogene.com/wp-content/uploads/2024/08/kiliogene_logo_horizontal_bicolor.svg')*/
}

@media(max-width:768px) {

    /* Make header adapt: place logos above the purchase path on narrow viewports.
       Use wrapping so the two logo blocks sit on the first line and the path spans full width below. */
    .mt-header-with-cart {
        height: auto;
        padding: 0.5rem 1rem;
        flex-wrap: wrap;
        justify-content: center;
        gap: .5rem;
    }

    .mt-header-with-cart .mt-logo-focus,
    .mt-header-with-cart .mt-logo-kiliogene {
        height: 75px;
        width: 125px;
        max-width: 40%;
        flex: 0 0 auto;
        order: 1;
        /* keep logos on the first line */
    }

    /* Force the purchase path to occupy a full row beneath the logos */
    .mt-header-with-cart .mt-purchase-path {
        flex-basis: 100%;
        order: 2;
        width: 100%;
        display: flex;
        justify-content: center;
        align-items: center;
        margin-top: .5rem;
    }

    /* Make the purchase path itself use a single column layout on small screens */
    .mt_purchase_path {
        grid-template-columns: 1fr;
        justify-items: center;
        width: 100%;
        gap: .25rem;
    }
}

.mt_purchase_path span {
    padding: .5rem;
    background: rgba(255, 255, 255, .7);
    border-bottom: 4px solid transparent;
}

.mt_purchase_path .inactive {
    background: rgba(0, 0, 0, .15);
}

.mt_purchase_path .active {
    background: rgba(0, 0, 0, .1);
    border-bottom: 4px solid;
}

#x_card_code {
    width: 4em;
}

.mt-admin-only {
    background-color: rgba(240, 240, 240, .8);
    font-style: italic;
}

.mt-emails,
.mt-names {
    display: flex;
    flex-wrap: wrap;
    align-items: start;
    column-gap: 20px;
}

.mt-field-row {
    margin-bottom: 20px;
}

.mt-waiting-list-tickets label {
    display: block;
}

.mt_submit {
    margin-top: 20px;
}

.mt-emails input,
.mt-names input {
    width: 100%;
}

.mt_email_check {
    display: block;
}

.mt_email_check span {
    font-weight: 700;
    padding: .33rem;
    display: none;
}

.mt_email_check .dashicons,
.mt_email_check .dashicons:before {
    line-height: inherit;
}

.mt_email_check .ok {
    color: var(--kili-white);
    background: var(--mt-success-border);
}

.mt-shipping-address label {
    display: block;
}

.mt_email_check .notemail,
.mt_email_check .mismatch {
    color: var(--kili-white);
    background: var(--mt-error-border);
}

.mt-update-buttons {
    display: grid;
    grid-template-columns: 1fr 1fr 1fr;
    column-gap: 2px;
}

.my-tickets-in-cart {
    margin-bottom: 1rem;
}

.mt-response-processing:after {
    overflow: hidden;
    display: inline-block;
    vertical-align: bottom;
    -webkit-animation: ellipsis steps(4, end) 900ms infinite;
    animation: ellipsis steps(4, end) 900ms infinite;
    content: "\2026";
    /* ascii code for the ellipsis character */
    width: 0px;
}

@keyframes ellipsis {
    to {
        width: 20px;
    }
}

@-webkit-keyframes ellipsis {
    to {
        width: 20px;
    }
}

input[name="mt_submit"]:disabled {
    opacity: .5;
    cursor: text;
}

.mt-payment-details {
    display: none;
}

.mt-payments {
    position: relative;
}

.mt-payment-details {
    position: absolute;
    left: 0;
    width: 100%;
    background: var(--mt-order-background);
    color: var(--mt-text-color);
    padding: 2rem;
    box-shadow: 3px 3px 3px #ccc;
}

.mt-payment-details .mt_cart_label {
    text-align: left;
}

.mt-payments .mt-payment-details h3 {
    font-size: 2rem;
    margin: 1rem 0;
}

.mt-payments thead tr {
    border-bottom-width: 4px;
}

.mt-payments.striped tr:nth-of-type(odd) {
    background: rgba(255, 255, 255, .1);
}

@media only screen and (max-width: 760px),
(min-device-width: 768px) and (max-device-width: 1024px) {

    /* Force table to not be like tables anymore */
    .mt_cart table,
    .mt_cart thead,
    .mt_cart tbody,
    .mt_cart th,
    .mt_cart td,
    .mt_cart tr,
    .mt_cart caption {
        display: block;
    }

    /* Hide table headers (but not display: none;, for accessibility) */
    .mt_cart thead tr {
        position: absolute;
        top: -9999px;
        left: -9999px;
    }

    .mt_cart tr {
        border: 1px solid #ccc;
    }

    .mt_cart td,
    .mt_cart th {
        border: none;
        border-bottom: 1px solid var(--mt-order-shadow);
        position: relative;
        padding-left: 30% !important;
    }

    .mt_cart th:first-child {
        padding-left: 30% !important;
    }

    .mt_cart td:before,
    .mt_cart th:before {
        /* Now like a table header */
        position: absolute;
        /* Top/left values mimic padding */
        top: 6px;
        left: 6px;
        width: 30%;
        padding-right: 10px;
        white-space: nowrap;
    }

    /* Label the data. Override in CSS to change text. */
    .mt_cart th:nth-of-type(1):before {
        content: "Event";
    }

    .mt_cart td:nth-of-type(1):before {
        content: "Order";
    }

    .mt_cart td:nth-of-type(2):before {
        content: "Update";
    }
}

/* Styles pour mt-ticket-line */
/* .mt-ticket-line {
    display: grid;
    grid-template-columns: 150px repeat(3, 1fr); 
    align-items: center;
    gap: var(--kili-space-md); 
} */

.mt-ticket-line .mt-ticket-label {
    text-align: left;
    /* Alignement des labels à gauche */
}


@media (max-width: 768px) {
    .mt-ticket-line {
        grid-template-columns: 1fr;
        /* Une seule colonne sur mobile */
        gap: var(--kili-space-sm);
    }

    .mt-ticket-line .mt-ticket-label {
        width: auto;
        /* Les labels prennent toute la largeur disponible */
    }
}

/* Accordéon pour Mobile */
.mt-ticket-line .mt-ticket-header {
    display: flex;
    justify-content: space-between;
    align-items: center;
    cursor: pointer;
}

.mt-ticket-line .mt-ticket-details {
    display: none;
    flex-direction: column;
    margin-top: 1rem;
}

.mt-ticket-line .mt-ticket-details input {
    margin-bottom: 0.5rem;
}

.mt-ticket-line .mt-ticket-toggle {
    background: var(--kili-white);
    border: 1px solid rgba(0, 0, 0, 0.06);
    border-radius: 6px;
    padding: 0 .6rem;
    font-size: 1.1rem;
    cursor: pointer;
}

/* Correction pour garantir l'affichage du contenu de l'accordeon */
.mt-ticket-line[aria-expanded="true"] .mt-ticket-details {
    display: flex !important;
    /* Forcer l'affichage en cas de conflit avec d'autres règles */
    animation: mt-slide-down .18s ease;
}

@keyframes mt-slide-down {
    from {
        opacity: 0;
        transform: translateY(-6px);
    }

    to {
        opacity: 1;
        transform: translateY(0);
    }
}

/* Responsivité */
@media (max-width: 768px) {
    .mt-ticket-line {
        flex-direction: column;
    }

    .mt-ticket-line.mobile-line {
        display: block;
    }

    .mt-ticket-line:not(.mobile-line) {
        display: none;
    }

    .mt-ticket-line .mt-ticket-header {
        display: flex;
        width: 100%;
    }

    .mt-ticket-line .mt-ticket-details {
        display: none;
    }

    .mt-ticket-line[aria-expanded="true"] .mt-ticket-details {
        display: flex;
    }
}

.mobile-version {
    display: none !important;
    /* Cachée par défaut */
}

@media (max-width: 768px) {
    .desktop-version {
        display: none !important;
        /* Cacher la version desktop sur mobile */
    }

    .mobile-version {
        display: block !important;
        /* Afficher la version mobile */
    }
}

/* Split ticket label into title + parentheses */
.mt-ticket-label .mt-label-title,
.mt-confirm-label .mt-label-title {
    display: block;
    font-weight: 700;
    color: rgba(0, 0, 0, 0.85);
    line-height: 1.1;
}

.mt-ticket-label .mt-label-sub,
.mt-confirm-label .mt-label-sub {
    display: block;
    font-size: 0.75em;
    color: rgba(0, 0, 0, 0.6);
    margin-top: .15rem;
    font-weight: 500;
}

@media (max-width: 782px) {

    .mt-ticket-label .mt-label-sub,
    .mt-confirm-label .mt-label-sub {
        font-size: 0.5em;
    }
}

/* Ensure the label markup generated by mt_ticket_row() is styled and wraps nicely
   - support both .mt-ticket-field label > .mt-label-* and .mt-ticket-label containers used elsewhere */
.mt-ticket-field label .mt-label-title,
.mt-ticket-label .mt-label-title,
.mt-confirm-label .mt-label-title {
    display: block;
    font-weight: 700;
    color: rgba(0, 0, 0, 0.85);
    line-height: 1.1;
    font-size: var(--kili-font-lg);
}

.mt-ticket-field label .mt-label-sub,
.mt-ticket-label .mt-label-sub,
.mt-confirm-label .mt-label-sub {
    display: block;
    font-size: 0.78em;
    color: rgba(0, 0, 0, 0.6);
    margin-top: .15rem;
    font-weight: 500;
}

/* Mobile adjustments: make labels smaller, allow wrapping and prevent overflow */
@media only screen and (max-width: 782px) {

    .mt-ticket-field label,
    .mt-ticket-field label .mt-label-title,
    .mt-ticket-field label .mt-label-sub {
        min-width: 0;
        word-break: break-word;
    }

    .mt-ticket-field label .mt-label-title {
        font-size: var(--kili-font-md);
    }

    .mt-ticket-field label .mt-label-sub {
        font-size: 0.78em;
    }

    /* Slightly reduce inner paddings so content fits on small screens */
    .mt-order.my-tickets {
        padding-left: calc(var(--kili-space-sm) + 4px);
        padding-right: calc(var(--kili-space-sm) + 4px);
    }

    .mt-ticket-field {
        padding-left: calc(var(--kili-space-sm) + 4px);
        padding-right: calc(var(--kili-space-sm) + 4px);
    }
}