/* Wedge – billetterie. Couleurs et typographie héritées du thème via les variables --wb-*. */
.wb {
	--wb-ink: var(--wp--preset--color--ink, #141114);
	--wb-muted: var(--wp--preset--color--muted, #5E5559);
	--wb-bg: var(--wp--preset--color--base, #FFFFFF);
	--wb-soft: var(--wp--preset--color--soft, #F6F1EE);
	--wb-line: var(--wp--preset--color--line, #E2DAD6);
	--wb-accent: var(--wp--preset--color--accent, #B0085C);
	--wb-accent-ink: #FFFFFF;
	--wb-ok: #0A6B2C;
	--wb-bad: #A11C1E;
	--wb-radius: 14px;
	--wb-field: #FFFFFF;
	--wb-field-line: #B9AFAA;
	--wb-warn: #7A4B00;
	color: var(--wb-ink);
	font-size: 16px;
	line-height: 1.5;
	max-width: 760px;
	margin: 0 auto;
}
.wb *, .wb *::before, .wb *::after { box-sizing: border-box; }
.wb-hp { position: absolute; left: -9999px; width: 1px; height: 1px; overflow: hidden; }
.wb-intro { margin-bottom: 24px; }
.wb-step { border: 1px solid var(--wb-line); border-radius: var(--wb-radius); padding: 20px clamp(16px, 3vw, 28px) 24px; margin: 0 0 20px; background: var(--wb-bg); min-width: 0; }
.wb-step > legend { font-size: 1.15rem; font-weight: 700; padding: 0 8px; margin-left: -8px; display: flex; align-items: center; gap: 10px; }
.wb-step-n { display: inline-grid; place-items: center; width: 30px; height: 30px; border-radius: 50%; background: var(--wb-ink); color: var(--wb-bg); font-size: 0.9rem; }
.wb-help { display: block; color: var(--wb-muted); font-size: 0.875rem; margin-top: 4px; }
.wb-grid { display: grid; grid-template-columns: repeat(auto-fit, minmax(220px, 1fr)); gap: 0 16px; }
.wb-field { margin: 0 0 16px; display: flex; flex-direction: column; gap: 6px; }
.wb-field > label, .wb-choices > legend { font-weight: 600; font-size: 0.95rem; }
.wb input[type="text"], .wb input[type="email"], .wb input[type="tel"], .wb input[type="date"], .wb input[type="number"], .wb input:not([type]), .wb select, .wb textarea {
	width: 100%; min-height: 48px; padding: 10px 14px; border: 1px solid var(--wb-field-line); border-radius: 10px; background: var(--wb-field); color: var(--wb-ink); font: inherit;
}
.wb textarea { min-height: 96px; }
.wb input:focus-visible, .wb select:focus-visible, .wb textarea:focus-visible, .wb button:focus-visible, .wb a:focus-visible, .wb-tier:focus-within { outline: 3px solid var(--wb-accent); outline-offset: 2px; }
.wb-choices { border: 0; padding: 0; }
.wb-choice, .wb-consent label { display: flex; gap: 10px; align-items: flex-start; padding: 6px 0; cursor: pointer; }
.wb input[type="radio"], .wb input[type="checkbox"] { width: 20px; height: 20px; margin: 2px 0 0; accent-color: var(--wb-accent); flex: none; }

.wb-days { list-style: none; margin: 0 0 16px; padding: 0; display: flex; flex-wrap: wrap; gap: 8px; }
.wb-days li { background: var(--wb-soft); border-radius: 999px; padding: 6px 14px; font-size: 0.9rem; }
.wb-days li em { font-style: normal; color: var(--wb-muted); }
.wb-days li.is-full em { color: var(--wb-bad); font-weight: 600; }

.wb-tiers { display: flex; flex-direction: column; gap: 10px; }
.wb-tier { display: flex; align-items: center; gap: 14px; border: 1px solid var(--wb-line); border-radius: 12px; padding: 14px 16px; background: var(--wb-field); cursor: pointer; transition: border-color .15s, box-shadow .15s; }
.wb-tier:hover { border-color: var(--wb-ink); }
.wb-tier.is-chosen { border-color: var(--wb-accent); box-shadow: 0 0 0 1px var(--wb-accent); }
.wb-tier.is-disabled { opacity: 0.6; cursor: not-allowed; }
.wb-tier-body { flex: 1; display: flex; flex-direction: column; gap: 2px; min-width: 0; }
.wb-tier-label { font-weight: 600; }
.wb-tier-desc, .wb-tier-days { color: var(--wb-muted); font-size: 0.875rem; }
.wb-tier-left { font-size: 0.85rem; font-weight: 600; color: var(--wb-warn); }
.wb-tier-left.is-bad { color: var(--wb-bad); }
.wb-tier-price { font-weight: 700; white-space: nowrap; }
.wb-tier-multi { cursor: default; flex-wrap: wrap; }
.wb-qty { display: flex; align-items: center; gap: 6px; }
.wb-qty input { width: 60px !important; text-align: center; min-height: 44px !important; padding: 6px !important; }
.wb-step-btn { width: 44px; height: 44px; border-radius: 50%; border: 1px solid var(--wb-ink); background: var(--wb-field); color: var(--wb-ink); font-size: 1.3rem; cursor: pointer; }
.wb-step-btn:disabled { opacity: 0.35; cursor: not-allowed; }

.wb-brand-box { background: var(--wb-soft); border-radius: 12px; padding: 16px 16px 4px; margin-bottom: 6px; }
.wb-brand-msg { margin: -6px 0 14px; padding: 10px 12px; border-left: 3px solid var(--wb-accent); background: var(--wb-field); font-size: 0.925rem; }

.wb-sub { border: 0; padding: 0; margin: 8px 0 0; }
.wb-sub > legend { font-weight: 700; margin-bottom: 8px; }
.wb-options { display: flex; flex-direction: column; gap: 8px; }
.wb-opt { display: flex; align-items: center; gap: 12px; padding: 10px 12px; border: 1px solid var(--wb-line); border-radius: 10px; cursor: pointer; }
.wb-opt > span:nth-child(2), .wb-opt > label { flex: 1; display: flex; flex-direction: column; }
.wb-opt select { width: 80px !important; }
.wb-opt-price { font-weight: 600; white-space: nowrap; }
.wb-opt.is-disabled { opacity: 0.55; cursor: not-allowed; }

.wb-checkout { border-top: 1px solid var(--wb-line); padding-top: 20px; display: flex; flex-direction: column; gap: 14px; }
.wb-terms label { display: flex; gap: 10px; align-items: flex-start; }
.wb-total { display: flex; justify-content: space-between; align-items: baseline; font-size: 1.15rem; }
.wb-total strong { font-size: 1.6rem; }
.wb-submit { display: inline-flex; justify-content: center; align-items: center; min-height: 54px; padding: 14px 28px; border: 0; border-radius: 999px; background: var(--wb-accent); color: var(--wb-accent-ink); font: inherit; font-weight: 700; font-size: 1.05rem; cursor: pointer; text-decoration: none; }
.wb-submit:hover { filter: brightness(1.08); color: var(--wb-accent-ink); }
.wb-submit:disabled { opacity: 0.5; cursor: not-allowed; }
.wb-secure { display: flex; gap: 8px; align-items: flex-start; color: var(--wb-muted); font-size: 0.85rem; margin: 0; }
.wb-secure svg { flex: none; margin-top: 3px; }
.wb-errors { border: 2px solid var(--wb-bad); border-radius: 12px; padding: 14px 18px; margin-bottom: 20px; color: var(--wb-bad); background: var(--wb-field); }
.wb-errors ul { margin: 6px 0 0; padding-left: 18px; }
.wb-closed, .wb-note { background: var(--wb-soft); border-radius: 12px; padding: 18px 20px; }
.wb-invite .wb-invite-title { margin: 0 0 .4em; font-size: 1.05em; }
.wb-invite p:last-child { margin-bottom: 0; }
.wb-invite .wb-admin-hint { margin-top: 1em; padding-top: .8em; border-top: 1px solid var(--wb-line, rgba(127,127,127,.25)); font-size: .9em; opacity: .85; }
.wb-invite a { color: inherit; text-decoration: underline; text-underline-offset: 3px; }

/* Ma réservation */
.wb-status { border-radius: var(--wb-radius); padding: 20px 24px; margin-bottom: 20px; background: var(--wb-soft); }
.wb-status h2 { margin: 0 0 6px; font-size: 1.5rem; }
.wb-status p { margin: 0 0 8px; }
.wb-status-ok { border-left: 5px solid var(--wb-ok); }
.wb-status-bad { border-left: 5px solid var(--wb-bad); }
.wb-status-wait { border-left: 5px solid var(--wb-warn); }
.wb-inline { display: inline-block; margin-top: 8px; }
.wb-event { border: 1px solid var(--wb-line); border-radius: var(--wb-radius); padding: 16px 20px; margin-bottom: 20px; }
.wb-event-title { font-weight: 700; font-size: 1.15rem; margin: 0 0 4px; }
.wb-event p { margin: 0 0 6px; }
.wb-tickets { list-style: none; margin: 0 0 20px; padding: 0; display: grid; gap: 14px; }
.wb-ticket { display: flex; justify-content: space-between; align-items: center; gap: 16px; border: 1px solid var(--wb-ink); border-radius: var(--wb-radius); padding: 18px 20px; background: var(--wb-field); position: relative; break-inside: avoid; }
.wb-ticket.is-void { opacity: 0.55; border-style: dashed; }
.wb-ticket-main p { margin: 0 0 4px; }
.wb-ticket-kind { text-transform: uppercase; letter-spacing: 0.14em; font-size: 0.75rem; color: var(--wb-muted); }
.wb-ticket-tier { font-weight: 700; font-size: 1.1rem; }
.wb-ticket-meta { color: var(--wb-muted); font-size: 0.9rem; }
.wb-ticket-code { font-family: ui-monospace, Menlo, Consolas, monospace; letter-spacing: 0.08em; margin-top: 8px !important; }
.wb-ticket-qr { width: 148px; height: 148px; flex: none; padding: 8px; background: #FFFFFF; border-radius: 8px; }
.wb-ticket-qr svg { width: 100%; height: 100%; }
.wb-ticket-void { font-weight: 600; color: var(--wb-muted); }
@media print {
	.wb-actions, .wb-status form, header, footer, nav { display: none !important; }
	.wb-ticket { border: 1px solid #000; }
}
