@bigz-app/booking-widget 1.1.0 → 1.1.3
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/booking-widget.js +141 -190
- package/dist/booking-widget.js.map +1 -1
- package/dist/components/UniversalBookingWidget.d.ts.map +1 -1
- package/dist/components/booking/BookingForm.d.ts.map +1 -1
- package/dist/components/events/EventInstanceSelection.d.ts.map +1 -1
- package/dist/components/events/EventTypeSelection.d.ts.map +1 -1
- package/dist/components/upsells/UpsellCard.d.ts.map +1 -1
- package/dist/components/upsells/UpsellsStep.d.ts.map +1 -1
- package/dist/index.cjs +141 -190
- package/dist/index.cjs.map +1 -1
- package/dist/index.esm.js +141 -190
- package/dist/index.esm.js.map +1 -1
- package/package.json +1 -1
package/dist/booking-widget.js
CHANGED
|
@@ -5142,7 +5142,7 @@
|
|
|
5142
5142
|
transition: "background-color 0.2s ease",
|
|
5143
5143
|
}, children: [u$2("span", { style: {
|
|
5144
5144
|
fontWeight: 700,
|
|
5145
|
-
fontSize: "
|
|
5145
|
+
fontSize: "18px",
|
|
5146
5146
|
color: "var(--bw-text-color)",
|
|
5147
5147
|
}, children: title }), priceInfo && (u$2("div", { style: {
|
|
5148
5148
|
marginLeft: "auto",
|
|
@@ -9264,11 +9264,11 @@
|
|
|
9264
9264
|
fontSize: "16px",
|
|
9265
9265
|
fontWeight: 600,
|
|
9266
9266
|
color: "var(--bw-highlight-color)",
|
|
9267
|
+
margin: 0,
|
|
9267
9268
|
marginBottom: "12px",
|
|
9268
9269
|
fontFamily: "var(--bw-font-family)",
|
|
9269
9270
|
borderBottom: "2px solid var(--bw-highlight-color)",
|
|
9270
9271
|
paddingBottom: "4px",
|
|
9271
|
-
margin: 0,
|
|
9272
9272
|
}};
|
|
9273
9273
|
// ============================================
|
|
9274
9274
|
// TEXT
|
|
@@ -9347,6 +9347,8 @@
|
|
|
9347
9347
|
function BookingForm({ config, eventDetails, stripePromise, onSuccess, onError, onBackToEventInstances, onBackToEventTypes, selectedEventType, selectedEventInstance, isOpen, onClose, systemConfig, selectedUpsells = [], upsells = [], }) {
|
|
9348
9348
|
const [appliedVouchers, setAppliedVouchers] = d$1([]);
|
|
9349
9349
|
const paymentSectionRef = A$2(null);
|
|
9350
|
+
// Payment option: "deposit" or "full" - only relevant when deposit is available
|
|
9351
|
+
const [paymentOption, setPaymentOption] = d$1("deposit");
|
|
9350
9352
|
// Per-participant upsell selections: participantIndex -> array of upsell package IDs
|
|
9351
9353
|
const [participantUpsells, setParticipantUpsells] = d$1({});
|
|
9352
9354
|
const form = useForm({
|
|
@@ -9362,11 +9364,11 @@
|
|
|
9362
9364
|
},
|
|
9363
9365
|
});
|
|
9364
9366
|
const watchedParticipants = form.watch("participants");
|
|
9367
|
+
const watchedCustomerName = form.watch("customerName");
|
|
9365
9368
|
const watchedCustomerEmail = form.watch("customerEmail");
|
|
9366
9369
|
const customerNameError = form.formState.errors.customerName;
|
|
9367
9370
|
const customerEmailError = form.formState.errors.customerEmail;
|
|
9368
9371
|
const watchedAcceptTerms = form.watch("acceptTerms");
|
|
9369
|
-
const { isValid: isFormValid } = form.formState;
|
|
9370
9372
|
// Initialize participant upsells from selectedUpsells when component mounts or participants change
|
|
9371
9373
|
y$1(() => {
|
|
9372
9374
|
if (selectedUpsells.length > 0 && upsells.length > 0) {
|
|
@@ -9450,7 +9452,10 @@
|
|
|
9450
9452
|
const depositAmount = calculateDeposit();
|
|
9451
9453
|
// Deposit stays fixed unless the discounted total is lower than the deposit
|
|
9452
9454
|
// (discount applies to total price, not to the deposit itself)
|
|
9453
|
-
const
|
|
9455
|
+
const hasDepositOption = depositAmount > 0 && depositAmount < totalAmount;
|
|
9456
|
+
const paymentAmount = hasDepositOption && paymentOption === "deposit"
|
|
9457
|
+
? Math.min(depositAmount, totalAmount)
|
|
9458
|
+
: totalAmount;
|
|
9454
9459
|
// Convert per-participant upsells to UpsellSelection[] format for API
|
|
9455
9460
|
// Includes participantIndices to track which participants selected each upsell
|
|
9456
9461
|
const aggregatedUpsellSelections = q$2(() => {
|
|
@@ -9483,9 +9488,18 @@
|
|
|
9483
9488
|
setAppliedVouchers((prev) => prev.filter((v) => v.code !== code));
|
|
9484
9489
|
}, []);
|
|
9485
9490
|
const isReadyForPayment = () => {
|
|
9486
|
-
const
|
|
9487
|
-
const
|
|
9488
|
-
|
|
9491
|
+
const participantsWithNames = watchedParticipants.filter((p) => p.name.trim()).length;
|
|
9492
|
+
const totalParticipantRows = watchedParticipants.length;
|
|
9493
|
+
const allParticipantsHaveNames = participantsWithNames === totalParticipantRows;
|
|
9494
|
+
const participantsWithinLimit = participantsWithNames <= (eventDetails?.availableSpots || 0);
|
|
9495
|
+
const hasValidCustomerName = watchedCustomerName && watchedCustomerName.trim().length >= 2;
|
|
9496
|
+
const hasValidCustomerEmail = watchedCustomerEmail && watchedCustomerEmail.trim().length > 0 && !customerEmailError;
|
|
9497
|
+
return allParticipantsHaveNames &&
|
|
9498
|
+
participantsWithinLimit &&
|
|
9499
|
+
participantsWithNames > 0 &&
|
|
9500
|
+
hasValidCustomerName &&
|
|
9501
|
+
hasValidCustomerEmail &&
|
|
9502
|
+
watchedAcceptTerms;
|
|
9489
9503
|
};
|
|
9490
9504
|
y$1(() => {
|
|
9491
9505
|
if (appliedVouchers.length > 0) {
|
|
@@ -9602,7 +9616,7 @@
|
|
|
9602
9616
|
gridTemplateColumns: "repeat(auto-fit, minmax(200px, 1fr))",
|
|
9603
9617
|
gap: "12px",
|
|
9604
9618
|
fontSize: "14px",
|
|
9605
|
-
}, children: [u$2("div", { style: {
|
|
9619
|
+
}, children: [u$2("div", { style: { display: "flex", alignItems: "center", justifyContent: "space-between" }, children: [u$2("span", { style: {
|
|
9606
9620
|
color: "var(--bw-text-muted)",
|
|
9607
9621
|
fontFamily: "var(--bw-font-family)",
|
|
9608
9622
|
display: "flex",
|
|
@@ -9648,7 +9662,7 @@
|
|
|
9648
9662
|
justifyContent: "space-between",
|
|
9649
9663
|
alignItems: "center",
|
|
9650
9664
|
marginBottom: "16px",
|
|
9651
|
-
}, children: u$2("h2", { style: { ...sectionHeaderStyles,
|
|
9665
|
+
}, children: u$2("h2", { style: { ...sectionHeaderStyles, marginBottom: 0 }, children: "Teilnehmer" }) }), u$2("div", { style: { display: "flex", flexDirection: "column", gap: "16px" }, children: [watchedParticipants.map((_, index) => (u$2("div", { style: { display: "flex", flexDirection: "column", gap: "8px" }, children: [u$2("div", { style: { display: "flex", gap: "12px", alignItems: "center" }, children: [u$2("div", { style: { flex: 1 }, children: [u$2("label", { htmlFor: `participant-name-${index}`, style: labelStyles, children: "Name *" }), u$2("input", { id: `participant-name-${index}`, ...form.register(`participants.${index}.name`), type: "text", style: inputStyles, placeholder: "Teilnehmername" }), form.formState.errors.participants?.[index]?.name && (u$2("p", { style: errorTextStyles, children: form.formState.errors.participants[index]?.name?.message }))] }), u$2("div", { style: { width: "80px" }, children: [u$2("label", { htmlFor: `participant-age-${index}`, style: labelStyles, children: "Alter" }), u$2("input", { id: `participant-age-${index}`, ...form.register(`participants.${index}.age`, {
|
|
9652
9666
|
setValueAs: (value) => {
|
|
9653
9667
|
if (value === "" || value === null || value === undefined) {
|
|
9654
9668
|
return undefined;
|
|
@@ -9727,7 +9741,57 @@
|
|
|
9727
9741
|
}, children: ["Gutschein (", giftCard.code, "):"] }), u$2("span", { style: { color: "var(--bw-success-color)", fontFamily: "var(--bw-font-family)" }, children: ["-", formatCurrency(giftCard.balanceToUse || giftCard.discountAmount)] })] }, giftCard.code)))] })), u$2("div", { style: {
|
|
9728
9742
|
borderTop: "1px solid var(--bw-border-color)",
|
|
9729
9743
|
paddingTop: "12px",
|
|
9730
|
-
}, children: [
|
|
9744
|
+
}, children: [hasDepositOption && (u$2("div", { style: {
|
|
9745
|
+
display: "flex",
|
|
9746
|
+
gap: "8px",
|
|
9747
|
+
marginBottom: "16px",
|
|
9748
|
+
}, children: [u$2("button", { type: "button", onClick: () => setPaymentOption("deposit"), style: {
|
|
9749
|
+
flex: 1,
|
|
9750
|
+
padding: "12px",
|
|
9751
|
+
borderRadius: "var(--bw-border-radius)",
|
|
9752
|
+
border: paymentOption === "deposit"
|
|
9753
|
+
? "2px solid var(--bw-highlight-color)"
|
|
9754
|
+
: "1px solid var(--bw-border-color)",
|
|
9755
|
+
backgroundColor: paymentOption === "deposit"
|
|
9756
|
+
? "rgba(var(--bw-highlight-color-rgb, 0, 177, 170), 0.1)"
|
|
9757
|
+
: "var(--bw-surface-color)",
|
|
9758
|
+
cursor: "pointer",
|
|
9759
|
+
fontFamily: "var(--bw-font-family)",
|
|
9760
|
+
transition: "all 0.2s ease",
|
|
9761
|
+
}, children: [u$2("div", { style: {
|
|
9762
|
+
fontSize: "13px",
|
|
9763
|
+
color: "var(--bw-text-muted)",
|
|
9764
|
+
marginBottom: "4px",
|
|
9765
|
+
}, children: "Anzahlung" }), u$2("div", { style: {
|
|
9766
|
+
fontSize: "18px",
|
|
9767
|
+
fontWeight: 700,
|
|
9768
|
+
color: paymentOption === "deposit"
|
|
9769
|
+
? "var(--bw-highlight-color)"
|
|
9770
|
+
: "var(--bw-text-color)",
|
|
9771
|
+
}, children: formatCurrency(depositAmount) })] }), u$2("button", { type: "button", onClick: () => setPaymentOption("full"), style: {
|
|
9772
|
+
flex: 1,
|
|
9773
|
+
padding: "12px",
|
|
9774
|
+
borderRadius: "var(--bw-border-radius)",
|
|
9775
|
+
border: paymentOption === "full"
|
|
9776
|
+
? "2px solid var(--bw-highlight-color)"
|
|
9777
|
+
: "1px solid var(--bw-border-color)",
|
|
9778
|
+
backgroundColor: paymentOption === "full"
|
|
9779
|
+
? "rgba(var(--bw-highlight-color-rgb, 0, 177, 170), 0.1)"
|
|
9780
|
+
: "var(--bw-surface-color)",
|
|
9781
|
+
cursor: "pointer",
|
|
9782
|
+
fontFamily: "var(--bw-font-family)",
|
|
9783
|
+
transition: "all 0.2s ease",
|
|
9784
|
+
}, children: [u$2("div", { style: {
|
|
9785
|
+
fontSize: "13px",
|
|
9786
|
+
color: "var(--bw-text-muted)",
|
|
9787
|
+
marginBottom: "4px",
|
|
9788
|
+
}, children: "Vollst\u00E4ndig bezahlen" }), u$2("div", { style: {
|
|
9789
|
+
fontSize: "18px",
|
|
9790
|
+
fontWeight: 700,
|
|
9791
|
+
color: paymentOption === "full"
|
|
9792
|
+
? "var(--bw-highlight-color)"
|
|
9793
|
+
: "var(--bw-text-color)",
|
|
9794
|
+
}, children: formatCurrency(totalAmount) })] })] })), hasDepositOption && paymentOption === "deposit" && (u$2("div", { style: {
|
|
9731
9795
|
display: "flex",
|
|
9732
9796
|
justifyContent: "space-between",
|
|
9733
9797
|
alignItems: "center",
|
|
@@ -9743,31 +9807,48 @@
|
|
|
9743
9807
|
alignItems: "center",
|
|
9744
9808
|
fontSize: "18px",
|
|
9745
9809
|
fontWeight: 600,
|
|
9746
|
-
}, children: [u$2("span", { style: { color: "var(--bw-text-color)", fontFamily: "var(--bw-font-family)" }, children:
|
|
9810
|
+
}, children: [u$2("span", { style: { color: "var(--bw-text-color)", fontFamily: "var(--bw-font-family)" }, children: hasDepositOption && paymentOption === "deposit"
|
|
9811
|
+
? "Heute zu zahlen (Anzahlung):"
|
|
9812
|
+
: "Gesamtbetrag:" }), u$2("span", { style: {
|
|
9747
9813
|
color: "var(--bw-highlight-color)",
|
|
9748
9814
|
fontFamily: "var(--bw-font-family)",
|
|
9749
9815
|
fontWeight: 700,
|
|
9750
|
-
}, children: formatCurrency(paymentAmount) })] })
|
|
9816
|
+
}, children: formatCurrency(paymentAmount) })] }), hasDepositOption && paymentOption === "deposit" && (u$2("div", { style: {
|
|
9817
|
+
fontSize: "12px",
|
|
9818
|
+
color: "var(--bw-text-muted)",
|
|
9819
|
+
fontFamily: "var(--bw-font-family)",
|
|
9820
|
+
marginTop: "8px",
|
|
9821
|
+
textAlign: "right",
|
|
9822
|
+
}, children: ["Restbetrag (", formatCurrency(totalAmount - depositAmount), ") vor Ort f\u00E4llig."] }))] })] })] }), u$2("div", { ref: paymentSectionRef, children: stripePromise &&
|
|
9751
9823
|
(() => {
|
|
9752
9824
|
if (!isReadyForPayment()) {
|
|
9753
|
-
const
|
|
9825
|
+
const participantsWithNames = watchedParticipants.filter((p) => p.name.trim()).length;
|
|
9826
|
+
const totalParticipantRows = watchedParticipants.length;
|
|
9827
|
+
const participantsWithoutNames = totalParticipantRows - participantsWithNames;
|
|
9754
9828
|
const missing = [];
|
|
9755
|
-
if (
|
|
9756
|
-
missing.push("einen Teilnehmer");
|
|
9829
|
+
if (participantsWithNames === 0) {
|
|
9830
|
+
missing.push("mindestens einen Teilnehmer mit Namen");
|
|
9757
9831
|
}
|
|
9758
|
-
if (
|
|
9832
|
+
else if (participantsWithoutNames > 0) {
|
|
9833
|
+
missing.push(`Namen für alle ${totalParticipantRows} Teilnehmer`);
|
|
9834
|
+
}
|
|
9835
|
+
if (participantsWithNames > (eventDetails?.availableSpots || 0)) {
|
|
9759
9836
|
missing.push(`die Anzahl der Teilnehmer auf ${eventDetails?.availableSpots || 0} zu reduzieren`);
|
|
9760
9837
|
}
|
|
9761
|
-
|
|
9762
|
-
|
|
9838
|
+
// Check for empty or invalid name (min 2 chars required)
|
|
9839
|
+
if (!watchedCustomerName || watchedCustomerName.trim().length < 2 || customerNameError) {
|
|
9840
|
+
missing.push("einen gültigen Kontaktnamen");
|
|
9763
9841
|
}
|
|
9764
|
-
|
|
9842
|
+
// Check for empty or invalid email
|
|
9843
|
+
if (!watchedCustomerEmail || watchedCustomerEmail.trim().length === 0 || customerEmailError) {
|
|
9765
9844
|
missing.push("eine gültige E-Mail-Adresse");
|
|
9766
9845
|
}
|
|
9767
9846
|
if (!watchedAcceptTerms) {
|
|
9768
|
-
missing.push("die Akzeptanz der
|
|
9847
|
+
missing.push("die Akzeptanz der AGBs");
|
|
9769
9848
|
}
|
|
9770
|
-
const message =
|
|
9849
|
+
const message = missing.length > 0
|
|
9850
|
+
? `Wir benötigen mindestens ${missing.join(", ")} um fortzufahren.`
|
|
9851
|
+
: "Bitte fülle alle Pflichtfelder aus, um fortzufahren.";
|
|
9771
9852
|
return (u$2("div", { style: {
|
|
9772
9853
|
...cardStyles,
|
|
9773
9854
|
borderColor: "var(--bw-warning-color)",
|
|
@@ -9776,7 +9857,7 @@
|
|
|
9776
9857
|
textAlign: "center",
|
|
9777
9858
|
}, children: message }));
|
|
9778
9859
|
}
|
|
9779
|
-
return (u$2("div", { style: cardStyles, children: [u$2("h2", { style: { ...sectionHeaderStyles
|
|
9860
|
+
return (u$2("div", { style: cardStyles, children: [u$2("h2", { style: { ...sectionHeaderStyles }, children: "Zahlung" }), u$2(PaymentForm, { config: config, eventDetails: eventDetails, formData: form.getValues(), totalAmount: paymentAmount, discountCode: appliedDiscountCode
|
|
9780
9861
|
? {
|
|
9781
9862
|
id: appliedDiscountCode.id,
|
|
9782
9863
|
code: appliedDiscountCode.code,
|
|
@@ -10615,130 +10696,7 @@
|
|
|
10615
10696
|
if (isLoading) {
|
|
10616
10697
|
return u$2(EventCardSkeleton, { count: skeletonCount });
|
|
10617
10698
|
}
|
|
10618
|
-
return (u$2(k$3, { children: [u$2("style", {
|
|
10619
|
-
__html: `
|
|
10620
|
-
@media (max-width: 600px) {
|
|
10621
|
-
.event-type-list {
|
|
10622
|
-
padding: 8px !important;
|
|
10623
|
-
gap: 12px !important;
|
|
10624
|
-
}
|
|
10625
|
-
.event-type-card {
|
|
10626
|
-
max-width: 100% !important;
|
|
10627
|
-
flex: 1 1 100% !important;
|
|
10628
|
-
padding: 0 !important;
|
|
10629
|
-
}
|
|
10630
|
-
.event-type-img {
|
|
10631
|
-
height: 160px !important;
|
|
10632
|
-
}
|
|
10633
|
-
.event-type-title {
|
|
10634
|
-
font-size: 1.1rem !important;
|
|
10635
|
-
}
|
|
10636
|
-
.event-type-desc {
|
|
10637
|
-
font-size: 0.8rem !important;
|
|
10638
|
-
min-height: 100px !important;
|
|
10639
|
-
max-height: 100px !important;
|
|
10640
|
-
}
|
|
10641
|
-
.event-type-content {
|
|
10642
|
-
padding: 16px 24px !important;
|
|
10643
|
-
}
|
|
10644
|
-
}
|
|
10645
|
-
|
|
10646
|
-
/* Markdown content styling for event type cards */
|
|
10647
|
-
.event-type-markdown {
|
|
10648
|
-
overflow: visible !important;
|
|
10649
|
-
}
|
|
10650
|
-
.event-type-markdown p {
|
|
10651
|
-
margin: 0 0 8px 0;
|
|
10652
|
-
color: var(--bw-text-muted);
|
|
10653
|
-
font-family: var(--bw-font-family);
|
|
10654
|
-
line-height: 1.6;
|
|
10655
|
-
}
|
|
10656
|
-
.event-type-markdown p:last-child {
|
|
10657
|
-
margin-bottom: 0;
|
|
10658
|
-
}
|
|
10659
|
-
.event-type-markdown h2 {
|
|
10660
|
-
font-size: 18px !important;
|
|
10661
|
-
font-weight: 700 !important;
|
|
10662
|
-
color: var(--bw-text-color) !important;
|
|
10663
|
-
margin: 12px 0 6px 0 !important;
|
|
10664
|
-
line-height: 1.3 !important;
|
|
10665
|
-
}
|
|
10666
|
-
.event-type-markdown h3 {
|
|
10667
|
-
font-size: 16px !important;
|
|
10668
|
-
font-weight: 600 !important;
|
|
10669
|
-
color: var(--bw-text-color) !important;
|
|
10670
|
-
margin: 10px 0 4px 0 !important;
|
|
10671
|
-
line-height: 1.3 !important;
|
|
10672
|
-
}
|
|
10673
|
-
.event-type-markdown strong {
|
|
10674
|
-
font-weight: 600;
|
|
10675
|
-
color: var(--bw-text-color);
|
|
10676
|
-
}
|
|
10677
|
-
.event-type-markdown em {
|
|
10678
|
-
font-style: italic;
|
|
10679
|
-
}
|
|
10680
|
-
.event-type-markdown u {
|
|
10681
|
-
text-decoration: underline;
|
|
10682
|
-
}
|
|
10683
|
-
.event-type-markdown ul {
|
|
10684
|
-
margin: 6px 0 !important;
|
|
10685
|
-
padding: 0 !important;
|
|
10686
|
-
padding-left: 24px !important;
|
|
10687
|
-
list-style: none !important;
|
|
10688
|
-
position: relative !important;
|
|
10689
|
-
}
|
|
10690
|
-
.event-type-markdown ul li {
|
|
10691
|
-
margin-bottom: 2px !important;
|
|
10692
|
-
padding-left: 0 !important;
|
|
10693
|
-
position: relative !important;
|
|
10694
|
-
color: var(--bw-text-muted) !important;
|
|
10695
|
-
font-family: var(--bw-font-family) !important;
|
|
10696
|
-
}
|
|
10697
|
-
.event-type-markdown ul li::before {
|
|
10698
|
-
content: "•" !important;
|
|
10699
|
-
color: var(--bw-text-color) !important;
|
|
10700
|
-
position: absolute !important;
|
|
10701
|
-
left: -16px !important;
|
|
10702
|
-
top: 0 !important;
|
|
10703
|
-
font-weight: bold !important;
|
|
10704
|
-
}
|
|
10705
|
-
.event-type-markdown ol {
|
|
10706
|
-
margin: 6px 0 !important;
|
|
10707
|
-
padding: 0 !important;
|
|
10708
|
-
padding-left: 24px !important;
|
|
10709
|
-
counter-reset: list-counter !important;
|
|
10710
|
-
list-style: none !important;
|
|
10711
|
-
position: relative !important;
|
|
10712
|
-
}
|
|
10713
|
-
.event-type-markdown ol li {
|
|
10714
|
-
margin-bottom: 2px !important;
|
|
10715
|
-
padding-left: 0 !important;
|
|
10716
|
-
position: relative !important;
|
|
10717
|
-
counter-increment: list-counter !important;
|
|
10718
|
-
color: var(--bw-text-muted) !important;
|
|
10719
|
-
font-family: var(--bw-font-family) !important;
|
|
10720
|
-
}
|
|
10721
|
-
.event-type-markdown ol li::before {
|
|
10722
|
-
content: counter(list-counter) "." !important;
|
|
10723
|
-
color: var(--bw-text-color) !important;
|
|
10724
|
-
position: absolute !important;
|
|
10725
|
-
left: -20px !important;
|
|
10726
|
-
top: 0 !important;
|
|
10727
|
-
font-weight: bold !important;
|
|
10728
|
-
}
|
|
10729
|
-
.event-type-markdown blockquote {
|
|
10730
|
-
margin: 4px 0;
|
|
10731
|
-
padding-left: 12px;
|
|
10732
|
-
border-left: 2px solid var(--bw-border-color);
|
|
10733
|
-
font-style: italic;
|
|
10734
|
-
color: var(--bw-text-muted);
|
|
10735
|
-
}
|
|
10736
|
-
.event-type-markdown a {
|
|
10737
|
-
color: var(--bw-highlight-color);
|
|
10738
|
-
text-decoration: underline;
|
|
10739
|
-
}
|
|
10740
|
-
`,
|
|
10741
|
-
} }), eventTypes.length === 0 ? (u$2("div", { style: { maxWidth: "600px", margin: "0 auto", padding: "24px" }, children: u$2("div", { style: {
|
|
10699
|
+
return (u$2(k$3, { children: [eventTypes.length === 0 ? (u$2("div", { style: { maxWidth: "600px", margin: "0 auto", padding: "24px" }, children: u$2("div", { style: {
|
|
10742
10700
|
backgroundColor: "var(--bw-surface-color)",
|
|
10743
10701
|
border: "1px solid var(--bw-border-color)",
|
|
10744
10702
|
borderRadius: "var(--bw-border-radius)",
|
|
@@ -10849,45 +10807,45 @@
|
|
|
10849
10807
|
handleShowDetails(eventType);
|
|
10850
10808
|
}, children: eventType.highlights && eventType.highlights.length > 0 ? (
|
|
10851
10809
|
// Show highlights as list
|
|
10810
|
+
// Uses em-based sizing so it scales with font size
|
|
10811
|
+
// Fixed 5 rows * 1.5em line-height = 7.5em total
|
|
10852
10812
|
u$2("div", { className: "event-type-highlights", style: {
|
|
10853
10813
|
margin: "10px 0",
|
|
10854
|
-
|
|
10855
|
-
fontSize: "clamp(0.
|
|
10814
|
+
height: "7.5em", // Fixed height in em units
|
|
10815
|
+
fontSize: "clamp(0.9rem, 2vw, 15px)",
|
|
10856
10816
|
}, children: u$2("ul", { style: {
|
|
10857
10817
|
listStyle: "none",
|
|
10858
10818
|
padding: 0,
|
|
10859
10819
|
margin: 0,
|
|
10860
|
-
display: "
|
|
10861
|
-
|
|
10862
|
-
|
|
10863
|
-
|
|
10864
|
-
maxHeight: "128px",
|
|
10820
|
+
display: "grid",
|
|
10821
|
+
// 5 rows of exactly 1.5em each (lineHeight)
|
|
10822
|
+
gridTemplateRows: "repeat(5, 1.5em)",
|
|
10823
|
+
gap: 0,
|
|
10865
10824
|
overflow: "hidden",
|
|
10866
10825
|
}, children: eventType.highlights
|
|
10867
10826
|
.filter((highlight) => highlight.trim())
|
|
10868
10827
|
.slice(0, 5)
|
|
10869
10828
|
.map((highlight, index) => (u$2("li", { style: {
|
|
10870
10829
|
display: "flex",
|
|
10871
|
-
alignItems: "
|
|
10872
|
-
gap: "
|
|
10830
|
+
alignItems: "center",
|
|
10831
|
+
gap: "0.5em",
|
|
10873
10832
|
fontFamily: "var(--bw-font-family)",
|
|
10874
|
-
lineHeight: 1.
|
|
10833
|
+
lineHeight: 1.5,
|
|
10834
|
+
height: "1.5em",
|
|
10875
10835
|
color: "var(--bw-text-muted)",
|
|
10876
|
-
|
|
10877
|
-
|
|
10878
|
-
}, children: [u$2("div", { style: { marginTop: "4px", flexShrink: 0 }, children: u$2(IconCheck, { size: 16, color: "var(--bw-success-color)" }) }), u$2("span", { style: {
|
|
10879
|
-
textOverflow: "ellipsis",
|
|
10880
|
-
overflow: "hidden",
|
|
10836
|
+
overflow: "hidden",
|
|
10837
|
+
}, children: [u$2("div", { style: { flexShrink: 0, display: "flex", alignItems: "center" }, children: u$2(IconCheck, { size: 14, color: "var(--bw-success-color)" }) }), u$2("span", { style: {
|
|
10881
10838
|
whiteSpace: "nowrap",
|
|
10839
|
+
overflow: "hidden",
|
|
10840
|
+
textOverflow: "ellipsis",
|
|
10882
10841
|
flex: 1,
|
|
10883
10842
|
}, children: highlight.trim() })] }, index))) }) })) : eventType.description ? (u$2("div", { className: "event-type-desc", style: {
|
|
10884
10843
|
color: "var(--bw-text-muted)",
|
|
10885
|
-
fontSize: "clamp(0.
|
|
10886
|
-
lineHeight: 1.
|
|
10844
|
+
fontSize: "clamp(0.9rem, 2vw, 15px)",
|
|
10845
|
+
lineHeight: 1.5,
|
|
10887
10846
|
fontFamily: "var(--bw-font-family)",
|
|
10888
10847
|
margin: "10px 0",
|
|
10889
|
-
|
|
10890
|
-
maxHeight: "128px",
|
|
10848
|
+
height: "7.5em", // Same height as highlights
|
|
10891
10849
|
overflow: "hidden",
|
|
10892
10850
|
textAlign: "left",
|
|
10893
10851
|
}, children: u$2("div", { className: "event-type-markdown", style: {
|
|
@@ -10898,15 +10856,8 @@
|
|
|
10898
10856
|
}, children: Markdown({
|
|
10899
10857
|
children: preprocessMarkdown(eventType.description),
|
|
10900
10858
|
}) }) })) : (u$2("div", { className: "event-type-desc", style: {
|
|
10901
|
-
color: "var(--bw-text-muted)",
|
|
10902
|
-
fontSize: "clamp(0.95rem, 2vw, 16px)",
|
|
10903
|
-
lineHeight: 1.625,
|
|
10904
|
-
fontFamily: "var(--bw-font-family)",
|
|
10905
10859
|
margin: "10px 0",
|
|
10906
|
-
|
|
10907
|
-
maxHeight: "128px",
|
|
10908
|
-
overflow: "hidden",
|
|
10909
|
-
textAlign: "left",
|
|
10860
|
+
height: "7.5em", // Same height as highlights
|
|
10910
10861
|
}, children: "\u00A0" })) })] }), u$2("div", { children: [u$2("div", { children: [u$2("div", { className: "event-type-price", style: {
|
|
10911
10862
|
fontWeight: 700,
|
|
10912
10863
|
color: "var(--bw-text-color)",
|
|
@@ -11297,7 +11248,7 @@
|
|
|
11297
11248
|
fontFamily: "var(--bw-font-family)",
|
|
11298
11249
|
}, children: "Keine verf\u00FCgbaren Termine" }), u$2("p", { style: { color: "var(--bw-text-muted)", fontFamily: "var(--bw-font-family)" }, children: "F\u00FCr diesen Event-Typ sind derzeit keine Termine verf\u00FCgbar." })] }) }) }));
|
|
11299
11250
|
}
|
|
11300
|
-
return (u$2(Sidebar, { isOpen: isOpen, onClose: handleClose, title: `${selectedEventType?.name}`, footer: footerNav, children: u$2("div", { style: { padding: "
|
|
11251
|
+
return (u$2(Sidebar, { isOpen: isOpen, onClose: handleClose, title: `${selectedEventType?.name}`, footer: footerNav, children: u$2("div", { style: { padding: "20px 10px" }, children: u$2("div", { style: { display: "flex", flexDirection: "column", gap: "16px" }, children: monthYearGroups.map(({ key, label, events, minPrice, year }, idx) => {
|
|
11301
11252
|
const monthPriceDisplayInfo = getMonthPriceDisplayInfo(minPrice);
|
|
11302
11253
|
return (u$2(k$3, { children: [idx > 0 && monthYearGroups[idx - 1].year !== year && (u$2("div", { style: { height: "1px", backgroundColor: "var(--bw-border-color)", margin: "4px 0" } })), u$2(Accordion, { title: label, priceInfo: u$2("div", { style: {
|
|
11303
11254
|
fontSize: "16px",
|
|
@@ -11325,7 +11276,7 @@
|
|
|
11325
11276
|
border: "1px solid var(--bw-border-color)",
|
|
11326
11277
|
backgroundColor: "var(--bw-surface-color)",
|
|
11327
11278
|
borderRadius: "var(--bw-border-radius)",
|
|
11328
|
-
padding: "16px
|
|
11279
|
+
padding: "16px 10px",
|
|
11329
11280
|
transition: "all 0.2s ease",
|
|
11330
11281
|
fontFamily: "var(--bw-font-family)",
|
|
11331
11282
|
opacity: isDisabled ? 0.3 : 1,
|
|
@@ -11387,6 +11338,8 @@
|
|
|
11387
11338
|
marginLeft: "6px",
|
|
11388
11339
|
backgroundColor: "rgba(0, 0, 0, 0.05)",
|
|
11389
11340
|
whiteSpace: "nowrap",
|
|
11341
|
+
padding: "2px 6px",
|
|
11342
|
+
borderRadius: "var(--bw-border-radius-small)",
|
|
11390
11343
|
}, children: [event.durationDays, " Tag", event.durationDays > 1 ? "e" : ""] })] }), u$2("div", { style: {
|
|
11391
11344
|
textAlign: "right",
|
|
11392
11345
|
display: "flex",
|
|
@@ -11952,6 +11905,7 @@
|
|
|
11952
11905
|
position: "absolute",
|
|
11953
11906
|
top: "12px",
|
|
11954
11907
|
right: "12px",
|
|
11908
|
+
zIndex: 1,
|
|
11955
11909
|
};
|
|
11956
11910
|
const checkboxInnerStyles = {
|
|
11957
11911
|
width: "24px",
|
|
@@ -12004,7 +11958,7 @@
|
|
|
12004
11958
|
margin: "0 0 10px 0",
|
|
12005
11959
|
lineHeight: 1.4,
|
|
12006
11960
|
display: "-webkit-box",
|
|
12007
|
-
WebkitLineClamp:
|
|
11961
|
+
WebkitLineClamp: 5,
|
|
12008
11962
|
WebkitBoxOrient: "vertical",
|
|
12009
11963
|
overflow: "hidden",
|
|
12010
11964
|
fontFamily: "var(--bw-font-family)",
|
|
@@ -12118,7 +12072,7 @@
|
|
|
12118
12072
|
const selectedTotal = calculateTotal();
|
|
12119
12073
|
const selectedCount = selectedUpsells.length;
|
|
12120
12074
|
const footerContent = (u$2(k$3, { children: [u$2("button", { type: "button", onClick: onBack, style: mergeStyles(buttonStyles.secondary, buttonStyles.fullWidth), children: "\u2190 Zur\u00FCck" }), u$2("button", { type: "button", onClick: onContinue, style: mergeStyles(buttonStyles.primary, buttonStyles.fullWidth), children: selectedCount === 0 ? "Weiter ohne Extras" : `Weiter` })] }));
|
|
12121
|
-
return (u$2(Sidebar, { isOpen: isOpen, onClose: onClose, title: "Extras hinzuf\u00FCgen", footer: footerContent, children: u$2("div", { style: { display: "flex", flexDirection: "column", height: "100%", padding: "
|
|
12075
|
+
return (u$2(Sidebar, { isOpen: isOpen, onClose: onClose, title: "Extras hinzuf\u00FCgen", footer: footerContent, children: u$2("div", { style: { display: "flex", flexDirection: "column", height: "100%", padding: "16px 16px" }, children: [isLoading && (u$2("div", { style: { display: "flex", flexDirection: "column", alignItems: "center", justifyContent: "center", gap: "12px", padding: "40px 20px", ...textStyles.muted }, children: [spinner(), u$2("span", { children: "Lade verf\u00FCgbare Extras..." })] })), !isLoading && upsells.length === 0 && (u$2("div", { style: { textAlign: "center", padding: "40px 20px", ...textStyles.muted }, children: u$2("p", { children: "Keine Extras f\u00FCr diese Buchung verf\u00FCgbar." }) })), !isLoading && upsells.length > 0 && (u$2("div", { style: { display: "flex", flexDirection: "column", gap: "12px", flex: 1, overflowY: "auto", paddingBottom: "16px" }, children: upsells.map((upsell) => (u$2(UpsellCard, { upsell: upsell, isSelected: isSelected(upsell.id), participantCount: participantCount, onSelect: () => selectUpsell(upsell.id) }, upsell.id))) })), selectedCount > 0 && (u$2("div", { style: { display: "flex", justifyContent: "space-between", alignItems: "center", marginTop: "16px", paddingBottom: "16px", paddingTop: "16px", borderTop: "1px solid var(--bw-border-color)", fontSize: "14px" }, children: [u$2("span", { style: textStyles.muted, children: [selectedCount, " ", selectedCount === 1 ? "Extra" : "Extras", " ausgew\u00E4hlt"] }), u$2("span", { style: { fontWeight: 600, color: "var(--bw-highlight-color)", fontFamily: "var(--bw-font-family)" }, children: ["+", formatCurrency(selectedTotal)] })] }))] }) }));
|
|
12122
12076
|
}
|
|
12123
12077
|
|
|
12124
12078
|
// Main widget component
|
|
@@ -12242,15 +12196,12 @@
|
|
|
12242
12196
|
setShouldRenderBookingForm(true);
|
|
12243
12197
|
}
|
|
12244
12198
|
}, [currentStep, shouldRenderInstanceSelection, shouldRenderBookingForm]);
|
|
12245
|
-
// Promo dialog: show
|
|
12199
|
+
// Promo dialog: show promo once per session when enabled
|
|
12246
12200
|
y$1(() => {
|
|
12247
|
-
|
|
12248
|
-
const month = now.getMonth();
|
|
12249
|
-
const isHolidaySeason = month === 11 || month === 0;
|
|
12250
|
-
if (!isHolidaySeason) {
|
|
12201
|
+
if (!config.promo?.enabled) {
|
|
12251
12202
|
return;
|
|
12252
12203
|
}
|
|
12253
|
-
const promoId = "
|
|
12204
|
+
const promoId = config.promo.discountCode || "default";
|
|
12254
12205
|
const storageKey = `bigz-promo-${promoId}-shown`;
|
|
12255
12206
|
const globalFlagKey = `__bigzPromoShown_${promoId}`;
|
|
12256
12207
|
const alreadyShown = localStorage.getItem(storageKey) === "true";
|
|
@@ -12260,19 +12211,19 @@
|
|
|
12260
12211
|
}
|
|
12261
12212
|
window[globalFlagKey] = true;
|
|
12262
12213
|
const timer = setTimeout(() => {
|
|
12263
|
-
|
|
12264
|
-
setShowPromoDialog(true);
|
|
12265
|
-
}
|
|
12214
|
+
setShowPromoDialog(true);
|
|
12266
12215
|
}, 1000);
|
|
12267
12216
|
return () => clearTimeout(timer);
|
|
12268
|
-
}, []);
|
|
12217
|
+
}, [config.promo?.enabled, config.promo?.discountCode]);
|
|
12269
12218
|
const handlePromoDialogClose = () => {
|
|
12270
12219
|
setShowPromoDialog(false);
|
|
12271
|
-
|
|
12220
|
+
const promoId = config.promo?.discountCode || "default";
|
|
12221
|
+
localStorage.setItem(`bigz-promo-${promoId}-shown`, "true");
|
|
12272
12222
|
};
|
|
12273
12223
|
const handlePromoCtaClick = () => {
|
|
12274
12224
|
setShowPromoDialog(false);
|
|
12275
|
-
|
|
12225
|
+
const promoId = config.promo?.discountCode || "default";
|
|
12226
|
+
localStorage.setItem(`bigz-promo-${promoId}-shown`, "true");
|
|
12276
12227
|
if (widgetContainerRef) {
|
|
12277
12228
|
widgetContainerRef.scrollIntoView({ behavior: "smooth", block: "start" });
|
|
12278
12229
|
}
|
|
@@ -12896,7 +12847,7 @@
|
|
|
12896
12847
|
}
|
|
12897
12848
|
}
|
|
12898
12849
|
|
|
12899
|
-
var css_248z = ".booking-widget-container{-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;box-sizing:border-box;color:var(--bw-text-color,#1e293b);direction:ltr;display:block;font-family:var(--bw-font-family,system-ui,-apple-system,sans-serif);font-size:var(--bw-font-size,14px);isolation:isolate;line-height:1.5;position:relative;text-align:left}.booking-widget-container *,.booking-widget-container :after,.booking-widget-container :before{box-sizing:border-box;margin:0;padding:0}.booking-widget-container input,.booking-widget-container select,.booking-widget-container textarea{font-family:inherit;font-size:inherit;line-height:inherit}.booking-widget-container button{background:none;border:none;cursor:pointer;font-family:inherit;font-size:inherit}.booking-widget-container a{color:inherit;text-decoration:none}.booking-widget-container img{display:block;height:auto;max-width:100%;vertical-align:middle}.booking-widget-container ol,.booking-widget-container ul{list-style:none}.booking-widget-container h1,.booking-widget-container h2,.booking-widget-container h3,.booking-widget-container h4,.booking-widget-container h5,.booking-widget-container h6{font-size:inherit;font-weight:inherit}#booking-widget-portal{-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;color:var(--bw-text-color,#1e293b);direction:ltr;font-family:var(--bw-font-family,system-ui,-apple-system,sans-serif);font-size:var(--bw-font-size,14px);isolation:isolate;line-height:1.5;text-align:left}#booking-widget-portal *,#booking-widget-portal :after,#booking-widget-portal :before{box-sizing:border-box}#booking-widget-portal-root{-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;color:var(--bw-text-color,#1e293b);font-family:var(--bw-font-family,system-ui,-apple-system,sans-serif);font-size:var(--bw-font-size,14px);line-height:1.5}:root{--bw-highlight-color:#00b1aa;--bw-highlight-color-rgb:0,177,170;--bw-background-color:#f8fdfe;--bw-surface-color:#fff;--bw-text-color:#0e7490;--bw-text-muted:rgba(14,116,144,.7);--bw-border-color:#bae6fd;--bw-success-color:#38bdf8;--bw-warning-color:#fbbf24;--bw-error-color:#f43f5e;--bw-border-radius:18px;--bw-border-radius-small:calc(var(--bw-border-radius)*0.8);--bw-spacing:16px;--bw-spacing-large:24px;--bw-font-family:\"Inter\",system-ui,sans-serif;--bw-font-size:14px;--bw-font-size-large:18px;--bw-font-size-small:12px;--bw-shadow-md:0 4px 6px -1px rgba(0,0,0,.1),0 2px 4px -1px rgba(0,0,0,.06);--bw-shadow-lg:0 10px 15px -3px rgba(0,0,0,.1),0 4px 6px -2px rgba(0,0,0,.05);--bw-highlight-muted:rgba(0,177,170,.1);--bw-highlight-subtle:rgba(0,177,170,.05);--bw-text-subtle:rgba(14,116,144,.4)}.bw-flex{display:flex}.bw-inline-flex{display:inline-flex}.bw-flex-col{flex-direction:column}.bw-flex-row{flex-direction:row}.bw-flex-wrap{flex-wrap:wrap}.bw-flex-1{flex:1 1 0%}.bw-shrink-0{flex-shrink:0}.bw-items-start{align-items:flex-start}.bw-items-center{align-items:center}.bw-items-end{align-items:flex-end}.bw-justify-start{justify-content:flex-start}.bw-justify-center{justify-content:center}.bw-justify-end{justify-content:flex-end}.bw-justify-between{justify-content:space-between}.bw-grid{display:grid}.bw-grid-cols-2{grid-template-columns:repeat(2,minmax(0,1fr))}.bw-grid-cols-3{grid-template-columns:repeat(3,minmax(0,1fr))}.bw-auto-rows-fr{grid-auto-rows:minmax(0,1fr)}.bw-gap-0{gap:0}.bw-gap-0\\.5{gap:2px}.bw-gap-1{gap:4px}.bw-gap-1\\.5{gap:6px}.bw-gap-2{gap:8px}.bw-gap-2\\.5{gap:10px}.bw-gap-3{gap:12px}.bw-gap-4{gap:16px}.bw-gap-5{gap:20px}.bw-gap-6{gap:24px}.bw-w-full{width:100%}.bw-w-auto{width:auto}.bw-w-fit{width:-moz-fit-content;width:fit-content}.bw-h-full{height:100%}.bw-h-auto{height:auto}.bw-min-h-0{min-height:0}.bw-p-0{padding:0}.bw-p-1{padding:4px}.bw-p-2{padding:8px}.bw-p-3{padding:12px}.bw-p-4{padding:16px}.bw-p-5{padding:20px}.bw-p-6{padding:24px}.bw-px-1{padding-left:4px;padding-right:4px}.bw-px-2{padding-left:8px;padding-right:8px}.bw-px-2\\.5{padding-left:10px;padding-right:10px}.bw-px-3{padding-left:12px;padding-right:12px}.bw-px-4{padding-left:16px;padding-right:16px}.bw-px-5{padding-left:20px;padding-right:20px}.bw-px-6{padding-left:24px;padding-right:24px}.bw-px-7{padding-left:28px;padding-right:28px}.bw-px-8{padding-left:32px;padding-right:32px}.bw-py-0\\.5{padding-bottom:2px;padding-top:2px}.bw-py-1{padding-bottom:4px;padding-top:4px}.bw-py-1\\.5{padding-bottom:6px;padding-top:6px}.bw-py-2{padding-bottom:8px;padding-top:8px}.bw-py-2\\.5{padding-bottom:10px;padding-top:10px}.bw-py-3{padding-bottom:12px;padding-top:12px}.bw-py-3\\.5{padding-bottom:14px;padding-top:14px}.bw-py-4{padding-bottom:16px;padding-top:16px}.bw-pt-1{padding-top:4px}.bw-pt-3{padding-top:12px}.bw-pb-1{padding-bottom:4px}.bw-pb-4{padding-bottom:16px}.bw-pb-5{padding-bottom:20px}.bw-pb-8{padding-bottom:32px}.bw-m-0{margin:0}.bw-m-auto{margin:auto}.bw-mx-auto{margin-left:auto;margin-right:auto}.bw-my-1{margin-bottom:4px;margin-top:4px}.bw-my-2{margin-bottom:8px;margin-top:8px}.bw-my-2\\.5{margin-bottom:10px;margin-top:10px}.bw-mt-0\\.5{margin-top:2px}.bw-mt-1{margin-top:4px}.bw-mt-2{margin-top:8px}.bw-mt-2\\.5{margin-top:10px}.bw-mt-3{margin-top:12px}.bw-mt-4{margin-top:16px}.bw-mt-6{margin-top:24px}.bw-mt-8{margin-top:32px}.bw-mb-0\\.5{margin-bottom:2px}.bw-mb-1{margin-bottom:4px}.bw-mb-1\\.5{margin-bottom:6px}.bw-mb-2{margin-bottom:8px}.bw-mb-2\\.5{margin-bottom:10px}.bw-mb-3{margin-bottom:12px}.bw-mb-4{margin-bottom:16px}.bw-mb-5{margin-bottom:20px}.bw-mb-6{margin-bottom:24px}.bw-ml-auto{margin-left:auto}.bw-ml-1\\.5{margin-left:6px}.bw-ml-2{margin-left:8px}.bw-ml-4{margin-left:16px}.bw-mr-auto{margin-right:auto}.-bw-mt-5{margin-top:-20px}.-bw-mt-6{margin-top:-24px}.bw-text-xs{font-size:12px}.bw-text-sm{font-size:14px}.bw-text-base{font-size:16px}.bw-text-lg{font-size:18px}.bw-text-xl{font-size:20px}.bw-text-2xl{font-size:24px}.bw-text-3xl{font-size:30px}.bw-font-normal{font-weight:400}.bw-font-medium{font-weight:500}.bw-font-semibold{font-weight:600}.bw-font-bold{font-weight:700}.bw-font-extrabold{font-weight:800}.bw-font-sans{font-family:var(--bw-font-family,system-ui,-apple-system,sans-serif)}.bw-font-mono{font-family:ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,monospace}.bw-text-left{text-align:left}.bw-text-center{text-align:center}.bw-text-right{text-align:right}.bw-leading-none{line-height:1}.bw-leading-tight{line-height:1.25}.bw-leading-snug{line-height:1.375}.bw-leading-normal{line-height:1.5}.bw-leading-relaxed{line-height:1.625}.bw-uppercase{text-transform:uppercase}.bw-lowercase{text-transform:lowercase}.bw-capitalize{text-transform:capitalize}.bw-whitespace-nowrap{white-space:nowrap}.bw-whitespace-pre-wrap{white-space:pre-wrap}.bw-break-words{overflow-wrap:break-word}.bw-truncate{overflow:hidden;white-space:nowrap}.bw-text-ellipsis,.bw-truncate{text-overflow:ellipsis}.bw-overflow-hidden{overflow:hidden}.bw-text-primary{color:var(--bw-text-color)}.bw-text-muted{color:var(--bw-text-muted)}.bw-text-highlight{color:var(--bw-highlight-color)}.bw-text-success{color:var(--bw-success-color)}.bw-text-warning{color:var(--bw-warning-color)}.bw-text-error{color:var(--bw-error-color)}.bw-text-white{color:#fff}.bw-text-surface{color:var(--bw-surface-color)}.bw-bg-transparent{background-color:transparent}.bw-bg-surface{background-color:var(--bw-surface-color)}.bw-bg-background{background-color:var(--bw-background-color)}.bw-bg-highlight{background-color:var(--bw-highlight-color)}.bw-bg-success{background-color:var(--bw-success-color)}.bw-bg-warning{background-color:var(--bw-warning-color)}.bw-bg-error{background-color:var(--bw-error-color)}.bw-bg-white{background-color:#fff}.bw-bg-border{background-color:var(--bw-border-color)}.bw-border{border-style:solid;border-width:1px}.bw-border-0{border-width:0}.bw-border-2{border-style:solid;border-width:2px}.bw-border-t{border-top-style:solid;border-top-width:1px}.bw-border-t-2{border-top-style:solid;border-top-width:2px}.bw-border-t-4{border-top-style:solid;border-top-width:4px}.bw-border-b{border-bottom-style:solid;border-bottom-width:1px}.bw-border-l{border-left-style:solid;border-left-width:1px}.bw-border-solid{border-style:solid}.bw-border-color{border-color:var(--bw-border-color)}.bw-border-highlight{border-color:var(--bw-highlight-color)}.bw-border-error{border-color:var(--bw-error-color)}.bw-border-success{border-color:var(--bw-success-color)}.bw-rounded{border-radius:var(--bw-border-radius)}.bw-rounded-sm{border-radius:var(--bw-border-radius-small)}.bw-rounded-lg{border-radius:calc(var(--bw-border-radius)*1.2)}.bw-rounded-full{border-radius:9999px}.bw-rounded-none{border-radius:0}.bw-shadow-md{box-shadow:var(--bw-shadow-md)}.bw-shadow-lg{box-shadow:var(--bw-shadow-lg)}.bw-shadow-none{box-shadow:none}.bw-relative{position:relative}.bw-absolute{position:absolute}.bw-fixed{position:fixed}.bw-inset-0{bottom:0;left:0;right:0;top:0}.bw-top-0{top:0}.bw-top-4{top:16px}.bw-right-0{right:0}.bw-right-3{right:12px}.bw-right-4{right:16px}.bw-bottom-0{bottom:0}.bw-bottom-3{bottom:12px}.bw-left-0{left:0}.bw-left-3{left:12px}.bw-left-4{left:16px}.bw-z-1{z-index:1}.bw-z-2{z-index:2}.bw-z-10{z-index:10}.bw-z-50{z-index:50}.bw-hidden{display:none}.bw-block{display:block}.bw-inline{display:inline}.bw-invisible{visibility:hidden}.bw-visible{visibility:visible}.bw-opacity-0{opacity:0}.bw-opacity-30{opacity:.3}.bw-opacity-50{opacity:.5}.bw-opacity-60{opacity:.6}.bw-opacity-70{opacity:.7}.bw-opacity-80{opacity:.8}.bw-opacity-100{opacity:1}.bw-cursor-pointer{cursor:pointer}.bw-cursor-not-allowed{cursor:not-allowed}.bw-cursor-default{cursor:default}.bw-translate-x-0{transform:translateX(0)}.bw-translate-y-0{transform:translateY(0)}.-bw-translate-x-1\\/2{transform:translateX(-50%)}.-bw-translate-y-1\\/2{transform:translateY(-50%)}.bw-transition-all{transition-duration:.2s;transition-property:all;transition-timing-function:cubic-bezier(.4,0,.2,1)}.bw-transition-colors{transition-duration:.2s;transition-property:color,background-color,border-color;transition-timing-function:cubic-bezier(.4,0,.2,1)}.bw-transition-opacity{transition-duration:.2s;transition-property:opacity;transition-timing-function:cubic-bezier(.4,0,.2,1)}.bw-transition-transform{transition-duration:.2s;transition-property:transform;transition-timing-function:cubic-bezier(.4,0,.2,1)}.bw-duration-150{transition-duration:.15s}.bw-duration-200{transition-duration:.2s}.bw-duration-250{transition-duration:.25s}.bw-duration-300{transition-duration:.3s}.bw-duration-400{transition-duration:.4s}.bw-overflow-auto{overflow:auto}.bw-overflow-scroll{overflow:scroll}.bw-overflow-x-auto{overflow-x:auto}.bw-overflow-y-auto{overflow-y:auto}.bw-pointer-events-none{pointer-events:none}.bw-pointer-events-auto{pointer-events:auto}.bw-select-none{-webkit-user-select:none;-moz-user-select:none;user-select:none}.bw-select-text{-webkit-user-select:text;-moz-user-select:text;user-select:text}.bw-backdrop-blur-sm{backdrop-filter:blur(4px);-webkit-backdrop-filter:blur(4px)}.bw-backdrop-blur{backdrop-filter:blur(8px);-webkit-backdrop-filter:blur(8px)}.bw-object-cover{-o-object-fit:cover;object-fit:cover}.bw-object-contain{-o-object-fit:contain;object-fit:contain}.bw-grayscale{filter:grayscale(100%)}.bw-grayscale-40{filter:grayscale(40%)}.bw-will-change-transform{will-change:transform}.bw-sr-only{clip:rect(0,0,0,0);border-width:0;height:1px;margin:-1px;overflow:hidden;padding:0;position:absolute;white-space:nowrap;width:1px}.bw-max-w-full{max-width:100%}.bw-max-w-500{max-width:500px}.bw-max-w-600{max-width:600px}.bw-min-h-120{min-height:120px}.bw-min-h-300{min-height:300px}.bw-min-h-400{min-height:400px}.print-only{display:none}.print-hidden{display:block}.print-booking-header{display:none}.print-section-title{display:none}.print-detail-grid{display:grid;gap:16px;grid-template-columns:1fr 1fr}.print-status-badge,.print-status-paid{display:none}.print-payment-summary{display:none}.print-payment-row{display:flex;justify-content:space-between}.print-footer{display:none}@media print{.print-only{display:block}.print-hidden{display:none!important}.print-booking-header{border-bottom:2px solid #000;display:block;margin-bottom:24px;padding-bottom:16px;text-align:center}.print-booking-header h1{font-size:24px;margin:0 0 8px}.print-booking-header .subtitle{color:#666;font-size:14px}.print-booking-card{border:1px solid #ccc;border-radius:8px;margin-bottom:16px;padding:16px;page-break-inside:avoid}.print-section-title{border-bottom:1px solid #ddd;display:block;font-size:16px;font-weight:600;margin-bottom:12px;padding-bottom:8px}.print-detail-grid{display:grid;gap:12px;grid-template-columns:1fr 1fr}.print-detail-item{margin-bottom:8px}.print-detail-label{color:#666;font-size:12px;margin-bottom:4px}.print-detail-value{font-size:14px;font-weight:600}.print-status-badge{border-radius:9999px;display:inline-block;font-size:12px;font-weight:600;padding:4px 12px}.print-status-paid{background-color:#dcfce7;color:#166534;display:inline-block}.print-participant{align-items:center;background-color:#f9fafb;border-radius:4px;display:flex;justify-content:space-between;margin-bottom:8px;padding:8px}.print-participant-name{font-weight:600}.print-participant-age{color:#666;font-size:12px}.print-payment-summary{display:block}.print-payment-row{border-bottom:1px solid #eee;display:flex;justify-content:space-between;padding:4px 0}.print-payment-row:last-child{border-bottom:none;font-weight:600}.print-footer{border-top:1px solid #ddd;color:#666;display:block;font-size:12px;margin-top:24px;padding-top:16px;text-align:center}.print-footer p{margin:4px 0}}@keyframes spin{0%{transform:rotate(0deg)}to{transform:rotate(1turn)}}@keyframes shimmer{0%{transform:translateX(-100%)}to{transform:translateX(100%)}}@keyframes promo-wave{0%,to{transform:translateX(0) translateY(0)}25%{transform:translateX(5px) translateY(-3px)}50%{transform:translateX(0) translateY(-5px)}75%{transform:translateX(-5px) translateY(-3px)}}@keyframes promo-float{0%,to{transform:translateY(0)}50%{transform:translateY(-8px)}}@keyframes promo-shimmer{0%{background-position:-200%}to{background-position:200%}}@keyframes promo-sparkle{0%,to{opacity:.3;transform:scale(1)}50%{opacity:1;transform:scale(1.2)}}@keyframes promo-snow{0%{opacity:0;transform:translateY(-10px) rotate(0deg)}10%{opacity:1}90%{opacity:1}to{opacity:0;transform:translateY(350px) rotate(1turn)}}@keyframes fade-in{0%{opacity:0}to{opacity:1}}@keyframes fade-out{0%{opacity:1}to{opacity:0}}@keyframes slide-in-right{0%{opacity:0;transform:translateX(100%)}to{opacity:1;transform:translateX(0)}}@keyframes slide-out-right{0%{opacity:1;transform:translateX(0)}to{opacity:0;transform:translateX(100%)}}@keyframes slide-in-up{0%{opacity:0;transform:translateY(20px)}to{opacity:1;transform:translateY(0)}}@keyframes scale-in{0%{opacity:0;transform:scale(.95)}to{opacity:1;transform:scale(1)}}@keyframes pulse{0%,to{opacity:1}50%{opacity:.5}}.animate-spin{animation:spin 1s linear infinite}.animate-shimmer{animation:shimmer 2s infinite}.animate-pulse{animation:pulse 2s cubic-bezier(.4,0,.6,1) infinite}.animate-fade-in{animation:fade-in .2s ease-out}.animate-slide-in-up{animation:slide-in-up .3s ease-out}.animate-scale-in{animation:scale-in .2s ease-out}.bw-btn{align-items:center;border:none;border-radius:var(--bw-border-radius);cursor:pointer;display:inline-flex;font-family:var(--bw-font-family);font-weight:600;gap:8px;justify-content:center;transition:all .2s ease;white-space:nowrap}.bw-btn:focus{box-shadow:0 0 0 2px var(--bw-highlight-color),0 0 0 4px rgba(var(--bw-highlight-color-rgb),.2);outline:none}.bw-btn:disabled{cursor:not-allowed;opacity:.5}.bw-btn-primary{background-color:var(--bw-highlight-color);border:none;color:#fff}.bw-btn-primary:hover:not(:disabled){filter:brightness(1.1)}.bw-btn-primary:active:not(:disabled){filter:brightness(.95)}.bw-btn-secondary{background-color:var(--bw-surface-color);border:1px solid var(--bw-border-color);color:var(--bw-text-color)}.bw-btn-secondary:hover:not(:disabled){filter:brightness(.95)}.bw-btn-ghost{background-color:transparent;border:none;color:var(--bw-text-color)}.bw-btn-ghost:hover:not(:disabled){background-color:rgba(var(--bw-highlight-color-rgb),.1)}.bw-btn-outline{background-color:transparent;border:1px solid var(--bw-highlight-color);color:var(--bw-highlight-color)}.bw-btn-outline:hover:not(:disabled){background-color:var(--bw-highlight-color);color:#fff}.bw-btn-sm{font-size:14px;padding:8px 16px}.bw-btn-md{font-size:16px;padding:12px 24px}.bw-btn-lg{font-size:18px;padding:16px 32px}.bw-btn-full{width:100%}.bw-card{background-color:var(--bw-surface-color);border:1px solid var(--bw-border-color);border-radius:var(--bw-border-radius);overflow:hidden}.bw-card-interactive{cursor:pointer;transition:transform .2s ease,box-shadow .2s ease}.bw-card-interactive:hover{box-shadow:var(--bw-shadow-lg);transform:translateY(-2px)}.bw-card-header{background-color:var(--bw-background-color);border-bottom:1px solid var(--bw-border-color);padding:16px}.bw-card-body{padding:16px}.bw-card-footer{border-top:1px solid var(--bw-border-color);padding:16px}.bw-input{background-color:var(--bw-background-color);border:1px solid var(--bw-border-color);border-radius:var(--bw-border-radius);color:var(--bw-text-color);font-family:var(--bw-font-family);font-size:16px;outline:none;padding:12px;transition:border-color .2s ease,box-shadow .2s ease;width:100%}.bw-input:focus{border-color:var(--bw-highlight-color);box-shadow:0 0 0 2px rgba(var(--bw-highlight-color-rgb),.2)}.bw-input-error{border-color:var(--bw-error-color)}.bw-input-error:focus{box-shadow:0 0 0 2px rgba(var(--bw-error-color),.2)}.bw-label{color:var(--bw-text-muted);display:block;font-family:var(--bw-font-family);font-size:16px;font-weight:500;margin-bottom:8px}.bw-form-group{display:flex;flex-direction:column;gap:4px}.bw-form-error{color:var(--bw-error-color);margin-top:4px}.bw-form-error,.bw-form-helper{font-family:var(--bw-font-family);font-size:14px}.bw-form-helper{color:var(--bw-text-muted)}.bw-select{-webkit-appearance:none;-moz-appearance:none;appearance:none;background-color:var(--bw-surface-color);background-image:url(\"data:image/svg+xml;charset=utf-8,%3Csvg xmlns='http://www.w3.org/2000/svg' width='12' height='12'%3E%3Cpath fill='%236b7280' d='m2 4 4 4 4-4'/%3E%3C/svg%3E\");background-position:right 12px center;background-repeat:no-repeat;cursor:pointer}.bw-select,.bw-textarea{border:1px solid var(--bw-border-color);border-radius:var(--bw-border-radius);color:var(--bw-text-color);font-family:var(--bw-font-family);font-size:16px;padding:12px;width:100%}.bw-textarea{background-color:var(--bw-background-color);min-height:80px;outline:none;resize:vertical;transition:border-color .2s ease}.bw-textarea:focus{border-color:var(--bw-highlight-color)}.bw-checkbox{accent-color:var(--bw-highlight-color);-moz-appearance:checkbox;appearance:checkbox;-webkit-appearance:checkbox;border:1px solid var(--bw-border-color);cursor:pointer;height:20px;width:20px}.bw-badge{align-items:center;border-radius:var(--bw-border-radius-small);display:inline-flex;font-family:var(--bw-font-family);font-size:12px;font-weight:600;padding:2px 8px;white-space:nowrap}.bw-badge-success{background-color:var(--bw-success-color);color:#fff}.bw-badge-error{background-color:var(--bw-error-color);color:#fff}.bw-badge-warning{background-color:var(--bw-warning-color);color:#fff}.bw-badge-highlight{background-color:var(--bw-highlight-color);color:#fff}.bw-badge-muted{background-color:var(--bw-border-color);color:var(--bw-text-muted)}.bw-modal-backdrop{backdrop-filter:blur(4px);-webkit-backdrop-filter:blur(4px);background-color:rgba(0,0,0,.5);inset:0;position:fixed}.bw-modal-content{background-color:var(--bw-surface-color);border:1px solid var(--bw-border-color);border-radius:var(--bw-border-radius);box-shadow:0 20px 25px -5px rgba(0,0,0,.1),0 10px 10px -5px rgba(0,0,0,.04);font-family:var(--bw-font-family);max-height:90vh;max-width:100%;overflow:auto;position:relative}.bw-modal-header{align-items:center;border-bottom:1px solid var(--bw-border-color);display:flex;justify-content:space-between;padding:16px}.bw-modal-body{padding:16px}.bw-modal-footer{border-top:1px solid var(--bw-border-color);display:flex;gap:12px;justify-content:flex-end;padding:16px}.bw-modal-close{align-items:center;background-color:var(--bw-surface-color);border:1px solid var(--bw-border-color);border-radius:var(--bw-border-radius);color:var(--bw-text-muted);cursor:pointer;display:flex;font-size:24px;height:32px;justify-content:center;transition:background-color .2s ease;width:32px}.bw-modal-close:hover{background-color:var(--bw-border-color)}.bw-sidebar{background-color:var(--bw-surface-color);border-left:1px solid var(--bw-border-color);bottom:0;box-shadow:var(--bw-shadow-lg);display:flex;flex-direction:column;overflow:hidden;position:fixed;right:0;top:0;transition:transform .25s cubic-bezier(.4,0,.2,1);will-change:transform}.bw-sidebar-header{align-items:center;background-color:var(--bw-background-color);border-bottom:1px solid var(--bw-border-color);display:flex;flex-shrink:0;justify-content:space-between;padding:16px}.bw-sidebar-title{color:var(--bw-text-color);font-family:var(--bw-font-family);font-size:18px;font-weight:600;margin:0}.bw-sidebar-content{background-color:var(--bw-background-color);flex:1;overflow:auto}@media (max-width:768px){.sidebar-mobile{border-radius:0!important;max-width:100%!important;width:100%!important}}.bw-accordion{background-color:var(--bw-surface-color);border:1px solid var(--bw-border-color);border-radius:var(--bw-border-radius);overflow:hidden}.bw-accordion-trigger{align-items:center;background-color:transparent;border:none;cursor:pointer;display:flex;font-family:var(--bw-font-family);justify-content:space-between;padding:16px;text-align:left;transition:background-color .2s ease;width:100%}.bw-accordion-trigger:hover{background-color:rgba(var(--bw-highlight-color-rgb),.1)}.bw-accordion-content{background-color:var(--bw-background-color);border-top:1px solid var(--bw-border-color);padding:0 16px 16px}.bw-accordion-chevron{font-size:16px;margin-left:16px;transition:transform .2s ease}.bw-accordion-trigger[data-state=open] .bw-accordion-chevron{transform:rotate(180deg)}.bw-spinner{align-items:center;display:flex;justify-content:center}.bw-spinner-icon{animation:spin 1s linear infinite;border-radius:50%}.bw-skeleton{background-color:var(--bw-border-color);border-radius:var(--bw-border-radius-small)}.bw-skeleton,.skeleton-shimmer{overflow:hidden;position:relative}.skeleton-shimmer:after{animation:shimmer 1.5s infinite;background:linear-gradient(90deg,transparent,hsla(0,0%,100%,.3),transparent);content:\"\";height:100%;left:0;position:absolute;top:0;width:100%}.bw-empty-state{flex-direction:column;min-height:300px;padding:24px;text-align:center}.bw-empty-state,.bw-empty-state-icon{align-items:center;display:flex;justify-content:center}.bw-empty-state-icon{background-color:var(--bw-highlight-color);border-radius:50%;color:#fff;font-size:32px;height:64px;margin-bottom:16px;opacity:.8;width:64px}.bw-empty-state-title{color:var(--bw-text-color);font-family:var(--bw-font-family);font-size:20px;font-weight:600;margin:0 0 8px}.bw-empty-state-message{color:var(--bw-text-muted);font-family:var(--bw-font-family);font-size:16px;line-height:1.6;margin:0 0 24px;max-width:400px}.bw-section-header{border-bottom:2px solid var(--bw-highlight-color);color:var(--bw-highlight-color);font-size:18px;font-weight:600;margin-bottom:12px;padding-bottom:4px}.bw-alert,.bw-section-header{font-family:var(--bw-font-family)}.bw-alert{border-radius:var(--bw-border-radius);padding:16px}.bw-alert-success{background-color:rgba(var(--bw-success-color),.15);border:1px solid rgba(var(--bw-success-color),.4);color:var(--bw-success-color)}.bw-alert-error{background-color:rgba(var(--bw-error-color),.1);border:1px solid var(--bw-error-color);color:var(--bw-error-color)}.bw-alert-warning{background-color:rgba(var(--bw-warning-color),.15);border:1px solid rgba(var(--bw-warning-color),.4);color:var(--bw-warning-color)}.custom-scrollbar::-webkit-scrollbar{height:6px;width:6px}.custom-scrollbar::-webkit-scrollbar-track{background:transparent}.custom-scrollbar::-webkit-scrollbar-thumb{background:var(--bw-border-color);border-radius:3px}.custom-scrollbar::-webkit-scrollbar-thumb:hover{background:var(--bw-text-muted)}.markdown-content h1,.markdown-content h2,.markdown-content h3,.markdown-content h4,.markdown-content h5,.markdown-content h6{color:var(--bw-text-color);font-weight:600;margin-bottom:.5em}.markdown-content h1{font-size:1.5em}.markdown-content h2{font-size:1.25em}.markdown-content h3{font-size:1.1em}.markdown-content p{line-height:1.6;margin-bottom:1em}.markdown-content ol,.markdown-content ul{margin-bottom:1em;padding-left:1.5em}.markdown-content ul{list-style-type:disc}.markdown-content ol{list-style-type:decimal}.markdown-content li{margin-bottom:.25em}.markdown-content a{color:var(--bw-highlight-color);text-decoration:underline}.markdown-content a:hover{opacity:.8}.markdown-content strong{font-weight:600}.markdown-content em{font-style:italic}.markdown-content code{background:var(--bw-highlight-subtle);border-radius:4px;font-family:monospace;font-size:.9em;padding:.125em .25em}.markdown-content blockquote{border-left:3px solid var(--bw-highlight-color);color:var(--bw-text-muted);margin:1em 0;padding-left:1em}.next-events-skeleton{overflow:hidden;position:relative}.next-events-skeleton:after{animation:shimmer 1.5s infinite;background:linear-gradient(90deg,transparent,hsla(0,0%,100%,.4),transparent);content:\"\";height:100%;left:0;position:absolute;top:0;width:100%}.stripe-element{background:var(--bw-surface-color);border:1px solid var(--bw-border-color);border-radius:var(--bw-border-radius-small);padding:12px;transition:border-color .2s ease,box-shadow .2s ease}.stripe-element:focus-within{border-color:var(--bw-highlight-color);box-shadow:0 0 0 3px var(--bw-highlight-muted)}.backdrop{backdrop-filter:blur(4px);background-color:rgba(0,0,0,.5);inset:0;position:fixed}.bw-event-card{background-color:var(--bw-surface-color);border:1px solid var(--bw-border-color);border-radius:var(--bw-border-radius);box-shadow:var(--bw-shadow-md);font-family:var(--bw-font-family);overflow:hidden;position:relative;transition:all .3s ease}.bw-event-card.bw-available{cursor:pointer;opacity:1}.bw-event-card.bw-available:hover{box-shadow:var(--bw-shadow-lg)}.bw-event-card.bw-unavailable{cursor:not-allowed;opacity:.6}.bw-event-card-image{height:300px;position:relative;width:100%}.bw-event-card-content{display:flex;flex-direction:column;height:400px;justify-content:space-between;padding:12px 18px}.bw-instance-card{background-color:var(--bw-surface-color);border:1px solid var(--bw-border-color);border-radius:var(--bw-border-radius);font-family:var(--bw-font-family);padding:16px 20px;position:relative;transition:all .2s ease}.bw-instance-card.bw-available{cursor:pointer}.bw-instance-card.bw-available:hover{background-color:rgba(var(--bw-highlight-color-rgb),.1);transform:scale(1.02)}.bw-instance-card.bw-unavailable{cursor:not-allowed;filter:grayscale(40%);opacity:.3}.bw-date-box{align-items:center;background-color:var(--bw-background-color);border-top-width:1px;border:1px solid var(--bw-border-color);border-radius:var(--bw-border-radius-small);border-top:4px solid var(--bw-border-color);display:flex;font-size:16px;height:40px;justify-content:center;transition:all .2s ease;width:40px}.bw-date-box,.bw-price{color:var(--bw-text-color);font-weight:700}.bw-price{font-family:var(--bw-font-family)}.bw-price-large{font-size:clamp(1.72rem,4vw,32px)}.bw-price-highlight{color:var(--bw-highlight-color)}.bw-loading-overlay{align-items:center;background-color:rgba(15,23,42,.8);border-radius:var(--bw-border-radius);display:flex;inset:0;justify-content:center;position:absolute}.bw-voucher-applied{align-items:center;background-color:var(--bw-surface-color);border:1px solid var(--bw-border-color);border-radius:var(--bw-border-radius);display:flex;justify-content:space-between;margin-bottom:8px;padding:10px 12px}.bw-voucher-code{color:var(--bw-text-color);font-family:ui-monospace,monospace;font-weight:600}.bw-voucher-discount{color:var(--bw-success-color);font-size:12px}.bw-promo-backdrop{backdrop-filter:blur(4px);-webkit-backdrop-filter:blur(4px);background-color:rgba(0,20,40,.85);inset:0;position:fixed;transition:opacity .3s ease;z-index:60}.bw-promo-dialog{left:50%;max-width:440px;position:fixed;top:50%;transform:translate(-50%,-50%);transition:all .3s cubic-bezier(.34,1.56,.64,1);width:92%;z-index:61}.bw-promo-content{border-radius:28px;box-shadow:0 25px 60px -12px rgba(0,0,0,.5),0 0 0 1px hsla(0,0%,100%,.1),inset 0 1px 0 hsla(0,0%,100%,.2);overflow:hidden;position:relative}.bw-promo-close{align-items:center;backdrop-filter:blur(4px);background-color:rgba(0,0,0,.3);border:none;border-radius:50%;color:#fff;cursor:pointer;display:flex;font-size:22px;height:36px;justify-content:center;line-height:1;position:absolute;right:16px;top:16px;transition:all .15s ease;width:36px;z-index:10}.bw-promo-close:hover{background-color:rgba(0,0,0,.5);transform:scale(1.1)}@media (max-width:600px){.event-type-list{gap:12px!important;padding:8px!important}.event-type-card{flex:1 1 100%!important;max-width:100%!important;padding:0!important}.event-type-img{height:160px!important}.event-type-title{font-size:1.1rem!important}.event-type-desc{font-size:.8rem!important;max-height:100px!important;min-height:100px!important}.event-type-content{padding:16px 24px!important}}.bw-upsells-step{display:flex;flex-direction:column;height:100%;padding:0 16px}.bw-upsells-description{color:var(--bw-text-muted);font-size:14px;margin-bottom:20px;text-align:center}.bw-upsells-loading{align-items:center;display:flex;flex-direction:column;gap:12px;justify-content:center}.bw-upsells-empty,.bw-upsells-loading{color:var(--bw-text-muted);padding:40px 20px}.bw-upsells-empty{text-align:center}.bw-upsells-grid{display:flex;flex:1;flex-direction:column;gap:12px;overflow-y:auto;padding-bottom:16px}.bw-upsells-footer{border-top:1px solid var(--bw-border-color);margin-top:auto;padding-top:16px}.bw-upsells-summary{align-items:center;display:flex;font-size:14px;justify-content:space-between;margin-bottom:12px}.bw-upsells-summary-label{color:var(--bw-text-muted)}.bw-upsells-summary-price{color:var(--bw-highlight-color);font-weight:600}.bw-upsells-actions{margin-bottom:12px}.bw-upsells-skip-btn{background-color:var(--bw-highlight-color);border:none;border-radius:var(--bw-border-radius);color:#fff;cursor:pointer;font-size:16px;font-weight:600;padding:14px 24px;transition:all .2s ease;width:100%}.bw-upsells-skip-btn:hover{filter:brightness(1.1)}.bw-upsells-back-btn{background-color:transparent;border:none;color:var(--bw-text-muted);cursor:pointer;font-size:14px;padding:10px 16px;transition:color .2s ease;width:100%}.bw-upsells-back-btn:hover{color:var(--bw-text-color)}.bw-upsell-card{background-color:var(--bw-surface-color);border:2px solid var(--bw-border-color);border-radius:var(--bw-border-radius);cursor:pointer;display:flex;flex-direction:column;padding:16px;position:relative;transition:all .2s ease}.bw-upsell-card:hover:not(.bw-upsell-card--disabled){border-color:var(--bw-highlight-color);box-shadow:0 2px 8px rgba(var(--bw-highlight-color-rgb),.15)}.bw-upsell-card--selected{background-color:rgba(var(--bw-highlight-color-rgb),.08);border-color:var(--bw-highlight-color)}.bw-upsell-card--disabled{cursor:not-allowed;opacity:.6}.bw-upsell-checkbox{position:absolute;right:12px;top:12px}.bw-upsell-checkbox-inner{align-items:center;background-color:var(--bw-surface-color);border:2px solid var(--bw-border-color);border-radius:6px;display:flex;height:24px;justify-content:center;transition:all .2s ease;width:24px}.bw-upsell-checkbox-inner--checked{background-color:var(--bw-highlight-color);border-color:var(--bw-highlight-color);color:#fff}.bw-upsell-checkbox-inner svg{height:14px;width:14px}.bw-upsell-image-container{background-color:var(--bw-background-color);border-radius:calc(var(--bw-border-radius) - 4px);height:120px;margin-bottom:12px;overflow:hidden;width:100%}.bw-upsell-image{height:100%;-o-object-fit:cover;object-fit:cover;width:100%}.bw-upsell-image-placeholder{align-items:center;color:var(--bw-text-muted);display:flex;height:100%;justify-content:center;width:100%}.bw-upsell-image-placeholder svg{height:40px;opacity:.4;width:40px}.bw-upsell-content{flex:1}.bw-upsell-name{color:var(--bw-text-color);font-size:16px;font-weight:600;margin:0 0 6px;padding-right:36px}.bw-upsell-description{-webkit-line-clamp:2;-webkit-box-orient:vertical;color:var(--bw-text-muted);display:-webkit-box;font-size:13px;line-height:1.4;margin:0 0 10px;overflow:hidden}.bw-upsell-items{display:flex;flex-wrap:wrap;gap:6px;margin-bottom:10px}.bw-upsell-item{align-items:center;background-color:var(--bw-background-color);border-radius:4px;color:var(--bw-text-muted);display:inline-flex;font-size:12px;gap:4px;padding:4px 8px}.bw-upsell-event-info{align-items:center;background-color:rgba(var(--bw-highlight-color-rgb),.1);border-radius:6px;display:flex;font-size:12px;gap:12px;margin-bottom:10px;padding:8px 10px}.bw-upsell-event-date{color:var(--bw-text-color);font-weight:500}.bw-upsell-event-spots{color:var(--bw-text-muted)}.bw-upsell-price-container{align-items:flex-end;border-top:1px solid var(--bw-border-color);display:flex;flex-direction:column;margin-top:8px;padding-top:8px}.bw-upsell-price-per-person{color:var(--bw-highlight-color);font-size:15px;font-weight:600}.bw-upsell-price-total{color:var(--bw-text-muted);font-size:12px}.bw-upsell-unavailable{align-items:center;background-color:rgba(var(--bw-background-color-rgb),.85);border-radius:var(--bw-border-radius);color:var(--bw-text-muted);display:flex;font-size:13px;inset:0;justify-content:center;padding:16px;position:absolute;text-align:center}.bw-sidebar-footer{background-color:var(--bw-surface-color);border-top:1px solid var(--bw-border-color);display:flex;gap:12px;padding:12px 16px}.bw-footer-btn{align-items:center;border:none;border-radius:var(--bw-border-radius);cursor:pointer;display:inline-flex;flex:1;font-family:var(--bw-font-family);font-size:14px;font-weight:600;gap:6px;justify-content:center;padding:12px 16px;transition:all .2s ease;white-space:nowrap}.bw-footer-btn:disabled{cursor:not-allowed;opacity:.5}.bw-footer-btn-primary{background-color:var(--bw-highlight-color);color:#fff}.bw-footer-btn-primary:hover:not(:disabled){filter:brightness(1.1)}.bw-footer-btn-secondary{background-color:transparent;border:1px solid var(--bw-border-color);color:var(--bw-text-muted)}.bw-footer-btn-secondary:hover:not(:disabled){background-color:var(--bw-background-color);color:var(--bw-text-color)}.bw-participant-upsells{border-top:1px dashed var(--bw-border-color);display:flex;flex-wrap:wrap;gap:8px;margin-top:10px;padding-top:10px}.bw-participant-upsell-label{align-items:center;background-color:var(--bw-background-color);border:1px solid var(--bw-border-color);border-radius:var(--bw-border-radius-small);color:var(--bw-text-muted);cursor:pointer;display:inline-flex;font-family:var(--bw-font-family);font-size:13px;gap:6px;padding:6px 10px;transition:all .2s ease}.bw-participant-upsell-label:hover{border-color:var(--bw-highlight-color)}.bw-participant-upsell-label--selected{background-color:rgba(var(--bw-highlight-color-rgb),.1);border-color:var(--bw-highlight-color);color:var(--bw-highlight-color)}.bw-participant-upsell-checkbox{accent-color:var(--bw-highlight-color);cursor:pointer;height:16px;width:16px}.bw-participant-upsell-name{font-weight:500}.bw-participant-upsell-price{font-size:12px;opacity:.8}";
|
|
12850
|
+
var css_248z = ".booking-widget-container{-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;box-sizing:border-box;color:var(--bw-text-color,#1e293b);direction:ltr;display:block;font-family:var(--bw-font-family,system-ui,-apple-system,sans-serif);font-size:var(--bw-font-size,14px);isolation:isolate;line-height:1.5;position:relative;text-align:left}.booking-widget-container *,.booking-widget-container :after,.booking-widget-container :before{box-sizing:border-box;margin:0;padding:0}.booking-widget-container input,.booking-widget-container select,.booking-widget-container textarea{font-family:inherit;font-size:inherit;line-height:inherit}.booking-widget-container button{background:none;border:none;cursor:pointer;font-family:inherit;font-size:inherit}.booking-widget-container a{color:inherit;text-decoration:none}.booking-widget-container img{display:block;height:auto;max-width:100%;vertical-align:middle}.booking-widget-container ol,.booking-widget-container ul{list-style:none}.booking-widget-container h1,.booking-widget-container h2,.booking-widget-container h3,.booking-widget-container h4,.booking-widget-container h5,.booking-widget-container h6{font-size:inherit;font-weight:inherit}#booking-widget-portal{-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;color:var(--bw-text-color,#1e293b);direction:ltr;font-family:var(--bw-font-family,system-ui,-apple-system,sans-serif);font-size:var(--bw-font-size,14px);isolation:isolate;line-height:1.5;text-align:left}#booking-widget-portal *,#booking-widget-portal :after,#booking-widget-portal :before{box-sizing:border-box}#booking-widget-portal-root{-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;color:var(--bw-text-color,#1e293b);font-family:var(--bw-font-family,system-ui,-apple-system,sans-serif);font-size:var(--bw-font-size,14px);line-height:1.5}:root{--bw-highlight-color:#00b1aa;--bw-highlight-color-rgb:0,177,170;--bw-background-color:#f8fdfe;--bw-surface-color:#fff;--bw-text-color:#0e7490;--bw-text-muted:rgba(14,116,144,.7);--bw-border-color:#bae6fd;--bw-success-color:#38bdf8;--bw-warning-color:#fbbf24;--bw-error-color:#f43f5e;--bw-border-radius:18px;--bw-border-radius-small:calc(var(--bw-border-radius)*0.8);--bw-spacing:16px;--bw-spacing-large:24px;--bw-font-family:\"Inter\",system-ui,sans-serif;--bw-font-size:14px;--bw-font-size-large:18px;--bw-font-size-small:12px;--bw-shadow-md:0 4px 6px -1px rgba(0,0,0,.1),0 2px 4px -1px rgba(0,0,0,.06);--bw-shadow-lg:0 10px 15px -3px rgba(0,0,0,.1),0 4px 6px -2px rgba(0,0,0,.05);--bw-highlight-muted:rgba(0,177,170,.1);--bw-highlight-subtle:rgba(0,177,170,.05);--bw-text-subtle:rgba(14,116,144,.4)}@keyframes spin{0%{transform:rotate(0deg)}to{transform:rotate(1turn)}}@keyframes shimmer{0%{transform:translateX(-100%)}to{transform:translateX(100%)}}@keyframes promo-wave{0%,to{transform:translateX(0) translateY(0)}25%{transform:translateX(5px) translateY(-3px)}50%{transform:translateX(0) translateY(-5px)}75%{transform:translateX(-5px) translateY(-3px)}}@keyframes promo-float{0%,to{transform:translateY(0)}50%{transform:translateY(-8px)}}@keyframes promo-shimmer{0%{background-position:-200%}to{background-position:200%}}@keyframes promo-sparkle{0%,to{opacity:.3;transform:scale(1)}50%{opacity:1;transform:scale(1.2)}}@keyframes promo-snow{0%{opacity:0;transform:translateY(-10px) rotate(0deg)}10%{opacity:1}90%{opacity:1}to{opacity:0;transform:translateY(350px) rotate(1turn)}}@keyframes fade-in{0%{opacity:0}to{opacity:1}}@keyframes fade-out{0%{opacity:1}to{opacity:0}}@keyframes slide-in-right{0%{opacity:0;transform:translateX(100%)}to{opacity:1;transform:translateX(0)}}@keyframes slide-out-right{0%{opacity:1;transform:translateX(0)}to{opacity:0;transform:translateX(100%)}}@keyframes slide-in-up{0%{opacity:0;transform:translateY(20px)}to{opacity:1;transform:translateY(0)}}@keyframes scale-in{0%{opacity:0;transform:scale(.95)}to{opacity:1;transform:scale(1)}}@keyframes pulse{0%,to{opacity:1}50%{opacity:.5}}.animate-spin{animation:spin 1s linear infinite}.animate-shimmer{animation:shimmer 2s infinite}.animate-pulse{animation:pulse 2s cubic-bezier(.4,0,.6,1) infinite}.animate-fade-in{animation:fade-in .2s ease-out}.animate-slide-in-up{animation:slide-in-up .3s ease-out}.animate-scale-in{animation:scale-in .2s ease-out}.skeleton-shimmer{overflow:hidden;position:relative}.skeleton-shimmer:after{animation:shimmer 1.5s infinite;background:linear-gradient(90deg,transparent,hsla(0,0%,100%,.3),transparent);content:\"\";height:100%;left:0;position:absolute;top:0;width:100%}@media (max-width:768px){.sidebar-mobile{border-radius:0!important;max-width:100%!important;width:100%!important}}@media (max-width:600px){.event-type-list{gap:12px!important;padding:8px!important}.event-type-card{flex:1 1 100%!important;max-width:100%!important;padding:0!important}.event-type-img{height:160px!important}.event-type-title{font-size:1.1rem!important}.event-type-desc{font-size:.8rem!important;max-height:100px!important;min-height:100px!important}.event-type-content{padding:16px 24px!important}}.event-type-markdown{overflow:visible!important}.event-type-markdown p{color:var(--bw-text-muted);font-family:var(--bw-font-family);line-height:1.6;margin:0 0 8px}.event-type-markdown p:last-child{margin-bottom:0}.event-type-markdown h2{font-size:18px!important;font-weight:700!important;margin:12px 0 6px!important}.event-type-markdown h2,.event-type-markdown h3{color:var(--bw-text-color)!important;line-height:1.3!important}.event-type-markdown h3{font-size:16px!important;font-weight:600!important;margin:10px 0 4px!important}.event-type-markdown strong{color:var(--bw-text-color);font-weight:600}.event-type-markdown em{font-style:italic}.event-type-markdown u{text-decoration:underline}.event-type-markdown ul{list-style:none!important;margin:6px 0!important;padding:0 0 0 24px!important;position:relative!important}.event-type-markdown ul li{color:var(--bw-text-muted)!important;font-family:var(--bw-font-family)!important;margin-bottom:2px!important;padding-left:0!important;position:relative!important}.event-type-markdown ul li:before{color:var(--bw-text-color)!important;content:\"•\"!important;font-weight:700!important;left:-16px!important;position:absolute!important;top:0!important}.event-type-markdown ol{counter-reset:list-counter!important;list-style:none!important;margin:6px 0!important;padding:0 0 0 24px!important;position:relative!important}.event-type-markdown ol li{color:var(--bw-text-muted)!important;counter-increment:list-counter!important;font-family:var(--bw-font-family)!important;margin-bottom:2px!important;padding-left:0!important;position:relative!important}.event-type-markdown ol li:before{color:var(--bw-text-color)!important;content:counter(list-counter) \".\"!important;font-weight:700!important;left:-20px!important;position:absolute!important;top:0!important}.event-type-markdown blockquote{border-left:2px solid var(--bw-border-color);color:var(--bw-text-muted);font-style:italic;margin:4px 0;padding-left:12px}.event-type-markdown a{color:var(--bw-highlight-color);text-decoration:underline}.markdown-content h1,.markdown-content h2,.markdown-content h3,.markdown-content h4,.markdown-content h5,.markdown-content h6{color:var(--bw-text-color);font-weight:600;margin-bottom:.5em}.markdown-content h1{font-size:1.5em}.markdown-content h2{font-size:1.25em}.markdown-content h3{font-size:1.1em}.markdown-content p{line-height:1.6;margin-bottom:1em}.markdown-content ol,.markdown-content ul{margin-bottom:1em;padding-left:1.5em}.markdown-content ul{list-style-type:disc}.markdown-content ol{list-style-type:decimal}.markdown-content li{margin-bottom:.25em}.markdown-content a{color:var(--bw-highlight-color);text-decoration:underline}.markdown-content a:hover{opacity:.8}.markdown-content strong{font-weight:600}.markdown-content em{font-style:italic}.markdown-content code{background:var(--bw-highlight-subtle);border-radius:4px;font-family:monospace;font-size:.9em;padding:.125em .25em}.markdown-content blockquote{border-left:3px solid var(--bw-highlight-color);color:var(--bw-text-muted);margin:1em 0;padding-left:1em}.print-only{display:none}.print-hidden{display:block}@media print{.print-only{display:block}.print-hidden{display:none!important}.print-booking-header{border-bottom:2px solid #000;display:block;margin-bottom:24px;padding-bottom:16px;text-align:center}.print-booking-header h1{font-size:24px;margin:0 0 8px}.print-booking-header .subtitle{color:#666;font-size:14px}.print-booking-card{border:1px solid #ccc;border-radius:8px;margin-bottom:16px;padding:16px;page-break-inside:avoid}.print-section-title{border-bottom:1px solid #ddd;display:block;font-size:16px;font-weight:600;margin-bottom:12px;padding-bottom:8px}.print-detail-grid{display:grid;gap:12px;grid-template-columns:1fr 1fr}.print-detail-item{margin-bottom:8px}.print-detail-label{color:#666;font-size:12px;margin-bottom:4px}.print-detail-value{font-size:14px;font-weight:600}.print-status-badge{border-radius:9999px;display:inline-block;font-size:12px;font-weight:600;padding:4px 12px}.print-status-paid{background-color:#dcfce7;color:#166534;display:inline-block}.print-participant{align-items:center;background-color:#f9fafb;border-radius:4px;display:flex;justify-content:space-between;margin-bottom:8px;padding:8px}.print-participant-name{font-weight:600}.print-participant-age{color:#666;font-size:12px}.print-payment-summary{display:block}.print-payment-row{border-bottom:1px solid #eee;display:flex;justify-content:space-between;padding:4px 0}.print-payment-row:last-child{border-bottom:none;font-weight:600}.print-footer{border-top:1px solid #ddd;color:#666;display:block;font-size:12px;margin-top:24px;padding-top:16px;text-align:center}.print-footer p{margin:4px 0}}";
|
|
12900
12851
|
styleInject(css_248z);
|
|
12901
12852
|
|
|
12902
12853
|
// Export init function for vanilla JS usage with Preact
|