/* =========================================================
   PrimeTickets Global Styles
   ========================================================= */

/* ---------------------------------
   1. Variables de acento
   --------------------------------- */
:root {
  --accent-color-hover: #7B5CFF; /* Tech Violet */
  --accent-color-hover-glow: rgba(123, 92, 255, 0.55);
  --pt-deep-purple: #4D4084;
  --pt-bg-dark: #1a1a1f;
  --pt-radius-card: 1rem;
  --pt-font-stack: "Nunito", system-ui, -apple-system, BlinkMacSystemFont,
                   "Segoe UI", Roboto, "Helvetica Neue", Arial, sans-serif;
}

/* =========================================================
   2. Cartelera / Grid
   ========================================================= */

/* Fondo con halo radial + patrón repetido */
.pt-section-cartelera {
  position: relative;
  padding-bottom: 2rem;
  background-color: #ffffff;
  background-image:
    radial-gradient(circle at 20% 20%, rgba(0,0,0,0.03) 0%, rgba(0,0,0,0) 60%),
    url("data:image/svg+xml;utf8,\
<svg xmlns='http://www.w3.org/2000/svg' width='140' height='140' viewBox='0 0 140 140' fill='none'>\
<g fill='%234D4084' fill-opacity='.05'>\
<path d='M59.6,36.6c3.4,0,6.2-2.8,6.2-6.2c0-3.4-2.8-6.2-6.2-6.2c-3.4,0-6.2,2.8-6.2,6.2C53.4,33.8,56.2,36.6,59.6,36.6z'/>\
<path d='M109,42.7c-3.4,0-6.2,2.8-6.2,6.2c0,3.4,2.8,6.2,6.2,6.2c3.4,0,6.2-2.8,6.2-6.2C115.2,45.5,112.4,42.7,109,42.7z'/>\
<path d='M11,55.2c3.4,0,6.2-2.8,6.2-6.2c0-3.4-2.8-6.2-6.2-6.2c-3.4,0-6.2,2.8-6.2,6.2C4.8,52.4,7.6,55.2,11,55.2z'/>\
<path d='M90.3,53.9C90.2,54,90.1,54,89.9,54L89,53.7c-0.2-0.2-0.3-0.5-0.3-0.9c0-1,0.7-2,1.6-2.4v-4c-0.9,0.3-1.6-0.2-1.6-1.2\
c0-1,0.7-2,1.6-2.4v-4c-0.9,0.3-1.6-0.2-1.6-1.2c0-1,0.7-2,1.6-2.4v-3.6L59.9,43L29.4,31.7v3.6c0.9,0.3,1.6,1.4,1.6,2.4\
c0,1-0.7,1.5-1.6,1.2v4c0.9,0.3,1.6,1.4,1.6,2.4c0,1-0.7,1.5-1.6,1.2v4c0.9,0.3,1.6,1.4,1.6,2.4c0,0.4-0.1,0.7-0.3,0.9L29.9,54\
c-0.1,0-0.3,0-0.4-0.1v0.2L6.6,62.6v10.5c1.9-0.3,3.4,1.7,3.4,4.9c0,3.2-1.5,6.4-3.4,7.4v10.5l53.3-19.6l53.3,19.6V85.4\
c-1.9-1.1-3.4-4.2-3.4-7.4c0-3.2,1.5-5.3,3.4-4.9V62.6l-22.9-8.4V53.9z M81.4,39.9c2.1-0.8,3.8,0.4,3.8,2.7v9.8l-18.8-6.9L81.4,39.9\
z M34.6,57.2l25.3-9.3l25.3,9.3V58c0,2.2-1.7,4.7-3.8,5.5l-21.5,7.9l-21.5-7.9c-2.1-0.8-3.8-3.2-3.8-5.5V57.2z M34.6,42.5\
c0-2.2,1.7-3.4,3.8-2.7l15,5.5l-18.8,6.9V42.5z M17.1,87.2c-2.1,0.8-3.8-0.4-3.8-2.7V69c0-2.2,1.7-4.7,3.8-5.5l13.3-4.9\
c0.4,0.5,0.7,1.1,0.7,1.7c0,1-0.7,1.5-1.6,1.2v3.6l23.9,8.8L17.1,87.2z M106.5,69v15.5c0,2.2-1.7,3.4-3.8,2.7L66.5,73.8l23.9-8.8\
v-3.6c-0.9,0.3-1.6-0.2-1.6-1.2c0-0.6,0.3-1.2,0.7-1.7l13.3,4.9C104.8,64.3,106.5,66.8,106.5,69z'/>\
</g>\
</svg>");
  background-repeat: no-repeat, repeat;
  background-size: 600px 600px, 140px 140px;
  background-position: 20% 20%, 0 0;
  background-attachment: fixed, scroll;
}

.pt-grid {
  display: grid;
  gap: 1rem;
}
@media (min-width: 480px) {
  .pt-grid {
    grid-template-columns: repeat(2, minmax(0,1fr));
    gap: 1.25rem;
  }
}
@media (min-width: 900px) {
  .pt-grid {
    grid-template-columns: repeat(3, minmax(0,1fr));
    gap: 1.5rem;
  }
}
@media (min-width: 1280px) {
  .pt-grid {
    grid-template-columns: repeat(4, minmax(0,1fr));
  }
}

/* =========================================================
   3. Tarjeta de evento
   ========================================================= */

.pt-card {
  position: relative;
  display: flex;
  flex-direction: column;
  overflow: hidden;
  border: 1px solid rgba(0,0,0,.05);
  border-radius: var(--pt-radius-card);
  background: #fff;
  box-shadow:
    0 12px 24px rgba(0,0,0,.06),
    0 2px 4px rgba(0,0,0,.04);
  font-family: var(--pt-font-stack);

  /* aparición suave on-scroll */
  opacity: 0;
  transform: translateY(16px);
  transition: opacity .4s ease, transform .4s ease;
  will-change: opacity, transform;
}
.pt-card.pt-card-visible {
  opacity: 1;
  transform: translateY(0);
}

/* hover desktop */
@media (hover: hover) and (pointer: fine) {
  .pt-card:hover {
    box-shadow:
      0 20px 40px rgba(0,0,0,.08),
      0 4px 8px rgba(0,0,0,.05);
    transform: translateY(-2px);
  }
}


.pt-poster-wrapper {
  position: relative;
  width: 100%;
  aspect-ratio: 5 / 7;
  background-color: #eee;
  overflow: hidden;
}

/* shimmer pre-load */
.pt-poster-wrapper:not(.pt-loaded)::after {
  content: "";
  position: absolute;
  inset: 0;
  background: linear-gradient(
    90deg,
    #e5e5e5 0%,
    #f2f2f2 40%,
    #e5e5e5 80%
  );
  background-size: 200% 100%;
  animation: pt-shimmer 1.2s infinite;
}

.pt-poster-wrapper::before {
  content: "";
  position: absolute;
  top: 0;
  right: 0;
  width: 120px;
  height: 120px;
  pointer-events: none;
  background: radial-gradient(
    circle at top right,
    rgba(0,0,0,0.4) 0%,
    rgba(0,0,0,0) 70%
  );
  z-index: 1;
}

@keyframes pt-shimmer {
  0%   { background-position: 200% 0; }
  100% { background-position: -200% 0; }
}

.pt-poster-image {
  position: absolute;
  inset: 0;
  width: 100%;
  height: 100%;
  object-fit: cover;
  opacity: 0;
  transition: opacity .25s ease;
}
.pt-poster-image.pt-is-loaded {
  opacity: 1;
}

.pt-poster-badge-wrap {
  position: absolute;
  top: .75rem;
  right: .75rem;
  left: auto;
  display: flex;
  flex-direction: column;
  align-items: flex-end;
  gap: .5rem;
  z-index: 2;
  pointer-events: none; 
}

.pt-poster-badge {
  display: inline-flex;
  align-items: center;
  pointer-events: auto;

  background-color: rgba(77,64,132,.95);
  color: #fff;
  font-family: var(--pt-font-stack);
  font-size: .8rem;
  line-height: 1.2;
  font-weight: 600;
  padding: .4rem .6rem;
  border-radius: .5rem;
  border: 1px solid rgba(255,255,255,.22);
  box-shadow: 0 10px 18px rgba(0,0,0,.4);
  min-width: auto;
  text-align: center;

  animation: pt-badge-pop .22s cubic-bezier(.2,.7,.4,1) forwards;
}


.pt-datecard {
  display: inline-flex;
  flex-direction: column;
  align-items: center;
  text-align: center;
  pointer-events: auto;

  min-width: 3.25rem;
  border-radius: .5rem;
  overflow: hidden;
  border: 1px solid rgba(0,0,0,.15);
  box-shadow:
    0 12px 20px rgba(0,0,0,.4),
    0 2px 4px rgba(0,0,0,.3);
  background-color: #fff;
  color: #111;
  font-family: var(--pt-font-stack);

  animation: pt-badge-pop .22s cubic-bezier(.2,.7,.4,1) forwards;
}

.pt-datecard-month {
  background-color: var(--pt-deep-purple);
  color: #fff;
  font-weight: 700;
  font-size: .7rem;
  line-height: 1.2;
  padding: .4rem .6rem;
  width: 100%;
  text-transform: uppercase;
  letter-spacing: .03em;
  border-bottom: 1px solid rgba(0,0,0,.4);
}

.pt-datecard-day {
  background-color: #fff;
  color: #111;
  font-weight: 700;
  font-size: 1rem;
  line-height: 1.3;
  padding: .5rem .75rem .6rem;
  width: 100%;
}


@keyframes pt-badge-pop {
  0%   { opacity: 0; transform: translateY(-6px) scale(.96); }
  60%  { opacity: 1; transform: translateY(0) scale(1.02); }
  100% { opacity: 1; transform: translateY(0) scale(1); }
}


@media (max-width: 768px) {
  .pt-poster-badge-wrap {
    top: .5rem;
    right: .5rem;
    gap: .5rem;
  }
  .pt-poster-badge {
    font-size: .9rem;
    line-height: 1.2;
    padding: .45rem .65rem;
    border-radius: .5rem;
    min-width: 4.25rem;
    text-align: center;
  }
  .pt-datecard {
    min-width: 4rem;
    border-radius: .5rem;
  }
  .pt-datecard-month {
    font-size: .75rem;
    padding: .45rem .6rem;
  }
  .pt-datecard-day {
    font-size: 1.05rem;
    padding: .6rem .8rem .7rem;
  }
}

.pt-info {
  display: flex;
  flex-direction: column;
  justify-content: space-between;
  flex-grow: 1;
  padding: 1.25rem 1rem 1.5rem;
  color: #111;
  gap: 0;
}
.pt-info-top {
  display: flex;
  flex-direction: column;
  gap: .75rem;
  min-height: 160px;
}
@media (max-width: 480px) {
  .pt-info-top {
    min-height: 160px;
  }
}

.pt-title {
  font-size: 1.1rem;
  line-height: 1.35rem;
  font-weight: 600;
  color: #111;
  margin: 0;
  word-break: break-word;
}
.pt-subtitle {
  font-size: .9rem;
  line-height: 1.25rem;
  color: #666;
  font-style: italic;
  margin: 0;
}

.pt-meta {
  display: flex;
  flex-direction: column;
  gap: .6rem;
  font-size: .82rem;
  line-height: 1.25rem;
  color: #444;
}
.pt-meta-line {
  display: flex;
  flex-wrap: wrap;
  align-items: baseline;
  gap: .5rem;
  row-gap: .25rem;
}

.pt-icon {
  color: var(--pt-deep-purple);
  font-size: .95rem;
  width: 1.3rem;
  text-align: center;
  opacity: .85;
  transition: color .2s ease, opacity .2s ease;
}
.pt-icon:hover {
  color: #6a5bd6;
  opacity: 1;
}
.pt-date {
  color: #444;
  font-weight: 500;
}
.pt-city {
  color: #444;
  font-weight: 400;
}
.pt-venue {
  color: #222;
  font-weight: 500;
}

/* CTA dentro de la tarjeta */
.pt-info-bottom {
  margin-top: 1rem;
}
.pt-buy-button {
  display: inline-flex;
  justify-content: center;
  align-items: center;
  width: 100%;
  height: 46px;

  background: #111;
  color: #fff;
  text-decoration: none;
  font-size: .95rem;
  font-weight: 600;
  line-height: 1;

  border-radius: .7rem;
  border: 0;
  outline: 0;
  box-shadow: 0 8px 16px rgba(0,0,0,.15);
  transition: box-shadow .15s ease, transform .15s ease;
}
@media (hover: hover) and (pointer: fine) {
  .pt-buy-button:hover {
    box-shadow: 0 12px 20px rgba(0,0,0,.25);
    transform: translateY(-1px);
    text-decoration: none;
  }
}

/* =========================================================
   4. Hero Slider (carrusel destacado)
   ========================================================= */

.pt-slider {
  position: relative;
  z-index: 0;
  overflow: hidden;
  font-family: var(--pt-font-stack);
}

/* slide */
.pt-slider .pt-slide {
  position: relative;
  display: flex;
  align-items: flex-end;

  min-height: 480px;
  max-height: 480px;
  height: 480px;

  padding: 2rem 1.5rem 2rem;
  background-size: cover;
  background-position: center center;
  background-repeat: no-repeat;
  overflow: hidden;
  color: #fff;
}

.pt-slider .pt-slide::before {
  content: "";
  position: absolute;
  inset: 0;
  background:
    radial-gradient(circle at 20% 30%, rgba(0,0,0,0.55) 0%, rgba(0,0,0,0) 60%),
    linear-gradient(90deg, rgba(0,0,0,0.7) 20%, rgba(0,0,0,0) 90%);
  z-index: 0;
}

.pt-slider .pt-slide-content {
  position: relative;
  z-index: 1;
  max-width: 600px;
  width: 100%;
  display: flex;
  flex-direction: column;
  gap: 1rem;
  padding: 0 1rem;
  margin-bottom: 1rem;
}


.pt-slider .pt-text-block {
  display: flex;
  flex-direction: column;
  gap: .75rem;
  max-width: 100%;
}


.pt-category-chip {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  gap: .35rem;

  background: rgba(0,0,0,0.45);
  backdrop-filter: blur(6px);
  -webkit-backdrop-filter: blur(6px);

  border-radius: .5rem;
  padding: .4rem .65rem;
  border: 1px solid rgba(123,92,255,0.5);
  box-shadow:
    0 8px 16px rgba(0,0,0,0.6),
    0 0 8px rgba(123,92,255,0.4);

  max-width: fit-content;
  white-space: nowrap;
  min-width: 0;
}
.pt-category-chip-icon {
  display: inline-flex;
  align-items: center;
  font-size: .8rem;
  color: #cfcffb;
  opacity: .85;
}
.pt-category-chip-text {
  font-family: var(--pt-font-stack);
  font-size: .8rem;
  font-weight: 600;
  letter-spacing: .03em;
  color: #fff;
  text-transform: uppercase;
  line-height: 1.1;
}
@media (hover:hover) {
  .pt-category-chip:hover {
    border-color: rgba(154,125,255,0.7);
    box-shadow:
      0 10px 20px rgba(0,0,0,0.7),
      0 0 10px rgba(154,125,255,0.55),
      0 0 24px rgba(154,125,255,0.3);
  }
  .pt-category-chip:hover .pt-category-chip-text,
  .pt-category-chip:hover .pt-category-chip-icon {
    color: #E6E1FF;
    text-shadow: 0 0 6px rgba(154,125,255,.7);
  }
}


.pt-slider .pt-title {
  font-size: 2rem;
  line-height: 1.25;
  font-weight: 700;
  color: #fff;
  margin: 0;
}
.pt-slider .pt-subtitle {
  font-size: 1.1rem;
  font-weight: 400;
  color: rgba(255,255,255,0.8);
  margin: 0;
  font-style: italic;
}
.pt-slider .pt-meta {
  font-size: .95rem;
  line-height: 1.5;
  color: rgba(255,255,255,0.85);
  margin: 0;
}
.pt-slider .pt-meta strong {
  font-weight: 600;
  color: #fff;
}


.pt-slider .pt-cta-compact {
  align-self: flex-start;

  display: inline-flex;
  align-items: center;
  gap: .5rem;

  background-color: var(--pt-deep-purple);
  color: #fff;
  text-decoration: none;
  text-transform: uppercase;

  font-family: var(--pt-font-stack);
  font-weight: 600;
  font-size: .85rem;
  line-height: 1.2;

  padding: .55rem .8rem .55rem .7rem;
  min-height: 36px;
  border-radius: .55rem;
  border: 1px solid rgba(255,255,255,0.25);
  box-shadow: 0 16px 24px rgba(0,0,0,0.4);

  box-sizing: border-box;
  width: auto;
  max-width: 90%;
  transition: background-color .3s ease, transform .2s ease;
}
.pt-slider .pt-cta-compact .fa {
  flex-shrink: 0;
  width: 28px;
  height: 28px;
  line-height: 24px;
  font-size: .75rem;
  text-align: center;

  color: #fff;
  background: rgba(255,255,255,0.08);
  border: 2px solid rgba(255,255,255,0.4);
  border-radius: 50%;
}
.pt-slider .pt-cta-compact:hover {
  background-color: #3a3170;
  transform: translateY(-2px);
}


.owl-mid.owl-carousel.owl-theme .owl-dots {
  position: absolute;
  bottom: 1.5rem;
  left: 50%;
  transform: translateX(-50%);
  z-index: 2;
}
.owl-mid.owl-carousel.owl-theme .owl-dots .owl-dot span {
  width: 10px;
  height: 10px;
  background: rgba(255,255,255,0.5);
  display: inline-block;
  border-radius: 50%;
  margin: 0 6px;
  transition: background-color .3s ease, transform .3s ease;
}
.owl-mid.owl-carousel.owl-theme .owl-dots .owl-dot.active span {
  background: var(--pt-deep-purple);
  transform: scale(1.3);
}


@media (max-width: 768px) {
  .pt-slider .pt-slide {
    min-height: 460px;
    max-height: 460px;
    height: 460px;
    align-items: flex-end;
    padding: 1.5rem 1rem;
  }

  .pt-slider .pt-slide-content {
    max-width: 100%;
    padding: 0;
    gap: .75rem;
    margin-bottom: 1rem;
  }

  .pt-slider .pt-title {
    font-size: 1.6rem;
    line-height: 1.2;
  }
  .pt-slider .pt-subtitle {
    font-size: 1rem;
    line-height: 1.4;
  }
  .pt-slider .pt-meta {
    font-size: .9rem;
    line-height: 1.4;
  }

  .pt-slider .pt-cta-compact {
    font-size: .8rem;
    line-height: 1.2;
    padding: .55rem .8rem .55rem .65rem;
    min-height: 36px;
    border-radius: .55rem;
    max-width: 100%;
  }
  .pt-slider .pt-cta-compact .fa {
    width: 28px;
    height: 28px;
    line-height: 24px;
    font-size: .75rem;
  }
}

/* =========================================================
   5. Footer PrimeTickets
   ========================================================= */

.pt-footer {
  position: relative;
  background-color: var(--pt-bg-dark);
  background-image: radial-gradient(
    circle at 20% 20%,
    rgba(77,64,132,0.25) 0%,
    rgba(0,0,0,0) 70%
  );
  color: #fff;
  padding-top: 3rem;
  padding-bottom: 0;
  overflow: hidden;
  isolation: isolate;
  font-family: var(--pt-font-stack);
}


.pt-footer::after {
  content: "";
  position: absolute;
  right: 2rem;
  bottom: .5rem;
  width: 260px;
  height: 260px;
  pointer-events: none;
  background-repeat: no-repeat;
  background-size: contain;
  background-position: bottom right;
  opacity: 0.08;
  z-index: 0;
  background-image: url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 120 120' fill='%23FFFFFF'><path d='M59.6,36.6c3.4,0,6.2-2.8,6.2-6.2c0-3.4-2.8-6.2-6.2-6.2c-3.4,0-6.2,2.8-6.2,6.2C53.4,33.8,56.2,36.6,59.6,36.6z'/><path d='M109,42.7c-3.4,0-6.2,2.8-6.2,6.2c0,3.4,2.8,6.2,6.2,6.2c3.4,0,6.2-2.8,6.2-6.2C115.2,45.5,112.4,42.7,109,42.7z'/><path d='M11,55.2c3.4,0,6.2-2.8,6.2-6.2c0-3.4-2.8-6.2-6.2-6.2c-3.4,0-6.2,2.8-6.2,6.2C4.8,52.4,7.6,55.2,11,55.2z'/><path d='M90.3,53.9C90.2,54,90.1,54,89.9,54L89,53.7c-0.2-0.2-0.3-0.5-0.3-0.9c0-1,0.7-2,1.6-2.4v-4c-0.9,0.3-1.6-0.2-1.6-1.2c0-1,0.7-2,1.6-2.4v-4c-0.9,0.3-1.6-0.2-1.6-1.2c0-1,0.7-2,1.6-2.4v-3.6L59.9,43L29.4,31.7v3.6c0.9,0.3,1.6,1.4,1.6,2.4c0,1-0.7,1.5-1.6,1.2v4c0.9,0.3,1.6,1.4,1.6,2.4c0,1-0.7,1.5-1.6,1.2v4c0.9,0.3,1.6,1.4,1.6,2.4c0,0.4-0.1,0.7-0.3,0.9L29.9,54c-0.1,0-0.3,0-0.4-0.1v0.2L6.6,62.6v10.5c1.9-0.3,3.4,1.7,3.4,4.9c0,3.2-1.5,6.4-3.4,7.4v10.5l53.3-19.6l53.3,19.6V85.4c-1.9-1.1-3.4-4.2-3.4-7.4c0-3.2,1.5-5.3,3.4-4.9V62.6l-22.9-8.4V53.9z M81.4,39.9c2.1-0.8,3.8,0.4,3.8,2.7v9.8l-18.8-6.9L81.4,39.9z M34.6,57.2l25.3-9.3l25.3,9.3V58c0,2.2-1.7,4.7-3.8,5.5l-21.5,7.9l-21.5-7.9c-2.1-0.8-3.8-3.2-3.8-5.5V57.2z M34.6,42.5c0-2.2,1.7-3.4,3.8-2.7l15,5.5l-18.8,6.9V42.5z M17.1,87.2c-2.1,0.8-3.8-0.4-3.8-2.7V69c0-2.2,1.7-4.7,3.8-5.5l13.3-4.9c0.4,0.5,0.7,1.1,0.7,1.7c0,1-0.7,1.5-1.6,1.2v3.6l23.9,8.8L17.1,87.2z M106.5,69v15.5c0,2.2-1.7,3.4-3.8,2.7L66.5,73.8l23.9-8.8v-3.6c-0.9,0.3-1.6-0.2-1.6-1.2c0-0.6,0.3-1.2,0.7-1.7l13.3,4.9C104.8,64.3,106.5,66.8,106.5,69z'/>\
</svg>");
}

.pt-footer > * {
  position: relative;
  z-index: 1;
}

.pt-footer .footer-about {
  border-bottom: 1px solid rgba(255,255,255,0.08);
}


.pt-footer h6 {
  font-size: 18px;
  line-height: 1.2;
  font-weight: 600;
  color: #fff;
  margin-bottom: 28px;
}


.pt-footer .columns p,
.pt-footer .columns p a {
  font-size: 15px;
  line-height: 26px;
  color: #cfcfe9;
  margin: 0;
}
.pt-footer .contact-para {
  color: #cfcfe9;
  line-height: 25px;
  font-size: 17px;
  margin-top: 10px;
}


.pt-footer .sub-two-right ul li {
  list-style: none;
}
.pt-footer .sub-two-right ul li a {
  font-weight: 400;
  font-size: 16px;
  line-height: 24.5px;
  color: #cfcfe9;
  margin: 0 0 10px 0;
  display: block;
  text-decoration: none;
}


.pt-footer form.subscribe {
  display: flex;
  position: relative;
}
.pt-footer .subscribe input[type="email"] {
  background: transparent;
  padding: 15px 20px;
  font-size: 17px;
  line-height: 26px;
  border: 1px solid rgba(255,255,255,0.25);
  outline: none;
  width: 100%;
  color: #fff;
  border-radius: 6px;
}
.pt-footer .subscribe input[type="email"]:focus {
  border: 1px solid var(--accent-color-hover);
  background-color: transparent;
}
.pt-footer .subscribe button {
  background: transparent;
  border: none;
  outline: none;
  color: #fff;
  font-size: 16px;
  cursor: pointer;
  position: absolute;
  right: 20px;
  top: 1px;
  padding: 15px 0;
}
.pt-footer .subscribe button:hover {
  color: var(--accent-color-hover);
}


.pt-footer .instagram-feeds {
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  grid-gap: 20px;
}


.pt-footer ul.columns {
  padding: 0;
  margin: 0;
}
.pt-footer ul.columns li {
  display: inline-block;
}
.pt-footer ul.columns li a {
  font-size: 14px;
  line-height: 24px;
  color: #cfcfe9;
  margin: 0 16px;
  text-decoration: none;
  font-weight: 400;
}


.pt-footer .below-section {
  background: rgba(0,0,0,0.35);
  padding: 16px 0;
  position: relative;
  z-index: 2;
}
.pt-footer .copyright-footer {
  display: grid;
  grid-template-columns: 1fr auto;
  align-items: center;
  gap: 20px;
  color: #cfcfe9;
  position: relative;
  z-index: 2;
}
.pt-footer .copyright-footer .columns p {
  color: #cfcfe9;
  font-size: 15px;
  line-height: 1.5;
  margin: 0;
}


.pt-footer .copyright-footer ul.social {
  list-style: none;
  display: flex;
  gap: 1rem;
  margin: 0;
  padding: 0;
  font-size: 1.1rem;
  line-height: 1;
}
.pt-footer .copyright-footer ul.social li a {
  color: #fff;
  text-decoration: none;
  line-height: 1;
  display: inline-flex;
  align-items: center;
  justify-content: center;
}


.pt-footer #movetop,
#movetop {
  display: none;
  position: fixed;
  bottom: 16px;
  right: 16px;
  z-index: 999;
  width: 48px;
  height: 48px;
  border: 0;
  outline: 0;
  cursor: pointer;
  background: var(--pt-deep-purple);
  color: #fff;
  font-size: 18px;
  line-height: 48px;
  text-align: center;
  border-radius: 50%;
  box-shadow:
    0 16px 24px rgba(0,0,0,0.18),
    0 2px 4px rgba(0,0,0,0.3);
  transition: box-shadow .2s ease, transform .2s ease, background-color .2s ease;
}
.pt-footer #movetop:hover,
#movetop:hover {
  background: #3a3170;
  box-shadow:
    0 20px 32px rgba(0,0,0,0.22),
    0 4px 8px rgba(0,0,0,0.3);
  transform: translateY(-2px);
}


.pt-footer a:hover,
.pt-footer a:focus-visible,
.pt-footer .sub-two-right ul li a:hover,
.pt-footer .sub-two-right ul li a:focus-visible,
.pt-footer ul.columns li a:hover,
.pt-footer ul.columns li a:focus-visible,
.pt-footer p.para-sep a:hover,
.pt-footer p.para-sep a:focus-visible,
.pt-footer .copyright-footer ul.social li a:hover,
.pt-footer .copyright-footer ul.social li a:focus-visible {
  color: var(--accent-color-hover) !important;
  text-shadow: 0 0 6px var(--accent-color-hover-glow);
  text-decoration: none;
  transition: color .25s ease, text-shadow .25s ease;
}


@media (max-width: 1280px) {
  .pt-footer h6 {
    font-size: 16px;
    line-height: 20px;
  }
  .pt-footer ul.columns li a {
    margin: 0 10px;
  }
}
@media (max-width: 1080px) {
  .pt-footer h6 {
    font-size: 14px;
    line-height: 18px;
  }
  .pt-footer ul.columns li a {
    margin: 0 6px;
  }
}
@media (max-width: 768px) {
  .pt-footer {
    padding-bottom: 4rem; 
  }
  .pt-footer::after {
    width: 180px;
    height: 180px;
    right: 1rem;
    bottom: 6rem;
    opacity: 0.12;
  }
  .pt-footer .below-section {
    text-align: center;
    padding-top: 20px;
    padding-bottom: 20px;
  }
  .pt-footer .copyright-footer {
    grid-template-columns: 1fr;
    justify-items: center;
    text-align: center;
    row-gap: 1rem;
  }
  .pt-footer .copyright-footer .columns p {
    font-size: 14px;
    line-height: 1.5;
    max-width: 480px;
  }
  .pt-footer .copyright-footer ul.social {
    justify-content: center;
    font-size: 1.3rem;
    gap: 1.5rem;
  }
}


  .pt-badge-today {
    background: linear-gradient(135deg, #8a6cff, #5c4bff);
    color: #fff;
    font-weight: 700;
    text-transform: uppercase;
    letter-spacing: 0.5px;
    border: 1px solid rgba(255,255,255,0.3);
    box-shadow:
      0 0 12px rgba(138,108,255,0.8),
      0 4px 12px rgba(0,0,0,0.3);
    padding: 0.45rem 0.8rem;
    border-radius: 8px;
    font-size: 0.8rem;
    animation: pulseToday 1.8s infinite;
  }

  /* Pequeña animación luminosa */
  @keyframes pulseToday {
    0% { box-shadow: 0 0 8px rgba(138,108,255,0.6), 0 4px 8px rgba(0,0,0,0.3); }
    50% { box-shadow: 0 0 16px rgba(138,108,255,1), 0 4px 12px rgba(0,0,0,0.4); }
    100% { box-shadow: 0 0 8px rgba(138,108,255,0.6), 0 4px 8px rgba(0,0,0,0.3); }
  }




/* =========================================================
   6. Hover global de enlaces 
   ========================================================= */

a:hover,
a:focus-visible {
  color: var(--accent-color-hover) !important;
  text-shadow: 0 0 6px var(--accent-color-hover-glow);
  text-decoration: underline;
  transition: color .25s ease, text-shadow .25s ease;
}


/* === Compactar título + subtítulo REAL === */

/* === Título + Subtítulo totalmente unidos === */

.pt-info-top {
  display: flex;
  flex-direction: column;
  gap: 0rem !important;
}

/* Título */
.pt-title {
  margin: 0 !important;
  line-height: 1.15 !important;
}

/* Subtítulo */
.pt-title + .pt-subtitle {
  margin: 0 !important;
  line-height: 1.15 !important;
  padding: 0 !important;
}

/* Meta inmediatamente después del subtítulo */
.pt-subtitle + .pt-meta {
  margin-top: 0.4rem !important;
}

/* Meta cuando NO hay subtítulo */
.pt-title + .pt-meta {
  margin-top: 0.4rem !important;
}

@media (max-width: 480px) {
  .pt-info-top {
    gap: 0rem !important;
  }
  .pt-title,
  .pt-subtitle {
    line-height: 1.15 !important;
  }
}

