
/* ==========================================================
   TICKETSTAR365 - LOCALIDADES MOBILE BEAUTIFUL V5
   SOLO <= 767px
   Estructura:
   1) Nombre localidad
   2) Descripción / beneficio
   3) Selector o Elegir Asientos | Precio
   ========================================================== */
@media (max-width: 767px){

  html body.ts365-module-evento #cuerpoEventos #contPrice{
    width:100% !important;
    max-width:100% !important;
    min-width:0 !important;
    padding:0 10px 18px !important;
    box-sizing:border-box !important;
    overflow:visible !important;
  }

  html body.ts365-module-evento #cuerpoEventos #tablePrice,
  html body.ts365-module-evento #cuerpoEventos #tablePrice tbody{
    display:block !important;
    width:100% !important;
    max-width:100% !important;
    min-width:0 !important;
    border:0 !important;
    border-spacing:0 !important;
    background:transparent !important;
    overflow:visible !important;
  }

  /* Cada fila se vuelve una tarjeta de 3 niveles */
  html body.ts365-module-evento #cuerpoEventos #tablePrice tbody > tr{
    position:relative !important;
    display:grid !important;
    grid-template-columns:minmax(0,1fr) auto !important;
    grid-template-areas:
      "nombre nombre"
      "detalle detalle"
      "accion precio" !important;
    column-gap:14px !important;
    row-gap:12px !important;

    width:100% !important;
    max-width:100% !important;
    min-width:0 !important;
    min-height:0 !important;

    margin:0 0 14px !important;
    padding:16px !important;

    border:1px solid var(--ts-table-line,#2b3c52) !important;
    border-radius:16px !important;
    background:var(--ts-table-row,#111b29) !important;
    box-shadow:0 8px 22px rgba(0,0,0,.10) !important;
    box-sizing:border-box !important;
    overflow:hidden !important;
  }

  html body:not(.ts365-dark).ts365-module-evento #cuerpoEventos #tablePrice tbody > tr{
    background:var(--ts-card,#ffffff) !important;
  }

  html body.ts365-module-evento #cuerpoEventos #tablePrice tbody > tr > td{
    display:flex !important;
    float:none !important;
    width:auto !important;
    min-width:0 !important;
    max-width:none !important;
    height:auto !important;
    min-height:0 !important;
    margin:0 !important;
    padding:0 !important;
    border:0 !important;
    background:transparent !important;
    white-space:normal !important;
    word-break:normal !important;
    overflow-wrap:anywhere !important;
    overflow:visible !important;
    box-sizing:border-box !important;
  }

  /* 1) LOCALIDAD: título limpio, sin pastilla */
  html body.ts365-module-evento #cuerpoEventos #tablePrice tbody > tr > td:nth-child(1){
    grid-area:nombre !important;
    display:block !important;
    width:100% !important;
    color:var(--ts-primary,#ff7900) !important;
    font-size:14px !important;
    font-weight:950 !important;
    line-height:1.22 !important;
    text-align:left !important;
    text-transform:uppercase !important;
  }

  html body.ts365-module-evento #cuerpoEventos #tablePrice tbody > tr > td:nth-child(1) > *,
  html body.ts365-module-evento #cuerpoEventos #tablePrice tbody > tr > td:nth-child(1) span,
  html body.ts365-module-evento #cuerpoEventos #tablePrice tbody > tr > td:nth-child(1) div{
    display:block !important;
    width:100% !important;
    max-width:100% !important;
    margin:0 !important;
    padding:0 !important;
    border:0 !important;
    border-radius:0 !important;
    background:transparent !important;
    box-shadow:none !important;
    color:inherit !important;
    white-space:normal !important;
    line-height:inherit !important;
  }

  /* 2) DESCRIPCIÓN: ancho completo, con aire */
  html body.ts365-module-evento #cuerpoEventos #tablePrice tbody > tr > td:nth-child(2){
    grid-area:detalle !important;
    display:block !important;
    width:100% !important;
    max-width:100% !important;
    padding:10px 12px !important;
    border-left:3px solid var(--ts-secondary,#00aee8) !important;
    border-radius:8px !important;
    background:color-mix(in srgb,var(--ts-secondary,#00aee8) 7%,transparent) !important;
    color:var(--ts-secondary,#00aee8) !important;
    font-size:11.5px !important;
    font-weight:850 !important;
    line-height:1.35 !important;
    text-align:left !important;
    text-transform:uppercase !important;
    box-sizing:border-box !important;
  }

  html body.ts365-module-evento #cuerpoEventos #tablePrice tbody > tr > td:nth-child(2) > *,
  html body.ts365-module-evento #cuerpoEventos #tablePrice tbody > tr > td:nth-child(2) span,
  html body.ts365-module-evento #cuerpoEventos #tablePrice tbody > tr > td:nth-child(2) div{
    display:block !important;
    width:100% !important;
    max-width:100% !important;
    min-width:0 !important;
    margin:0 !important;
    padding:0 !important;
    border:0 !important;
    background:transparent !important;
    white-space:normal !important;
    overflow-wrap:anywhere !important;
    line-height:1.35 !important;
  }

  /* 3) ACCIÓN A LA IZQUIERDA */
  html body.ts365-module-evento #cuerpoEventos #tablePrice tbody > tr > td:nth-child(3){
    grid-area:accion !important;
    display:flex !important;
    align-items:center !important;
    justify-content:flex-start !important;
    min-height:44px !important;
  }

  /* 3) PRECIO A LA DERECHA, MISMA FILA */
  html body.ts365-module-evento #cuerpoEventos #tablePrice tbody > tr > td:nth-child(4),
  html body.ts365-module-evento #cuerpoEventos #tablePrice tbody > tr > td:last-child{
    grid-area:precio !important;
    display:flex !important;
    align-items:center !important;
    justify-content:flex-end !important;
    color:var(--ts-primary,#ff7900) !important;
    font-size:19px !important;
    font-weight:950 !important;
    line-height:1.1 !important;
    white-space:nowrap !important;
    text-align:right !important;
  }

  /* TARIFA ESPECIAL: distinta a localidad normal */
  html body.ts365-module-evento #cuerpoEventos #tablePrice tr.ts365-special-rate{
    padding-top:42px !important;
    border-left:4px solid var(--ts-secondary,#00aee8) !important;
    border-color:color-mix(in srgb,var(--ts-secondary,#00aee8) 55%,var(--ts-table-line,#2b3c52)) !important;
    background:
      linear-gradient(
        135deg,
        color-mix(in srgb,var(--ts-secondary,#00aee8) 10%,var(--ts-table-row,#111b29)),
        var(--ts-table-row,#111b29) 72%
      ) !important;
  }

  html body:not(.ts365-dark).ts365-module-evento #cuerpoEventos #tablePrice tr.ts365-special-rate{
    background:
      linear-gradient(
        135deg,
        color-mix(in srgb,var(--ts-secondary,#00aee8) 7%,#fff),
        #fff 72%
      ) !important;
  }

  html body.ts365-module-evento #cuerpoEventos #tablePrice tr.ts365-special-rate::before{
    content:"BENEFICIO / TARIFA ESPECIAL" !important;
    position:absolute !important;
    top:0 !important;
    left:0 !important;
    right:0 !important;
    height:28px !important;
    padding:0 13px !important;
    display:flex !important;
    align-items:center !important;
    background:var(--ts-secondary,#00aee8) !important;
    color:#fff !important;
    font-size:9px !important;
    font-weight:950 !important;
    letter-spacing:.25px !important;
    text-transform:uppercase !important;
  }

  html body.ts365-module-evento #cuerpoEventos #tablePrice tr.ts365-special-rate > td:nth-child(1){
    color:var(--ts-secondary,#00aee8) !important;
  }

  html body.ts365-module-evento #cuerpoEventos #tablePrice tr.ts365-special-rate > td:nth-child(2){
    background:color-mix(in srgb,var(--ts-secondary,#00aee8) 13%,transparent) !important;
  }

  /* SELECT */
  html body.ts365-module-evento #cuerpoEventos #tablePrice select,
  html body.ts365-module-evento #cuerpoEventos #tablePrice select.canti_ip,
  html body.ts365-module-evento #cuerpoEventos #tablePrice .form-control{
    width:82px !important;
    min-width:82px !important;
    max-width:82px !important;
    height:44px !important;
    min-height:44px !important;
    margin:0 !important;
    padding:4px 25px 4px 12px !important;
    border:1px solid var(--ts-table-line,#405069) !important;
    border-radius:10px !important;
    background:var(--ts-table-bg,#0e1725) !important;
    color:var(--ts-table-text,#fff) !important;
    font-size:15px !important;
    font-weight:850 !important;
    text-align:center !important;
    box-shadow:none !important;
  }

  html body:not(.ts365-dark).ts365-module-evento #cuerpoEventos #tablePrice select,
  html body:not(.ts365-dark).ts365-module-evento #cuerpoEventos #tablePrice .form-control{
    background:#fff !important;
    color:var(--ts-text,#111827) !important;
  }

  /* ELEGIR ASIENTOS */
  html body.ts365-module-evento #cuerpoEventos #tablePrice button,
  html body.ts365-module-evento #cuerpoEventos #tablePrice .btn,
  html body.ts365-module-evento #cuerpoEventos #tablePrice .boton_ip,
  html body.ts365-module-evento #cuerpoEventos #tablePrice #botonAbrir,
  html body.ts365-module-evento #cuerpoEventos #tablePrice .span-open-label{
    width:auto !important;
    min-width:132px !important;
    max-width:178px !important;
    min-height:44px !important;
    margin:0 !important;
    padding:9px 14px !important;
    border:0 !important;
    border-radius:10px !important;
    background:var(--ts-secondary,#00aee8) !important;
    color:#fff !important;
    font-size:11px !important;
    font-weight:900 !important;
    line-height:1.1 !important;
    text-align:center !important;
    white-space:normal !important;
  }

  /* Neutraliza ancho heredado de hijos */
  html body.ts365-module-evento #cuerpoEventos #tablePrice .tdLocali,
  html body.ts365-module-evento #cuerpoEventos #tablePrice #tdLoCar,
  html body.ts365-module-evento #cuerpoEventos #tablePrice .tdLo,
  html body.ts365-module-evento #cuerpoEventos #tablePrice #datePrev{
    width:auto !important;
    min-width:0 !important;
    max-width:100% !important;
    margin:0 !important;
    padding:0 !important;
    white-space:normal !important;
  }
}

@media (max-width:380px){
  html body.ts365-module-evento #cuerpoEventos #contPrice{
    padding-left:7px !important;
    padding-right:7px !important;
  }

  html body.ts365-module-evento #cuerpoEventos #tablePrice tbody > tr{
    padding:14px !important;
  }

  html body.ts365-module-evento #cuerpoEventos #tablePrice tr.ts365-special-rate{
    padding-top:42px !important;
  }

  html body.ts365-module-evento #cuerpoEventos #tablePrice tbody > tr > td:nth-child(1){
    font-size:12.5px !important;
  }

  html body.ts365-module-evento #cuerpoEventos #tablePrice tbody > tr > td:nth-child(2){
    font-size:10.5px !important;
  }

  html body.ts365-module-evento #cuerpoEventos #tablePrice tbody > tr > td:nth-child(4),
  html body.ts365-module-evento #cuerpoEventos #tablePrice tbody > tr > td:last-child{
    font-size:17px !important;
  }
}


/* ==========================================================
   V6 - FIX ALTURA / SOLAPAMIENTO EN MOBILE
   Este bloque gana a alturas heredadas del layout antiguo.
   ========================================================== */
@media (max-width: 767px){

  html body.ts365-module-evento #cuerpoEventos #tablePrice tbody > tr{
    display:grid !important;
    grid-template-columns:minmax(0,1fr) auto !important;
    grid-template-areas:
      "nombre nombre"
      "detalle detalle"
      "accion precio" !important;
    grid-template-rows:auto auto minmax(46px,auto) !important;
    grid-auto-rows:max-content !important;

    align-items:start !important;
    align-content:start !important;

    height:auto !important;
    min-height:164px !important;
    max-height:none !important;

    padding:16px 16px 18px !important;
    row-gap:12px !important;

    overflow:visible !important;
  }

  html body.ts365-module-evento #cuerpoEventos #tablePrice tbody > tr.ts365-special-rate{
    min-height:192px !important;
    padding-top:44px !important;
  }

  html body.ts365-module-evento #cuerpoEventos #tablePrice tbody > tr > td{
    position:static !important;
    float:none !important;

    height:auto !important;
    min-height:0 !important;
    max-height:none !important;

    top:auto !important;
    right:auto !important;
    bottom:auto !important;
    left:auto !important;

    transform:none !important;
    overflow:visible !important;
  }

  html body.ts365-module-evento #cuerpoEventos #tablePrice tbody > tr > td:nth-child(1){
    grid-area:nombre !important;
    min-height:34px !important;
    padding-bottom:2px !important;
  }

  html body.ts365-module-evento #cuerpoEventos #tablePrice tbody > tr > td:nth-child(2){
    grid-area:detalle !important;
    min-height:44px !important;
    margin:0 !important;
  }

  html body.ts365-module-evento #cuerpoEventos #tablePrice tbody > tr > td:nth-child(3){
    grid-area:accion !important;
    align-self:end !important;
    min-height:46px !important;
    padding-top:2px !important;
    overflow:visible !important;
  }

  html body.ts365-module-evento #cuerpoEventos #tablePrice tbody > tr > td:nth-child(4),
  html body.ts365-module-evento #cuerpoEventos #tablePrice tbody > tr > td:last-child{
    grid-area:precio !important;
    align-self:end !important;
    min-height:46px !important;
    display:flex !important;
    align-items:center !important;
    justify-content:flex-end !important;
    padding-top:2px !important;
    overflow:visible !important;
  }

  html body.ts365-module-evento #cuerpoEventos #tablePrice select,
  html body.ts365-module-evento #cuerpoEventos #tablePrice select.canti_ip,
  html body.ts365-module-evento #cuerpoEventos #tablePrice .form-control,
  html body.ts365-module-evento #cuerpoEventos #tablePrice button,
  html body.ts365-module-evento #cuerpoEventos #tablePrice .btn,
  html body.ts365-module-evento #cuerpoEventos #tablePrice .boton_ip{
    position:static !important;
    top:auto !important;
    bottom:auto !important;
    transform:none !important;
    margin:0 !important;
    visibility:visible !important;
    opacity:1 !important;
  }

  /* La descripción no puede invadir la fila inferior */
  html body.ts365-module-evento #cuerpoEventos #tablePrice tbody > tr > td:nth-child(2),
  html body.ts365-module-evento #cuerpoEventos #tablePrice tbody > tr > td:nth-child(2) > *{
    max-height:none !important;
    overflow:visible !important;
  }
}

@media (max-width: 380px){
  html body.ts365-module-evento #cuerpoEventos #tablePrice tbody > tr{
    min-height:170px !important;
    padding:14px 13px 17px !important;
  }

  html body.ts365-module-evento #cuerpoEventos #tablePrice tbody > tr.ts365-special-rate{
    min-height:198px !important;
    padding-top:44px !important;
  }
}


/* ==========================================================
   TICKETSTAR365 - LOCALIDADES MOBILE BEAUTIFUL V7
   Refinamiento visual sobre V6.
   SOLO <= 767px.
   No cambia lógica, cantidades, descuentos ni Seats.io.
   ========================================================== */
@media (max-width: 767px){

  /* Más compacto y elegante */
  html body.ts365-module-evento #cuerpoEventos #tablePrice tbody > tr{
    min-height:0 !important;
    margin-bottom:12px !important;
    padding:15px 15px 14px !important;
    row-gap:10px !important;
    border-radius:15px !important;
    box-shadow:0 8px 22px rgba(0,0,0,.08) !important;
  }

  html body.ts365-module-evento #cuerpoEventos #tablePrice tbody > tr.ts365-special-rate{
    min-height:0 !important;
    padding-top:15px !important;
  }

  /* Nombre de localidad: protagonista, limpio */
  html body.ts365-module-evento #cuerpoEventos #tablePrice tbody > tr > td:nth-child(1){
    min-height:0 !important;
    padding:0 0 1px !important;
    color:var(--ts-primary,#ff7900) !important;
    font-size:14px !important;
    font-weight:950 !important;
    line-height:1.22 !important;
    letter-spacing:.1px !important;
  }

  /* Descripción: sutil, no caja pesada */
  html body.ts365-module-evento #cuerpoEventos #tablePrice tbody > tr > td:nth-child(2){
    min-height:0 !important;
    padding:8px 10px !important;
    border-left:3px solid color-mix(in srgb,var(--ts-secondary,#00aee8) 82%,transparent) !important;
    border-radius:7px !important;
    background:color-mix(in srgb,var(--ts-secondary,#00aee8) 5%,transparent) !important;
    font-size:11px !important;
    font-weight:800 !important;
    line-height:1.3 !important;
  }

  /* Acción y precio, alineación premium */
  html body.ts365-module-evento #cuerpoEventos #tablePrice tbody > tr > td:nth-child(3),
  html body.ts365-module-evento #cuerpoEventos #tablePrice tbody > tr > td:nth-child(4),
  html body.ts365-module-evento #cuerpoEventos #tablePrice tbody > tr > td:last-child{
    min-height:42px !important;
    align-self:center !important;
  }

  html body.ts365-module-evento #cuerpoEventos #tablePrice tbody > tr > td:nth-child(4),
  html body.ts365-module-evento #cuerpoEventos #tablePrice tbody > tr > td:last-child{
    padding-left:12px !important;
    padding-right:2px !important;
    color:var(--ts-primary,#ff7900) !important;
    font-size:18px !important;
    font-weight:950 !important;
    letter-spacing:.1px !important;
  }

  /* Select más moderno */
  html body.ts365-module-evento #cuerpoEventos #tablePrice select,
  html body.ts365-module-evento #cuerpoEventos #tablePrice select.canti_ip,
  html body.ts365-module-evento #cuerpoEventos #tablePrice .form-control{
    width:80px !important;
    min-width:80px !important;
    max-width:80px !important;
    height:42px !important;
    min-height:42px !important;
    border-radius:11px !important;
    font-size:15px !important;
    box-shadow:0 3px 10px rgba(0,0,0,.06) !important;
  }

  /* Elegir asientos más fino */
  html body.ts365-module-evento #cuerpoEventos #tablePrice button,
  html body.ts365-module-evento #cuerpoEventos #tablePrice .btn,
  html body.ts365-module-evento #cuerpoEventos #tablePrice .boton_ip,
  html body.ts365-module-evento #cuerpoEventos #tablePrice #botonAbrir,
  html body.ts365-module-evento #cuerpoEventos #tablePrice .span-open-label{
    min-width:128px !important;
    min-height:42px !important;
    padding:8px 13px !important;
    border-radius:11px !important;
    font-size:11px !important;
    box-shadow:0 5px 14px color-mix(in srgb,var(--ts-secondary,#00aee8) 18%,transparent) !important;
  }

  /* =========================================================
     TARIFA ESPECIAL - MÁS ELEGANTE
     Quitamos la franja completa y usamos badge pequeño.
     ========================================================= */
  html body.ts365-module-evento #cuerpoEventos #tablePrice tr.ts365-special-rate{
    border:1px solid color-mix(in srgb,var(--ts-secondary,#00aee8) 38%,var(--ts-table-line,#2b3c52)) !important;
    border-left:4px solid var(--ts-secondary,#00aee8) !important;
    background:
      linear-gradient(
        135deg,
        color-mix(in srgb,var(--ts-secondary,#00aee8) 7%,var(--ts-table-row,#111b29)),
        var(--ts-table-row,#111b29) 76%
      ) !important;
  }

  html body:not(.ts365-dark).ts365-module-evento #cuerpoEventos #tablePrice tr.ts365-special-rate{
    background:
      linear-gradient(
        135deg,
        color-mix(in srgb,var(--ts-secondary,#00aee8) 5%,#ffffff),
        #ffffff 76%
      ) !important;
  }

  /* Elimina la banda V6 */
  html body.ts365-module-evento #cuerpoEventos #tablePrice tr.ts365-special-rate::before{
    content:none !important;
    display:none !important;
  }

  /* Badge especial: pequeño, moderno y evidente */
  html body.ts365-module-evento #cuerpoEventos #tablePrice tr.ts365-special-rate > td:nth-child(1){
    position:relative !important;
    color:var(--ts-secondary,#00aee8) !important;
    padding-top:29px !important;
  }

  html body.ts365-module-evento #cuerpoEventos #tablePrice tr.ts365-special-rate > td:nth-child(1)::before{
    content:"★ TARIFA ESPECIAL 50%" !important;
    position:absolute !important;
    top:0 !important;
    left:0 !important;

    display:inline-flex !important;
    align-items:center !important;

    padding:5px 8px !important;
    border-radius:999px !important;

    background:color-mix(in srgb,var(--ts-secondary,#00aee8) 16%,transparent) !important;
    border:1px solid color-mix(in srgb,var(--ts-secondary,#00aee8) 48%,transparent) !important;
    color:var(--ts-secondary,#00aee8) !important;

    font-size:9px !important;
    font-weight:950 !important;
    line-height:1 !important;
    letter-spacing:.2px !important;
    white-space:nowrap !important;
  }

  /* Oculta el texto repetido ESPECIAL 50% si ya está en el badge */
  html body.ts365-module-evento #cuerpoEventos #tablePrice tr.ts365-special-rate > td:nth-child(1){
    font-size:0 !important;
  }

  html body.ts365-module-evento #cuerpoEventos #tablePrice tr.ts365-special-rate > td:nth-child(1) > *,
  html body.ts365-module-evento #cuerpoEventos #tablePrice tr.ts365-special-rate > td:nth-child(1) span,
  html body.ts365-module-evento #cuerpoEventos #tablePrice tr.ts365-special-rate > td:nth-child(1) div{
    display:none !important;
  }

  html body.ts365-module-evento #cuerpoEventos #tablePrice tr.ts365-special-rate > td:nth-child(2){
    margin-top:0 !important;
    background:color-mix(in srgb,var(--ts-secondary,#00aee8) 9%,transparent) !important;
    border-left:3px solid var(--ts-secondary,#00aee8) !important;
  }

  /* El precio especial mantiene color principal para consistencia */
  html body.ts365-module-evento #cuerpoEventos #tablePrice tr.ts365-special-rate > td:nth-child(4),
  html body.ts365-module-evento #cuerpoEventos #tablePrice tr.ts365-special-rate > td:last-child{
    color:var(--ts-primary,#ff7900) !important;
  }

  /* Tab de cabecera más ligero */
  html body.ts365-module-evento #cuerpoEventos #contPrice .nav-tabs > li > a,
  html body.ts365-module-evento #cuerpoEventos #contPrice ul.nav > li > a{
    padding:10px 14px !important;
    border-radius:11px 11px 0 0 !important;
    font-size:12px !important;
    font-weight:900 !important;
  }
}

@media (max-width:380px){
  html body.ts365-module-evento #cuerpoEventos #tablePrice tbody > tr{
    padding:13px 12px !important;
    row-gap:9px !important;
  }

  html body.ts365-module-evento #cuerpoEventos #tablePrice tr.ts365-special-rate{
    padding-top:13px !important;
  }

  html body.ts365-module-evento #cuerpoEventos #tablePrice tr.ts365-special-rate > td:nth-child(1){
    padding-top:28px !important;
  }

  html body.ts365-module-evento #cuerpoEventos #tablePrice tr.ts365-special-rate > td:nth-child(1)::before{
    font-size:8.5px !important;
  }

  html body.ts365-module-evento #cuerpoEventos #tablePrice tbody > tr > td:nth-child(1){
    font-size:13px !important;
  }

  html body.ts365-module-evento #cuerpoEventos #tablePrice tbody > tr > td:nth-child(2){
    font-size:10.3px !important;
  }

  html body.ts365-module-evento #cuerpoEventos #tablePrice tbody > tr > td:nth-child(4),
  html body.ts365-module-evento #cuerpoEventos #tablePrice tbody > tr > td:last-child{
    font-size:17px !important;
  }
}


/* ==========================================================
   TICKETSTAR365 - LOCALIDADES WEB BEAUTIFUL V8
   SOLO ESCRITORIO / TABLET HORIZONTAL >= 768px
   Mantiene intacta la V7 móvil.
   ========================================================== */
@media (min-width: 768px){

  /* Tabla general más refinada */
  html body.ts365-module-evento #cuerpoEventos #tablePrice{
    border-collapse:separate !important;
    border-spacing:0 !important;
  }

  html body.ts365-module-evento #cuerpoEventos #tablePrice tbody > tr{
    transition:background-color .18s ease, border-color .18s ease, box-shadow .18s ease !important;
  }

  html body.ts365-module-evento #cuerpoEventos #tablePrice tbody > tr:hover{
    background:color-mix(in srgb,var(--ts-secondary,#00aee8) 3%,var(--ts-table-row,#111b29)) !important;
  }

  /* ----------------------------------------------------------
     LOCALIDAD NORMAL
     Naranja = categoría/localidad principal
     ---------------------------------------------------------- */
  html body.ts365-module-evento #cuerpoEventos #tablePrice tr.ts365-normal-rate > td:first-child{
    color:var(--ts-primary,#ff7900) !important;
    font-weight:900 !important;
  }

  html body.ts365-module-evento #cuerpoEventos #tablePrice tr.ts365-normal-rate > td:first-child > *,
  html body.ts365-module-evento #cuerpoEventos #tablePrice tr.ts365-normal-rate > td:first-child span,
  html body.ts365-module-evento #cuerpoEventos #tablePrice tr.ts365-normal-rate > td:first-child div{
    display:inline-flex !important;
    align-items:center !important;
    justify-content:center !important;

    width:auto !important;
    max-width:95% !important;
    min-height:30px !important;

    padding:5px 12px !important;
    margin:0 auto !important;

    border:1px solid color-mix(in srgb,var(--ts-primary,#ff7900) 48%,transparent) !important;
    border-radius:999px !important;

    background:color-mix(in srgb,var(--ts-primary,#ff7900) 10%,transparent) !important;
    color:var(--ts-primary,#ff7900) !important;

    font-weight:900 !important;
    line-height:1.15 !important;
    text-align:center !important;
    box-sizing:border-box !important;
  }

  /* ----------------------------------------------------------
     TARIFA ESPECIAL
     Celeste = beneficio/descuento.
     Se diferencia de la localidad sin cambiar el precio.
     ---------------------------------------------------------- */
  html body.ts365-module-evento #cuerpoEventos #tablePrice tr.ts365-special-rate{
    position:relative !important;
    background:
      linear-gradient(
        90deg,
        color-mix(in srgb,var(--ts-secondary,#00aee8) 7%,var(--ts-table-row,#111b29)),
        var(--ts-table-row,#111b29) 28%
      ) !important;
  }

  html body:not(.ts365-dark).ts365-module-evento #cuerpoEventos #tablePrice tr.ts365-special-rate{
    background:
      linear-gradient(
        90deg,
        color-mix(in srgb,var(--ts-secondary,#00aee8) 6%,#ffffff),
        #ffffff 28%
      ) !important;
  }

  /* Pequeño acento lateral */
  html body.ts365-module-evento #cuerpoEventos #tablePrice tr.ts365-special-rate > td:first-child{
    position:relative !important;
    color:var(--ts-secondary,#00aee8) !important;
    font-weight:950 !important;
  }

  html body.ts365-module-evento #cuerpoEventos #tablePrice tr.ts365-special-rate > td:first-child::before{
    content:"★" !important;
    display:inline-block !important;
    margin-right:7px !important;
    color:var(--ts-secondary,#00aee8) !important;
    font-size:12px !important;
    line-height:1 !important;
    vertical-align:middle !important;
  }

  /* Badge especial claramente distinto al naranja */
  html body.ts365-module-evento #cuerpoEventos #tablePrice tr.ts365-special-rate > td:first-child > *,
  html body.ts365-module-evento #cuerpoEventos #tablePrice tr.ts365-special-rate > td:first-child span,
  html body.ts365-module-evento #cuerpoEventos #tablePrice tr.ts365-special-rate > td:first-child div{
    display:inline-flex !important;
    align-items:center !important;
    justify-content:center !important;

    width:auto !important;
    max-width:95% !important;
    min-height:30px !important;

    padding:5px 12px !important;
    margin:0 auto !important;

    border:1px solid color-mix(in srgb,var(--ts-secondary,#00aee8) 58%,transparent) !important;
    border-radius:8px !important;

    background:color-mix(in srgb,var(--ts-secondary,#00aee8) 14%,transparent) !important;
    color:var(--ts-secondary,#00aee8) !important;

    font-weight:950 !important;
    line-height:1.15 !important;
    text-align:center !important;
    box-sizing:border-box !important;
  }

  /* Descripción especial también usa el secundario */
  html body.ts365-module-evento #cuerpoEventos #tablePrice tr.ts365-special-rate > td:nth-child(2){
    color:var(--ts-secondary,#00aee8) !important;
    font-weight:800 !important;
  }

  /* Descripción normal ligeramente menos intensa */
  html body.ts365-module-evento #cuerpoEventos #tablePrice tr.ts365-normal-rate > td:nth-child(2){
    color:var(--ts-secondary,#00aee8) !important;
    font-weight:750 !important;
  }

  /* Precio: siempre principal para consistencia de compra */
  html body.ts365-module-evento #cuerpoEventos #tablePrice tbody > tr > td:last-child{
    color:var(--ts-primary,#ff7900) !important;
    font-weight:950 !important;
    white-space:nowrap !important;
  }

  /* Separadores algo más finos */
  html body.ts365-module-evento #cuerpoEventos #tablePrice tbody > tr > td{
    border-color:color-mix(in srgb,var(--ts-table-line,#2b3c52) 82%,transparent) !important;
  }

  /* Botón de asientos mantiene secundario */
  html body.ts365-module-evento #cuerpoEventos #tablePrice button,
  html body.ts365-module-evento #cuerpoEventos #tablePrice .btn,
  html body.ts365-module-evento #cuerpoEventos #tablePrice .boton_ip{
    border-radius:8px !important;
    background:var(--ts-secondary,#00aee8) !important;
    color:#fff !important;
    font-weight:850 !important;
  }
}


/* ==========================================================
   TICKETSTAR365 - EVENTO HOVER COLOR FIX V10
   ÚNICO OBJETIVO:
   al pasar el cursor sobre una localidad, NO cambiar a blanco.
   Mantiene el fondo configurado por la colorimetría.
   ========================================================== */
@media (min-width: 768px){

  /* DARK: hover conserva fondo oscuro */
  html body.ts365-dark.ts365-module-evento #cuerpoEventos #tablePrice tbody > tr:hover,
  html body.ts365-dark.ts365-module-evento #cuerpoEventos #tablePrice tbody > tr:hover > td,
  html body.ts365-dark.ts365-module-evento #cuerpoEventos #tablePrice tbody > tr:focus-within,
  html body.ts365-dark.ts365-module-evento #cuerpoEventos #tablePrice tbody > tr:focus-within > td{
      background-color:var(--ts-table-row,#111b29) !important;
      color:inherit !important;
  }

  /* Especiales: hover conserva su diferenciación oscura */
  html body.ts365-dark.ts365-module-evento #cuerpoEventos #tablePrice tbody > tr.ts365-special-rate:hover,
  html body.ts365-dark.ts365-module-evento #cuerpoEventos #tablePrice tbody > tr.ts365-special-rate:hover > td,
  html body.ts365-dark.ts365-module-evento #cuerpoEventos #tablePrice tbody > tr.ts365-special-rate:focus-within,
  html body.ts365-dark.ts365-module-evento #cuerpoEventos #tablePrice tbody > tr.ts365-special-rate:focus-within > td{
      background:
        linear-gradient(
          90deg,
          color-mix(in srgb,var(--ts-secondary,#00aee8) 7%,var(--ts-table-row,#111b29)),
          var(--ts-table-row,#111b29) 28%
        ) !important;
  }

  /* LIGHT: hover conserva el fondo claro configurado */
  html body:not(.ts365-dark).ts365-module-evento #cuerpoEventos #tablePrice tbody > tr:hover,
  html body:not(.ts365-dark).ts365-module-evento #cuerpoEventos #tablePrice tbody > tr:hover > td,
  html body:not(.ts365-dark).ts365-module-evento #cuerpoEventos #tablePrice tbody > tr:focus-within,
  html body:not(.ts365-dark).ts365-module-evento #cuerpoEventos #tablePrice tbody > tr:focus-within > td{
      background-color:var(--ts-card,#ffffff) !important;
      color:inherit !important;
  }

  /* Especiales en LIGHT mantienen su diferenciación */
  html body:not(.ts365-dark).ts365-module-evento #cuerpoEventos #tablePrice tbody > tr.ts365-special-rate:hover,
  html body:not(.ts365-dark).ts365-module-evento #cuerpoEventos #tablePrice tbody > tr.ts365-special-rate:hover > td,
  html body:not(.ts365-dark).ts365-module-evento #cuerpoEventos #tablePrice tbody > tr.ts365-special-rate:focus-within,
  html body:not(.ts365-dark).ts365-module-evento #cuerpoEventos #tablePrice tbody > tr.ts365-special-rate:focus-within > td{
      background:
        linear-gradient(
          90deg,
          color-mix(in srgb,var(--ts-secondary,#00aee8) 6%,#ffffff),
          #ffffff 28%
        ) !important;
  }
}


/* ==========================================================
   TICKETSTAR365 - EVENTO MOBILE REFINADO V12
   Objetivos:
   1) Texto descriptivo normal: SIN contenedor azul.
   2) Descuento/beneficio real: SÍ puede llevar acento/fondo.
   3) Select y Elegir Asientos vuelven a tamaño cómodo.
   4) Estados tipo PROXIMAMENTE ocupan bien el ancho.
   Solo <= 767px. Desktop intacto.
   ========================================================== */
@media (max-width: 767px){

  /* Cards con buena proporción */
  html body.ts365-module-evento #cuerpoEventos #tablePrice tbody > tr{
    grid-template-columns:minmax(150px,1fr) auto !important;
    row-gap:11px !important;
    padding:16px !important;
    min-height:0 !important;
  }

  /* Nombre localidad */
  html body.ts365-module-evento #cuerpoEventos #tablePrice tbody > tr > td:nth-child(1){
    font-size:13.5px !important;
    line-height:1.25 !important;
    margin:0 !important;
    padding:0 !important;
  }

  /* DESCRIPCIÓN NORMAL: solo texto, sin caja azul */
  html body.ts365-module-evento #cuerpoEventos #tablePrice tbody > tr > td:nth-child(2){
    display:block !important;
    width:100% !important;
    min-height:0 !important;
    padding:0 !important;
    margin:0 !important;

    background:transparent !important;
    border:0 !important;
    border-radius:0 !important;
    box-shadow:none !important;

    color:var(--ts-secondary,#00aee8) !important;
    font-size:12px !important;
    font-weight:800 !important;
    line-height:1.35 !important;
    text-align:left !important;
  }

  html body.ts365-module-evento #cuerpoEventos #tablePrice tbody > tr > td:nth-child(2) > *,
  html body.ts365-module-evento #cuerpoEventos #tablePrice tbody > tr > td:nth-child(2) span,
  html body.ts365-module-evento #cuerpoEventos #tablePrice tbody > tr > td:nth-child(2) div{
    display:block !important;
    width:100% !important;
    max-width:100% !important;
    margin:0 !important;
    padding:0 !important;
    background:transparent !important;
    border:0 !important;
    box-shadow:none !important;
    white-space:normal !important;
    overflow-wrap:normal !important;
    word-break:normal !important;
    line-height:1.35 !important;
  }

  /* SOLO descuentos/promos reales llevan tratamiento visual */
  html body.ts365-module-evento #cuerpoEventos #tablePrice tbody > tr.ts365-discount-rate > td:nth-child(2),
  html body.ts365-module-evento #cuerpoEventos #tablePrice tbody > tr.ts365-special-rate > td:nth-child(2){
    padding:9px 11px !important;
    background:color-mix(in srgb,var(--ts-secondary,#00aee8) 7%,transparent) !important;
    border-left:3px solid var(--ts-secondary,#00aee8) !important;
    border-radius:8px !important;
  }

  /* Acción/estado: usar bien el ancho */
  html body.ts365-module-evento #cuerpoEventos #tablePrice tbody > tr > td:nth-child(3){
    width:100% !important;
    min-width:0 !important;
    max-width:none !important;
    display:flex !important;
    align-items:center !important;
    justify-content:flex-start !important;

    white-space:nowrap !important;
    word-break:keep-all !important;
    overflow-wrap:normal !important;
    hyphens:none !important;

    font-size:12px !important;
    line-height:1.2 !important;
  }

  html body.ts365-module-evento #cuerpoEventos #tablePrice tbody > tr > td:nth-child(3) > *,
  html body.ts365-module-evento #cuerpoEventos #tablePrice tbody > tr > td:nth-child(3) span,
  html body.ts365-module-evento #cuerpoEventos #tablePrice tbody > tr > td:nth-child(3) div{
    width:auto !important;
    min-width:max-content !important;
    max-width:100% !important;
    white-space:nowrap !important;
    word-break:keep-all !important;
    overflow-wrap:normal !important;
    hyphens:none !important;
  }

  /* SELECT: vuelve a tamaño cómodo y elegante */
  html body.ts365-module-evento #cuerpoEventos #tablePrice select,
  html body.ts365-module-evento #cuerpoEventos #tablePrice select.canti_ip,
  html body.ts365-module-evento #cuerpoEventos #tablePrice .form-control{
    width:108px !important;
    min-width:108px !important;
    max-width:108px !important;
    height:50px !important;
    min-height:50px !important;

    padding:5px 30px 5px 14px !important;
    border-radius:12px !important;

    font-size:16px !important;
    font-weight:850 !important;
    line-height:1 !important;
    text-align:left !important;

    box-shadow:0 4px 12px rgba(0,0,0,.06) !important;
  }

  /* ELEGIR ASIENTOS: más grande, no mini */
  html body.ts365-module-evento #cuerpoEventos #tablePrice button,
  html body.ts365-module-evento #cuerpoEventos #tablePrice .btn,
  html body.ts365-module-evento #cuerpoEventos #tablePrice .boton_ip,
  html body.ts365-module-evento #cuerpoEventos #tablePrice #botonAbrir,
  html body.ts365-module-evento #cuerpoEventos #tablePrice .span-open-label{
    width:auto !important;
    min-width:152px !important;
    max-width:188px !important;
    min-height:50px !important;

    padding:10px 15px !important;
    border-radius:12px !important;

    font-size:12px !important;
    font-weight:900 !important;
    line-height:1.15 !important;
    text-align:center !important;
    white-space:normal !important;
  }

  /* Precio */
  html body.ts365-module-evento #cuerpoEventos #tablePrice tbody > tr > td:nth-child(4),
  html body.ts365-module-evento #cuerpoEventos #tablePrice tbody > tr > td:last-child{
    min-width:max-content !important;
    padding-left:14px !important;
    padding-right:2px !important;
    font-size:19px !important;
    font-weight:950 !important;
    white-space:nowrap !important;
  }

  /* Especial: diferenciación sin exagerar */
  html body.ts365-module-evento #cuerpoEventos #tablePrice tr.ts365-special-rate{
    border-left:4px solid var(--ts-secondary,#00aee8) !important;
  }

  html body.ts365-module-evento #cuerpoEventos #tablePrice tr.ts365-special-rate > td:nth-child(1){
    color:var(--ts-secondary,#00aee8) !important;
  }
}

@media (max-width: 380px){
  html body.ts365-module-evento #cuerpoEventos #tablePrice tbody > tr{
    grid-template-columns:minmax(135px,1fr) auto !important;
    padding:14px !important;
  }

  html body.ts365-module-evento #cuerpoEventos #tablePrice select,
  html body.ts365-module-evento #cuerpoEventos #tablePrice select.canti_ip,
  html body.ts365-module-evento #cuerpoEventos #tablePrice .form-control{
    width:100px !important;
    min-width:100px !important;
    max-width:100px !important;
    height:48px !important;
    min-height:48px !important;
  }

  html body.ts365-module-evento #cuerpoEventos #tablePrice button,
  html body.ts365-module-evento #cuerpoEventos #tablePrice .btn,
  html body.ts365-module-evento #cuerpoEventos #tablePrice .boton_ip,
  html body.ts365-module-evento #cuerpoEventos #tablePrice #botonAbrir,
  html body.ts365-module-evento #cuerpoEventos #tablePrice .span-open-label{
    min-width:140px !important;
    min-height:48px !important;
    font-size:11.5px !important;
  }

  html body.ts365-module-evento #cuerpoEventos #tablePrice tbody > tr > td:nth-child(4),
  html body.ts365-module-evento #cuerpoEventos #tablePrice tbody > tr > td:last-child{
    font-size:18px !important;
  }
}


/* ==========================================================
   TICKETSTAR365 - EVENTO MOBILE FINAL V13
   Refinamiento FINAL sobre V12.
   SOLO <= 767px.
   No cambia desktop.
   No cambia tamaños de select, botón ni precio.
   ========================================================== */
@media (max-width: 767px){

  /* 1) Un poco más de aire entre descripción y acción/precio */
  html body.ts365-module-evento #cuerpoEventos #tablePrice tbody > tr{
    row-gap:17px !important;
  }

  /*
     2) DESCRIPCIÓN NORMAL
     Solo texto azul, sin caja, sin fondo y sin borde.
  */
  html body.ts365-module-evento #cuerpoEventos #tablePrice tbody > tr:not(.ts365-special-rate) > td:nth-child(2){
    padding:0 !important;
    margin:0 !important;
    background:transparent !important;
    border:0 !important;
    border-radius:0 !important;
    box-shadow:none !important;
    color:var(--ts-secondary,#00aee8) !important;
  }

  html body.ts365-module-evento #cuerpoEventos #tablePrice tbody > tr:not(.ts365-special-rate) > td:nth-child(2) > *,
  html body.ts365-module-evento #cuerpoEventos #tablePrice tbody > tr:not(.ts365-special-rate) > td:nth-child(2) span,
  html body.ts365-module-evento #cuerpoEventos #tablePrice tbody > tr:not(.ts365-special-rate) > td:nth-child(2) div{
    background:transparent !important;
    border:0 !important;
    box-shadow:none !important;
    padding:0 !important;
    margin:0 !important;
  }

  /*
     3) TARIFA ESPECIAL
     Badge pequeño, evidente y elegante.
     Se reutiliza la clasificación .ts365-special-rate del JS actual.
  */
  html body.ts365-module-evento #cuerpoEventos #tablePrice tr.ts365-special-rate{
    border-left:4px solid var(--ts-secondary,#00aee8) !important;
  }

  html body.ts365-module-evento #cuerpoEventos #tablePrice tr.ts365-special-rate > td:nth-child(1){
    position:relative !important;
    display:block !important;
    width:100% !important;

    min-height:34px !important;
    padding:0 !important;

    color:transparent !important;
    font-size:0 !important;
    overflow:visible !important;
  }

  html body.ts365-module-evento #cuerpoEventos #tablePrice tr.ts365-special-rate > td:nth-child(1) > *,
  html body.ts365-module-evento #cuerpoEventos #tablePrice tr.ts365-special-rate > td:nth-child(1) span,
  html body.ts365-module-evento #cuerpoEventos #tablePrice tr.ts365-special-rate > td:nth-child(1) div{
    display:none !important;
  }

  html body.ts365-module-evento #cuerpoEventos #tablePrice tr.ts365-special-rate > td:nth-child(1)::before{
    content:"★  ESPECIAL 50%" !important;

    position:static !important;
    display:inline-flex !important;
    align-items:center !important;
    justify-content:center !important;

    width:auto !important;
    max-width:100% !important;
    min-height:32px !important;

    padding:7px 12px !important;
    margin:0 !important;

    border:1px solid color-mix(in srgb,var(--ts-secondary,#00aee8) 58%,transparent) !important;
    border-radius:999px !important;

    background:color-mix(in srgb,var(--ts-secondary,#00aee8) 12%,transparent) !important;
    color:var(--ts-secondary,#00aee8) !important;

    font-size:11.5px !important;
    font-weight:950 !important;
    line-height:1 !important;
    letter-spacing:.15px !important;
    white-space:nowrap !important;
    box-sizing:border-box !important;
  }

  /*
     La descripción de la tarifa especial sí lleva un tratamiento sutil.
     No una barra grande: solo una pequeña guía visual.
  */
  html body.ts365-module-evento #cuerpoEventos #tablePrice tr.ts365-special-rate > td:nth-child(2){
    padding:8px 10px !important;
    margin:0 !important;

    background:color-mix(in srgb,var(--ts-secondary,#00aee8) 5%,transparent) !important;
    border:0 !important;
    border-left:3px solid var(--ts-secondary,#00aee8) !important;
    border-radius:7px !important;

    color:var(--ts-secondary,#00aee8) !important;
  }

  /*
     4) Nombres largos:
     hasta 2 líneas naturales, sin encoger tipografía.
  */
  html body.ts365-module-evento #cuerpoEventos #tablePrice tbody > tr > td:nth-child(1){
    width:100% !important;
    max-width:100% !important;

    white-space:normal !important;
    word-break:normal !important;
    overflow-wrap:break-word !important;

    display:-webkit-box !important;
    -webkit-box-orient:vertical !important;
    -webkit-line-clamp:2 !important;
    overflow:hidden !important;
  }

  /* Pero el badge especial no debe cortarse */
  html body.ts365-module-evento #cuerpoEventos #tablePrice tr.ts365-special-rate > td:nth-child(1){
    display:block !important;
    -webkit-line-clamp:unset !important;
    overflow:visible !important;
  }

  /*
     5) Mantener intactos tamaños de V12:
     select, Elegir Asientos y precio.
     Solo aseguramos que no se compriman.
  */
  html body.ts365-module-evento #cuerpoEventos #tablePrice select,
  html body.ts365-module-evento #cuerpoEventos #tablePrice select.canti_ip,
  html body.ts365-module-evento #cuerpoEventos #tablePrice .form-control{
    flex:0 0 auto !important;
  }

  html body.ts365-module-evento #cuerpoEventos #tablePrice button,
  html body.ts365-module-evento #cuerpoEventos #tablePrice .btn,
  html body.ts365-module-evento #cuerpoEventos #tablePrice .boton_ip,
  html body.ts365-module-evento #cuerpoEventos #tablePrice #botonAbrir,
  html body.ts365-module-evento #cuerpoEventos #tablePrice .span-open-label{
    flex:0 0 auto !important;
  }

  /* Precio: sin reducción */
  html body.ts365-module-evento #cuerpoEventos #tablePrice tbody > tr > td:nth-child(4),
  html body.ts365-module-evento #cuerpoEventos #tablePrice tbody > tr > td:last-child{
    flex:0 0 auto !important;
  }
}

/* iPhone / equipos <= 380px: solo ajustamos aire, NO tamaños */
@media (max-width:380px){
  html body.ts365-module-evento #cuerpoEventos #tablePrice tbody > tr{
    row-gap:15px !important;
  }

  html body.ts365-module-evento #cuerpoEventos #tablePrice tr.ts365-special-rate > td:nth-child(1)::before{
    font-size:11px !important;
    padding:7px 11px !important;
  }
}

