
body {
    background-color: #121212; /* Fondo oscuro */
    color: #ffffff;
    font-family: 'DM Sans', sans-serif;
}
a {
text-decoration: none !important;
}


.contenedor_header {
width: 100%;
max-width: 1024px; /* Ancho máximo */
margin: 0 auto; /* Centrado horizontal */
}

.container {
    width: 100%;
max-width: 1024px; /* Ancho máximo */
margin: 0 auto; /* Centrado horizontal */
}

.cabecera {
width: 100%;
margin: 0 auto;
padding: 0;
max-height: 220px; /* Alto máximo */
overflow: hidden; /* Ocultar cualquier contenido que exceda el alto máximo */
}

.cabecera img {
width: 100%;
height: auto;
display: block;
}

.card-horizontal {
    background-color: #f5f5f5;
    border: none;
    text-decoration: none; /* Elimina el subrayado del enlace */
    width: 100%; /* Ancho fijo */
    display: flex; /* Display flex para mantener el layout horizontal */
    flex-direction: row; /* Dirección horizontal */
    align-items: center; /* Centrado vertical */
    transition: filter 0.3s; /* Transición suave */
    height: 175px;
overflow: hidden; /* Controla el desbordamiento del contenido */
}

.card-img-container {
    display: flex;
    align-items: center;
    justify-content: center;
    height: 175px; /* Altura fija */
    overflow: hidden;
    width: 150px;
flex-shrink: 0; /* No permitir que el contenedor de la imagen se reduzca */
}

.card-img-left {
    height: 100%;
    width: 100%;
    object-fit: cover;

}
.card:hover {
    filter: brightness(95%); /* 10% más oscuro al pasar el ratón por encima */
}

.card-body {
flex: 1; /* Permitir que el contenido del cuerpo de la tarjeta ocupe el espacio disponible */
overflow: hidden; /* Controlar el desbordamiento del contenido */
}

.card-link {
    text-decoration: none; /* Eliminar subrayado de enlace */
    color: inherit; /* Heredar color */
}

.card-title {
    font-weight: 700; /* Peso de la fuente en negrita */
    margin-bottom: 15px;
    font-size: 1.25rem;
}
.card-text {
    font-weight: 400; /* Peso de la fuente normal */
    font-size: 0.90rem;
}

#footer {
    background: #1d1e20;
}

.footer_last {
    border-top: 1px solid #2B2B2B;
    padding: 20px 10px;
}

.footer_last:after {
    content: ".";
    display: block;
    clear: both;
    visibility: hidden;
    line-height: 0;
    height: 0;
}
    #footer a {
    color: #ad008c;
    text-decoration: none;
    }

.copyright {
    color:#fff;
    font-size: 12px;
    margin: 0 auto;
    display: table;
}

/* Pie en una sola línea: incidencias · copyright · términos · privacidad · cookies */
.pie-linea {
    display: flex;
    flex-wrap: wrap;
    justify-content: center;
    align-items: center;
    gap: 4px 0;
    margin: 0 auto;
    padding: 18px 16px;
    font-size: 12.5px;
    color: rgba(255, 255, 255, .6);
}
.pie-linea span { white-space: nowrap; }
.pie-linea span + span::before { content: "·"; margin: 0 10px; opacity: .5; }
.pie-linea a { text-decoration: none; font-weight: 600; }
.pie-linea a:hover { text-decoration: underline; }


.lefter1 {
width: 23px;
text-align: center;
margin-right: 8px;
}


.badge-dark {
    background-color: #ad008c; /* Color oscuro */
    color: #ffffff; /* Texto claro */
}

.badge-container {
    display: flex;
    gap: 10px;
}

.b-verde{
cursor: pointer;
font-weight:600;
background-color: #ad008c;
border: none;
color: #fff;
padding: 14px 25px;
text-align: center;
border-radius: 5px;
}

.b-genero{
cursor: pointer;
font-weight:600;
background-color: #ad008c;
border-width: 1px;
border-style: solid;
border-color: rgb(255, 72, 72);
color: #fff;
padding: 14px 25px;
text-align: center;
border-radius: 5px;
}

.badge-genero{
font-size: 0.55rem;
background-color: firebrick;
color: #ffffff;
font-weight: 700;
padding: 0.35em 0.65em;
}


/* EVENTO */

.container-cartel {
height: auto;
max-height: 100%;
/* float: right; */
}

.cartel {
height: auto;
width: 100%;
object-fit: contain;
max-height: 400px;
}

.card-body {
max-height: max-content;
padding: 0 var(--bs-card-spacer-x);
}

.event-card {
color: #fff;
background-color: transparent;
border: none !important;
}

.modal-content {
color: #121212;
}
.modal-title{
font-weight: 800;
}

.btn-morado, .btn-morado:hover, .btn-morado:active, .btn-morado:focus {
background-color: #ad008c;
color: #fff;
font-weight: 500;
width: 150px;
}


/* PANTILLA 1 */

.cartel-galeria {
width: 100%;
height: 250px;
overflow: hidden;
position: relative;
}
.card .card-img {
transition: all 200ms ease-out;
-webkit-transform: scale(1);
transform: scale(1);
}
.card-img {
width: 100%;
display: block;
}
.card-img {
width: 100%;
display: block;
}
.elipsis {
width: 280px;
white-space: nowrap;
text-overflow: ellipsis;
overflow: hidden;
}
.titulo-evento {
font-weight: 800;
font-size: 14px;
color: #ad008c;
}
.galeria-box {
padding: 15px;
background: #f7f7f7;
font-size: 14px;
color: #7A7A7A;
}

















/* PLANTILLA 3 */

.container {
width: 100%;
}

/* Absorbe los margenes negativos de .row Bootstrap (--bs-gutter-x ÷ 2) para
   evitar la barra de desplazamiento horizontal. Mismo patron que el .container
   estandar de Bootstrap. */
.container3 {
width: 100%;
padding-right: calc(var(--bs-gutter-x, 1.5rem) * 0.5);
padding-left:  calc(var(--bs-gutter-x, 1.5rem) * 0.5);
margin-right: auto;
margin-left:  auto;
}

.cartel-galeria3 {
width: 100%;
height: 290px;
overflow: hidden;
position: relative;
}
.card .card-img {
transition: all 200ms ease-out;
-webkit-transform: scale(1);
transform: scale(1);
}
.card-img {
width: 100%;
display: block;
}
.card-img {
width: 100%;
display: block;
}

.titulo-evento3 {
font-weight: 800;
font-size: clamp(20px,1.2vw,32px);
color: #ad008c;
text-transform: uppercase;
}
.galeria-box3 {
padding: 16px;
background: #121212;
font-size: 16px;
color: #fff;
}
.gradiente3{
background: linear-gradient(180deg, transparent 50%, rgba(0, 0, 0, .8));
position: absolute;
bottom: 0;
display: flex;
height: 100%;
width: 100%;
align-items: flex-end;
padding-bottom: 1rem;
padding-left: .75rem;
}
.card-text3 {
border-top: 1px solid #555555;
font-size: 1rem;
padding-top: 15px;
margin-top: 15px;
}

.precio3{
margin-right: 2rem;
border-width: 1px;
border-style: solid;
border-color: #fff;
padding: .25rem 1rem;
color: #fff;
}









/* PLANTILLA 4 */

.card4{
--bs-card-border-width: 0; /* Eliminar borde */
--bs-card-border-color: transparent; /* Asegurarse de que el color del borde sea transparente */
--bs-card-box-shadow: none; /* Eliminar sombra */
border: none; /* Eliminar borde adicional */
box-shadow: none; /* Eliminar sombra adicional */
border-radius: 10px; /* Aplicar borde redondeado */
overflow: hidden; /* Asegura que el contenido no sobresalga del borde redondeado */
}



.event-tile, event-tile {
display: block;
width: 100%;
height: 100%;
border: none; /* Asegúrate de que no haya borde */
margin: 0; /* Eliminar márgenes si los hay */
}

.event-tile {
box-sizing: border-box;
position: relative;
color: #fff;
overflow: hidden;
z-index: 0;
text-shadow: 2px 2px 10px rgba(0, 0, 0, .7);
box-shadow: none; /* Eliminar sombra que puede causar borde claro */
display: flex;
flex-direction: column;
justify-content: space-between;
height: 100%;
width: 100%; /* Asegura que la tarjeta ocupe todo el ancho */
}

.event-tile .event-header {
text-align: left;
background: linear-gradient(180deg, #000000 0, #00000000 100%);
display: flex;
flex-direction: column;
justify-content: center;
padding: 10px;
z-index: 1; /* Asegúrate de que el contenido del encabezado esté encima de la imagen */
}

.event-tile .event-footer {
height: 70px;
font-weight: 900;
background-color: rgba(0, 0, 0, 0.8); /* Fondo translúcido */
padding: 10px;
display: flex;
flex-direction: column;
justify-content: center;
align-items: center;
z-index: 1; /* Asegúrate de que el contenido del pie de página esté encima de la imagen */
}

.event-tile .event-title-container,
.event-tile .event-info {
color: #fff; /* Color del texto blanco */
opacity: 1; /* Asegúrate de que el texto no sea traslúcido */
z-index: 2; /* Asegúrate de que el texto esté por encima del fondo translúcido */
position: relative; /* Asegura que la opacidad del texto no se vea afectada */
}

.event-tile .event-image {
position: absolute;
top: 0;
left: 0;
width: 100%;
height: 100%;
background-size: cover;
background-position: center;
z-index: -1; /* Asegúrate de que la imagen esté detrás del contenido */
}





/*FORM VENTA */

.bg-white{
color: #333;
}
.bg-white a {
color: #ad008c !important;
text-decoration: none;
}

.precio, .form-check{
color: #333;
}

.bg-white h5{

font-weight: 800;
}
.bg-dark {
background-color: #000 !important;
}

.titulo {
font-family: 'Bebas Neue', sans-serif;
color: #333;
}

.titulo h3 {
text-transform: uppercase;
font-size: 3rem !important;
}

/* === Minisite oscuro: UI legacy de evento/compra sobre fondo oscuro ===
   Esta UI fue diseñada para fondo claro. En el minisite (body #121212, texto
   blanco) hay que: (1) poner los titulos de seccion en claro, y (2) oscurecer los
   fondos claros de las tablas de resumen (bg-light/bg-white) para que el texto
   blanco se lea. Las cards de precio usan .linea-precio* (NO bg-light), asi que
   mantienen su look claro original. */
.titulo, .titulo h3, .o-de, .upg-info-notice, .form-check-label { color: #fff !important; }
/* Links de aceptacion (Politica/Terminos) -> accent del minisite (visible sobre oscuro) */
.form-check-label a { color: #ad008c !important; }
.bg-light, .bg-white { background-color: #1d1e20 !important; border-color: rgba(255,255,255,.12) !important; }

/* Aviso inferior centrado, con aire arriba/abajo */
.upg-info-notice { text-align: center; margin: 22px 0 6px; }

/* Contador "Tiempo restante" -> caja tipo alert, centrada (la clase .upg-countdown
   vive en assets/styles/styles.css que no se carga en el minisite). */
.upg-countdown {
    text-align: center;
    color: #fff;
    font-weight: 600;
    background-color: #1d1e20;
    border: 1px solid #ad008c;
    border-radius: 8px;
    padding: 12px 16px;
    margin: 0 auto 18px;
    max-width: 520px;
}


#tickets p {
font-size: 18px;
color: #333;
font-weight: 700;
line-height: 25px;
text-align: left;
}

#tickets p.small {
font-size: 10px;
color: #333;
font-weight: 400;
line-height: 16px;
text-align: left;
margin-top: 4px !important;
}
.vert {
display: table-cell;
vertical-align: middle;
}

#tickets #titles {
margin-bottom: 40px;
font-size: 16px;
}

#tickets #data .quantity p.small, #contenedorDivPromoCode .quantity p.small {
font-size: 10px;
margin-top: 2px !important;
text-align: right;
}


#tickets  .quantity select{
margin-top: 6px;
}

#tickets .price p {
color: #707a82;
font-weight: 400;
font-size: 18px;
line-height: 30px;
text-align: center;
}

#tickets .smallp {
font-size: 13px;
color: #707a82;
font-weight: 400;
line-height: 14px;
text-align: left;
letter-spacing: 0px;
text-align: center;
}
#tickets p.smalld {
font-size: 16px;
color: #707a82;
font-weight: 400;
line-height: 16px;
text-align: left;
margin-top: 4px !important;
letter-spacing: 0px;
}

#tickets  .quantity select {
width: 80px;
margin-right: 0;
background: #fff;
border: 1px solid #707a82;
box-shadow: none;
color: #707a82;
display: inline-block;
padding: 4px 0 6px 26px;
margin-bottom: 0;
font-size: 18px;
font-weight: 400;
line-height: 22px;
white-space: nowrap;
vertical-align: middle;
touch-action: manipulation;
cursor: pointer;
-webkit-user-select: none;
border-radius: 4px;
text-align: center;
height: 36px;
}

.linea-precio {
display: grid;
margin-bottom: 15px;
border-left: 10px solid #ad008c;
box-shadow: 0 1px 2px 0 rgba(0,0,0,.2);
background-color: #fafafa;
}

.linea-precio-agotado {
display: grid;
margin-bottom: 15px;
border-left: 10px solid red;
box-shadow: 0 1px 2px 0 rgba(0,0,0,.2);
background-color: #ffecec;
cursor: not-allowed;
user-select: none;
}

.linea-centro{
padding: 16px 0px 16px 16px;
}

.separador{
margin:25px;
border-top: 5px solid #e8e8e8;
}



#tickets .price,#tickets .price-red  {
display: table;
align-items: center;
font-size: 16px;
font-weight: 600;
line-height: 18px;
min-height:80px;
}


#tickets .titulo-entrada {
font-weight: 600;
font-size: 22px;
}


.form-floating>label{
color: #707a82;
padding: 1rem 1.75rem;
}

.form-floating>.form-control-plaintext~label::after, .form-floating>.form-control:focus~label::after, .form-floating>.form-control:not(:placeholder-shown)~label::after, .form-floating>.form-select~label::after {
inset: 1rem 0.75rem;
}


#registration_form input[type='submit'], #frm input[type='submit'],  #retry input[type='submit']{
border: 0 none;
background-color: #ad008c;
border-radius: 6px 6px 6px 6px;
text-transform: uppercase;
cursor: pointer;
color: #ffffff;
font-size: 22px;
padding: 22px 0 22px 0;
width: 200px;
max-width: 200px;
font-weight: 600;
}

/* Boton de pago "REALIZAR PAGO" / "Reintentar compra": es un <button class="upg-pay-btn">,
   no un input[submit], por eso la regla de arriba no lo estilizaba (salia sin estilo).
   Mismo look accent que el boton COMPRAR. (.upg-pay-btn vive en assets/styles/styles.css
   que no se carga en el minisite). */
.upg-pay-wrap { text-align: center; }
.upg-pay-btn, #frm button[type='submit'] {
    border: 0 none;
    background-color: #ad008c;
    border-radius: 6px;
    text-transform: uppercase;
    cursor: pointer;
    color: #ffffff !important;
    font-size: 20px;
    padding: 18px 34px;
    margin: 14px 0 36px;
    font-weight: 600;
    display: inline-flex;
    align-items: center;
    justify-content: center;
}
.upg-pay-btn em { margin-right: 10px; color: #ffffff !important; }

.form-check-input:checked {
background-color: #ad008c;
border-color: #ad008c;
}
.alert {
margin-bottom: 0px;
}

@media (max-width: 992px) {
    .center-genero{
        text-align: center;
    }
}

@media (max-width: 479px) {
.card-title {
font-size: 0.85rem;
padding-top: 15px;
}
.card-text {
font-size: 0.75rem;
}
.card-img-container {
width: 120px;
}
}

@media (min-width: 480) and max-width: 640px) {
.card-title {
    font-size: 1rem;
}
.card-text {
    font-size: 0.85rem;
}
.card-img-container {
    width: 130px;
}
}

/* ====================================================================
 * PLANTILLA 5 — Lista densa estilo Resident Advisor
 * Usado tanto por el render legacy (minisite/index.php) como por el
 * minisite club nuevo (plugins/website/ui/club/agenda.php).
 * ==================================================================== */
.ms-event-list { border-top: 1px solid rgba(255,255,255,0.08); }
.ms-event-row {
    display: grid;
    grid-template-columns: 90px 200px 1fr 220px 60px;
    align-items: center;
    padding: 28px 16px;
    border-bottom: 1px solid rgba(255,255,255,0.08);
    cursor: pointer;
    transition: background .15s, padding-left .15s;
    text-decoration: none;
    color: inherit;
}
.ms-event-row:hover { background: rgba(255,255,255,0.03); padding-left: 24px; }
.ms-event-row > * { padding-right: 28px; }
.ms-event-row > *:last-child { padding-right: 0; }
.ms-event-num {
    font-family: 'JetBrains Mono', ui-monospace, monospace;
    font-size: 11px;
    color: rgba(255,255,255,0.35);
    letter-spacing: 0.1em;
}
.ms-event-date-day {
    display: block;
    font-family: 'Archivo Black', 'Bebas Neue', sans-serif;
    font-size: 16px;
    text-transform: uppercase;
    letter-spacing: 0.02em;
    margin-bottom: 4px;
    color: #fff;
}
.ms-event-date-sub {
    display: block;
    font-family: 'JetBrains Mono', ui-monospace, monospace;
    font-size: 11px;
    color: rgba(255,255,255,0.55);
    letter-spacing: 0.06em;
}
.ms-event-title {
    font-family: 'Archivo Black', 'Bebas Neue', sans-serif;
    font-size: 26px;
    letter-spacing: -0.01em;
    line-height: 1.05;
    text-transform: uppercase;
    margin: 0 0 6px;
    color: #fff;
}
.ms-event-row.is-soldout .ms-event-title { opacity: 0.5; }
.ms-event-soldout {
    display: inline-block;
    margin-left: 8px;
    font-family: 'JetBrains Mono', ui-monospace, monospace;
    font-size: 10px;
    background: rgba(255,255,255,0.06);
    color: #ad008c;
    padding: 2px 8px;
    border-radius: 4px;
    letter-spacing: 0.1em;
    vertical-align: middle;
}
.ms-event-lineup {
    font-size: 13px;
    color: rgba(255,255,255,0.55);
    letter-spacing: 0.04em;
}
.ms-event-tags { display: flex; flex-wrap: wrap; }
.ms-event-tag {
    font-size: 10px;
    padding: 4px 10px;
    margin-right: 6px;
    margin-bottom: 6px;
    border: 1px solid rgba(255,255,255,0.08);
    border-radius: 999px;
    color: rgba(255,255,255,0.55);
    letter-spacing: 0.1em;
    text-transform: uppercase;
    font-weight: 600;
    white-space: nowrap;
}
.ms-event-arrow {
    width: 44px; height: 44px;
    border-radius: 999px;
    border: 1px solid rgba(255,255,255,0.18);
    display: flex;
    align-items: center;
    justify-content: center;
    justify-self: end;
    color: #fff;
    transition: background .15s, color .15s, border-color .15s;
}
.ms-event-row:hover .ms-event-arrow {
    background: #ad008c;
    color: #0a0a0a;
    border-color: #ad008c;
}
@media (max-width: 980px) {
    .ms-event-row { grid-template-columns: 50px 1fr 50px; padding: 20px 8px; }
    .ms-event-row > * { padding-right: 12px; }
    .ms-event-date, .ms-event-tags { display: none; }
    .ms-event-title { font-size: 18px; }
}