/* SEB Entradas: usa las variables del tema si existen. */
.seb {
	--c-primary: var(--seb-morado, #582c83);
	--c-primary-2: var(--seb-morado-intenso, #5c068c);
	--c-gold: var(--seb-dorado, #ffc72c);
	--c-ink: var(--seb-tinta, #2d2926);
	--c-bg: var(--seb-marfil, #fbf8f2);
	--c-line: rgba(45, 41, 38, .12);
	--c-ok: #1f7a4d;
	--c-low: #b25e00;
	--radius: 14px;
	color: var(--c-ink);
	max-width: 980px;
	margin: 0 auto;
	padding-bottom: 110px;
}
.seb *, .seb *::before, .seb *::after { box-sizing: border-box; }

/* Aviso de apertura */
.seb-banner {
	display: grid; gap: .25rem; text-align: center;
	background: var(--c-primary); color: #fff;
	border-radius: var(--radius); padding: 1rem 1.25rem; margin-bottom: 1.5rem;
}
.seb-banner strong { color: var(--c-gold); font-size: 1.1rem; }
.seb-countdown { font-variant-numeric: tabular-nums; font-size: 1.35rem; font-weight: 700; }
.seb-banner em { font-size: .85rem; opacity: .85; }

/* Pasos */
.seb-steps { display: flex; gap: .5rem; list-style: none; padding: 0; margin: 0 0 1.5rem; counter-reset: s; }
.seb-steps li {
	flex: 1; display: flex; align-items: center; gap: .5rem; font-size: .9rem; font-weight: 600;
	color: rgba(45, 41, 38, .45); border-bottom: 3px solid var(--c-line); padding-bottom: .5rem;
}
.seb-steps li span {
	display: inline-grid; place-items: center; width: 1.6rem; height: 1.6rem; border-radius: 50%;
	background: var(--c-line); color: var(--c-ink); font-size: .8rem;
}
.seb-steps li.is-active { color: var(--c-primary); border-color: var(--c-primary); }
.seb-steps li.is-active span { background: var(--c-primary); color: #fff; }
.seb-steps li.is-done { color: var(--c-ink); border-color: var(--c-gold); }
.seb-steps li.is-done span { background: var(--c-gold); }

.seb-block { margin-bottom: 2rem; scroll-margin-top: 90px; }
.seb-h { font-size: 1.35rem; margin: 0 0 .75rem; color: var(--c-primary); }
.seb-h small { font-size: .95rem; color: var(--c-ink); font-weight: 500; }
.seb-help { font-size: .9rem; color: rgba(45, 41, 38, .7); margin: .25rem 0 1rem; }
.seb-loading { color: rgba(45, 41, 38, .6); }

/* Días */
.seb-days { display: grid; grid-template-columns: repeat(auto-fit, minmax(150px, 1fr)); gap: .9rem; }
.seb-day {
	display: grid; justify-items: center; gap: .1rem; cursor: pointer;
	background: #fff; border: 2px solid var(--c-line); border-radius: var(--radius);
	padding: 1rem .75rem; font: inherit; color: inherit; transition: transform .15s, border-color .15s, box-shadow .15s;
}
.seb-day:hover:not(:disabled):not(.is-selected) { transform: translateY(-2px); border-color: var(--c-primary); box-shadow: 0 8px 24px rgba(88, 44, 131, .15); }
.seb-day:focus-visible, .seb-time:focus-visible, .seb-stepper button:focus-visible, .seb-buy:focus-visible { outline: 3px solid var(--c-gold); outline-offset: 2px; }
.seb-day__weekday { font-size: .8rem; text-transform: uppercase; letter-spacing: .08em; font-weight: 700; color: var(--c-primary); }
.seb-day__number { font-size: 2.6rem; line-height: 1; font-weight: 800; }
.seb-day__month { font-size: .9rem; text-transform: capitalize; }
.seb-day__state { margin-top: .4rem; font-size: .78rem; font-weight: 700; padding: .2rem .6rem; border-radius: 99px; background: rgba(31, 122, 77, .1); color: var(--c-ok); }
.seb-day.is-low .seb-day__state { background: rgba(178, 94, 0, .12); color: var(--c-low); }
.seb-day.is-full { opacity: .5; cursor: not-allowed; }
.seb-day.is-full .seb-day__state { background: var(--c-line); color: var(--c-ink); }
.seb-day.is-selected { background: var(--c-primary); border-color: var(--c-primary); color: #fff; }
.seb-day.is-selected .seb-day__weekday { color: var(--c-gold); }
.seb-day.is-selected .seb-day__state { background: var(--c-gold); color: var(--c-ink); }

/* Horas */
.seb-part + .seb-part { margin-top: 1.25rem; }
.seb-part__title { font-size: .85rem; text-transform: uppercase; letter-spacing: .1em; margin: 0 0 .5rem; color: rgba(45, 41, 38, .6); }
.seb-times { display: grid; grid-template-columns: repeat(auto-fill, minmax(104px, 1fr)); gap: .6rem; }
.seb-time {
	display: grid; gap: .1rem; justify-items: center; cursor: pointer; min-height: 64px;
	background: #fff; border: 2px solid var(--c-line); border-radius: 12px; padding: .55rem .4rem; font: inherit; color: inherit;
	transition: border-color .15s, background .15s;
}
.seb-time:hover:not(:disabled):not(.is-selected) { border-color: var(--c-primary); }
.seb-time__hour { font-size: 1.15rem; font-weight: 800; font-variant-numeric: tabular-nums; }
.seb-time__state { font-size: .72rem; font-weight: 600; color: var(--c-ok); }
.seb-time.is-low .seb-time__state { color: var(--c-low); }
.seb-time.is-full, .seb-time.is-closed { cursor: not-allowed; background: #f3f1ee; color: rgba(45, 41, 38, .45); }
.seb-time.is-full .seb-time__hour, .seb-time.is-closed .seb-time__hour { text-decoration: line-through; }
.seb-time.is-full .seb-time__state, .seb-time.is-closed .seb-time__state { color: inherit; }
.seb-time.is-selected { background: var(--c-primary); border-color: var(--c-primary); color: #fff; }
.seb-time.is-selected .seb-time__state { color: var(--c-gold); }

/* Cantidades */
.seb-qty { background: #fff; border: 2px solid var(--c-line); border-radius: var(--radius); }
.seb-qty__row { display: flex; align-items: center; justify-content: space-between; gap: 1rem; padding: 1rem 1.25rem; }
.seb-qty__row + .seb-qty__row { border-top: 1px solid var(--c-line); }
.seb-qty__row strong { display: block; font-size: 1.05rem; }
.seb-qty__row span { font-size: .9rem; color: rgba(45, 41, 38, .7); }
.seb-stepper { display: flex; align-items: center; gap: .75rem; }
.seb-stepper button {
	width: 46px; height: 46px; border-radius: 50%; border: 2px solid var(--c-primary); background: #fff; color: var(--c-primary);
	font-size: 1.5rem; line-height: 1; cursor: pointer; display: grid; place-items: center; padding: 0;
}
.seb-stepper button:hover { background: var(--c-primary); color: #fff; }
.seb-stepper output { min-width: 2ch; text-align: center; font-size: 1.35rem; font-weight: 800; font-variant-numeric: tabular-nums; }

/* Resumen fijo */
.seb-summary {
	position: sticky; bottom: 0; z-index: 50; display: flex; align-items: center; justify-content: space-between; gap: 1rem;
	background: var(--c-ink); color: #fff; border-radius: var(--radius) var(--radius) 0 0; padding: .9rem 1.25rem;
	box-shadow: 0 -10px 30px rgba(0, 0, 0, .18);
}
.seb-summary__text { display: grid; gap: .1rem; }
.seb-summary__text span { font-size: .85rem; opacity: .85; }
.seb-summary__text strong { font-size: 1.5rem; color: var(--c-gold); font-variant-numeric: tabular-nums; }
.seb-buy {
	background: var(--c-gold); color: var(--c-ink); border: 0; border-radius: 99px; padding: .95rem 1.6rem;
	font: inherit; font-weight: 800; font-size: 1rem; cursor: pointer; white-space: nowrap; transition: transform .15s, opacity .15s;
}
.seb-buy:hover:not(:disabled) { transform: translateY(-1px); }
.seb-buy:disabled { opacity: .45; cursor: not-allowed; }
.seb-buy.is-loading { opacity: .8; cursor: progress; }
.seb-error { background: #fdecec; color: #8a1f1f; border-radius: 10px; padding: .75rem 1rem; font-weight: 600; margin-top: 1rem; }

/* Temporizador en el pago */
.seb-timer { background: var(--seb-morado, #582c83); color: #fff; border-radius: 12px; padding: .9rem 1.2rem; margin-bottom: 1.5rem; text-align: center; }
.seb-timer strong { color: var(--seb-dorado, #ffc72c); font-variant-numeric: tabular-nums; }
.seb-timer.is-expired { background: #8a1f1f; }

@media (max-width: 760px) {
	/* Carrusel de días: margen interior para que no se corten bordes ni sombras */
	.seb-days { grid-auto-flow: column; grid-auto-columns: 42%; grid-template-columns: none; overflow-x: auto; scroll-snap-type: x mandatory; padding: 6px 4px 14px; margin: -6px -4px 0; scroll-padding-inline: 4px; }
	.seb-day { scroll-snap-align: start; }
	.seb-steps li { font-size: .78rem; }
	.seb-summary { position: fixed; left: 0; right: 0; border-radius: 16px 16px 0 0; padding: .8rem 1rem calc(.8rem + env(safe-area-inset-bottom)); }
	.seb-buy { padding: .85rem 1.2rem; }
}
@media (prefers-reduced-motion: reduce) {
	.seb * { transition: none !important; scroll-behavior: auto !important; }
}

/* Pantalla de gracias + entrada con QR */
.seb-thanks { max-width: 760px; margin: 0 auto 2.5rem; text-align: center; }
.seb-thanks__title { font-family: var(--seb-font-display, serif); color: var(--seb-morado, #582c83); font-size: clamp(2.4rem, 6vw, 3.4rem); margin: 0 0 .5rem; }
.seb-thanks__pickup { font-size: 1.1rem; max-width: 40rem; margin: 0 auto 1.75rem; }
.seb-thanks__hint { font-size: .95rem; color: rgba(45, 41, 38, .75); margin-top: 1rem; }
.seb-ticket {
	display: flex; text-align: left; border-radius: 18px; overflow: hidden; box-shadow: 0 18px 50px rgba(36, 18, 58, .2);
	background: linear-gradient(120deg, var(--seb-morado-noche, #24123a), var(--seb-morado-intenso, #5c068c)); color: #fff;
}
.seb-ticket__main { flex: 1; padding: 1.6rem 1.8rem; }
.seb-ticket__event { font-family: var(--seb-font-display, serif); color: var(--seb-dorado, #ffc72c); font-size: 1.9rem; margin: 0 0 .75rem; line-height: 1; }
.seb-ticket__when { font-size: 1.25rem; font-weight: 800; margin: 0; }
.seb-ticket__count { margin: 0 0 .75rem; color: #e9d8ff; }
.seb-ticket__buyer { margin: .5rem 0 0; font-size: .9rem; opacity: .85; }
.seb-ticket__qr { background: #fff; color: var(--seb-tinta, #2d2926); padding: 1.1rem; display: grid; place-items: center; gap: .3rem; border-left: 3px dashed rgba(45, 41, 38, .25); }
.seb-ticket__qr svg { display: block; width: 170px; height: 170px; }
.seb-ticket__code { margin: 0; font-weight: 800; letter-spacing: .08em; font-size: .9rem; }
@media (max-width: 600px) {
	.seb-ticket { flex-direction: column; }
	.seb-ticket__qr { border-left: 0; border-top: 3px dashed rgba(45, 41, 38, .25); }
}
.woocommerce-order-received .woocommerce-order > p.woocommerce-thankyou-order-received:empty { display: none; }

/* En pantallas táctiles no hay "ratón encima": sin desplazamientos que se queden pegados */
@media (hover: none) {
	.seb-day:hover:not(:disabled):not(.is-selected) { transform: none; box-shadow: none; border-color: var(--c-line); }
	.seb-time:hover:not(:disabled):not(.is-selected) { border-color: var(--c-line); }
}

/* Aviso de modo prueba */
.seb-testbadge {
	position: fixed; z-index: 99999; left: 50%; translate: -50% 0; top: 0; max-width: min(96vw, 900px);
	background: #a12626; color: #fff; font-size: .82rem; line-height: 1.35; padding: .45rem .9rem; border-radius: 0 0 10px 10px; text-align: center;
}
.seb-testbadge a { color: #ffd; text-decoration: underline; }

/* Evita el zoom por doble toque en iPhone al pulsar varias veces + / − y demás botones */
.seb button, .seb [role="radio"], .seb-stepper button, .seb-buy, .seb-day, .seb-time { touch-action: manipulation; -webkit-tap-highlight-color: transparent; user-select: none; -webkit-user-select: none; }

/* ---------- Página de pago (móvil primero) ---------- */
.seb-testnote { background: #fff1f1; border: 1px solid #f3c2c2; color: #7a1f1f; border-radius: 12px; padding: .8rem 1rem; margin-bottom: 1rem; font-size: .92rem; line-height: 1.45; }
.seb-summarycard { background: #fff; border: 1px solid rgba(45, 41, 38, .12); border-radius: 16px; padding: 1.1rem 1.25rem; margin-bottom: 1.5rem; box-shadow: 0 10px 30px rgba(36, 18, 58, .08); }
.seb-summarycard header { display: flex; justify-content: space-between; align-items: baseline; margin-bottom: .6rem; }
.seb-summarycard header span { font-size: .8rem; font-weight: 800; letter-spacing: .12em; text-transform: uppercase; color: var(--seb-morado, #582c83); }
.seb-summarycard header a { font-weight: 700; font-size: .9rem; }
.seb-summarycard__line { padding: .6rem 0; border-top: 1px solid rgba(45, 41, 38, .1); }
.seb-summarycard__when { margin: 0 0 .35rem; font-size: 1.05rem; }
.seb-summarycard__row { display: flex; justify-content: space-between; margin: .15rem 0; color: rgba(45, 41, 38, .8); }
.seb-summarycard__total { display: flex; justify-content: space-between; align-items: baseline; margin: .5rem 0 0; padding-top: .7rem; border-top: 2px solid rgba(45, 41, 38, .12); font-weight: 700; }
.seb-summarycard__total strong { font-size: 1.5rem; color: var(--seb-morado, #582c83); }

/* ---------- Pantalla de redirección a Redsys ---------- */
body.woocommerce-order-pay .blockUI { display: none !important; }
body.seb-redirecting { overflow: hidden; }
.seb-redirect {
	position: fixed; inset: 0; z-index: 100000; display: grid; place-items: center; padding: 1.5rem;
	background: radial-gradient(ellipse at top, #5c068c, #24123a 70%); color: #fff; text-align: center;
}
.seb-redirect__box { max-width: 360px; display: grid; justify-items: center; gap: .6rem; }
.seb-redirect__logo { width: 64px; height: auto; margin-bottom: .5rem; }
.seb-redirect__spinner { width: 46px; height: 46px; border-radius: 50%; border: 4px solid rgba(255, 255, 255, .2); border-top-color: #ffc72c; animation: seb-spin .9s linear infinite; }
.seb-redirect.is-waiting .seb-redirect__spinner { animation-duration: 1.6s; opacity: .6; }
@keyframes seb-spin { to { transform: rotate(360deg); } }
.seb-redirect__title { font-family: var(--seb-font-display, serif); color: #ffc72c; font-size: 2.1rem; line-height: 1.05; margin: .5rem 0 0; }
.seb-redirect__text { margin: 0; color: rgba(255, 255, 255, .85); line-height: 1.5; }
.seb-redirect__total { margin: .25rem 0 0; color: rgba(255, 255, 255, .85); }
.seb-redirect__total strong { color: #fff; }
.seb-redirect__actions { display: grid; gap: .6rem; width: 100%; margin-top: 1rem; }
.seb-redirect__actions[hidden] { display: none; }
.seb-redirect__go { background: #ffc72c; color: #2d2926; border: 0; border-radius: 99px; padding: 1rem; font: inherit; font-weight: 800; font-size: 1.05rem; cursor: pointer; touch-action: manipulation; }
.seb-redirect__back { color: #fff; font-weight: 600; text-decoration: underline; padding: .5rem; }
@media (prefers-reduced-motion: reduce) { .seb-redirect__spinner { animation: none; border-top-color: #ffc72c; } }
.seb-redirect .seb-redirect__back, .seb-redirect .seb-redirect__back:visited, .seb-redirect .seb-redirect__back:hover { color: #fff !important; opacity: .9; }

/* Gracias: solo nuestra entrada (fuera el resumen genérico de WooCommerce) */
.seb-ticket-thanks .woocommerce-order-overview,
.seb-ticket-thanks .woocommerce-order-details,
.seb-ticket-thanks .woocommerce-customer-details,
.seb-ticket-thanks .woocommerce-thankyou-order-received,
.seb-ticket-thanks .woocommerce-notice--success { display: none !important; }
.seb-ticket__main .seb-ticket__when + .seb-ticket__count + .seb-ticket__when { margin-top: .9rem; padding-top: .9rem; border-top: 1px solid rgba(255, 255, 255, .15); }
.seb-thanks__meta { display: grid; grid-template-columns: repeat(4, 1fr); gap: .5rem; margin: 1.75rem 0 0; padding: 1rem; background: #fff; border: 1px solid rgba(45, 41, 38, .1); border-radius: 14px; text-align: left; }
.seb-thanks__meta div { min-width: 0; }
.seb-thanks__meta dt { font-size: .72rem; font-weight: 700; text-transform: uppercase; letter-spacing: .08em; color: rgba(45, 41, 38, .55); }
.seb-thanks__meta dd { margin: .15rem 0 0; font-weight: 700; overflow-wrap: anywhere; }
.seb-thanks__actions { margin: 1.5rem 0 0; }
.seb-thanks__btn { display: inline-block; padding: .85rem 1.6rem; border-radius: 99px; border: 2px solid var(--seb-morado, #582c83); color: var(--seb-morado, #582c83) !important; font-weight: 700; text-decoration: none; }
.seb-thanks__btn:hover { background: var(--seb-morado, #582c83); color: #fff !important; }
@media (max-width: 600px) {
	.seb-thanks__meta { grid-template-columns: 1fr 1fr; gap: .9rem; }
	.seb-thanks__pickup { font-size: 1rem; }
}
/* Pasos inactivos con contraste suficiente (WCAG AA) */
.seb-steps li { color: #6b6460; }
.seb-steps li span { background: #e7e3df; color: #3d3733; }
