/*
Theme Name:   Plantilla Proyecto IN
Description:  Tema desarrollado por Proyecto IN
Author:       Proyecto IN
Author URL:   https://proyectoin.com
Template:     hello-elementor
Version:      1.0
License:      GNU General Public License v2 or later
License URI:  http://www.gnu.org/licenses/gpl-2.0.html
Text Domain:  Plantilla Proyecto IN
*/

/* =========================================================
   BASE / VARIABLES
   ========================================================= */

:root {
  --afilado-bg: #000000;
  --afilado-text: #FAFAFA;
  --city-neon-accent: #01E676;
}

.single-evento-afilado-page,
.td-event-single {
  background-color: var(--afilado-bg) !important;
  color: var(--afilado-text) !important;
  font-family: 'Poppins', 'Montserrat', Arial, sans-serif;
  overflow-x: hidden;
}

/* =========================================================
   UTILIDADES NEÃ“N
   ========================================================= */

.text-neon,
.text-neon h1,
.text-neon h2,
.text-neon h3,
.text-neon h4,
.text-neon p,
.text-neon span {
  color: var(--city-neon-accent, #01E676) !important;
}

.bg-neon {
  background-color: var(--city-neon-accent, #01E676) !important;
  color: #000000 !important;
}

.border-neon {
  border: 1.5px solid var(--city-neon-accent, #01E676) !important;
}

.btn-neon-afilado {
  display: inline-flex !important;
  align-items: center !important;
  justify-content: center !important;
  gap: 8px !important;
  background-color: var(--city-neon-accent, #01E676) !important;
  color: #000000 !important;
  border: 2px solid var(--city-neon-accent, #01E676) !important;
  border-radius: 10px !important;
  padding: 8px 24px !important;
  font-weight: 800 !important;
  text-transform: uppercase !important;
  box-shadow: none !important;
  transition: all 0.3s ease !important;
}

.btn-neon-afilado:hover {
  background-color: #000000 !important;
  color: var(--city-neon-accent, #01E676) !important;
  border-color: var(--city-neon-accent, #01E676) !important;
}

.btn-neon-afilado i,
.btn-neon-afilado svg,
.btn-neon-afilado .elementor-button-icon {
  fill: currentColor !important;
  color: inherit !important;
}

/* =========================================================
   UTILIDADES GEOMÃ‰TRICAS
   ========================================================= */

.caja-texto-afilada {
  background-color: #FFFFFF !important;
  color: #000000 !important;
  padding: 30px !important;
  position: relative;
  width: 100%;
  clip-path: polygon(
    25px 0%,
    100% 0%,
    100% calc(100% - 25px),
    calc(100% - 25px) 100%,
    0% 100%,
    0% 25px
  );
}

.caja-texto-afilada p {
  color: #000000 !important;
  margin-bottom: 0 !important;
}

.caja-texto-afilada.dark {
  background-color: #101010 !important;
  color: #FAFAFA !important;
  border: 1px solid rgba(255,255,255,.16) !important;
}

.caja-texto-afilada.dark p,
.caja-texto-afilada.dark span,
.caja-texto-afilada.dark li {
  color: rgba(255,255,255,.86) !important;
}

.borde-ciudad-cortes {
  position: relative !important;
  padding: 30px !important;
  background: transparent !important;
  border: none !important;
  isolation: isolate !important;
}

.borde-ciudad-cortes::before {
  content: "" !important;
  position: absolute !important;
  inset: 0 !important;
  background-color: var(--city-neon-accent, #01E676) !important;
  clip-path: polygon(
    20px 0%, calc(100% - 20px) 0%,
    100% 20px, 100% calc(100% - 20px),
    calc(100% - 20px) 100%, 20px 100%,
    0% calc(100% - 20px), 0% 20px
  ) !important;
  z-index: -2 !important;
}

.borde-ciudad-cortes::after {
  content: "" !important;
  position: absolute !important;
  inset: 3px !important;
  background-color: #000 !important;
  clip-path: polygon(
    17px 0%, calc(100% - 17px) 0%,
    100% 17px, 100% calc(100% - 17px),
    calc(100% - 17px) 100%, 17px 100%,
    0% calc(100% - 17px), 0% 17px
  ) !important;
  z-index: -1 !important;
}

/* =========================================================
   LAYOUT GENERAL SINGLE EVENTO
   ========================================================= */

.td-event-container {
  width: min(1180px, calc(100% - 40px));
  margin-left: auto !important;
  margin-right: auto !important;
}

/* =========================================================
   HERO
   ========================================================= */

.td-event-hero {
  position: relative !important;
  min-height: 520px;
  display: flex !important;
  align-items: flex-end !important;
  overflow: hidden !important;
  background-color: #050505 !important;
}

.td-event-hero::before {
  content: "";
  position: absolute;
  inset: 0;
  background:
    linear-gradient(90deg, rgba(0,0,0,.92) 0%, rgba(0,0,0,.58) 48%, rgba(0,0,0,.35) 100%),
    linear-gradient(0deg, rgba(0,0,0,.95) 0%, rgba(0,0,0,.15) 60%);
  z-index: 1;
  pointer-events: none;
}

.td-event-hero > * {
  position: relative;
  z-index: 2;
}

.td-event-kicker {
  display: inline-flex !important;
  align-items: center !important;
  width: fit-content !important;
  padding: 5px 10px !important;
  border-radius: 5px !important;
  background: #000000 !important;
  color: var(--city-neon-accent, #01E676) !important;
  border: 1px solid color-mix(in srgb, var(--city-neon-accent, #01E676) 35%, transparent) !important;
  font-size: 12px !important;
  font-weight: 900 !important;
  line-height: 1 !important;
  text-transform: uppercase !important;
  letter-spacing: .8px !important;
}

.td-event-title h1,
.td-event-title .elementor-heading-title {
  color: #fff !important;
  font-size: clamp(38px, 6vw, 76px) !important;
  line-height: .95 !important;
  letter-spacing: -2px !important;
  font-weight: 900 !important;
  max-width: 850px;
}

.td-event-meta-line {
  color: #fff !important;
  font-size: clamp(18px, 2vw, 26px) !important;
  font-weight: 500 !important;
  opacity: .95;
}

.td-city-chip {
  display: inline-flex !important;
  align-items: center !important;
  gap: 8px !important;
  width: fit-content !important;
  padding: 7px 16px !important;
  border-radius: 8px !important;
  background: var(--city-neon-accent, #01E676) !important;
  color: #000 !important;
  font-weight: 900 !important;
  text-transform: uppercase !important;
  letter-spacing: .3px !important;
}

.td-city-chip i,
.td-city-chip svg,
.td-city-chip .elementor-icon-list-icon,
.td-city-chip .elementor-icon-list-text {
  color: #000 !important;
  fill: #000 !important;
}

/* =========================================================
   BOTÃ“N HERO COMPRAR BOLETOS
   Clase Elementor: td-hero-buy-button-v2
   ========================================================= */

.td-hero-buy-button-v2 {
  display: inline-flex !important;
  width: fit-content !important;
  max-width: fit-content !important;
}

.td-hero-buy-button-v2,
.td-hero-buy-button-v2 .elementor-widget-container,
.td-hero-buy-button-v2 .elementor-button-wrapper {
  width: fit-content !important;
  max-width: fit-content !important;
}

.td-hero-buy-button-v2 .elementor-button-wrapper {
  position: relative !important;
  display: inline-flex !important;
  padding: 11px 13px !important;
  background: transparent !important;
}

.td-hero-buy-button-v2 .elementor-button-wrapper::before {
  content: "" !important;
  position: absolute !important;
  inset: 0 !important;
  background: var(--city-neon-accent, #01E676) !important;
  pointer-events: none !important;
  z-index: 1 !important;
  -webkit-mask: url("data:image/svg+xml,%3Csvg%20xmlns='http://www.w3.org/2000/svg'%20viewBox='0%200%20320%2090'%20preserveAspectRatio='none'%3E%3Cpath%20d='M26%203%20H286%20L317%2034%20V63%20L292%2087%20H35%20L3%2055%20V26%20L26%203%20Z'%20fill='none'%20stroke='black'%20stroke-width='4'%20stroke-linejoin='miter'/%3E%3C/svg%3E") center / 100% 100% no-repeat !important;
  mask: url("data:image/svg+xml,%3Csvg%20xmlns='http://www.w3.org/2000/svg'%20viewBox='0%200%20320%2090'%20preserveAspectRatio='none'%3E%3Cpath%20d='M26%203%20H286%20L317%2034%20V63%20L292%2087%20H35%20L3%2055%20V26%20L26%203%20Z'%20fill='none'%20stroke='black'%20stroke-width='4'%20stroke-linejoin='miter'/%3E%3C/svg%3E") center / 100% 100% no-repeat !important;
}

.td-hero-buy-button-v2 a.elementor-button,
.td-hero-buy-button-v2 .elementor-button {
  position: relative !important;
  z-index: 2 !important;
  display: inline-flex !important;
  align-items: center !important;
  justify-content: center !important;
  min-width: 255px !important;
  min-height: 52px !important;
  padding: 14px 30px !important;
  background: var(--city-neon-accent, #01E676) !important;
  color: #000000 !important;
  border: none !important;
  border-radius: 0 !important;
  box-shadow: none !important;
  text-decoration: none !important;
  font-family: 'Poppins', 'Montserrat', Arial, sans-serif !important;
  font-size: 13px !important;
  font-weight: 900 !important;
  line-height: 1 !important;
  text-transform: uppercase !important;
  letter-spacing: .6px !important;
  clip-path: polygon(
    12px 0%,
    calc(100% - 18px) 0%,
    100% 18px,
    100% calc(100% - 12px),
    calc(100% - 12px) 100%,
    18px 100%,
    0% calc(100% - 18px),
    0% 12px
  ) !important;
}

.td-hero-buy-button-v2 .elementor-button-text {
  font-family: 'Poppins', 'Montserrat', Arial, sans-serif !important;
  font-size: 13px !important;
  font-weight: 900 !important;
  line-height: 1 !important;
  text-transform: uppercase !important;
  letter-spacing: .6px !important;
  color: #000000 !important;
}

.td-hero-buy-button-v2 .elementor-button-content-wrapper {
  display: inline-flex !important;
  align-items: center !important;
  justify-content: center !important;
  gap: 14px !important;
}

.td-hero-buy-button-v2 .elementor-button-content-wrapper::after {
  content: "" !important;
  display: inline-block !important;
  width: 15px !important;
  height: 15px !important;
  flex: 0 0 15px !important;
  background-color: #000 !important;
  -webkit-mask-image: url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 16 16'><path fill='black' d='M3.5 12.5l7.8-7.8v4.1h1.7V1.8H6.2v1.7h4.1l-7.8 7.8z'/></svg>");
  -webkit-mask-repeat: no-repeat !important;
  -webkit-mask-position: center !important;
  -webkit-mask-size: contain !important;
  mask-image: url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 16 16'><path fill='black' d='M3.5 12.5l7.8-7.8v4.1h1.7V1.8H6.2v1.7h4.1l-7.8 7.8z'/></svg>");
  mask-repeat: no-repeat !important;
  mask-position: center !important;
  mask-size: contain !important;
  transform: translateY(-1px) !important;
}

.td-hero-buy-button-v2:hover a.elementor-button,
.td-hero-buy-button-v2:hover .elementor-button {
  background: #000000 !important;
  color: var(--city-neon-accent, #01E676) !important;
  box-shadow: inset 0 0 0 2px var(--city-neon-accent, #01E676) !important;
}

.td-hero-buy-button-v2:hover .elementor-button-text {
  color: var(--city-neon-accent, #01E676) !important;
}

.td-hero-buy-button-v2:hover .elementor-button-content-wrapper::after {
  background-color: var(--city-neon-accent, #01E676) !important;
}

/* =========================================================
   QUICK INFO STRIP
   Estructura Elementor:
   .td-info-strip > 4 contenedores .td-info-item
   No uses .td-info-strip-inner
   ========================================================= */

.td-info-strip {
  width: min(1180px, calc(100% - 40px)) !important;
  max-width: 1180px !important;
  margin: 35px auto !important;
  display: grid !important;
  grid-template-columns: repeat(4, minmax(0, 1fr)) !important;
  background: rgba(12,12,12,.96) !important;
  border: 1px solid rgba(255,255,255,.22) !important;
  overflow: hidden !important;
  clip-path: polygon(
    18px 0%,
    calc(100% - 18px) 0%,
    100% 18px,
    100% calc(100% - 18px),
    calc(100% - 18px) 100%,
    18px 100%,
    0% calc(100% - 18px),
    0% 18px
  );
}

.td-info-item {
  display: flex !important;
  align-items: flex-start !important;
  gap: 18px !important;
  padding: 28px !important;
  border-right: 1px solid rgba(255,255,255,.16) !important;
  min-width: 0 !important;
}

.td-info-item:last-child {
  border-right: none !important;
}

.td-info-icon i,
.td-info-icon svg {
  color: var(--city-neon-accent, #01E676) !important;
  fill: var(--city-neon-accent, #01E676) !important;
  width: 34px !important;
  height: 34px !important;
}

.td-info-label {
  color: var(--city-neon-accent, #01E676) !important;
  font-size: 14px !important;
  font-weight: 900 !important;
  text-transform: uppercase !important;
  letter-spacing: .5px !important;
  margin-bottom: 6px !important;
}

.td-info-value {
  color: #fff !important;
  font-size: 16px !important;
  line-height: 1.35 !important;
  font-weight: 600 !important;
}

.td-info-subvalue {
  color: rgba(255,255,255,.62) !important;
  font-size: 14px !important;
  line-height: 1.35 !important;
}

/* =========================================================
   GRID PRINCIPAL / CARDS
   ========================================================= */

.td-event-main-grid {
  display: grid !important;
  grid-template-columns: minmax(0, 1.55fr) minmax(330px, .85fr);
  gap: 28px !important;
  align-items: start !important;
}

.td-event-left,
.td-event-right {
  display: flex !important;
  flex-direction: column !important;
  gap: 22px !important;
}

.td-event-card {
  position: relative !important;
  background:
    radial-gradient(circle at top left, color-mix(in srgb, var(--city-neon-accent, #01E676) 8%, transparent), transparent 34%),
    linear-gradient(180deg, #101010 0%, #050505 100%) !important;
  color: #fff !important;
  border: 1px solid rgba(255,255,255,.18) !important;
  padding: 28px !important;
  clip-path: polygon(
    16px 0%, calc(100% - 16px) 0%,
    100% 16px, 100% calc(100% - 16px),
    calc(100% - 16px) 100%, 16px 100%,
    0% calc(100% - 16px), 0% 16px
  );
}

.td-event-card.neon {
  border-color: var(--city-neon-accent, #01E676) !important;
  box-shadow: 0 0 0 1px color-mix(in srgb, var(--city-neon-accent, #01E676) 15%, transparent), 0 0 28px color-mix(in srgb, var(--city-neon-accent, #01E676) 8%, transparent);
}

.td-card-title,
.td-card-title .elementor-heading-title {
  color: var(--city-neon-accent, #01E676) !important;
  font-size: 18px !important;
  font-weight: 900 !important;
  text-transform: uppercase !important;
  letter-spacing: .4px !important;
  margin-bottom: 16px !important;
}

.td-card-text,
.td-card-text p,
.td-card-text li {
  color: rgba(255,255,255,.86) !important;
  font-size: 15px !important;
  line-height: 1.65 !important;
}

.td-card-text strong {
  color: #fff !important;
  font-weight: 800 !important;
}

.td-optional-badge {
  display: inline-flex !important;
  align-items: center !important;
  width: fit-content !important;
  padding: 3px 10px !important;
  border: 1px solid rgba(255,255,255,.26) !important;
  border-radius: 999px !important;
  color: rgba(255,255,255,.58) !important;
  font-size: 11px !important;
  font-weight: 600 !important;
}

.td-neon-list ul {
  list-style: none !important;
  margin: 0 !important;
  padding: 0 !important;
}

.td-neon-list li {
  position: relative;
  padding-left: 22px !important;
  margin-bottom: 9px !important;
}

.td-neon-list li::before {
  content: "â€º";
  position: absolute;
  left: 0;
  top: -1px;
  color: var(--city-neon-accent, #01E676);
  font-size: 22px;
  line-height: 1;
  font-weight: 900;
}

/* =========================================================
   TICKET CARD / CTA GENERAL
   ========================================================= */

.td-ticket-card {
  position: sticky !important;
  top: 24px;
}

.td-price-large {
  color: #fff !important;
  font-size: clamp(42px, 5vw, 64px) !important;
  line-height: .95 !important;
  font-weight: 950 !important;
  letter-spacing: -2px !important;
}

.td-price-prefix,
.td-price-currency,
.td-price-range {
  color: rgba(255,255,255,.72) !important;
  font-size: 14px !important;
  font-weight: 600 !important;
}

.td-ticket-meta {
  border-top: 1px solid rgba(255,255,255,.16);
  border-bottom: 1px solid rgba(255,255,255,.16);
  padding: 18px 0 !important;
  margin: 20px 0 !important;
}

.td-ticket-meta-row {
  display: flex !important;
  gap: 10px !important;
  align-items: flex-start !important;
  margin-bottom: 12px !important;
  color: rgba(255,255,255,.82) !important;
  font-size: 14px !important;
}

.td-ticket-meta-row:last-child {
  margin-bottom: 0 !important;
}

.td-cta-button .elementor-button,
.td-cta-button a,
a.td-cta-button {
  display: inline-flex !important;
  align-items: center !important;
  justify-content: center !important;
  width: 100% !important;
  gap: 8px !important;
  background: var(--city-neon-accent, #01E676) !important;
  color: #000 !important;
  border: 2px solid var(--city-neon-accent, #01E676) !important;
  border-radius: 8px !important;
  padding: 15px 24px !important;
  font-weight: 900 !important;
  text-transform: uppercase !important;
  letter-spacing: .4px !important;
  transition: all .25s ease !important;
}

.td-cta-button .elementor-button:hover,
.td-cta-button a:hover,
a.td-cta-button:hover {
  background: #000 !important;
  color: var(--city-neon-accent, #01E676) !important;
}

/* =========================================================
   VENUE / MAP / SEAT MAP / BOTTOM CTA
   ========================================================= */

.td-venue-card {
  display: grid !important;
  grid-template-columns: .9fr 1.3fr;
  gap: 26px !important;
  align-items: stretch !important;
}

.td-venue-name,
.td-venue-name .elementor-heading-title {
  color: var(--city-neon-accent, #01E676) !important;
  font-size: 24px !important;
  font-weight: 900 !important;
  line-height: 1.1 !important;
}

.td-map-box {
  min-height: 230px !important;
  overflow: hidden !important;
  border: 1px solid rgba(255,255,255,.18) !important;
  clip-path: polygon(
    16px 0%, 100% 0%,
    100% calc(100% - 16px),
    calc(100% - 16px) 100%,
    0% 100%, 0% 16px
  );
}

.td-map-box iframe {
  width: 100% !important;
  height: 100% !important;
  min-height: 230px !important;
  filter: grayscale(1) invert(.88) contrast(1.05);
}

.td-seat-map-row {
  display: grid !important;
  grid-template-columns: 1fr auto;
  align-items: center !important;
  gap: 22px !important;
}

.td-bottom-cta {
  position: relative !important;
  overflow: hidden !important;
  background:
    linear-gradient(90deg, rgba(0,0,0,.96), rgba(0,0,0,.64)),
    radial-gradient(circle at right, color-mix(in srgb, var(--city-neon-accent, #01E676) 32%, transparent), transparent 38%) !important;
  border: 1px solid var(--city-neon-accent, #01E676) !important;
  padding: 32px !important;
}

.td-bottom-cta-title,
.td-bottom-cta-title .elementor-heading-title {
  color: #fff !important;
  font-size: clamp(26px, 3vw, 40px) !important;
  font-weight: 900 !important;
  line-height: 1.05 !important;
}

/* =========================================================
   RESPONSIVE
   ========================================================= */

@media (max-width: 1024px) {
  .td-event-hero {
    min-height: 460px;
  }

  .td-info-strip {
    grid-template-columns: repeat(2, minmax(0, 1fr)) !important;
  }

  .td-info-item:nth-child(2) {
    border-right: none !important;
  }

  .td-info-item:nth-child(1),
  .td-info-item:nth-child(2) {
    border-bottom: 1px solid rgba(255,255,255,.16) !important;
  }

  .td-event-main-grid {
    grid-template-columns: 1fr;
  }

  .td-ticket-card {
    position: relative !important;
    top: auto;
  }

  .td-venue-card {
    grid-template-columns: 1fr;
  }
}

@media (max-width: 767px) {
  .td-event-container {
    width: min(100% - 24px, 1180px);
  }

  .td-event-hero {
    min-height: 520px;
    align-items: flex-end !important;
  }

  .td-event-title h1,
  .td-event-title .elementor-heading-title {
    font-size: clamp(34px, 11vw, 48px) !important;
    letter-spacing: -1px !important;
  }

  .td-info-strip {
    width: calc(100% - 24px) !important;
    margin-top: 18px !important;
    grid-template-columns: 1fr !important;
  }

  .td-info-item {
    border-right: none !important;
    border-bottom: 1px solid rgba(255,255,255,.16) !important;
    padding: 22px !important;
  }

  .td-info-item:last-child {
    border-bottom: none !important;
  }

  .td-event-card {
    padding: 22px !important;
  }

  .td-seat-map-row {
    grid-template-columns: 1fr;
  }

  .td-hero-buy-button-v2,
  .td-hero-buy-button-v2 .elementor-widget-container,
  .td-hero-buy-button-v2 .elementor-button-wrapper,
  .td-hero-buy-button-v2 a.elementor-button,
  .td-hero-buy-button-v2 .elementor-button {
    width: 100% !important;
    max-width: 100% !important;
  }

  .td-hero-buy-button-v2 a.elementor-button,
  .td-hero-buy-button-v2 .elementor-button {
    min-width: 100% !important;
  }
}