/* ============================================================
   Parcelas de Chile — tickets.css
   ============================================================ */

/* ── Hero Tickets ── */
.tickets-hero {
  position: relative;
  width: 100%;
  height: 44vh;
  min-height: 280px;
  overflow: hidden;
  background: #3a5a3a;
}
.tickets-hero-video,
.tickets-hero-img {
  position: absolute;
  inset: 0;
  width: 100%; height: 100%;
  object-fit: cover;
  object-position: center 60%;
  z-index: 0;
}
.tickets-hero-overlay {
  position: absolute; inset: 0;
  background: linear-gradient(to right, rgba(0,0,0,.55) 50%, rgba(0,0,0,.2) 100%);
  z-index: 1;
}
.tickets-hero-content {
  position: absolute;
  bottom: 48px; left: 80px;
  color: #fff;
  z-index: 2;
  display: flex;
  flex-direction: column;
  gap: 4px;
}
.tickets-hero-title {
  font-family: var(--sans);
  font-size: 52px;
  font-weight: 700;
  line-height: 1;
  letter-spacing: .02em;
  display: flex;
  align-items: baseline;
  gap: 12px;
  flex-wrap: nowrap;
  white-space: nowrap;
}
.tickets-hero-title .italic-part {
  font-family: var(--serif);
  font-style: italic;
  font-weight: 900;
  font-size: 62px;
}
.tickets-hero-subtitle {
  font-family: var(--sans);
  font-size: 17px;
  font-weight: 400;
  opacity: .88;
  display: flex;
  align-items: center;
  gap: 10px;
}
.tickets-hero-subtitle .chile-mini {
  display: flex; height: 3px; width: 80px; gap: 2px;
}
.tickets-hero-subtitle .chile-mini span { flex:1; border-radius:2px; }
.tickets-hero-subtitle .chile-mini .m1 { background:#1a3f8c; }
.tickets-hero-subtitle .chile-mini .m2 { background:#c0392b; }
.tickets-hero-subtitle .chile-mini .m3 { background:#2e7d32; }

/* ── Wrapper general ── */
.tickets-page-wrap {
  max-width: 820px;
  margin: 0 auto;
  padding: 48px 24px 80px;
}

/* ── Contador de cantidad ── */
.qty-selector {
  display: flex;
  align-items: center;
  justify-content: center;
  gap: 20px;
  margin-bottom: 8px;
}
.qty-selector .qty-num {
  font-family: var(--serif);
  font-size: 56px;
  font-weight: 700;
  color: var(--text-dark);
  line-height: 1;
  min-width: 80px;
  text-align: center;
}
.qty-selector .qty-label {
  font-family: var(--sans);
  font-size: 13px;
  color: var(--text-gray);
  text-align: center;
  margin-top: -4px;
}
.qty-btn {
  width: 44px; height: 44px;
  background: var(--btn-color);
  color: #fff;
  border: none; border-radius: 50%;
  font-size: 22px; font-weight: 700;
  cursor: pointer;
  display: flex; align-items: center; justify-content: center;
  transition: background .2s, transform .15s;
}
.qty-btn:hover { background: var(--btn-hover); transform: scale(1.08); }
.qty-btn:disabled { background: #ccc; cursor: not-allowed; transform: none; }

/* Total */
.tickets-total {
  text-align: center;
  font-family: var(--sans);
  font-size: 22px;
  font-weight: 400;
  margin-bottom: 24px;
  color: var(--text-dark);
}
.tickets-total strong { font-weight: 700; }

/* ── Barra de acciones ── */
.tickets-actions {
  display: flex;
  align-items: center;
  justify-content: center;
  gap: 14px;
  margin-bottom: 18px;
}
.action-icon-btn {
  width: 46px; height: 46px;
  border-radius: 50%;
  background: var(--btn-color);
  color: #fff;
  border: none; cursor: pointer;
  display: flex; align-items: center; justify-content: center;
  transition: background .2s;
  font-size: 20px;
}
.action-icon-btn:hover { background: var(--btn-hover); }
.btn-azar {
  background: var(--btn-color);
  color: #fff;
  font-family: var(--sans);
  font-size: 14px; font-weight: 600;
  padding: 12px 28px;
  border-radius: 50px;
  border: none; cursor: pointer;
  transition: background .2s;
}
.btn-azar:hover { background: var(--btn-hover); }

/* Buscador */
.search-popup {
  display: none;
  position: absolute;
  z-index: 50;
  background: #fff;
  border: 1.5px solid #ddd;
  border-radius: 12px;
  padding: 14px;
  box-shadow: 0 4px 20px rgba(0,0,0,.1);
  width: 220px;
}
.search-popup.visible { display: block; }
.search-popup input {
  width: 100%;
  padding: 9px 14px;
  border: 1.5px solid #ddd;
  border-radius: 8px;
  font-family: var(--sans);
  font-size: 14px;
  outline: none;
}
.search-popup input:focus { border-color: var(--btn-color); }

/* ── Grid de tickets ── */
.tickets-grid-wrap {
  background: #f5f5f5;
  border-radius: 14px;
  padding: 16px 12px;
  margin-bottom: 18px;
  position: relative;
}
.tickets-grid {
  display: grid;
  grid-template-columns: repeat(10, 1fr);
  gap: 5px;
}
.ticket-cell {
  display: flex;
  align-items: center;
  justify-content: center;
  height: 36px;
  border-radius: 7px;
  font-family: var(--sans);
  font-size: 12px;
  font-weight: 500;
  cursor: pointer;
  user-select: none;
  transition: background .15s, transform .1s, color .15s;
  background: #e0e0e0;
  color: #555;
  border: 1.5px solid transparent;
}
.ticket-cell:hover:not(.sold):not(.reserved) {
  background: #c8c8c8;
  transform: scale(1.05);
}
.ticket-cell.selected {
  background: var(--btn-color);
  color: #fff;
  border-color: var(--btn-hover);
  font-weight: 700;
}
.ticket-cell.sold {
  background: #333;
  color: #777;
  cursor: not-allowed;
  font-size: 10px;
}
.ticket-cell.reserved {
  background: #bbb;
  color: #888;
  cursor: not-allowed;
}
.ticket-cell.found {
  border-color: #1a3f8c;
  box-shadow: 0 0 0 2px rgba(26,63,140,.3);
}

/* Grid loading overlay */
.tickets-grid-loading {
  position: absolute; inset: 0;
  background: rgba(245,245,245,.8);
  display: flex; align-items: center; justify-content: center;
  border-radius: 14px;
  font-family: var(--sans);
  font-size: 14px;
  color: var(--text-gray);
  z-index: 10;
}

/* ── Paginación ── */
.tickets-pagination {
  display: flex;
  align-items: center;
  justify-content: center;
  gap: 14px;
  margin-bottom: 20px;
  font-family: var(--sans);
  font-size: 14px;
  color: var(--text-gray);
}
.page-btn {
  width: 34px; height: 34px;
  border-radius: 50%;
  background: var(--btn-color);
  color: #fff;
  border: none; cursor: pointer;
  display: flex; align-items: center; justify-content: center;
  transition: background .2s;
  font-size: 16px;
}
.page-btn:hover { background: var(--btn-hover); }
.page-btn:disabled { background: #ccc; cursor: not-allowed; }

/* ── Resumen selección ── */
.selection-summary {
  text-align: center;
  margin-bottom: 20px;
  font-family: var(--sans);
}
.summary-label {
  font-size: 12px;
  color: var(--text-gray);
  margin-bottom: 8px;
}
.summary-count {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  background: var(--btn-color);
  color: #fff;
  font-size: 18px;
  font-weight: 700;
  padding: 8px 28px;
  border-radius: 50px;
}

/* Pills de tickets seleccionados */
.selected-pills {
  display: flex;
  flex-wrap: wrap;
  gap: 8px;
  justify-content: flex-start;
  margin-bottom: 32px;
  min-height: 40px;
}
.ticket-pill {
  background: var(--btn-color);
  color: #fff;
  font-family: var(--sans);
  font-size: 13px;
  font-weight: 600;
  padding: 7px 18px;
  border-radius: 50px;
  cursor: pointer;
  transition: background .15s;
  display: flex; align-items: center; gap: 6px;
}
.ticket-pill:hover { background: var(--btn-hover); }
.ticket-pill .pill-x { font-size: 15px; opacity: .7; }

/* ── Formulario datos personales ── */
.datos-section {
  margin-top: 36px;
}
.datos-section h3 {
  font-family: var(--sans);
  font-size: 36px;
  font-weight: 300;
  margin-bottom: 28px;
  color: var(--text-dark);
  padding-bottom: 8px;
  border-bottom: 2px solid #e0e0e0;
}
.datos-section h3 em {
  font-family: var(--serif);
  font-style: italic;
  font-weight: 700;
  color: var(--accent-color);
}

.form-row {
  margin-bottom: 16px;
}
.form-row label {
  display: block;
  font-family: var(--sans);
  font-size: 14px;
  font-weight: 500;
  color: var(--text-dark);
  margin-bottom: 6px;
}
.form-row label .required { color: #c0392b; }
.form-grid-2 {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 16px;
}
.form-row input,
.form-row select {
  width: 100%;
  padding: 12px 16px;
  border: 1.5px solid #ddd;
  border-radius: 8px;
  font-family: var(--sans);
  font-size: 14px;
  color: var(--text-dark);
  background: #fff;
  outline: none;
  transition: border-color .2s;
}
.form-row input:focus,
.form-row select:focus {
  border-color: var(--btn-color);
}
.form-row input.error {
  border-color: #c0392b;
}

.form-error {
  font-size: 12px;
  color: #c0392b;
  margin-top: 4px;
  display: none;
}
.form-error.visible { display: block; }

/* Términos */
.terms-row {
  display: flex;
  align-items: flex-start;
  gap: 10px;
  margin: 20px 0;
  font-family: var(--sans);
  font-size: 13px;
  color: var(--text-gray);
}
.terms-row input[type="checkbox"] {
  width: 18px; height: 18px;
  margin-top: 1px;
  accent-color: var(--btn-color);
  cursor: pointer;
}
.terms-row a { color: var(--btn-color); text-decoration: underline; }

/* Botón pagar */
.btn-pagar {
  width: 100%;
  max-width: 280px;
  display: block;
  background: var(--btn-color);
  color: var(--btn-text-color);
  font-family: var(--sans);
  font-size: 16px;
  font-weight: 700;
  padding: 18px;
  border-radius: var(--btn-radius, 50px);
  border: none;
  cursor: pointer;
  text-align: center;
  transition: background .2s, transform .15s;
}
.btn-pagar:hover { background: var(--btn-hover); transform: translateY(-1px); }
.btn-pagar:disabled { background: #ccc; cursor: not-allowed; transform: none; }

/* Spinner / estado de carga */
.btn-pagar .spinner {
  display: inline-block;
  width: 18px; height: 18px;
  border: 3px solid rgba(255,255,255,.3);
  border-top-color: #fff;
  border-radius: 50%;
  animation: spin .8s linear infinite;
  vertical-align: middle;
  margin-right: 8px;
}
@keyframes spin { to { transform: rotate(360deg); } }

/* Mensaje de error global */
.checkout-error {
  background: #fff0f0;
  border: 1.5px solid #e74c3c;
  color: #c0392b;
  padding: 14px 18px;
  border-radius: 8px;
  font-family: var(--sans);
  font-size: 14px;
  margin-bottom: 16px;
  display: none;
}
.checkout-error.visible { display: block; }

/* Info box */
.info-box {
  background: #f8f5f0;
  border-left: 4px solid var(--btn-color);
  padding: 14px 18px;
  border-radius: 0 8px 8px 0;
  font-family: var(--sans);
  font-size: 13px;
  color: var(--text-gray);
  margin-bottom: 24px;
  line-height: 1.6;
}

/* ── Leyenda de colores ── */
.tickets-legend {
  display: flex;
  gap: 20px;
  flex-wrap: wrap;
  margin-bottom: 14px;
  font-family: var(--sans);
  font-size: 12px;
  color: var(--text-gray);
}
.legend-item {
  display: flex;
  align-items: center;
  gap: 6px;
}
.legend-dot {
  width: 14px; height: 14px;
  border-radius: 4px;
}
.legend-dot.available  { background: #e0e0e0; }
.legend-dot.selected   { background: var(--btn-color); }
.legend-dot.sold       { background: #333; }
.legend-dot.reserved   { background: #bbb; }

/* ── Page Gracias ── */
.thanks-page {
  min-height: 70vh;
  display: flex;
  flex-direction: column;
  align-items: center;
  justify-content: center;
  padding: 80px 24px;
  text-align: center;
  background: var(--bg-white);
}
.thanks-icon {
  font-size: 72px;
  margin-bottom: 20px;
  line-height: 1;
}
.thanks-page h1 {
  font-family: var(--sans);
  font-size: 42px;
  font-weight: 700;
  color: var(--text-dark);
  margin-bottom: 12px;
}
.thanks-page .thanks-sub {
  font-family: var(--serif);
  font-style: italic;
  font-size: 24px;
  color: var(--accent-color);
  margin-bottom: 20px;
}
.thanks-page p {
  font-family: var(--sans);
  font-size: 16px;
  color: var(--text-gray);
  max-width: 500px;
  line-height: 1.7;
  margin-bottom: 12px;
}
.thanks-tickets-wrap {
  background: #f8f8f8;
  border-radius: 12px;
  padding: 20px 28px;
  margin: 20px 0;
  max-width: 500px;
  width: 100%;
}
.thanks-tickets-title {
  font-family: var(--sans);
  font-size: 13px;
  color: var(--text-gray);
  margin-bottom: 10px;
}
.thanks-tickets-list {
  font-family: var(--sans);
  font-size: 18px;
  font-weight: 700;
  color: var(--btn-color);
  word-break: break-all;
}
.thanks-error {
  background: #fff0f0;
  border: 2px solid #e74c3c;
  border-radius: 12px;
  padding: 32px;
  max-width: 500px;
}
.thanks-error h2 { color: #c0392b; margin-bottom: 12px; }

/* ─── RESPONSIVE ─── */
@media (max-width: 768px) {
  .tickets-hero-content { left: 24px; bottom: 28px; }
  .tickets-hero-title { font-size: 34px; }
  .tickets-hero-title .italic-part { font-size: 42px; }
  .tickets-page-wrap { padding: 32px 16px 60px; }
  .tickets-grid { grid-template-columns: repeat(5, 1fr); gap: 4px; }
  .ticket-cell { height: 34px; font-size: 11px; }
  .form-grid-2 { grid-template-columns: 1fr; }
  .tickets-actions { gap: 10px; }
  .thanks-page h1 { font-size: 30px; }
  .tickets-hero { height: 36vh; }
}


/* ─── Modo prueba de compra ─── */
.pdc-test-mode-alert {
  width: min(720px, 100%);
  margin: 0 auto 22px;
  padding: 14px 18px;
  border-radius: 16px;
  background: #fff8ec;
  border: 1px solid rgba(201, 123, 48, .28);
  color: #5d3a16;
  font-family: var(--sans, 'DM Sans', sans-serif);
  font-size: 14px;
  line-height: 1.45;
  text-align: center;
}

.btn-pagar.is-test-mode {
  background: #7a4a1f;
}

.thanks-test-alert {
  margin-top: 22px;
  margin-bottom: 22px;
}

/* v2.3.9 — Hover botones tipo maqueta */
.btn-azar,
.btn-pagar:not(:disabled) {
  background: var(--pdc-terracotta, var(--btn-color, #ad4f35)) !important;
  color: #ffffff !important;
  border: 0 !important;
  box-shadow: inset 0 0 0 0 var(--pdc-terracotta, var(--btn-color, #ad4f35)) !important;
  transition: background-color .22s ease, color .22s ease, box-shadow .22s ease, transform .22s ease !important;
}

.btn-azar:hover,
.btn-azar:focus-visible,
.btn-pagar:not(:disabled):hover,
.btn-pagar:not(:disabled):focus-visible {
  background: #ffffff !important;
  color: var(--pdc-terracotta, var(--btn-color, #ad4f35)) !important;
  box-shadow: inset 0 0 0 3px var(--pdc-terracotta, var(--btn-color, #ad4f35)) !important;
  transform: none !important;
}


/* ============================================================
   v2.4.2 — Rediseño landing Comprar Tickets
   Importante: la grilla de selección conserva disposición, tamaño,
   espaciados y recuadro original; solo se actualizan sus colores.
   ============================================================ */
:root {
  --pdc-ticket-terracotta: #ad4f35;
  --pdc-ticket-terracotta-dark: #8f3f2b;
  --pdc-ticket-green: #28473d;
  --pdc-ticket-muted-green: #65746d;
  --pdc-ticket-olive: #a8ad78;
  --pdc-ticket-olive-hover: #8f985e;
  --pdc-ticket-olive-soft: #dfe3bd;
  --pdc-ticket-input: #ededed;
}

body.page-template-page-tickets,
body.page-id-tickets {
  background: #ffffff;
}

/* Header/nav ya hereda Montserrat Medium 20 desde main.css. */
body.page-template-page-tickets .navbar,
body.page-id-tickets .navbar {
  z-index: 200;
}

/* Hero comprar tickets */
.tickets-hero {
  height: 320px;
  min-height: 320px;
  background: #6f8f75;
}
.tickets-hero-video,
.tickets-hero-img {
  object-position: center 55%;
  filter: saturate(.92) contrast(.98);
}
.tickets-hero-overlay {
  background: linear-gradient(to bottom, rgba(0,0,0,.03) 0%, rgba(0,0,0,.30) 42%, rgba(0,0,0,.62) 100%);
}
.tickets-hero-content {
  left: clamp(48px, 9vw, 155px);
  bottom: clamp(40px, 7vh, 72px);
  gap: 0;
  max-width: calc(100% - clamp(48px, 9vw, 155px) - 24px);
}
.tickets-hero-title {
  display: flex;
  align-items: baseline;
  gap: 14px;
  flex-wrap: nowrap;
  white-space: nowrap;
  line-height: 1;
  color: #ffffff;
}

/* "COMPRAR" — Montserrat SemiBold 74pt */
.tickets-hero-title .sans-part {
  font-family: 'Montserrat', var(--sans, sans-serif);
  font-size: clamp(40px, 5.1vw, 74px);
  font-weight: 600;
  font-style: normal;
  letter-spacing: .02em;
  text-transform: uppercase;
  white-space: nowrap;
}

/* "TICKETS" — Libre Bodoni Bold Italic 100pt */
.tickets-hero-title .italic-part {
  font-family: 'Libre Bodoni', var(--serif, Georgia, serif);
  font-size: clamp(54px, 6.9vw, 100px);
  font-weight: 700;
  font-style: italic;
  letter-spacing: -.02em;
  text-transform: uppercase;
  white-space: nowrap;
}

/* "Descuentos activados" — Montserrat Regular 35pt */
.tickets-hero-subtitle {
  font-family: 'Montserrat', var(--sans, sans-serif);
  font-size: clamp(18px, 2.4vw, 35px);
  font-weight: 400;
  font-style: normal;
  color: #ffffff;
  opacity: .95;
  letter-spacing: .01em;
  margin-top: 6px;
  white-space: nowrap;
}
.tickets-hero-subtitle .chile-mini { display: none; }

/* Estructura general */
.tickets-main { background: #ffffff; }
.tickets-page-wrap {
  max-width: 820px;
  padding-top: 58px;
}
.info-box,
.tickets-legend {
  display: none !important;
}

/* Selector cantidad */
.qty-selector {
  gap: 28px;
  margin: 0 auto 4px;
}
.qty-selector .qty-num {
  font-family: var(--serif, 'Libre Bodoni', serif);
  font-size: 72px;
  font-style: normal;
  font-weight: 700;
  line-height: .9;
  color: var(--pdc-ticket-green);
  min-width: 90px;
}
.qty-selector .qty-label {
  font-family: var(--sans, 'Montserrat', sans-serif);
  font-size: 16px;
  font-weight: 500;
  color: var(--pdc-ticket-green);
  margin-top: 6px;
}
.qty-btn {
  width: 38px;
  height: 38px;
  background: var(--pdc-ticket-terracotta) !important;
  color: #ffffff !important;
  border: 0 !important;
  font-family: var(--sans, 'Montserrat', sans-serif);
  font-size: 27px;
  font-weight: 700;
  line-height: 1;
  box-shadow: none !important;
}
.qty-btn:hover:not(:disabled),
.page-btn:hover:not(:disabled),
.action-icon-btn:hover,
.action-icon-btn:focus-visible {
  background: #ffffff !important;
  color: var(--pdc-ticket-terracotta) !important;
  box-shadow: inset 0 0 0 3px var(--pdc-ticket-terracotta) !important;
  transform: none !important;
}
.qty-btn:disabled {
  opacity: .45;
  background: var(--pdc-ticket-terracotta) !important;
  color: #ffffff !important;
}

/* Total */
.tickets-total {
  margin: 18px 0 34px;
  font-family: var(--sans, 'Montserrat', sans-serif);
  font-size: 28px;
  line-height: 1.2;
  font-weight: 400;
  color: var(--pdc-ticket-green);
}
.tickets-total strong {
  font-weight: 700;
  color: var(--pdc-ticket-green);
}

/* Acciones */
.tickets-actions {
  gap: 16px;
  margin-bottom: 16px;
}
.action-icon-btn {
  width: 42px;
  height: 42px;
  background: var(--pdc-ticket-terracotta) !important;
  color: #ffffff !important;
  border: 0 !important;
  box-shadow: none !important;
}
.btn-azar {
  min-width: 120px;
  padding: 10px 24px;
  border-radius: 999px;
  font-family: var(--sans, 'Montserrat', sans-serif);
  font-size: 16px;
  font-weight: 700;
  line-height: 1;
  background: var(--pdc-ticket-terracotta) !important;
  color: #ffffff !important;
  border: 0 !important;
}
.btn-azar:hover,
.btn-azar:focus-visible {
  background: #ffffff !important;
  color: var(--pdc-ticket-terracotta) !important;
  box-shadow: inset 0 0 0 3px var(--pdc-ticket-terracotta) !important;
  transform: none !important;
}
.search-popup {
  border: 2px solid rgba(173,79,53,.28);
  border-radius: 18px;
  right: 0;
  top: 52px;
}
.search-popup input {
  font-family: var(--sans, 'Montserrat', sans-serif);
  font-size: 15px;
  border-radius: 12px;
}

/* Grilla tickets: solo colores, sin modificar tamaño/disposición/recuadro. */
.tickets-grid-wrap {
  background: var(--pdc-ticket-olive-soft) !important;
  scrollbar-color: var(--pdc-ticket-green) transparent;
  scrollbar-width: thin;
}
.tickets-grid-wrap::-webkit-scrollbar-thumb {
  background: var(--pdc-ticket-green);
  border-radius: 999px;
}
.ticket-cell {
  background: var(--pdc-ticket-olive) !important;
  color: #ffffff !important;
}
.ticket-cell:hover:not(.sold):not(.reserved) {
  background: var(--pdc-ticket-olive-hover) !important;
  color: #ffffff !important;
}
.ticket-cell.selected {
  background: var(--pdc-ticket-green) !important;
  color: #ffffff !important;
  border-color: var(--pdc-ticket-green) !important;
}
.ticket-cell.sold {
  background: #8d6a5d !important;
  color: rgba(255,255,255,.62) !important;
}
.ticket-cell.reserved {
  background: #b9b9a0 !important;
  color: rgba(255,255,255,.74) !important;
}
.tickets-grid-loading {
  background: rgba(223,227,189,.86);
  font-family: var(--sans, 'Montserrat', sans-serif);
  font-size: 20px;
  font-weight: 500;
  color: var(--pdc-ticket-green);
}

/* Paginación */
.tickets-pagination {
  gap: 22px;
  margin: 34px 0 20px;
  font-family: var(--sans, 'Montserrat', sans-serif);
  font-size: 16px;
  font-weight: 700;
  color: var(--pdc-ticket-green);
}
.page-btn {
  width: 34px;
  height: 34px;
  background: var(--pdc-ticket-terracotta) !important;
  color: #ffffff !important;
  border: 0 !important;
  font-family: var(--sans, 'Montserrat', sans-serif);
  font-size: 18px;
  font-weight: 700;
  line-height: 1;
  box-shadow: none !important;
}
.page-btn:disabled {
  opacity: .45;
  background: var(--pdc-ticket-terracotta) !important;
  color: #ffffff !important;
}

/* Resumen y tickets seleccionados */
.selection-summary {
  margin-bottom: 28px;
}
.summary-label {
  font-family: var(--sans, 'Montserrat', sans-serif);
  font-size: 14px;
  font-weight: 500;
  color: var(--pdc-ticket-green);
  margin-bottom: 6px;
}
.summary-count {
  min-width: 148px;
  padding: 6px 30px 7px;
  background: var(--pdc-ticket-terracotta);
  color: #ffffff;
  font-family: var(--sans, 'Montserrat', sans-serif);
  font-size: 20px;
  font-weight: 700;
  line-height: 1.2;
}
.selected-pills {
  gap: 10px;
  margin: 14px 0 40px;
  min-height: 40px;
}
.ticket-pill {
  background: #b97765;
  color: #ffffff;
  font-family: var(--sans, 'Montserrat', sans-serif);
  font-size: 15px;
  font-weight: 700;
  line-height: 1.2;
  padding: 7px 18px;
  min-width: 50px;
  justify-content: center;
  border: 0;
  border-radius: 999px;
}
.ticket-pill:hover,
.ticket-pill:focus-visible {
  background: #ffffff;
  color: var(--pdc-ticket-terracotta);
  box-shadow: inset 0 0 0 3px var(--pdc-ticket-terracotta);
}
.ticket-pill .pill-x { display: none; }

/* Datos personales */
.datos-section {
  margin-top: 28px;
}
.datos-section h3 {
  border: 0;
  padding: 0;
  margin: 0 0 34px;
  font-family: var(--sans, 'Montserrat', sans-serif);
  font-size: 42px;
  font-weight: 400;
  line-height: 1.1;
  color: var(--pdc-ticket-muted-green);
}
.datos-section h3 em {
  font-family: var(--serif, 'Libre Bodoni', serif);
  font-size: 54px;
  font-weight: 700;
  font-style: italic;
  color: var(--pdc-ticket-green);
}
.form-row {
  margin-bottom: 24px;
}
.form-row label {
  font-family: var(--sans, 'Montserrat', sans-serif);
  font-size: 15px;
  font-weight: 500;
  line-height: 1.4;
  color: var(--pdc-ticket-green);
  margin-bottom: 6px;
}
.form-row label .required {
  color: var(--pdc-ticket-terracotta);
  font-weight: 700;
}
.form-row input,
.form-row select {
  height: 44px;
  padding: 10px 14px;
  border: 1.5px solid #e0e0e0;
  border-radius: 8px;
  background: #ffffff;
  color: #2f2f2f;
  font-family: var(--sans, 'Montserrat', sans-serif);
  font-size: 15px;
  font-weight: 400;
  outline: none;
  box-shadow: none;
}
.form-row input:focus,
.form-row select:focus {
  box-shadow: inset 0 0 0 2px rgba(173,79,53,.38);
}
.form-row input.error,
.form-row select.error {
  box-shadow: inset 0 0 0 2px #c0392b;
}
.form-grid-2 {
  grid-template-columns: 1fr 1fr;
  gap: 22px;
}
.form-error {
  font-family: var(--sans, 'Montserrat', sans-serif);
  font-size: 15px;
  color: #c0392b;
  margin-top: 6px;
}
.terms-row {
  margin: 18px 0 24px;
  font-family: var(--sans, 'Montserrat', sans-serif);
  font-size: 16px;
  font-weight: 400;
  color: var(--pdc-ticket-green);
}
.terms-row a {
  color: var(--pdc-ticket-terracotta);
  font-weight: 700;
}
.btn-pagar {
  width: auto;
  max-width: none;
  min-width: 174px;
  padding: 11px 32px 12px;
  background: var(--pdc-ticket-terracotta) !important;
  color: #ffffff !important;
  font-family: var(--sans, 'Montserrat', sans-serif);
  font-size: 17px;
  font-weight: 700;
  line-height: 1;
  border-radius: 999px;
  border: 0;
  box-shadow: inset 0 0 0 0 var(--pdc-ticket-terracotta) !important;
}
.btn-pagar:not(:disabled):hover,
.btn-pagar:not(:disabled):focus-visible {
  background: #ffffff !important;
  color: var(--pdc-ticket-terracotta) !important;
  box-shadow: inset 0 0 0 3px var(--pdc-ticket-terracotta) !important;
  transform: none !important;
}
.checkout-error {
  font-family: var(--sans, 'Montserrat', sans-serif);
  font-size: 17px;
  border-radius: 14px;
}

@media (max-width: 900px) {
  .tickets-page-wrap { max-width: 760px; }
  .tickets-total { font-size: 24px; }
  .datos-section h3 { font-size: 34px; }
  .datos-section h3 em { font-size: 44px; }
  .form-row label { font-size: 14px; }
  .form-row input, .form-row select { font-size: 14px; height: 42px; }
}

@media (max-width: 768px) {
  .tickets-hero { height: 300px; min-height: 300px; }
  .tickets-hero-content { left: 24px; bottom: 42px; }
  .tickets-hero-title { font-size: 38px; gap: 8px; }
  .tickets-hero-title .italic-part { font-size: 48px; }
  .tickets-hero-subtitle { font-size: 18px; }
  .tickets-page-wrap { padding: 42px 16px 60px; }
  .qty-selector { gap: 16px; }
  .qty-selector .qty-num { font-size: 76px; min-width: 88px; }
  .qty-selector .qty-label { font-size: 18px; }
  .tickets-total { font-size: 32px; }
  .btn-azar { font-size: 22px; min-width: 140px; }
  .tickets-pagination { font-size: 22px; gap: 14px; }
  .summary-count { font-size: 32px; }
  .ticket-pill { font-size: 28px; padding-inline: 22px; }
  .datos-section h3 { font-size: 40px; }
  .datos-section h3 em { font-size: 52px; }
  .form-grid-2 { grid-template-columns: 1fr; gap: 0; }
  .form-row label { font-size: 20px; }
  .form-row input, .form-row select { font-size: 16px; height: 38px; }
  .btn-pagar { font-size: 20px; }
}

/* ============================================================
   v2.4.3 - Ajuste altura hero tickets
   ============================================================ */
.tickets-hero {
  /* altura controlada por panel admin - ver dynamic CSS en wp_head */
}
.tickets-hero-content {
  bottom: 74px !important;
}
@media (max-width: 900px) {
  /* tickets-hero height: controlled by panel admin dynamic CSS */
  .tickets-hero-content {
    bottom: 58px !important;
  }
}
@media (max-width: 768px) {
  /* tickets-hero height: controlled by panel admin dynamic CSS */
  .tickets-hero-content {
    bottom: 44px !important;
  }
}
@media (max-width: 480px) {
  .tickets-hero {
    /* altura responsive - heredada del dynamic CSS */
  }
}


/* ============================================================
   v2.4.4 - Hero TICKETS altura: controlada desde panel admin
   (functions.php genera el CSS dinámico con hero_tickets_height)
   ============================================================ */

/* La altura se inyecta vía wp_head desde functions.php */

.tickets-hero-video,
.tickets-hero-overlay {
  height: 100% !important;
}

@media (max-width: 768px) {
  .tickets-hero {
    /* min-height controlled by panel admin dynamic CSS */
  }
}


/* ============================================================
   v2.4.5 - Hero TICKETS capas PNG (hero-content removido en v2.5.x)
   ============================================================ */
.tickets-hero-manual-png-wrap {
  position: absolute !important;
  z-index: 3 !important;
  display: block !important;
  max-width: none !important;
  pointer-events: none;
}

.tickets-hero-manual-png-wrap--link {
  pointer-events: auto;
}

.tickets-hero-manual-png {
  display: block !important;
  width: 100% !important;
  height: auto !important;
  max-width: none !important;
}


/* ============================================================
   v2.4.8 - Edición visual con mouse en Customizer
   ============================================================ */
body.pdc-hero-drag-enabled .tickets-hero-manual-png-wrap {
  pointer-events: auto !important;
  cursor: move !important;
}


/* ============================================================
   v2.5.0 - Capas PNG ilimitadas + edición visual
   ============================================================ */
.hero,
.tickets-hero {
  position: relative !important;
}

.pdc-hero-layers {
  position: absolute !important;
  inset: 0 !important;
  z-index: 3 !important;
  pointer-events: none;
}

.pdc-hero-layer {
  position: absolute !important;
  display: block !important;
  max-width: none !important;
  transform: none !important;
  box-sizing: border-box !important;
}

.pdc-hero-layer-img {
  height: auto !important;
  pointer-events: none;
  user-select: none;
}

.pdc-hero-button-layer,
.hero-manual-btn {
  z-index: 4 !important;
  pointer-events: auto;
  display: inline-flex !important;
  align-items: center !important;
  justify-content: center !important;
  min-height: 46px !important;
  max-width: none !important;
  white-space: nowrap !important;
  text-align: center !important;
}

/* Solo dentro del Customizer */
body.pdc-hero-editor-enabled .pdc-hero-layers {
  pointer-events: auto !important;
}

body.pdc-hero-editor-enabled .pdc-hero-layer,
body.pdc-hero-editor-enabled .hero-manual-btn {
  pointer-events: auto !important;
  cursor: move !important;
  user-select: none !important;
  outline: 2px dashed rgba(255,255,255,.75);
  outline-offset: 4px;
}

body.pdc-hero-editor-enabled .pdc-hero-layer.is-selected {
  outline: 3px solid #2D5BFF !important;
  outline-offset: 6px !important;
  box-shadow: 0 0 0 3px rgba(45,91,255,.25) !important;
}

.pdc-hero-resize-handle {
  display: none;
}

body.pdc-hero-editor-enabled .pdc-hero-layer.is-selected .pdc-hero-resize-handle,
body.pdc-hero-editor-enabled .hero-manual-btn.is-selected .pdc-hero-resize-handle {
  display: block;
  position: absolute;
  right: -12px;
  bottom: -12px;
  width: 22px;
  height: 22px;
  background: #2D5BFF;
  border: 2px solid #fff;
  border-radius: 999px;
  cursor: nwse-resize;
  z-index: 2147483646;
}


/* ============================================================
   v2.5.1 - Visibilidad reforzada de capas PNG
   ============================================================ */
.pdc-hero-layers {
  z-index: 20 !important;
}

.pdc-hero-layer-img {
  visibility: visible !important;
  object-fit: contain !important;
  object-position: center !important;
}

.hero-manual-btn,
.pdc-hero-button-layer {
  z-index: 21 !important;
}


/* ============================================================
   v2.5.2 - Fix definitivo: PNG visible en lienzo
   ============================================================ */
.pdc-hero-layers {
  z-index: 50 !important;
  overflow: visible !important;
}

.pdc-hero-layer-img {
  z-index: 51 !important;
  display: block !important;
  visibility: visible !important;
  opacity: 1;
}

body.pdc-hero-editor-enabled .pdc-hero-layers {
  pointer-events: auto !important;
}

.pdc-hero-drop-active {
  box-shadow: inset 0 0 0 5px rgba(45,91,255,.55) !important;
}


/* ============================================================
   v2.5.50 - Mismo marco visual editor/front para capas hero
   Las capas se guardan en px sobre un diseño base de 1280px.
   En el front se centra ese mismo marco, evitando desfase por pantalla full width.
   ============================================================ */
.hero .pdc-hero-layers,
.tickets-hero .pdc-hero-layers {
  position: absolute !important;
  top: 0 !important;
  bottom: 0 !important;
  left: 50% !important;
  right: auto !important;
  width: 1280px !important;
  max-width: 100vw !important;
  height: 100% !important;
  transform: translateX(-50%) !important;
  overflow: visible !important;
  z-index: 50 !important;
}

.hero .pdc-hero-layer,
.tickets-hero .pdc-hero-layer {
  position: absolute !important;
  transform: none !important;
}

.pdc-tickets-title-group {
  display: none !important;
}

/* ============================================================
   v2.5.53 - Heroes responsivos
   Mantiene el marco editable de 1280px, pero lo escala en pantallas menores.
   Así textos, imágenes y botones conservan proporción y posición relativa.
   ============================================================ */
.hero,
.tickets-hero {
  --pdc-hero-design-width: 1280px;
  --pdc-hero-layer-scale: min(1, calc(100vw / 1280px));
  overflow: hidden !important;
}

.hero .pdc-hero-layers,
.tickets-hero .pdc-hero-layers {
  width: 1280px !important;
  max-width: none !important;
  left: 50% !important;
  right: auto !important;
  transform: translateX(-50%) scale(var(--pdc-hero-layer-scale)) !important;
  transform-origin: top center !important;
  will-change: transform;
}

.hero .pdc-hero-layer,
.tickets-hero .pdc-hero-layer {
  transform: none !important;
}

@media (min-width: 1281px) {
  .hero,
  .tickets-hero {
    --pdc-hero-layer-scale: 1;
  }
}

/* Fallback para navegadores sin división en calc() */
@media (max-width: 1180px) {
  .hero,
  .tickets-hero { --pdc-hero-layer-scale: .92; }
}
@media (max-width: 1024px) {
  .hero,
  .tickets-hero { --pdc-hero-layer-scale: .80; }
}
@media (max-width: 900px) {
  .hero,
  .tickets-hero { --pdc-hero-layer-scale: .70; }
}
@media (max-width: 768px) {
  .hero,
  .tickets-hero { --pdc-hero-layer-scale: .60; }
}
@media (max-width: 640px) {
  .hero,
  .tickets-hero { --pdc-hero-layer-scale: .50; }
}
@media (max-width: 520px) {
  .hero,
  .tickets-hero { --pdc-hero-layer-scale: .42; }
}
@media (max-width: 420px) {
  .hero,
  .tickets-hero { --pdc-hero-layer-scale: .36; }
}

@media (max-width: 768px) {
  .hero .pdc-hero-button-layer,
  .tickets-hero .pdc-hero-button-layer,
  .hero .hero-manual-btn,
  .tickets-hero .hero-manual-btn {
    min-height: 44px !important;
    padding-left: 18px !important;
    padding-right: 18px !important;
  }
}


/* ============================================================
   v2.5.55 - Fix definitivo: lienzos por dispositivo sin heredar
   el escalado global 1280px de v2.5.53.
   Cada layout usa su propio marco: desktop 1280, tablet 768, mobile 390.
   ============================================================ */
.hero .pdc-hero-layers-views,
.tickets-hero .pdc-hero-layers-views {
  position: absolute !important;
  inset: 0 !important;
  width: 100% !important;
  height: 100% !important;
  pointer-events: none !important;
  z-index: 60 !important;
  overflow: visible !important;
}

.hero .pdc-hero-layers-views .pdc-hero-layers,
.tickets-hero .pdc-hero-layers-views .pdc-hero-layers {
  position: absolute !important;
  top: 0 !important;
  bottom: 0 !important;
  right: auto !important;
  height: 100% !important;
  max-width: none !important;
  overflow: visible !important;
  pointer-events: none !important;
  z-index: 61 !important;
  will-change: transform !important;
}

.hero .pdc-hero-layers-views .pdc-hero-layer,
.tickets-hero .pdc-hero-layers-views .pdc-hero-layer {
  position: absolute !important;
  transform: none !important;
  pointer-events: auto !important;
}

.hero .pdc-hero-layers--desktop,
.tickets-hero .pdc-hero-layers--desktop {
  display: block !important;
  left: 50% !important;
  width: 1280px !important;
  transform: translateX(-50%) !important;
  transform-origin: top center !important;
}

.hero .pdc-hero-layers--tablet,
.hero .pdc-hero-layers--mobile,
.tickets-hero .pdc-hero-layers--tablet,
.tickets-hero .pdc-hero-layers--mobile {
  display: none !important;
}

@media (max-width: 900px) {
  .hero .pdc-hero-layers--desktop,
  .tickets-hero .pdc-hero-layers--desktop {
    display: none !important;
  }
  .hero .pdc-hero-layers--tablet,
  .tickets-hero .pdc-hero-layers--tablet {
    display: block !important;
    left: 50% !important;
    width: 768px !important;
    transform: translateX(-50%) !important;
    transform-origin: top center !important;
  }
  .hero .pdc-hero-layers--mobile,
  .tickets-hero .pdc-hero-layers--mobile {
    display: none !important;
  }
}

@media (max-width: 640px) {
  .hero .pdc-hero-layers--desktop,
  .hero .pdc-hero-layers--tablet,
  .tickets-hero .pdc-hero-layers--desktop,
  .tickets-hero .pdc-hero-layers--tablet {
    display: none !important;
  }
  .hero .pdc-hero-layers--mobile,
  .tickets-hero .pdc-hero-layers--mobile {
    display: block !important;
    left: 50% !important;
    width: 390px !important;
    transform: translateX(-50%) !important;
    transform-origin: top center !important;
  }
}

/* v2.5.55 - ajuste fino para teléfonos menores a 390px */
@media (max-width: 389px) {
  .hero .pdc-hero-layers--mobile,
  .tickets-hero .pdc-hero-layers--mobile {
    transform: translateX(-50%) scale(.96) !important;
    transform-origin: top center !important;
  }
}
@media (max-width: 374px) {
  .hero .pdc-hero-layers--mobile,
  .tickets-hero .pdc-hero-layers--mobile {
    transform: translateX(-50%) scale(.92) !important;
    transform-origin: top center !important;
  }
}


/* ============================================================
   v2.5.58 - Precisión editor/front: override final anti-desfase
   ============================================================ */
html body .hero .pdc-hero-layers-views,
html body .tickets-hero .pdc-hero-layers-views { position:absolute!important; inset:0!important; width:100%!important; height:100%!important; overflow:hidden!important; pointer-events:none!important; z-index:80!important; }
html body .hero .pdc-hero-layers-views .pdc-hero-layers,
html body .tickets-hero .pdc-hero-layers-views .pdc-hero-layers { position:absolute!important; top:0!important; bottom:auto!important; height:100%!important; max-width:none!important; margin:0!important; padding:0!important; overflow:visible!important; pointer-events:none!important; transform-origin:top center!important; zoom:1!important; }
html body .hero .pdc-hero-layers-views .pdc-hero-layers--desktop,
html body .tickets-hero .pdc-hero-layers-views .pdc-hero-layers--desktop { display:block!important; left:50%!important; width:1280px!important; transform:translateX(-50%)!important; }
html body .hero .pdc-hero-layers-views .pdc-hero-layers--tablet,
html body .hero .pdc-hero-layers-views .pdc-hero-layers--mobile,
html body .tickets-hero .pdc-hero-layers-views .pdc-hero-layers--tablet,
html body .tickets-hero .pdc-hero-layers-views .pdc-hero-layers--mobile { display:none!important; }
@media (max-width:900px){
  html body .hero .pdc-hero-layers-views .pdc-hero-layers--desktop,
  html body .tickets-hero .pdc-hero-layers-views .pdc-hero-layers--desktop { display:none!important; }
  html body .hero .pdc-hero-layers-views .pdc-hero-layers--tablet,
  html body .tickets-hero .pdc-hero-layers-views .pdc-hero-layers--tablet { display:block!important; left:50%!important; width:768px!important; transform:translateX(-50%)!important; }
}
@media (max-width:640px){
  html body .hero .pdc-hero-layers-views .pdc-hero-layers--desktop,
  html body .hero .pdc-hero-layers-views .pdc-hero-layers--tablet,
  html body .tickets-hero .pdc-hero-layers-views .pdc-hero-layers--desktop,
  html body .tickets-hero .pdc-hero-layers-views .pdc-hero-layers--tablet { display:none!important; }
  html body .hero .pdc-hero-layers-views .pdc-hero-layers--mobile,
  html body .tickets-hero .pdc-hero-layers-views .pdc-hero-layers--mobile { display:block!important; left:50%!important; width:390px!important; transform:translateX(-50%)!important; }
}
@media (max-width:389px), (max-width:374px){
  html body .hero .pdc-hero-layers-views .pdc-hero-layers--mobile,
  html body .tickets-hero .pdc-hero-layers-views .pdc-hero-layers--mobile { transform:translateX(-50%)!important; }
}
html body .hero .pdc-hero-layers-views .pdc-hero-layer,
html body .tickets-hero .pdc-hero-layers-views .pdc-hero-layer { position:absolute!important; transform:none!important; margin:0!important; box-sizing:border-box!important; pointer-events:auto!important; }
html body .hero .pdc-hero-layers-views .pdc-hero-layer-text,
html body .tickets-hero .pdc-hero-layers-views .pdc-hero-layer-text { display:block!important; padding:0!important; max-width:none!important; letter-spacing:normal!important; }
html body .hero .pdc-hero-layers-views .pdc-hero-button-layer,
html body .tickets-hero .pdc-hero-layers-views .pdc-hero-button-layer { display:inline-flex!important; align-items:center!important; justify-content:center!important; min-height:46px!important; padding:12px 24px!important; border-radius:50px!important; line-height:1.2!important; white-space:nowrap!important; bottom:auto!important; max-width:none!important; }
