/* Selector de cantidades moderno para tarjetas de precio */
.pricing-card {
    display: grid !important;
    grid-template-columns: repeat(12, minmax(0, 1fr)) !important;
    align-items: stretch !important;
    column-gap: 10px !important;
    row-gap: 12px !important;
    padding: 0 !important;
    background: transparent !important;
    border: 0 !important;
    border-radius: 0 !important;
    box-shadow: none !important;
}

.pricing-card .precio-compacto {
    grid-column: span 4;
    width: calc(100% - 8px) !important;
    min-width: 0 !important;
    max-width: none !important;
    justify-self: center !important;
    margin: 0 !important;
    min-height: 74px !important;
    padding: 8px 7px !important;
    gap: 2px !important;
    border-width: 1.25px !important;
    box-shadow: 0 5px 16px rgba(15,23,42,.045) !important;
    transform: none !important;
}

.pricing-card .precio-compacto:hover,
.pricing-card .precio-compacto:focus,
.pricing-card .precio-compacto:focus-visible {
    z-index: 20;
}

.pricing-card .precio-compacto.layout-span-3 {
    grid-column: span 6;
}

.pricing-card .precio-compacto.layout-span-6 {
    grid-column: span 12;
}

.pricing-card .precio-compacto:active {
    transform: translateY(1px) !important;
    box-shadow: 0 5px 16px rgba(15,23,42,.08) !important;
}

.pricing-card .precio-compacto[data-tooltip]::after {
    content: attr(data-tooltip);
    position: absolute;
    left: 50%;
    bottom: calc(100% + 8px);
    z-index: 60;
    width: max-content;
    max-width: min(230px, calc(100vw - 36px));
    padding: 7px 9px;
    border-radius: 9px;
    background: #111827;
    color: #fff;
    font-size: .72rem;
    font-weight: 750;
    line-height: 1.25;
    text-align: center;
    box-shadow: 0 10px 24px rgba(15,23,42,.22);
    opacity: 0;
    pointer-events: none;
    transform: translate(-50%, 4px);
    transition: opacity .14s ease, transform .14s ease;
}

.pricing-card .precio-compacto[data-tooltip]:hover::after,
.pricing-card .precio-compacto[data-tooltip]:focus::after,
.pricing-card .precio-compacto[data-tooltip]:focus-visible::after {
    opacity: 1;
    transform: translate(-50%, 0);
}

.pricing-card .precio-tipo {
    font-size: .82rem !important;
    line-height: 1.08 !important;
    margin-bottom: 0 !important;
    letter-spacing: 0 !important;
    max-width: 100%;
    min-height: 1.75em;
    display: -webkit-box;
    -webkit-line-clamp: 2;
    -webkit-box-orient: vertical;
    overflow: hidden;
    overflow-wrap: anywhere;
}

.pricing-card .precio-compacto.is-long-text .precio-tipo {
    font-size: .74rem !important;
}

.pricing-card .precio-valor {
    font-size: 1.42rem !important;
    line-height: 1 !important;
}

.pricing-card .precio-compacto .badge-cantidad {
    display: none !important;
}

.precio-accion {
    min-height: 20px;
    margin-top: 1px;
    display: flex;
    align-items: center;
    justify-content: center;
}

.precio-agregar {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    min-height: 20px;
    color: inherit;
    font-size: .75rem;
    font-weight: 850;
    line-height: 1;
}

.cantidad-stepper {
    display: none;
    align-items: center;
    justify-content: center;
    gap: 8px;
    min-height: 21px;
    padding: 0;
    border-radius: 0;
    background: transparent;
    border: 0;
    box-shadow: none;
}

.stepper-btn {
    width: 22px;
    height: 22px;
    border: 0;
    border-radius: 999px;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    color: #fff;
    font-size: .95rem;
    font-weight: 900;
    line-height: 1;
    cursor: pointer;
    touch-action: manipulation;
}

.stepper-cantidad {
    min-width: 18px;
    color: #0f172a;
    text-align: center;
    font-size: 1rem;
    font-weight: 900;
    line-height: 1;
}

.precio-compacto.tiene-cantidad .precio-agregar {
    display: none;
}

.precio-compacto.tiene-cantidad .cantidad-stepper {
    display: inline-flex;
}

.precios-extra-publicos {
    display: contents;
}

.precio-extra-publico {
    min-width: 0;
    background: #fdf4ff !important;
    border: 1.25px solid #d946ef !important;
    box-shadow: 0 5px 16px rgba(217,70,239,.08) !important;
    overflow: visible;
}

.pricing-card .precio-extra-publico {
    min-height: 74px !important;
    padding: 8px 7px !important;
    gap: 2px !important;
}

.pricing-card .precio-extra-publico.has-descripcion {
    min-height: 96px !important;
    padding-top: 9px !important;
    padding-bottom: 9px !important;
    gap: 0 !important;
}

.pricing-card .precio-extra-publico.has-descripcion .precio-tipo {
    min-height: auto;
    margin-bottom: 0 !important;
}

.pricing-card .precio-extra-publico .precio-tipo {
    color: #86198f !important;
    font-size: .82rem !important;
}

.pricing-card .precio-extra-publico .precio-valor {
    color: #a21caf !important;
    font-size: 1.42rem !important;
}

.precio-extra-publico .precio-descripcion {
    max-width: 100%;
    margin: 0 0 4px;
    color: #7e2289;
    font-size: .7rem;
    font-weight: 700;
    line-height: 1.22;
    display: -webkit-box;
    -webkit-line-clamp: 3;
    -webkit-box-orient: vertical;
    overflow: hidden;
    overflow-wrap: anywhere;
}

.entradas-individuales-panel {
    margin: 12px 0 4px;
}

.individual-toggle-row {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 12px;
    padding: 12px 14px;
    border: 1px solid #dbeafe;
    border-radius: 12px;
    background: #eff6ff;
    color: #0f172a;
    cursor: pointer;
}

.individual-toggle-row strong {
    display: block;
    font-size: .92rem;
    line-height: 1.15;
}

.individual-toggle-row small {
    display: block;
    margin-top: 3px;
    color: #475569;
    font-size: .78rem;
    font-weight: 650;
    line-height: 1.25;
}

.individual-toggle-row input {
    width: 42px;
    height: 24px;
    flex: 0 0 auto;
    accent-color: #2563eb;
}

.entradas-individuales-list {
    display: grid;
    gap: 8px;
    margin-top: 8px;
}

.entradas-individuales-panel.only-name-fields .entradas-individuales-list {
    grid-template-columns: repeat(2, minmax(0, 1fr));
}

.entradas-individuales-panel.only-name-fields .entrada-individual-card:last-child:nth-child(odd) {
    grid-column: 1 / -1;
}

.entrada-individual-card {
    display: grid;
    gap: 7px;
    padding: 9px 10px;
    border: 1px solid #e2e8f0;
    border-radius: 12px;
    background: #fff;
}

.entrada-individual-title {
    color: #1e3a8a;
    font-size: .82rem;
    font-weight: 900;
    line-height: 1.15;
}

.entrada-individual-card .form-label {
    margin-bottom: 1px;
    font-size: .76rem;
}

.entrada-individual-fields {
    display: grid;
    grid-template-columns: minmax(0, 1.45fr) minmax(118px, .75fr);
    gap: 8px;
    align-items: end;
}

.entradas-individuales-panel.only-name-fields .entrada-individual-fields {
    grid-template-columns: 1fr;
}

.entrada-individual-campo-nombre {
    min-width: 0;
}

.entrada-individual-campo {
    display: grid;
    gap: 3px;
    min-width: 0;
}

.entrada-individual-campo .form-input {
    min-width: 0;
}

@media (max-width: 520px) {
    .individual-toggle-row {
        align-items: flex-start;
        padding: 11px 12px;
    }

    .entrada-individual-fields {
        grid-template-columns: 1fr;
        gap: 7px;
    }

    .entradas-individuales-panel.only-name-fields .entradas-individuales-list {
        grid-template-columns: 1fr;
    }

    .entradas-individuales-panel.only-name-fields .entrada-individual-card:last-child:nth-child(odd) {
        grid-column: auto;
    }
}

.precio-extra-publico .precio-descripcion-linea {
    display: block;
}

.pricing-card .precio-extra-publico.has-descripcion .precio-valor {
    font-size: 1.34rem !important;
    margin-top: 1px !important;
}

.precio-extra-publico.is-agotado {
    background: #f8fafc !important;
    border-color: #cbd5e1 !important;
    box-shadow: none !important;
    opacity: .86;
    filter: none;
    cursor: not-allowed;
}

.precio-extra-publico.is-agotado .precio-tipo,
.precio-extra-publico.is-agotado .precio-valor,
.precio-extra-publico.is-agotado .precio-descripcion {
    color: #64748b !important;
}

.precio-extra-publico.is-agotado .precio-agregar {
    min-height: 18px;
    padding: 3px 8px;
    border-radius: 999px;
    color: #b91c1c;
    background: #fee2e2;
    border: 1px solid #fecaca;
    font-weight: 900;
}

.precio-extra-publico.is-agotado .cantidad-stepper {
    display: none !important;
}

.precio-anticipada .precio-accion,
.precio-anticipada .stepper-cantidad { color: #047857; }
.precio-anticipada .stepper-btn { background: #10b981; }

.precio-boleteria .precio-accion,
.precio-boleteria .stepper-cantidad { color: #334155; }
.precio-boleteria .stepper-btn { background: #475569; }

#cardJubilado {
    background: #f3f8ff !important;
    border: 1.25px solid #93c5fd !important;
    box-shadow: 0 5px 16px rgba(37,99,235,.055) !important;
    margin-bottom: 0 !important;
}

#cardJubilado:active {
    transform: translateY(1px) !important;
    box-shadow: 0 5px 14px rgba(59,130,246,.1) !important;
}

#cardJubilado .precio-tipo {
    color: #1d4ed8 !important;
}

#cardJubilado .precio-valor {
    color: #2563eb !important;
}

#cardJubilado .precio-accion,
#cardJubilado .stepper-cantidad { color: #2563eb; }
#cardJubilado .stepper-btn { background: #60a5fa; }

.precio-extra-publico .precio-accion,
.precio-extra-publico .stepper-cantidad { color: #86198f; }
.precio-extra-publico .stepper-btn { background: #c026d3; }

body.reserva-tiempo-vencido .pricing-card .precio-compacto,
body.reserva-tiempo-vencido .pricing-card .precio-extra-publico,
body.reserva-tiempo-vencido #cardJubilado {
    background: #f1f5f9 !important;
    border-color: #cbd5e1 !important;
    box-shadow: none !important;
    color: #64748b !important;
    cursor: not-allowed !important;
    pointer-events: none !important;
    filter: grayscale(.18);
}

body.reserva-tiempo-vencido .pricing-card .precio-tipo,
body.reserva-tiempo-vencido .pricing-card .precio-valor,
body.reserva-tiempo-vencido .pricing-card .precio-accion,
body.reserva-tiempo-vencido .pricing-card .precio-agregar,
body.reserva-tiempo-vencido .precio-extra-publico .precio-descripcion,
body.reserva-tiempo-vencido .pricing-card .stepper-cantidad {
    color: #64748b !important;
}

body.reserva-tiempo-vencido .pricing-card .stepper-btn {
    background: #94a3b8 !important;
    color: #f8fafc !important;
}

body.reserva-tiempo-vencido .btn-accion,
body.reserva-tiempo-vencido .btn-pagar-ahora,
body.reserva-tiempo-vencido .btn-reservar {
    background: #cbd5e1 !important;
    border-color: #cbd5e1 !important;
    color: #64748b !important;
    box-shadow: none !important;
    opacity: 1 !important;
    cursor: not-allowed !important;
    pointer-events: none !important;
}

@media (max-width: 430px) {
    .pricing-card .precio-compacto {
        width: calc(100% - 6px) !important;
        min-width: 0 !important;
        min-height: 72px !important;
        padding: 8px 6px !important;
    }

    .pricing-card .precio-tipo {
        font-size: .78rem !important;
        min-height: 1.7em;
    }

    .pricing-card .precio-valor {
        font-size: 1.32rem !important;
    }

    .pricing-card .precio-extra-publico .precio-valor {
        font-size: 1.32rem !important;
    }

    .precio-accion {
        margin-top: 2px;
    }

    .stepper-btn {
        width: 22px;
        height: 22px;
    }

    .stepper-cantidad {
        min-width: 18px;
        font-size: 1rem;
    }
}

.turnstile-boleteria-wrap {
    display: none;
    justify-content: center;
    width: 100%;
    margin: 0 0 10px;
}

.turnstile-boleteria-wrap.is-active {
    display: flex;
}

#turnstileBoleteria {
    width: 100%;
    display: flex;
    justify-content: center;
}

.campos-extra-reserva {
    display: none;
    gap: 8px;
}

.campo-extra-reserva {
    margin-bottom: 0;
}

.limite-edad-evento {
    display: inline-flex;
    align-items: center;
    justify-content: flex-start;
    gap: 8px;
    width: auto;
    margin: 0 0 0 10px;
    padding: 0;
    border-top: 0;
    vertical-align: middle;
}

.limite-edad-evento[hidden] {
    display: none;
}

.limite-edad-chip {
    min-width: 0;
    min-height: 20px;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    gap: 2px;
    padding: 0;
    border: 0;
    border-radius: 0;
    background: transparent;
    box-shadow: none;
    color: #475569;
}

.limite-edad-chip svg {
    width: 20px;
    height: 20px;
    fill: currentColor;
    stroke: none;
    opacity: 1;
    flex: 0 0 auto;
}

.limite-edad-chip strong {
    color: #334155;
    font-size: .76rem;
    font-weight: 950;
    line-height: 1;
}

.limite-edad-hombre {
    color: #334155;
}

.limite-edad-mujer {
    color: #334155;
}

.limite-edad-general {
    min-width: 60px;
}
