@import url('https://fonts.googleapis.com/css2?family=Playfair+Display:wght@600;700&family=Inter:wght@400;500;600;700&display=swap');

.ettix-event-wrap {
    --ettix-primary: #1F2937;
    --ettix-accent: #B08D57;
    --ettix-ink: #1E2422;
    --ettix-muted: #6B7280;
    --ettix-line: #E7E4DC;
    --ettix-surface: #FFFFFF;
    --ettix-tint: #F7F6F2;

    max-width: 720px;
    margin: 0 auto;
    font-family: 'Inter', -apple-system, sans-serif;
    color: var(--ettix-ink);
    line-height: 1.5;
}
.ettix-event-wrap * { box-sizing: border-box; }

/* ---------- Banner con imagen destacada del evento ---------- */
.ettix-banner {
    border-radius: 20px;
    overflow: hidden;
    margin-bottom: 20px;
    line-height: 0;
}
.ettix-banner img {
    width: 100%;
    height: auto;
    max-height: 420px;
    object-fit: cover;
    display: block;
}

/* ---------- Encabezado del evento ---------- */
.ettix-header--hero {
    background: var(--ettix-primary);
    background: linear-gradient(135deg, var(--ettix-primary), var(--ettix-primary));
    background: linear-gradient(135deg, var(--ettix-primary), color-mix(in srgb, var(--ettix-primary) 75%, black));
    color: #F7F5F0;
    border-radius: 20px;
    padding: 44px 32px;
    text-align: center;
    margin-bottom: 24px;
}
.ettix-header--hero .ettix-hero-title { color: #FFFFFF; }
.ettix-header--hero .ettix-eyebrow { color: color-mix(in srgb, var(--ettix-accent) 70%, #fff); }
.ettix-header--hero .ettix-hero-desc { color: rgba(247,245,240,0.85); }

.ettix-header--with-banner {
    text-align: center;
    padding: 4px 8px 28px;
    margin-bottom: 4px;
}
.ettix-header--with-banner .ettix-hero-title { color: var(--ettix-primary); }
.ettix-header--with-banner .ettix-eyebrow { color: var(--ettix-accent); }
.ettix-header--with-banner .ettix-hero-desc { color: var(--ettix-muted); }

.ettix-eyebrow {
    text-transform: uppercase;
    letter-spacing: 1.5px;
    font-size: 12.5px;
    font-weight: 600;
    margin: 0 0 14px;
}
.ettix-hero-title {
    font-family: 'Playfair Display', Georgia, serif;
    font-weight: 700;
    font-size: clamp(28px, 5vw, 40px);
    line-height: 1.15;
    margin: 0 0 10px;
}
.ettix-header--with-banner .ettix-hero-title { margin-bottom: 14px; }
.ettix-hero-rule {
    width: 56px;
    height: 3px;
    background: var(--ettix-accent);
    margin: 0 auto 18px;
    border-radius: 2px;
}
.ettix-hero-desc {
    font-size: 15px;
    max-width: 480px;
    margin: 0 auto;
}
.ettix-hero-desc p { margin: 0 0 8px; }

/* ---------- Tarjeta del formulario ---------- */
.ettix-order-form {
    background: var(--ettix-surface);
    border: 1px solid var(--ettix-line);
    border-radius: 20px;
    padding: 32px;
    box-shadow: 0 12px 32px rgba(20,20,20,0.06);
}
.ettix-section-label {
    font-family: 'Playfair Display', Georgia, serif;
    font-weight: 700;
    font-size: 20px;
    color: var(--ettix-ink);
    padding-left: 14px;
    border-left: 4px solid var(--ettix-accent);
    margin: 0 0 18px;
}
.ettix-order-form .ettix-section-label:not(:first-child) { margin-top: 30px; }

/* ---------- Boletos estilo "ticket stub" ---------- */
.ettix-ticket-list { display: flex; flex-direction: column; gap: 12px; }
.ettix-ticket-card {
    display: flex;
    align-items: stretch;
    background: var(--ettix-tint);
    border: 1px solid var(--ettix-line);
    border-radius: 14px;
    overflow: hidden;
    transition: border-color .15s ease;
}
.ettix-ticket-card:focus-within { border-color: var(--ettix-accent); }
.ettix-ticket-info {
    flex: 1;
    padding: 18px 20px;
    display: flex;
    flex-direction: column;
    gap: 4px;
    justify-content: center;
}
.ettix-ticket-name {
    font-family: 'Playfair Display', Georgia, serif;
    font-weight: 700;
    font-size: 17px;
}
.ettix-ticket-price {
    font-weight: 600;
    color: var(--ettix-accent);
    font-size: 15px;
}
.ettix-ticket-avail {
    font-size: 12px;
    color: var(--ettix-muted);
}
.ettix-ticket-avail.is-sold-out {
    color: #B3261E;
    font-weight: 600;
}
.ettix-ticket-divider {
    position: relative;
    width: 0;
    border-left: 2px dashed var(--ettix-line);
    margin: 10px 0;
}
.ettix-ticket-divider::before, .ettix-ticket-divider::after {
    content: '';
    position: absolute;
    width: 14px;
    height: 14px;
    background: var(--ettix-surface);
    border: 1px solid var(--ettix-line);
    border-radius: 50%;
    left: -8px;
}
.ettix-ticket-divider::before { top: -18px; }
.ettix-ticket-divider::after { bottom: -18px; }
.ettix-ticket-qty {
    padding: 16px 22px;
    display: flex;
    flex-direction: column;
    align-items: center;
    justify-content: center;
    gap: 6px;
    min-width: 110px;
}
.ettix-qty-label {
    font-size: 11px;
    text-transform: uppercase;
    letter-spacing: 1px;
    color: var(--ettix-muted);
}
.ettix-qty {
    width: 76px;
    text-align: center;
    font-weight: 700;
    font-size: 16px;
    padding: 8px 6px;
    border-radius: 999px;
    border: 1.5px solid var(--ettix-line);
    background: var(--ettix-surface);
}
.ettix-qty:focus {
    outline: none;
    border-color: var(--ettix-accent);
    box-shadow: 0 0 0 3px color-mix(in srgb, var(--ettix-accent) 20%, transparent);
}

/* ---------- Datos del comprador / asistentes ---------- */
.ettix-buyer-card, .ettix-attendee-block {
    background: var(--ettix-tint);
    border: 1px solid var(--ettix-line);
    border-radius: 14px;
    padding: 20px;
    margin-bottom: 14px;
}
.ettix-attendee-block { border-left: 3px solid var(--ettix-accent); }
.ettix-attendee-block > p:first-child, .ettix-attendee-block > strong {
    display: block;
    font-family: 'Playfair Display', Georgia, serif;
    font-weight: 700;
    font-size: 14px;
    margin: 0 0 10px;
}

.ettix-event-wrap input[type="text"],
.ettix-event-wrap input[type="email"],
.ettix-event-wrap input[type="tel"],
.ettix-event-wrap select,
.ettix-event-wrap textarea {
    display: block;
    width: 100%;
    padding: 12px 14px;
    border-radius: 10px;
    border: 1.5px solid var(--ettix-line);
    background: var(--ettix-surface);
    font-family: inherit;
    font-size: 14.5px;
    color: var(--ettix-ink);
    margin-top: 8px;
    transition: border-color .15s ease, box-shadow .15s ease;
}
.ettix-event-wrap input:focus,
.ettix-event-wrap select:focus,
.ettix-event-wrap textarea:focus {
    outline: none;
    border-color: var(--ettix-accent);
    box-shadow: 0 0 0 3px color-mix(in srgb, var(--ettix-accent) 18%, transparent);
}
.ettix-event-wrap input[type="checkbox"] { width: auto; display: inline-block; margin-top: 4px; }
.ettix-buyer-card input:first-child { margin-top: 0; }
.ettix-custom-label {
    display: block;
    margin-top: 12px;
    font-size: 12.5px;
    font-weight: 600;
    color: var(--ettix-muted);
    text-transform: uppercase;
    letter-spacing: .4px;
}

/* ---------- Total y botón ---------- */
.ettix-total-bar {
    display: flex;
    align-items: baseline;
    justify-content: space-between;
    background: var(--ettix-tint);
    border-radius: 12px;
    padding: 16px 20px;
    margin: 22px 0 18px;
}
.ettix-total-label {
    text-transform: uppercase;
    letter-spacing: 1px;
    font-size: 12.5px;
    font-weight: 700;
    color: var(--ettix-muted);
}
.ettix-total-amount {
    font-family: 'Playfair Display', Georgia, serif;
    font-weight: 700;
    font-size: 26px;
    color: var(--ettix-primary);
}
.ettix-btn, .ettix-submit-btn {
    display: block;
    width: 100%;
    background: var(--ettix-accent);
    color: #fff;
    border: none;
    padding: 15px 20px;
    border-radius: 12px;
    cursor: pointer;
    font-weight: 700;
    font-size: 15px;
    text-transform: uppercase;
    letter-spacing: .6px;
    text-decoration: none;
    text-align: center;
    transition: filter .15s ease, transform .1s ease;
}
.ettix-btn:hover, .ettix-submit-btn:hover:not(:disabled) { filter: brightness(0.92); color: #fff; }
.ettix-submit-btn:disabled { opacity: .6; cursor: not-allowed; }
.ettix-form-message { margin-top: 12px; font-size: 14px; text-align: center; }

/* ---------- Estado "gracias" ---------- */
.ettix-thankyou {
    background: var(--ettix-tint);
    border: 1px solid var(--ettix-line);
    border-radius: 20px;
    padding: 44px 30px;
    text-align: center;
}
.ettix-thankyou-icon {
    width: 56px; height: 56px;
    line-height: 56px;
    border-radius: 50%;
    background: var(--ettix-accent);
    color: #fff;
    font-size: 26px;
    font-weight: 700;
    margin: 0 auto 16px;
}
.ettix-thankyou h3 {
    font-family: 'Playfair Display', Georgia, serif;
    font-size: 22px;
    margin: 0 0 8px;
}
.ettix-thankyou p { color: var(--ettix-muted); max-width: 420px; margin: 0 auto; }

.ettix-empty { text-align: center; color: var(--ettix-muted); padding: 30px 0; }

/* ---------- Listado de eventos ---------- */
.ettix-event-list { display: grid; grid-template-columns: repeat(auto-fill, minmax(260px, 1fr)); gap: 20px; }
.ettix-event-card { border: 1px solid #eee; border-radius: 14px; padding: 16px; }
.ettix-event-card img { width: 100%; border-radius: 10px; }

/* ---------- Responsive ---------- */
@media (max-width: 560px) {
    .ettix-header--hero { padding: 32px 20px; }
    .ettix-banner img { max-height: 260px; }
    .ettix-order-form { padding: 22px; }
    .ettix-ticket-card { flex-direction: column; }
    .ettix-ticket-divider { display: none; }
    .ettix-ticket-qty { flex-direction: row; justify-content: space-between; padding: 14px 20px 18px; }
}

/* ---------- Escáner de check-in (sin variables de evento) ---------- */
.ettix-scanner-wrap { max-width: 500px; margin: 0 auto; font-family: -apple-system, Arial, sans-serif; }
.ettix-scanner-tabs { margin: 15px 0; }
.ettix-tab-btn { background: #eee; border: none; padding: 10px 15px; cursor: pointer; border-radius: 6px 6px 0 0; }
.ettix-tab-btn.active { background: #2271b1; color: #fff; }
#ettix-manual-search { width: 100%; padding: 10px; box-sizing: border-box; margin-bottom: 10px; }
.ettix-manual-row { padding: 10px; border-bottom: 1px solid #eee; }
.ettix-result { padding: 15px; border-radius: 8px; margin-top: 15px; font-size: 18px; text-align: center; }
.ettix-valid { background: #eafaf1; border: 2px solid #34c759; }
.ettix-invalid { background: #fdecea; border: 2px solid #e53935; }
