/* ============================================================
   THEME: boletos_default — Azul Confianza
   MODULE: events
   Contrast ratios verified against WCAG AA (4.5:1 minimum)
   ============================================================ */
:root {
  --t-primary: #2563EB;
  --t-primary-dark: #1D4ED8;
  --t-primary-light: #DBEAFE;
  --t-primary-rgb: 37, 99, 235;
  --t-secondary: #1E3A8A;
  --t-secondary-light: #312E81;
  --t-accent: #FFF;
  --t-bg-page: #F9FAFB;
  --t-bg-surface: #FFF;
  --t-bg-surface-raised: #FFF;
  --t-bg-hero: #1E3A8A;
  --t-bg-section-alt: #F3F4F6;
  --t-bg-item-empty: #DBEAFE;
  --t-text-heading: #111827;
  --t-text-body: #374151;
  --t-text-muted: #6B7280;
  --t-text-inverse: #FFF;
  --t-text-accent: #2563EB;
  --t-text-price: #2563EB;
  --t-text-link: #2563EB;
  --t-text-link-hover: #1D4ED8;
  --t-border: #E5E7EB;
  --t-border-input: #D1D5DB;
  --t-border-focus: #2563EB;
  --t-border-error: #EF4444;
  --t-radius: 0.75rem;
  --t-radius-sm: 0.5rem;
  --t-radius-full: 9999px;
  --t-btn-primary-bg: #2563EB;
  --t-btn-primary-text: #FFF;
  --t-btn-primary-hover: #1D4ED8;
  --t-btn-secondary-bg: transparent;
  --t-btn-secondary-text: #2563EB;
  --t-btn-secondary-border: #2563EB;
  --t-btn-secondary-hover-bg: #DBEAFE;
  --t-btn-danger-bg: #EF4444;
  --t-btn-danger-text: #FFF;
  --t-btn-disabled-bg: #D1D5DB;
  --t-btn-disabled-text: #9CA3AF;
  --t-nav-bg: #1E3A8A;
  --t-nav-text: #F9FAFB;
  --t-nav-link-hover: rgb(255 255 255 / 10%);
  --t-nav-cta-bg: #2563EB;
  --t-nav-cta-text: #FFF;
  --t-badge-bg: #DBEAFE;
  --t-badge-text: #1D4ED8;
  --t-badge-success-bg: #D1FAE5;
  --t-badge-success-text: #065F46;
  --t-badge-warning-bg: #FEF3C7;
  --t-badge-warning-text: #92400E;
  --t-badge-danger-bg: #FEE2E2;
  --t-badge-danger-text: #991B1B;
  --t-badge-neutral-bg: #F3F4F6;
  --t-badge-neutral-text: #374151;
  --t-input-bg: #FFF;
  --t-input-text: #111827;
  --t-input-placeholder: #9CA3AF;
  --t-label-text: #374151;
  --t-hint-text: #6B7280;
  --t-error-text: #DC2626;
  --t-form-section-bg: #FFF;
  --t-alert-info-bg: #EFF6FF;
  --t-alert-info-text: #1E40AF;
  --t-alert-info-border: #BFDBFE;
  --t-alert-success-bg: #ECFDF5;
  --t-alert-success-text: #065F46;
  --t-alert-success-border: #A7F3D0;
  --t-alert-warning-bg: #FFFBEB;
  --t-alert-warning-text: #92400E;
  --t-alert-warning-border: #FDE68A;
  --t-alert-error-bg: #FEF2F2;
  --t-alert-error-text: #991B1B;
  --t-alert-error-border: #FECACA;
  --t-cart-header-bg: #1E3A8A;
  --t-cart-header-text: #FFF;
  --t-cart-summary-bg: #FFF;
  --t-cart-total-text: #2563EB;
  --t-coupon-bg: #DBEAFE;
  --t-coupon-text: #1D4ED8;
  --t-step-active-bg: #2563EB;
  --t-step-active-text: #FFF;
  --t-step-done-bg: #1D4ED8;
  --t-step-done-text: #FFF;
  --t-step-pending-bg: #E5E7EB;
  --t-step-pending-text: #6B7280;
  --t-step-line: #E5E7EB;
  --t-footer-bg: #1E3A8A;
  --t-footer-text: #E5E7EB;
  --t-footer-link: #E5E7EB;
  --t-footer-link-hover: #FFF;
  --t-footer-divider: #374151;
  --t-empty-icon-bg: #DBEAFE;
  --t-empty-icon-text: #2563EB;
}

.theme-page { background-color: var(--t-bg-page); min-height: 100vh; }
.theme-surface { background-color: var(--t-bg-surface); }
.theme-surface-raised { background-color: var(--t-bg-surface-raised); box-shadow: 0 4px 6px -1px rgb(0 0 0 / 10%), 0 2px 4px -2px rgb(0 0 0 / 10%); }
.theme-hero { background-color: var(--t-bg-hero); color: var(--t-text-inverse); }
.theme-section-alt { background-color: var(--t-bg-section-alt); }
.theme-divider { border-color: var(--t-border); }
.theme-heading { color: var(--t-text-heading); }
.theme-subheading { color: var(--t-text-heading); }
.theme-body { color: var(--t-text-body); }
.theme-muted { color: var(--t-text-muted); }
.theme-inverse-text { color: var(--t-text-inverse); }
.theme-link { color: var(--t-text-link); text-decoration: none; }
.theme-link:hover { color: var(--t-text-link-hover); text-decoration: underline; }
.theme-price { color: var(--t-text-price); font-weight: 700; }
.theme-accent-text { color: var(--t-text-accent); }

.theme-nav,
.theme-header { background-color: var(--t-nav-bg); color: var(--t-nav-text); box-shadow: 0 1px 0 0 rgb(0 0 0 / 6%); }
.theme-nav-link { color: var(--t-nav-text); transition: background-color 0.15s; border: none; background: transparent; border-radius: var(--t-radius-sm); padding: 0.5rem 1rem; text-decoration: none; font-size: 0.9375rem; }
.theme-nav-link:hover { background-color: var(--t-nav-link-hover); }
.theme-nav-link-active { background-color: var(--t-nav-link-hover); font-weight: 600; }
.theme-nav-cta { background-color: var(--t-nav-cta-bg); color: var(--t-nav-cta-text); border-radius: var(--t-radius-sm); padding: 0.5rem 1rem; font-weight: 600; text-decoration: none; display: inline-flex; align-items: center; }
.theme-nav-cta:hover { opacity: 0.95; color: var(--t-nav-cta-text); }
.theme-breadcrumb { color: var(--t-text-muted); font-size: 0.875rem; }
.theme-btn-primary { display: inline-flex; align-items: center; justify-content: center; background-color: var(--t-btn-primary-bg); color: var(--t-btn-primary-text); border: none; border-radius: var(--t-radius-sm); padding: 0.625rem 1.5rem; font-weight: 600; cursor: pointer; transition: background-color 0.15s ease, transform 0.1s ease; text-decoration: none; }
.theme-btn-primary:hover { background-color: var(--t-btn-primary-hover); color: var(--t-btn-primary-text); }
.theme-btn-primary:active { transform: scale(0.98); }

/* Event hero primary CTA: use light button on dark hero */
.theme-hero-cta {
  background-color: #FFF;
  color: var(--t-primary);
  box-shadow: 0 10px 20px rgb(0 0 0 / 35%);
}

.theme-hero-cta:hover {
  background-color: #F9FAFB;
  color: var(--t-primary-dark);
}

/* Event hero secondary CTA (\"Agregar al calendario\") */
.theme-hero-secondary-cta {
  background-color: rgb(255 255 255 / 92%);
  color: var(--t-primary-dark);
  border: 1.5px solid rgb(255 255 255 / 95%);
  box-shadow: 0 8px 18px rgb(15 23 42 / 45%);
}

.theme-hero-secondary-cta:hover {
  background-color: #FFF;
  color: var(--t-primary);
  border-color: #FFF;
}
.theme-btn-secondary { display: inline-flex; align-items: center; justify-content: center; background-color: var(--t-btn-secondary-bg); color: var(--t-btn-secondary-text); border: 1.5px solid var(--t-btn-secondary-border); border-radius: var(--t-radius-sm); padding: 0.625rem 1.5rem; font-weight: 600; cursor: pointer; transition: background-color 0.15s ease; text-decoration: none; }
.theme-btn-secondary:hover { background-color: var(--t-btn-secondary-hover-bg); color: var(--t-btn-secondary-text); }
.theme-btn-danger { display: inline-flex; align-items: center; justify-content: center; background-color: var(--t-btn-danger-bg); color: var(--t-btn-danger-text); border: none; border-radius: var(--t-radius-sm); padding: 0.625rem 1.5rem; font-weight: 600; cursor: pointer; text-decoration: none; }
.theme-btn-disabled { background-color: var(--t-btn-disabled-bg) !important; color: var(--t-btn-disabled-text) !important; cursor: not-allowed; pointer-events: none; }
.theme-card { background-color: var(--t-bg-surface); border: 1px solid var(--t-border); border-radius: var(--t-radius); overflow: hidden; }
.theme-card-hover { transition: transform 0.2s ease, box-shadow 0.2s ease; }
.theme-card-hover:hover { transform: translateY(-2px); box-shadow: 0 8px 25px -5px rgb(0 0 0 / 15%); }
.theme-card-selected { border-color: var(--t-primary); box-shadow: 0 0 0 2px rgba(var(--t-primary-rgb), 0.2); }
.theme-item-name { color: var(--t-text-heading); font-weight: 700; }
.theme-item-price { color: var(--t-text-price); font-weight: 700; }
.theme-item-meta { color: var(--t-text-muted); font-size: 0.875rem; }
.theme-item-tag { background-color: var(--t-badge-bg); color: var(--t-badge-text); border-radius: var(--t-radius-full); padding: 0.125rem 0.625rem; font-size: 0.75rem; font-weight: 600; }
.theme-item-image-bg { background-color: var(--t-bg-item-empty); }
.theme-badge { background-color: var(--t-badge-bg); color: var(--t-badge-text); border-radius: var(--t-radius-full); padding: 0.2rem 0.7rem; font-size: 0.75rem; font-weight: 600; }
.theme-badge-success { background-color: var(--t-badge-success-bg); color: var(--t-badge-success-text); border-radius: var(--t-radius-full); padding: 0.2rem 0.7rem; font-size: 0.75rem; font-weight: 600; }
.theme-badge-warning { background-color: var(--t-badge-warning-bg); color: var(--t-badge-warning-text); border-radius: var(--t-radius-full); padding: 0.2rem 0.7rem; font-size: 0.75rem; font-weight: 600; }
.theme-badge-danger { background-color: var(--t-badge-danger-bg); color: var(--t-badge-danger-text); border-radius: var(--t-radius-full); padding: 0.2rem 0.7rem; font-size: 0.75rem; font-weight: 600; }
.theme-badge-neutral { background-color: var(--t-badge-neutral-bg); color: var(--t-badge-neutral-text); border-radius: var(--t-radius-full); padding: 0.2rem 0.7rem; font-size: 0.75rem; font-weight: 600; }
.theme-tag { background-color: var(--t-badge-bg); color: var(--t-badge-text); border-radius: var(--t-radius-full); padding: 0.25rem 0.875rem; font-size: 0.875rem; font-weight: 500; }
.theme-form-label { color: var(--t-label-text); font-size: 0.875rem; font-weight: 500; }
.theme-input { background-color: var(--t-input-bg); color: var(--t-input-text); border: 1.5px solid var(--t-border-input); border-radius: var(--t-radius-sm); padding: 0.5rem 0.75rem; width: 100%; transition: border-color 0.15s; }
.theme-input::placeholder { color: var(--t-input-placeholder); }
.theme-input:focus { outline: none; border-color: var(--t-border-focus); box-shadow: 0 0 0 3px rgba(var(--t-primary-rgb), 0.15); }
.theme-input-error { border-color: var(--t-border-error) !important; }
.theme-form-hint { color: var(--t-hint-text); font-size: 0.8125rem; margin-top: 0.25rem; }
.theme-form-error { color: var(--t-error-text); font-size: 0.8125rem; margin-top: 0.25rem; }
.theme-form-section { background-color: var(--t-form-section-bg); border: 1px solid var(--t-border); border-radius: var(--t-radius); padding: 1.5rem; }
.theme-fieldset-legend { color: var(--t-text-heading); font-size: 1rem; font-weight: 600; margin-bottom: 0.75rem; }
.theme-alert-info { background-color: var(--t-alert-info-bg); color: var(--t-alert-info-text); border: 1px solid var(--t-alert-info-border); border-radius: var(--t-radius); padding: 1rem; }
.theme-alert-success { background-color: var(--t-alert-success-bg); color: var(--t-alert-success-text); border: 1px solid var(--t-alert-success-border); border-radius: var(--t-radius); padding: 1rem; }
.theme-alert-warning { background-color: var(--t-alert-warning-bg); color: var(--t-alert-warning-text); border: 1px solid var(--t-alert-warning-border); border-radius: var(--t-radius); padding: 1rem; }
.theme-alert-error { background-color: var(--t-alert-error-bg); color: var(--t-alert-error-text); border: 1px solid var(--t-alert-error-border); border-radius: var(--t-radius); padding: 1rem; }
.theme-cart-header { background-color: var(--t-cart-header-bg); color: var(--t-cart-header-text); }
.theme-cart-item { border-bottom: 1px solid var(--t-border); }
.theme-cart-summary { background-color: var(--t-cart-summary-bg); border: 1px solid var(--t-border); border-radius: var(--t-radius); padding: 1.5rem; }
.theme-cart-total { color: var(--t-cart-total-text); font-weight: 700; font-size: 1.125rem; }
.theme-coupon-badge { background-color: var(--t-coupon-bg); color: var(--t-coupon-text); border-radius: var(--t-radius-sm); padding: 0.25rem 0.625rem; font-size: 0.875rem; font-weight: 500; }
.theme-step-active { background-color: var(--t-step-active-bg); color: var(--t-step-active-text); border-radius: var(--t-radius-full); width: 2rem; height: 2rem; display: inline-flex; align-items: center; justify-content: center; font-size: 0.875rem; font-weight: 600; }
.theme-step-completed { background-color: var(--t-step-done-bg); color: var(--t-step-done-text); border-radius: var(--t-radius-full); width: 2rem; height: 2rem; display: inline-flex; align-items: center; justify-content: center; font-size: 0.875rem; }
.theme-step-pending { background-color: var(--t-step-pending-bg); color: var(--t-step-pending-text); border-radius: var(--t-radius-full); width: 2rem; height: 2rem; display: inline-flex; align-items: center; justify-content: center; font-size: 0.875rem; }
.theme-step-line { background-color: var(--t-step-line); height: 2px; flex: 1; }
.theme-empty-icon { background-color: var(--t-empty-icon-bg); border-radius: var(--t-radius-full); display: inline-flex; align-items: center; justify-content: center; width: 5rem; height: 5rem; color: var(--t-empty-icon-text); font-size: 2rem; }
.theme-empty-heading { color: var(--t-text-heading); font-size: 1.25rem; font-weight: 700; margin-bottom: 0.5rem; }
.theme-empty-body { color: var(--t-text-muted); font-size: 0.9375rem; margin-top: 0.5rem; }
.theme-footer { background-color: var(--t-footer-bg); color: var(--t-footer-text); }
.theme-footer-link { color: var(--t-footer-link); text-decoration: none; }
.theme-footer-link:hover { color: var(--t-footer-link-hover); text-decoration: underline; }
.theme-footer-divider { border-color: var(--t-footer-divider); }
.theme-footer .theme-container { padding-top: 2.5rem; padding-bottom: 2.5rem; }
.theme-footer-inner { display: flex; flex-direction: column; align-items: center; text-align: center; }
.theme-footer-nav { display: flex; flex-wrap: wrap; gap: 1rem; align-items: center; justify-content: center; }
.theme-footer-social { display: flex; flex-wrap: wrap; gap: 1rem; align-items: center; justify-content: center; margin-top: 1rem; }
.theme-footer-social-link { color: var(--t-footer-link); text-decoration: none; font-size: 1.25rem; }
.theme-footer-social-link:hover { color: var(--t-footer-link-hover); text-decoration: underline; }
.theme-footer-copy { margin-top: 1rem; padding-top: 1rem; border-top: 1px solid var(--t-footer-divider); font-size: 0.875rem; color: inherit; }
.theme-footer-powered { margin-top: 0.75rem; font-size: 0.8125rem; color: inherit; opacity: 0.9; }
.theme-footer-powered a { color: var(--t-footer-link); text-decoration: none; }
.theme-footer-powered a:hover { color: var(--t-footer-link-hover); text-decoration: underline; }
.theme-container { max-width: 80rem; margin-left: auto; margin-right: auto; padding: 0 1rem; }

.theme-nav .theme-container,
.theme-header .theme-container { display: flex; align-items: center; justify-content: space-between; padding-top: 1.25rem; padding-bottom: 1.25rem; }
.theme-header-brand { display: inline-flex; align-items: center; gap: 0.75rem; text-decoration: none; color: inherit; flex-shrink: 0; }

.theme-nav .theme-heading,
.theme-header .theme-heading { color: inherit; font-size: 1.125rem; font-weight: 700; }
.theme-header-logo { width: 4.5rem; height: 4.5rem; border-radius: 50%; object-fit: cover; flex-shrink: 0; }
.theme-nav-desktop { display: flex; align-items: center; gap: 0.75rem; }
.theme-nav-welcome { position: relative; }
.theme-nav-welcome-menu { position: absolute; top: 100%; right: 0; margin-top: 0.25rem; min-width: 10rem; background-color: var(--t-bg-surface); color: var(--t-text-heading); border: 1px solid var(--t-border); border-radius: var(--t-radius-sm); box-shadow: 0 4px 12px rgb(0 0 0 / 15%); z-index: 30; padding: 0.5rem 0; }
.theme-nav-welcome-menu a { display: block; padding: 0.5rem 1rem; color: var(--t-text-body); text-decoration: none; font-size: 0.9375rem; }
.theme-nav-welcome-menu a:hover { background-color: var(--t-bg-section-alt); color: var(--t-text-heading); }
.theme-nav-burger { display: none; background: none; border: none; color: inherit; padding: 0.5rem; cursor: pointer; font-size: 1.25rem; }
.theme-nav-drawer { position: fixed; top: 0; right: 0; width: 280px; max-width: 85vw; height: 100%; z-index: 50; transition: transform 0.25s ease; transform: translateX(100%); overflow-y: auto; background-color: var(--t-nav-bg); color: var(--t-nav-text); padding: 1.5rem 1rem; }
.theme-nav-drawer.is-open { transform: translateX(0); }
.theme-nav-drawer a { color: var(--t-nav-text); text-decoration: none; display: block; padding: 0.75rem 0; font-size: 0.9375rem; border-bottom: 1px solid var(--t-footer-divider); }
.theme-nav-drawer a:hover { opacity: 0.9; }
.theme-nav-drawer-overlay { position: fixed; inset: 0; background: rgb(0 0 0 / 40%); z-index: 40; opacity: 0; pointer-events: none; transition: opacity 0.2s ease; }
.theme-nav-drawer-overlay.is-visible { opacity: 1; pointer-events: auto; }

/* Events checkout hero (default theme) */
.event-checkout-hero-bg {
  background-image: linear-gradient(to bottom right, #DBEAFE, #BFDBFE, #E0F2FE);
}


/* Ticket quantity input – hide native arrows */
.ticket-quantity::-webkit-outer-spin-button,
.ticket-quantity::-webkit-inner-spin-button {
  appearance: none;
  margin: 0;
}

.ticket-quantity[type="number"] {
  appearance: textfield;
}


@media (width <= 767px) {
  .theme-nav-desktop { display: none !important; }
  .theme-nav-burger { display: block; }
}

@media (width >= 768px) {
  .theme-nav-drawer { display: none !important; }
  .theme-nav-drawer-overlay { display: none !important; }
}
